OOAD - UML 行为图

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

用例模型

用例

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

参与者

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

下图显示了名为 Student 的参与者和名为"生成性能报告"的用例的符号。

Actor 和用例的符号

用例图

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

用例图包括 −

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

使用用例图 −

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

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

示例

让我们考虑一个自动交易系统。 我们假设系统具有以下特征 −

  • 交易行与两类客户进行交易,即个人客户和企业客户。

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

  • 系统允许经理管理客户帐户并回答客户提出的任何疑问。

自动化交易室的用例

交互图

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

  • 序列图
  • 协作图

交互图用于建模 −

  • 使用序列图按时间排序的控制流。

  • 使用协作图的组织控制流程。

序列图

序列图是说明消息根据时间排序的交互图。

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

示例 − 自动交易行系统的时序图如下图所示。

序列图

协作图

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

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

示例 − 自动化交易系统协作图如下图所示。

协作图

状态图

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

状态图包括 −

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

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

示例

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

状态图

活动图

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

活动图包括 −

  • 活动状态和操作状态
  • 过渡
  • 对象

活动图用于建模 −

  • 参与者所看到的与系统交互的工作流程。
  • 使用流程图进行操作或计算的详细信息。

示例

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

活动图