目录
一、前言
二、活动图
三、交互图
3.1 一般序列图
3.2 时间约束序列图
3.3 协作图
四、用例图
五、状态图
一、前言
UML 是由视图(View)、图(Diagrams)、模型元素(Model elements)和通用机制等几个部分构成。一个完整的模型图需要一定数量的视图,每个视图表示系统一个特殊方面即可;视图的内容是图,UML可以描述9中不同图类型,其中活动图来表达基本的流程图。模型元素包括面对对象的类、对象、消息和关系,是图的基本元素。通用机制包括表示其他消息,如注释等。
行为图 包括活动图、交互图、用例图(系统工程师)等。
二、活动图
活动图描述了满足用例要求所要进行的活动及活动间的约束关系,强调对象间的控制流程。它的目的是绘制活动流程系统,描述系统并行,分支,并发流。
一个活动是系统执行的功能,首先了解活动本身,确定活动元素之间的约束条件。
黑色圆点表示一个活动开始或者结束,矩形框表示执行的活动,菱形表示条件检查, 虚线关联一个执行活动的注释
活动图也可以将执行对象和执行动作结合起来构建一个活动图
三、交互图
交互图描述的是对象之间的动态合作关系以及合作过程中的行为次序。交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况,即一个用例的实现过程。交互图分为序列图和协作图。序列图 :显示对象之间的关系,强调对象之间消息的时间顺序,显示对象之间的交互。协作图 :描述对象之间的交互关系。
绘制交互图:
-
参与互动的对象
-
对象之间的消息流
-
消息的顺序流程
-
对象的组织
3.1 一般序列图
垂直长虚线代表一个对象的生命周期,垂直矩形表示一个活动,实线表示发送,虚线表返回。
3.2 时间约束序列图
对于带有强时间约束的对象活动图,需要在对象矩形活动期间标出执行时间,对象在活动图期间出现各种情况,触发的动作
同步消息:发送人在它继续之前,将等待同步消息响应
异步消息:在发送方继续之前,无需等待响应的消息
组合片段用来解决交互执行的条件及方式。它允许在序列图中直接表示逻辑组件,用于通过指定条件或子进程的应用区域,为任何生命线的任何部分定义特殊条件和子进程。常用的组合片段:
片段类型 | 名称 | 说明 |
Opt | 选项 | 包含一个可能发生或可能不发生的序列。 可以在临界中指定序列发生的条件。 |
Alt | 抉择 | 包含一个片段列表,这些片段包含备选消息序列。 在任何场合下只发生一个序列。 可以在每个片段中设置一个临界来指示该片段可以运行的条件。 else 的临界指示其他任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。 |
Loop | 循环 | 片段重复一定次数。 可以在临界中指示片段重复的条件。 Loop 组合片段具有 “Min” 和 “Max” 属性,它们指示片段可以重复的最小和最大次数。 默认值是无限制。 |
Break | 中断 | 如果执行此片段,则放弃序列的其余部分。 可以使用临界来指示发生中断的条件。 |
Par | 并行 | 并行处理。 片段中的事件可以交错。 |
Critical | 关键 | 用在 Par 或 Seq 片段中。 指示此片段中的消息不得与其他消息交错。 |
Seq | 弱顺序 | 有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生命线不同,来自不同片段的消息可能会并行交错。 |
Strict | 强顺序 | 有两个或更多操作数片段。 这些片段必须按给定顺序发生。 |
默认情况下,序列图表明可能发生的一系列消息。 在运行的系统中,可能会出现您未选择显示在关系图上的其他消息。消息描述为:
片段类型 | 名称 | 说明 |
Consider | 考虑 | 指定此片段描述的消息列表。 其他消息可发生在运行的系统中,但对此描述来说意义不大。 在 “Messages” 属性中键入该列表。 |
Ignore | 忽略 | 此片段未描述的消息列表。 这些消息可发生在运行的系统中,但对此描述来说意义不大。 在 “Messages” 属性中键入该列表。 |
Assert | 断言 | 操作数片段指定唯一有效的序列。 通常用在 Consider 或 Ignore 片段中。 |
Neg | 否定 | 此片段中显示的序列不得发生。 通常用在 Consider 或 Ignore 片段中。 |
3.3 协作图
序列图中未介绍的对象组织,而协作图中示出的对象的组织。两种图示侧重强调类型不同,如果时间序列是很重要的使用序列图,如果需要表达对象组织的相互作用,那么使用协作图。
四、用例图
用例图是动态的,有一些内部或外部因素进行交互,这些内部和外部代理被称为Actor。用例图由Actor,用例及其关系组成。该图用于对应用程序的系统/子系统进行建模。
用例图的目的是收集系统要求,获取系统外部视图,确定影响系统的外部和内部因素;用例图可用于需求分析和高层设计;模拟系统的上下文。
关联:表示参与者与用例之间的通信,任何一方都可发送或接受消息
泛化:子用例将继承父用例的所有结构、行为和关系
包含:包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤
扩展:扩展关系是指用例功能的延伸,相当于为基础用例提供一个附加功能
五、状态图
状态图描述了从一个状态到另一个状态的控制流程。状态被定义为一个对象存在的条件,并且当某个事件被触发时它会改变。状态图的最重要的目的是将对象的生命周期从创建到终止。
状态图的主要目的
-
模拟系统的动态方面。
-
模拟反应系统的使用寿命。
-
描述物体在其使用寿命期间的不同状态。
-
定义状态机以对对象的状态进行建模。
如何绘制状态图:识别重要对象,识别对象在不同生命时刻的状态,识别状态改变的内部外部事件或者条件。
参考:
UML架构_w3cschool
UML教程_lingengy的博客-CSDN博客_uml教程