目录
摘要
用例图(Use case diagram)
类图(Class diagram )对象图(Object diagram)
通信图(Communication diagram)
顺序图(Sequence diagram)
状态机图(State Machine diagram)
活动图(Activity diagram)组合结构图(Compositestructure diagram)
部署图(Deployment diagram)
1、用例图(use case diagram)
一个参与者(actor)发起一个用例(use case)。用例定义了参与者与系统之间的一组交互序列。
在用例图中,参与者用一个人形图标表示,系统用一个方框来表示,一个用例表示为方框中的一个椭圆。
通信关联(communication association)将参与者与他们参与的用例进行连接。
用例之间的关系通过包含(include)关系和扩展(extend)关系进行定义。
依赖关系:使用虚线箭头
衍型
extend :指向父类
include:指向子类
2、类与对象
类(class)和对象(obiect)在UML表示法中被描绘成方框,如图2-2所示。表示类的方框总是包含类名,并且可选择性地列出类的属性(attribute)和操作(operation)。当同时描述以上三者时,方框的顶部区域放置类名,中部区域放置属性,底部区域放置操作。
为了区分类(类型)和对象(该类型的一个实例),对象名称需要带有下划线。可以在对象名和类名之间使用冒号分隔来完整地描绘一个对象,例如anObiect:Class。也可选择性地隐藏冒号和类名,仅剩下对象名,例如anObiect。另一种方式是隐藏对象名,仅在冒号后显示类名,例如:Class。
3、类图
在类图中,类用方框描绘,类之间的静态(永久)关系被描绘成连接方框之间的连线。
3.1、四种关系
1)关联(association)
具备多重性,一对一、一对多、多对多
2)整体/部分关系(whole/part relationship)
组合:部分与整体具有相同生命周期,采用实心菱形
聚合:部分与整体具有独立生命周期,采用空心菱形
3)泛化/特化(generalization/specialization relationship)关系
泛化采用实心箭头,特化采用空心箭头
4)依赖关系(dependencyrelationship),经常被用来表示包之间是如何进行关联的
3.2、可见性
1)公有可见性(publicvisibility)使用+号,表示一个元素在类的外部是可见的。
2)私有可见性(private visibility)使用-号,表示一个元素只在定义它的类的内部是可见的,对于其他类是隐藏的。
3)受保护可见性(protected visibility)使用#号,表示一个元素在定义它的类及其所有子类中是可见
4、交互图
通信图和顺序图是UML的两种主要类型的交互图,它们用来描绘对象间是如何进行交互的。
在这些交互图中,对象用长方形方框表示,对象的名字不需要使用下划线标绘。
4.1、通信图
展示了合作对象间如何通过发送与接收消息进行动态的交互。
通信图描绘了交互对象的组织结构。其中,对象用方框表示,连接方框的线代表了对象间的交互。
星号(*)表示一个可选的迭代,即一条消息被发送了多于一次。
中括号(【】)一个可选的条件(condition)表示一条消息在满足特定条件的情况下才会被发送。
4.2、顺序图
循序图将对象交互通过时间序列的方式进行描绘。
顺序图具有两个维度,其中参与交互的对象被描绘在水平方向,而乖直方向代表时间维度。
从每一个对象框出发都有一条被称为生命线(lifeline)的垂直虚线。
每条生命线可以选择性地具有一个使用双实线表示的激活期(activation bar)它用来表示对象执行的时间。
参与者通常显示在页面的最左端。带有标签的水平箭头代表消息。仅有箭头连接的源对象和目标对象是相关的,消息从源对象发送到目标对象。时间从页面的顶部开始增加直至底部。另外,消息之间的间隔是不相关的。
5、状态机图
使用状态转化图表示
圆角矩形表示状态
状态图的初始状态(initial state)用一个始于小黑圆圈的弧线表示。
终结状态(final state)是可选的,它被描绘为嵌套在大白圈中的小黑圆圈
状态图可以按层次分解,将一个组合状态分解成为一组子状态。
在表示状态转换的弧线上,使用事件[条件]/动作(Event[Condition]/Action)进行标记。
事件(event)引起了状态的转换,当事件发生时,为发生转换,可选的布尔条件condition)必须为真
可选的动作(action)作为转换的结果被执行。一个状态可具有以下任意的动作::
- 1)进入动作(entry):进入状态时执行
- 2)退出动作(exit):退出状态时执行
下图描述了一个被分解为正交区域(orthogonal region)BC和BD的组合状态B。在这种情况下状态图在同一个时刻并行进入了每一个正交区域BC和BD中。每一个正交的子状态被进一步分解为顺序的子状态。因此,当进人组合状态B时,同样进入了状态B1和B3。
6、包图
包是一组建模元素的组合,例如代表一个系统或一个子系统。
用一个文件夹图标表示包,即在一个大长方形的角上依附一个小长方形。
包也可能被嵌套在其他包里面。依赖(dependency)和泛化/特化(generalization/specialization)是包之间可能具有的关系。
包可用于容纳类、对象或者用例。
7、并发通信图
一个主动对象可用于描绘一个并发对象(concurrentobiect)、进程process)、线程(thread)或任务(task)。
可以用一个左右两边带有两根垂直线的方框表示一个主动对象。
1)主动对象(activeobiect)拥有自己的控制线程,并且能与其他对象并发执行。
2)被动对象(passiveobject)不具有控制线程。被动对象只在其他对象(主动或被动)调用其方法时才会执行。
消息通信
消息接口:异步松耦合、同步紧耦合
实心箭头:call 调用 、同步
普通箭头:send发送、异步
虚线箭头:返回消息
下图表示并发通信图
8、部署图
部署图以物理结点和结点间物理连接的方式(例如网络连接)展示了一个系统的物理配置。
一个结点使用一个立方体表示,连接则用这些立方体之间的连接线表示。
本质上,部署图是以系统结点为关注点的一种类图
9、UML扩展机制
9.1、构造型
从已有的UML建模元素中派生新的结构,使用<<>> 衍型表示。
如 <<系统>>、<<子系统>> 表示不同类的包
允许对构造的元素进行剪裁
如<<实体>>类、<<边界>>类、<<控制>>类
9.2、标记值
扩展了UML构造块的属性,从而添加新的信息
一个类可以具备多个标记值
表示形式:{ 标记=值 }
9.3、约束
约束指一个必须为真的条件。
如上图中实体属性中的 -balance: real { balance >= 0 } 的表示形式