面向对象分析与设计 - UML行为图



UML行为图用于可视化、指定、构造和记录系统的动态方面。行为图可分为以下几类:用例图、交互图、状态图和活动图。

用例模型

用例

用例描述了系统执行的一系列动作,并产生可见的结果。它展示了系统外部的事物与系统本身的交互。用例可以应用于整个系统,也可以应用于系统的一部分。

参与者

参与者表示用例的用户所扮演的角色。参与者可以是人(例如学生、客户)、设备(例如工作站)或其他系统(例如银行、机构)。

下图显示了一个名为“学生”的参与者和一个名为“生成绩效报告”的用例的符号。

Notations for Actor and use case

用例图

用例图从外部视角展示了系统中元素的行为方式以及如何在上下文中使用它们。

用例图包括:

  • 用例
  • 参与者
  • 关系,如依赖、泛化和关联

用例图用于:

  • 通过将系统的所有活动都包含在一个矩形中,并关注与系统交互的外部参与者来对系统的上下文进行建模。

  • 从外部视角对系统的需求进行建模。

示例

让我们考虑一个自动交易房屋系统。我们假设系统具有以下功能:

  • 交易所与两种类型的客户进行交易,个人客户和公司客户。

  • 客户下单后,由销售部门处理,并向客户提供账单。

  • 系统允许经理管理客户账户并回答客户提出的任何查询。

Use Case for Automated Trading House

交互图

交互图描述了对象之间的交互及其关系。它们还包括对象之间传递的消息。交互图有两种类型:

  • 顺序图
  • 协作图

交互图用于对以下内容进行建模:

  • 使用顺序图按时间顺序对控制流进行建模。

  • 使用协作图对控制流的组织进行建模。

顺序图

顺序图是交互图,它根据时间顺序说明消息的顺序。

符号 - 这些图采用二维图表的形式。发起交互的对象放置在x轴上。这些对象发送和接收的消息放置在y轴上,按照从上到下时间递增的顺序排列。

示例 - 自动交易房屋系统的顺序图如下所示。

Sequence Diagram

协作图

协作图是交互图,它说明了发送和接收消息的对象的结构。

符号 - 在这些图中,参与交互的对象使用顶点表示。连接对象的链接用于发送和接收消息。消息显示为带标签的箭头。

示例 - 自动交易房屋系统的协作图如下所示。

Collaboration Diagram

状态图

状态图显示了一个状态机,该状态机描述了对象从一个状态到另一个状态的控制流。状态机描绘了对象由于事件而经历的状态序列以及它们对事件的响应。

状态图包括:

  • 状态:简单或复合
  • 状态之间的转换
  • 导致转换的事件
  • 由于事件而采取的动作

状态图用于对本质上是反应性的对象进行建模。

示例

在自动交易房屋系统中,让我们将订单建模为对象并跟踪其序列。下图显示了相应的状态图。

State Chart Diagram

活动图

活动图描述了在状态机中正在进行的非原子操作的活动流。活动导致原子操作。

活动图包括:

  • 活动状态和动作状态
  • 转换
  • 对象

活动图用于对以下内容进行建模:

  • 参与者眼中看到的流程。
  • 使用流程图详细说明操作或计算。

示例

下图显示了自动交易房屋系统一部分的活动图。

Activity Diagram
广告