目录
摘要
1、用例图(use case diagram)
2、类与对象
3、类图
3.1、四种关系
3.2、可见性
4、交互图
4.1、通信图
4.2、顺序图
5、状态机图
6、包图
7、并发通信图
8、部署图
9、UML扩展机制
9.1、构造型
9.2、标记值
9.3、约束
摘要
用例图(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 } 的表示形式