【UML】类图Class diagram(转)
http://blog.csdn.net/sds15732622190/article/details/48860711
前言
说到UML,相信大家就能立刻反应出其中的类图,为什么这么说呢,类图和用例图我觉得是UML最精髓的部分,在软件开发与管理中起着巨大的作用。接下来介绍一下类图。
定义
由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。
组成
如例图,类一般由名称,属性和方法组成。分别写在三个方框里。
类(Class)
1、类名
不可省略。
书写规范:正体字(可被实例化),斜体字(抽象类)。
2、属性(attributes)
书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型]
可见性修饰符:(+)public;(-)private;(#)protected;(默认)package(包)级别的可见性。
3、方法
同属性。
关系
泛化(Inheritance)
表示方法:直线加空心三角形。
①单重继承(一个子类有且只有一个父类)
②多重继承(一个子类有两个或两个以上父类)
关联关系(Association)
①简单关联
表示方法:直线
(1)单向关联(使用箭头)
(2)双向关联
(3)自身关联
②聚合关系(Aggregation)
整体和部分,松耦合,可以独立存在,时间不分先后。
表示方法:空心菱形。
③组合关系(Composition)
整体和部分,紧耦合,不可独立存在,时间存在先后。
表示方法:实心菱形。
依赖关系(Dependency)
即为使用关系。
表示方法:虚线箭头。
实现关系
一个类元描述了另一个类元保证实现的契约。
表示方法:虚线加空心三角。
协作
协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。
接口
类和接口的实现关系,接口用圆表示。
要点
1、给定一个软件系统,根据软件系统特征抽象得到类。2、抽象得到每个类的属性方法。
3、正确表达出类和类的关系。(不能只用依赖关系(太弱);能用关联时要用关联;能用组合就不用聚合;能用聚合就不用一般关联;能用一般关联就不用依赖;该用接口实现的要用接口实现;需要继承的要用继承。)
4、用准确关系进行建模后要进行修饰(名称,属性等)。
机房收费系统类图
欢迎大家提出宝贵的建议。
总结
我感觉类图是UML图中相对较难的一张,如何画好类图是我们需要学习的,如何完整的找出具体类,抽象类不是画一两张图就能学会的,所以我们要多把握画图的机会,画好类图,学好UML。