UML 模型图之:类图、用例图、时序图

一 UML类图

在UML类图中,常见以下几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)。

类注释

下面的图表示的 UML 类,该图被分为四个部分。

  1. 顶端部分被用来命名类。
  2. 第二个是用来显示类的属性。
  3. 第三部分是用来描述由类执行的操作。
  4. 第四部分是可选的显示附加组件。
UML 模型图之:类图、用例图、时序图_第1张图片
泛化(Generalization)

它是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,既有老虎的特性也有动物的共性。使用三角箭头的实线,箭头指向父类

UML 模型图之:类图、用例图、时序图_第2张图片
使用三角箭头的实线,箭头指向父类

实现(Realization)

它使一种类与接口的关系,表示类是接口所有特和行为的实现。使用三角剪头的虚线,箭头指向接口

UML 模型图之:类图、用例图、时序图_第3张图片
使用三角剪头的虚线,箭头指向接口
关联(Association)

它使一种拥有关系,使得一个类知道另一个类的属性和方法;例如:老师与学生,丈夫与妻子,关联可以试双向的,也可以试单向的。双向的关联可以有两个箭头或没有箭头,单向的关联有一个箭头。使用普通箭头的实心线,指向被拥有者。

UML 模型图之:类图、用例图、时序图_第4张图片
使用普通箭头的实心线,指向被拥有者,老师拥有多个学生,同时学生也拥有多个老师
聚合(Aggregation)

它使整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。使用空心菱形的实心线,菱形指向整体。

UML 模型图之:类图、用例图、时序图_第5张图片
使用空心菱形的实心线,菱形指向整体
组合(Composition)

它使整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就没有部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。使用实心菱形的实现,菱形指向整体。

UML 模型图之:类图、用例图、时序图_第6张图片
使用实心菱形的实现,菱形指向整体
依赖(Dependency)

它是一种使用的关系,既一个类的实现需要另一个类的协助,所以尽量不要使用双向的互相依赖。使用带箭头的虚线,指向被使用者。

UML 模型图之:类图、用例图、时序图_第7张图片
使用带箭头的虚线,指向被使用者

各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面的这张UML图,比较形象的展示了各种类图的关系:
UML 模型图之:类图、用例图、时序图_第8张图片

二 用例图

用例图主要用了四描述“用户、需求、系统功能单元”之间的关系。它展示一个外部用户能够观察到的系统功能模型图。用例图多用于静态建模阶段(主要是业务建模和需求建模),帮助开发团队以一种可视化的方式理解系统的功能需求

参与者(Actor)

在系统外部与系统直接交互的人或事物;需要注意以下两点:

  1. 参与者是角色而不是具体的人,它代表了参与者在与系统打交道的过程中所扮演的角色,所以在系统的实际运作中,一个实际用户可能对应系统的多个参与者。不同的用户也可以只对应一个参与者,从而代表同一参与者的不同实例。
  2. 参与者作为外部用户与系统发生交互作用,是它的主要特征。用小人表示
用例(Use Case)

系统外部可见的一个系统功能单元。系统的功能由系统单元所提供,并通过一系列系统功能与一个或多个参与者之间交换的消息所表达。用椭圆表示

介绍完参与者和用例后,我们了解下它们的存在关系。

关联(Association)

表示参与者与用例之间的交互,通信途径,任何已放都可发送或接受消息。使用普通箭头的实心线,箭头指向消息接收方

UML 模型图之:类图、用例图、时序图_第9张图片
使用普通箭头的实心线,箭头指向消息接收方

泛化(Generalization)

它是一种继承关系,子用用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。使用三角箭头的实线,箭头指向父类

UML 模型图之:类图、用例图、时序图_第10张图片
使用三角箭头的实线,箭头指向父类

包含(Include)

它是用来把一个较复杂的用例所表示功能分解成较小的步骤。包含用例是必须的。如果缺少包含用例,基用例就不完整,包含用例必须被执行。使用带箭头的虚线并标明“包含”,指向分解出来的功能用例

UML 模型图之:类图、用例图、时序图_第11张图片
使用带箭头的虚线并标明“包含”,指向分解出来的功能用例

扩展(Extend)

它是只用例功能的延伸,相当于为基础用例提供一个附加功能。扩展用例是可选的,如果缺少扩展用例,不会影响到基用例的完整性。使用带箭头的虚线并标明“扩展”,指向基用例

UML 模型图之:类图、用例图、时序图_第12张图片
使用带箭头的虚线并标明“扩展”,指向基用例

提供一个完整的系统用例图


UML 模型图之:类图、用例图、时序图_第13张图片
完整用例图

三 时序图(序列图)

时序图是显示对象之间交互的动态图,时序图描述系统的动态行为,这些对象是按照时间顺序排列的。顺序图中显示的参与交互的对象及其对象之间消息交互的顺序。

角色(Actor)

系统角色,可以是人、机器、甚至其他的系统或子系统。

对象(Object)

对象是类的实例,对象是通过类来创建的,我们可以把类看作是创建对象的模版。

UML 模型图之:类图、用例图、时序图_第14张图片
对象的三种命名方式

只写类名部写对象名,表示他是一个匿名对象。

生命线(Lifeline)

表示对象的生存时间。生命线从对象创建开始到对象销毁时终止。对象在生命线上的两种状态:休眠状态、激活状态。使用虚线表示。

UML 模型图之:类图、用例图、时序图_第15张图片
使用虚线表示
消息(Message)

对象之间的交互是通过相互发消息来实现的。一个对象可以请求(要求)另一个对象做某件事件。通俗一点来讲就是调用。一般分为三种:同步消息(Synchronous Message),异步消息(Asynchronous Message)和返回消息(Return Message)


UML 模型图之:类图、用例图、时序图_第16张图片
三种消息表示方法

参考资料:https://www.cnblogs.com/wolf-sun/p/UML-Sequence-diagram.html

你可能感兴趣的:(UML 模型图之:类图、用例图、时序图)