📜  UML序列图

📅  最后修改于: 2021-01-11 13:22:10             🧑  作者: Mango

顺序图

顺序图表示系统中消息的流,也称为事件图。它有助于设想几种动态方案。它将任何两条生命线之间的通信描绘为按时间顺序排列的事件序列,以便这些生命线参与运行时。在UML中,生命线由竖线表示,而消息流由在页面底部延伸的垂直虚线表示。它合并了迭代以及分支。

顺序图的目的

  • 为系统中活动对象之间的高级交互建模。
  • 在实现用例的协作中对对象之间的交互进行建模。
  • 它可以建模通用交互或某些交互实例。

时序图的符号

生命线

序列图中的单个参与者由生命线表示。它位于图的顶部。

演员

与主体交互的实体所扮演的角色称为演员。它不在系统范围内。它代表角色,涉及人类用户和外部硬件或主体。参与者可能代表物理实体,也可能不代表实体,但它纯粹是描述实体的角色。演员可以扮演几个不同的角色,反之亦然。

激活

它由生命线上的细矩形表示。它描述了由元素执行操作的时间段,以使矩形的顶部和底部分别与开始时间和完成时间相关联。

留言内容

消息描述了对象之间的交互,并由箭头表示。它们在生命线上按顺序排列。序列图的核心由消息和生命线组成。

以下是以下列出的消息类型:

  • 呼叫消息:它定义了交互的生命线之间的特定通信,该通信表示目标生命线已调用操作。 顺序图
  • 返回消息:它定义了交互的生命线之间的特定通信,该通信代表来自相应呼叫者消息的接收者的信息流。 顺序图
  • 自消息:描述了一种通信,尤其是在交互的生命线之间的通信,该交互表示同一生命线的消息。 顺序图
  • 递归消息:为递归目的发送的自身消息称为递归消息。换句话说,可以说递归消息是自消息的一种特殊情况,因为它表示递归调用。 顺序图
  • 创建消息:描述消息,特别是描述目标(生命线)已实例化的交互作用的生命线之间的通信。 顺序图
  • 销毁消息:它描述了一种通信,尤其是在交互的生命线之间,它描述了销毁目标生命周期的请求。 顺序图
  • 持续时间消息:特别描述了交互的生命线之间的通信,它描绘了在对系统进行建模时消息的时间流逝。 顺序图

注意

注释是在元素上附加多个注释的功能。它基本上为建模者提供了有用的信息。

序列片段

  • 序列片段是UML 2.0引入的,这使得创建和维护精确的序列图变得非常容易。
  • 它由一个称为组合片段的框表示,在序列图中将交互的一部分封闭起来。
  • 片段类型由片段运算符。

片段类型

以下是下面列出的片段类型;

Operator Fragment Type
alt Alternative multiple fragments: The only fragment for which the condition is true, will execute.
opt Optional: If the supplied condition is true, only then the fragments will execute. It is similar to alt with only one trace.
par Parallel: Parallel executes fragments.
loop Loop: Fragments are run multiple times, and the basis of interaction is shown by the guard.
region Critical region: Only one thread can execute a fragment at once.
neg Negative: A worthless communication is shown by the fragment.
ref Reference: An interaction portrayed in another diagram. In this, a frame is drawn so as to cover the lifelines involved in the communication. The parameter and return value can be explained.
sd Sequence Diagram: It is used to surround the whole sequence diagram.

时序图示例

下面给出了在线书店的高级顺序图示例。

任何在线客户都可以搜索书籍目录,查看特定书籍的描述,将书籍添加到其购物车中以及进行结帐。

时序图的好处

  • 它探索了实时应用程序。
  • 它描述了不同对象之间的消息流。
  • 它易于维护。
  • 很容易生成。
  • 实施正向和反向工程。
  • 它可以根据系统中的新更改轻松更新。

时序图的缺点

  • 在生命线太多的情况下,序列图会变得更加复杂。
  • 如果消息流的顺序更改,则可能会产生错误的结果。
  • 由于每个序列都需要不同的表示法来表示,因此可能会使图更加复杂。
  • 序列的类型取决于消息的类型。