UML之序列图的执行规范

UML之序列图的执行规范规范

执行规范属于覆盖在生命线上的垂直且不透明的矩形,此矩形用以表明其所覆盖的生命线正处于忙于执行某些行为的状态。

在序列图中,执行规范并非是必须存在的,但在复杂的序列图场景里,当需要查看执行栈或者对某些行为的结束点感兴趣时,运用执行规范会起到作用。要是序列图中任意一条生命线上使用了执行规范,那么该图中的所有生命线上都应当使用执行规范。就像图1所展示的使用了执行规范的序列图示例,以及图2所展示的未使用执行规范的序列图示例。

图 1 在生命线上的执行规范
图 1 生命线上的执行规范
图 2 生命线上未使用执行规范
图 2 生命线上未用执行规范

执行规范还能够有名称,不过一般只有在执行的行为名称和对应消息名称不一致时,才需要用到执行规范名称。在实际建模工作中,大多数建模者不会给执行规范指定名称。

在图1中,右侧生命线:Lifeline2起始处有执行规范,所以它处于忙碌状态;接着它向左侧生命线:Lifeline1发送同步消息,左侧生命线:Lifeline1接收到消息后开始忙碌执行(于是在生命线上绘制一个执行规范)。与此同时,右侧生命线:Lifeline2暂停执行,直到左侧生命线:Lifeline1执行完毕并将结果返回给右侧生命线:Lifeline2之后,右侧生命线:Lifeline2才恢复之前的执行。

在图1中,右侧生命线:Lifeline2暂停执行时,执行规范不再覆盖生命线。但由于当前消息是同步消息,右侧生命线:Lifeline2或者其包含的部分或线程会等待同步消息的返回,所以依然可将其视为“执行/忙碌”状态,因而通常建模者或者工具会使用一个持续到消息返回的执行规范(如图3所示),而非中间被切断的执行规范。

图 3 连续的执行规范
图 3 连续的执行规范

依照图1的风格,序列图中两条生命线交互时,生命线上的执行规范会根据交互过程交替出现;而依照图3的风格,两条生命线上可并行出现执行规范。当两条生命线因同步消息同时处于忙碌状态且存在回调时,执行规范会产生重叠。在图4中,左侧生命线:Lifeline3向右侧生命线:Lifeline4发送同步消息operate(),并且在消息中指定了一个回调操作。右侧生命线:Lifeline4收到同步消息operate()后开启一个执行规范,不过在该执行规范中,需要对左侧生命线:Lifeline3执行一个回调callback(),所以需要在序列图中描画一条由右侧生命线:Lifeline4发送至左侧生命线:Lifeline3的消息callback(),这个消息会在左侧生命线:Lifeline3上已有的执行规范上叠加一个新的执行规范。叠加的执行规范通常以相较于被叠加执行规范较小的矩形呈现,并且与被叠加执行规范稍有错开,就像图4中所描画的那样。

图 4 重叠的运行规范
图 4 重叠的执行规范

部分建模者把执行规范理解为当前生命线的激活状态,一些UML工具也依据激活来提供执行规范的建模支持,这就很容易引发概念混淆。实际上,激活状态只是执行规范的表现形式之一,并不等同于执行规范自身。执行规范作为UML模型中的一个元素,用来表示生命线在某段时间内正在执行的具体操作或行为,而激活只是帮助我们可视化这一执行过程的手段。要是将两者混为一谈,可能会导致对模型行为的误解。

在实际建模时,为更精准地表达行为语义,可留意以下几点。

首先,要正确运用执行规范元素来体现对象的执行过程,而不应只依赖工具自动绘制的激活条。要保证每个执行规范的开始和结束与相应消息的发送和返回相对应,如此便能清晰标明对象何时开始执行操作以及何时结束。

其次,充分利用UML工具提供的功能来强化模型的语义表达,比如给执行规范注明所执行的操作名称或者添加注释,让图中的激活更直观地反映实际行为。

最后,尽管不同UML工具对执行规范的呈现方式可能不一样,但无论工具怎样展现激活,都要牢记其背后代表的是执行规范这一概念。

通过这些实践,就能有效避免上述误解,在使用UML工具绘制序列图时更精准地传达系统的动态行为语义。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12584.html

(0)
LomuLomu
上一篇 2025 年 6 月 19 日
下一篇 2025 年 6 月 19 日

相关推荐

  • 【Java多线程】如何使用Java多线程下载网络文件 断点续传

    如何使用Java多线程下载网络文件,并实现断点续传 在现代网络应用中,多线程下载是一种常见的技术,它可以显著提高下载速度并提供更好的用户体验。本篇文章将介绍如何使用Java实现多线程下载,并结合项目中的代码作为示例进行讲解。 1. 多线程下载的基本原理 多线程下载的基本思想是将一个文件分成多个部分,每个部分由一个线程独立下载,最后将这些部分合并成完整的文件。…

    未分类 2025 年 1 月 11 日
    38800
  • 2024 IDEA最新激活码,IDEA永久免费激活码2025-02-14 更新

    IDEA 2024最新激活码 以下是最新的IDEA激活码,更新时间:2025-02-14 🔑 激活码使用说明 1️⃣ 复制下方激活码 2️⃣ 打开 IDEA 软件 3️⃣ 在菜单栏中选择 Help -> Register 4️⃣ 选择 Activation Code 5️⃣ 粘贴激活码,点击 Activate ⚠️ 必看!必看! 🔥 获取最新激活码: 实时更…

    2025 年 2 月 14 日
    65000
  • 2025年最新PyCharm激活码与永久破解教程(支持2099年)

    本方法适用于JetBrains全家桶,包括PyCharm、IDEA、DataGrip、Goland等开发工具! 先给大家展示最新PyCharm版本成功破解的截图,可以看到已经完美激活至2099年,完全无压力! 下面我将用详细的图文教程,手把手教你如何将PyCharm永久激活至2099年。 这个方法不仅适用于最新版本,对旧版本也同样有效! Windows/Ma…

    PyCharm激活码 2025 年 8 月 16 日
    15700
  • 【深度学习】利用Java DL4J 训练金融投资组合模型

    # 博主简介 我是CSDN博客专家,同时也是历代文学网的总架构师。拥有超过15年的丰富工作经验,我精通Java编程、高并发设计,并且对Springboot和微服务架构有着深入的了解。我熟悉Linux操作系统、ESXI虚拟化技术,以及云原生技术如Docker和Kubernetes。我热衷于探索科技的前沿,将理论知识转化为实际应用,并保持对新技术的持续好奇心。我…

    未分类 2024 年 12 月 27 日
    28700
  • 2025最新PyCharm永久激活码分享|PyCharm破解教程(亲测有效)💻

    本教程适用于Jetbrains全家桶,包括IDEA、PyCharm、DataGrip、Golang等所有产品!✨ 先给大家看看最新PyCharm版本破解成功的截图,有效期直接到2099年,简直不要太爽!😎 下面我将用详细的图文教程,手把手教你如何激活PyCharm到2099年。这个方法同样适用于旧版本哦~ 无论你是Windows、Mac还是Linux用户 无…

    PyCharm激活码 2025 年 6 月 18 日
    1.4K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信