软考-软件设计师:面向对象技术-UML:序列图(时序图、循序图、顺序图)、通信图(协作图)、活动图 作者:马育民 • 2025-04-23 22:14 • 阅读:10005 # 序列图、通信图 关系 **相同点:**序列图、通信图没有本质区别,而且都与代码相关 **区别:** - 序列图:强调时序 - 通信图:对象之间的组织关系 # 活动图、序列图、通信图 区别 序列图、通信图:与代码相关 活动图:从 **业务的角度** 展示,与代码无关 # 序列图(时序图、循序图、顺序图) **场景** 的图像化表示,以 **时间顺序** 组织的 **对象间** 的交互活动 **提示:**序列图和通信图是同构的,它们之间可以相互转换 [](https://www.malaoshi.top/upload/0/0/1GWzqQeBdC1.png) ### 有两个不同于通信图的特性: - 序列图有对象生命线。对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在。 - 序列图有控制焦点。控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段,既可以是直接执行,也可以是通过下级过程执行。矩形的顶部表示动作的开始,底部表示动作的结束 ### 例子 [](https://www.malaoshi.top/upload/0/0/1GW101XM3H4l.png) - 3个对象,没有对象名,因为这里不需要 - 第 5 步:返回 `card` 对象,不是调用 `card` 方法,因为没有 `()` - 第 6 步:需要填 - 第 7 步:需要填 - `loop`:表示循环 - 第 8 步:需要填 - 第 9 步:需要填 # 通信图(协作图) 强调 **收发消息** 的对象之间的 **组织结构**,强调参加交互的对象的组织 **提示:**序列图和通信图是同构的,它们之间可以相互转换 [](https://www.malaoshi.top/upload/0/0/1GWzqVurxLN.png) ### 两个不同于序列图的特性 - 通信图有路径。为了指出一个对象如何与另一个对象链接,可以在链的末端附上一个路径构造型 - 通信图有顺序号。为表示一个消息的时间顺序 ### 例子 [](https://www.malaoshi.top/upload/0/0/1GW101fQW2zm.png) - `dispatchForm:Form`:可以看出,前面是对象名、后面是类名 - 第1步:`dispatchForm` 调用 `aorder` 的 `dispatch()` 方法 # 活动图 **考专业术语较多** 专注于系统的动态视图,一个活动到另一个活动的流程 活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。 对系统的 **功能建模** 和 **业务流程建模** 特别重要,并强调 **对象间的控制流程** [](https://www.malaoshi.top/upload/0/0/1GWzqr5oprj.png) - 起点:实心圆 - 终点:实心圆外面套一个圈 - 流:箭头实线 - **并发分叉(合并分叉)**:从实心长方形出去多个箭头实线 - **并发汇合(合并汇合)**:多个箭头实线指向实心长方形 - **分支**:条件分支语句 - **监护表达式**:条件 ### 例子 [](https://www.malaoshi.top/upload/0/0/1GW1029lp4c6.png) - 有两个结束点 ### 泳道活动图 [](https://www.malaoshi.top/upload/0/0/1GW102AmDXMF.png) # 题 如下所示的UML图中,(I)是( ),(II)是( ),(III)是( )。 [](https://www.malaoshi.top/upload/0/0/1GW101GyMh8b.png) A、参与者 B、用例 C、泛化关系 D、包含关系 A、参与者 B、用例 C、泛化关系 D、包含关系 A、参与者 B、用例 C、泛化关系 D、包含关系 ### 答案 1. A 2. C 3. B,分析过程: - 方法一:**椭圆** 表示 **用例**,上面有提示 - 方法二:其他选项都不对,只能选 B # 题 如下所示的图为UML的(),用于展示某汽车导航系统中( )。 Mapping对象获取汽车当前位置(GPS Location)H的消息为( ) [](https://www.malaoshi.top/upload/0/0/1GW101mN0I1j.png) A、类图 B、组件图 C、通信图 D、部署图 A、对象之间的消息流及其顺序 B、完成任务所进行的活动流 C、对象的状态转换及其事件顺序 D、对象之间消息的时间顺序 A、1: getGraphic () B、2: getCarPos () C、1.1: CurrentArea() D、2.1: getCarLocation () ### 答案 第一问:C,图中有 `:类名`,还有调用顺序。排除 `对象图`(没有调用顺序) 第二问:A。B是 `活动流` 表示活动图,C:`状态` 表示 状态图,D:`时间顺序` 表示序列图 第三问:D,`Mapping` 和 `GPS Location` 之间是 `2.1: getCarLocation ()` # 题 如下所示的UML图是(),图中(I)表示(),(II)表示() [](https://www.malaoshi.top/upload/0/0/1GW102CQs8MY.png) A、序列图 B、状态图 C.通信图 D、活动图 A、合并分叉 B、分支 C.合并汇合 D、流 A、分支条件 B、监护表达式 C.动作名 D、流名称 ### 答案 第一问:活动图,`实心圆` 开始,`实心圆外套圈` 为结束,有 `并发分叉`、`并发汇合`、`分支` 第二问:A 第三问:B 原文出处:http://malaoshi.top/show_1GW102LERw10.html