版权声明:本文为博主原创文章,若要转载请注明出处!^_^ https://blog.csdn.net/u010892841/article/details/24844825

类图class diagram用来表述系统内部的静态结构。详细来说,开发者能够通过类图的设计,把代码分类构成系统内部的静态结构。

    曾经,程序猿在开发过程中,须要分模块、定功能、定义变量。这些过程在面向对象的技术中也会得以体现。以下是一个表格用来区分一般面向过程的方法和面向对象方法。 

面向过程 面向对象
模块
功能 操作
变量 属性
自上而下 自下而上

当中须要说明的是表格中的最后一行,也就是两者划分方法的不同例如以下图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg5Mjg0MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />

     在设计类图的时候应该注意的几点例如以下:

         通过找名词能够找到类。进一步的是确定属性和操作。

在这个过程中要注意状态信息、动作行为操作集合动态信息,行为属于行为的实施者。

另外须要注意的是,类图不是一蹴而就的。在类的抽象的过程中能够抽象出一些新的类。同一时候也要注意建立关系的时候尽量用最准确的关系建模,而且注意对关系进行修饰包含名称、角色名、多重性的修饰。

类图的分类例如以下

边界类〈Boundary Classes〉:

l  可用来塑造操作者与系统之间的交互。

l  可用来理清用户在系统边界上的需求;

l  可设计抽象的用户界面对象。

控制类〈Control Classes〉:

l  可协调对象之间的交易;

l  可将使用案例的细节部分封装起来;

l  可将复杂的计算或商务逻辑封装起来。

实体类〈Entity Classes〉:

l  代表永久保存的信息;

l  代表E-R模型之中人、事、时、地、物或概念的信息及行为。

接下来就是实战阶段了。在浏览别人的博客时发现一个特点。非常多人都忽视了类图一个重要的特性:类图是从不同的角度进行系统静态结构进行描写叙述的。而且在每一次描写叙述的过程中,必须依据不同的角度有不同的側重点。不能要求一幅图做到面面俱到,那样的类图会没有重点,表达也不会非常清晰。以下是我在吸取这个经验之后改进的用例图,有哪里能够改进的地方,欢迎大家指出,共同交流。

在画类图的时候比較纠结的一点是,看到非常多童鞋都是直接画的三个角色之间的继承关系。

思考了一下。发现仅仅有三者之间的操作能够有继承关系。可是三者的属性关系并没有相似的关系。

经过多方面的考虑就画了一张这种类图。可是我知道自己的图也不完好,由于学长说类的操作必须是最简化的操作,也就是直接输入參数就能够完毕动作的操作。我写的那些都不能算是真正的操作。可是由于水平有限仅仅能盲人摸象。画出自己眼下阶段理解的层次,待以后随着学习的加深再一步步的不断完好吧。

     最后的改进。敬请參看uml图验收问题集锦

     

umlの类图的更多相关文章

  1. UML类图(下):关联、聚合、组合、依赖

    前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...

  2. UML类图(上):类、继承和实现

    面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...

  3. UML类图几种关系的总结

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  4. UML类图关系全面剖析

    UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...

  5. UML类图关系--继承(泛化)、实现、关联、聚合、组合、依赖

    在UML类图中,常见的有以下几种关系:  泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composi ...

  6. UML类图的6大关系

    <小酌重构系列>已经完成了大约1/3了,在这些文章中,我使用了一些简单的类图来描述重构策略.在之后的文章中,我可能会借助稍微复杂一些的UML类图来介绍.但是在此之前,我觉得有必要先介绍一下 ...

  7. [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  8. 初识UML类图--类之间关系

    前言 最近有打算学习一下设计模式,所以就去看了园子里面左潇龙大哥的设计模式文章,看完之后只有一个感觉,我啥时候也能写出来这么牛逼的文章啊,但是我这语文老师死的早的人还是算了,但是设计模式还是要学的,这 ...

  9. 我对uml类图关系的理解

    uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...

  10. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...

随机推荐

  1. 成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件

    关于log4j.properties文件在web项目中放的位置,找过很多,最后实践结果是: 一.web项目 二.放在src的目录里面,然后项目生成后会自动在\WEB-INF\classes文件里有份l ...

  2. TOJ 4002 Palindrome Generator

    描述 A palindrome is a number that reads the same whether you read it from left to right or from right ...

  3. python之高阶函数map/reduce

    L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L) Python内建了map()和reduce()函数. 我们先看 ...

  4. H5分享到微信好友朋友圈QQ好友QQ空间微博二维码

    这是分享按钮: <button onclick="call()">通用分享</button> <button onclick="call(' ...

  5. 如何才能快速入门python3?

    一些朋友自学python过程中,发现书也能看懂,书上的玩具代码也能看懂,但为啥自己不能做习题,不能写代码解决问题,自己不能动手写代码? 原因是初学者没有学会计算思维.解决问题的方法.编程思路. 编程思 ...

  6. 有关ie9 以下不支持placeholder属性以及获得焦点placeholder的移除

    (一)placeholder 属性起到提示客户输入信息作用 (二)ie9以下出问题了 placeholder不支持 (三)解决办法 先贴html 加上jquery代码就可以了 关于表单获取焦点,chr ...

  7. Easy deployment

    Use simple ssh and shell scripts to deploy, upgrade, rollback and reconfigure linux servers. https:/ ...

  8. 转:什么是4D(DRG、DLG、DOM、DEM)数据?

    ps:摘抄地址http://blog.163.com/wangqing_rs/blog/static/16451519120111026102916472/  什么是4D(DRG.DLG.DOM.DE ...

  9. 学习JVM虚拟机原理总结

    0x00:JAVA虚拟机的前世今生 1991年,在Sun公司工作期间,詹姆斯·高斯林和一群技术人员创建了一个名为Oak的项目,旨在开发运行于虚拟机的编程语言,允许程序多平台上运行.后来,这项工作就演变 ...

  10. CodeMirror教程,CodeMirrorAPI中文信息

    <html> <head>     <link rel="stylesheet" href="codemirror.css"> ...