UML状态图中守卫和事件的区别

2024-04-30

我以为我可以区分event and guard。但我遇到了一个与守卫类似的事件:

counter > 4 [pin is high] / switch on
^^^^^^^^^^^ 
   event

我将变量计数器从小于 4 的某个值更改为大于 4 的值作为事件。这是否意味着事件也可以是像守卫这样的条件?


An event是触发转变的事情。在你的情况下counter > 4是一个变化事件,意思是“计数器值已更改,其值现在大于 4".

括号内的代码是guard。在你的情况下pin is high, 意义 ”仅当引脚为高电平时才会启用转换".

switch on is the behavior当执行转换时执行。

脚注:在您的示例中,该事件确实与守卫非常相似。

在 C 中它可能看起来像这样:

/** 
 * this interrupt is triggered when the
 * counter exceeds the threshold (4)
 */
static void counter_isr(void)
{
   if (pin_is_high(PIN))
       switch_on();
} 

来自 UML 2.5 规范:

14.2.3.8 转换... 一个 Transition 可能拥有一组 Trigger,每个 Trigger 指定一个 Event 其发生在调度时可能会触发对 过渡。如果已分派,则称转换触发器已启用 事件发生与其事件类型匹配。

14.2.4.9 过渡... 转换的默认文本符号定义为 以下 BNF 表达式:

[<trigger> [‘,’ <trigger>]* [‘[‘ <guard>’]’] [‘/’ <behavior-expression>]]

换句话说:trigger [guard] / behavior

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UML状态图中守卫和事件的区别 的相关文章

  • 在 Visual Studio 2017 中的类图中创建聚合和组合

    我正在考虑在 Visual Studio 中创建类图 我注意到工具箱似乎只允许类之间的关联关系 是否可以在类图中创建更强的关系 即聚合和组合关系 另外 是否可以从代码自动创建类图 好问题 首先 Visual Studio VS 类设计器不是
  • R - 使用字体(extrafont)时不打印空格

    我想使用特殊字体生成 R 图 即 Cormorant Garamond Light Cormorant Light 也是可能的 问题是它适用于所有其他字体 但对于这种字体 所有空格都被忽略 library ggplot2 library e
  • 如何使用 NetBeans 6.8 UML 模块创建类图?

    在我看来 NetBeans 的 UML 模块隐藏得有点太多了 在 NetBeans 6 5 中 创建 UML 图非常容易 无需安装插件或其他东西 喜欢 读my post http karussell wordpress com 2010 0
  • 使用基于关联数组的 UML 建模类型

    假设有一个 PHP 子系统 它仅使用关联数组来存储某种结构化数据 因此 实际上在语言级别上没有机制来约束这些结构 但您希望在设计中使用 UML 来定义它们 E g 在 PHP 中 联系人可能是这样的关联数组 name gt John Doe
  • GraphViz - 子图的对齐

    I d like to draw a diagram like this But the only diagram I can draw is 我使用的代码 graph rankdir LR node shape box x1 x2 x3
  • 用例之间的 UML 关系(扩展/包含)

    我不太理解以下主题 因为它与我读到的内容有点含糊 Inlcude就像对下一部分的引用一样 没有它 用例就不完整 这部分应该从更多地方引用 否则它的使用没有意义 但我见过一个例子 其中 include 仅在某些 IF 语句中为真 例如 添加新
  • 如何在 UML 类图中表示回调

    我有一个界面说 Interface ICallback public void informFunction 我有一堂课说 Class Implementation implements ICallback public Implement
  • 如何快速理解任何产品的设计和代码流程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从 umbrello 中的 java 代码自动创建类图?

    我能够将 java 代码导入到 umbrello 中 但是 如何自动生成类图呢 也许雨伞可以not有那个功能 来自handbook http docs kde org stable en kdesdk umbrello code impor
  • 传统的基于代码的工程和模型驱动的工程方法有什么区别?

    我在文献中找到了这段话 但我不明白它的含义 设计实践正在从传统的基于代码的工程转向 在整个开发生命周期中进行严格的分工 模型驱动的工程方法 其中所有人员都参与设计 流程可以对模型有发言权 任何帮助将不胜感激 基于代码的工程意味着大部分工作是
  • 显示除“<>”或“<>”之外的 UML 用例图的依赖关系

    除了 扩展 或 包含 之外 我们如何显示用例之间的简单依赖关系 例如 我们想说用例 1 依赖于由用户 1 完成的用例 2 可以用一个简单的箭头来实现吗 向哪个方向 是的 还有其他依赖项 直接连接到用例的类的完整列表是 UML 2 5 标准的
  • 如何在 UML 类图中表示“事件”?

    这是我的代码片段 public class Notation INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged private N
  • 最容易实现的 Voronoi 图算法? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 实现 Voronoi 图的简单算法有哪些 我找不到任何专门以伪形式出现的算法 请分享一些 Vorono
  • 多个参与者,相同的用例 [用例]

    我试图描述一个用例 其中系统内的多个参与者可以执行相同的活动 例如 假设 作为示例 我想要使用 更新客户端 用例 但几个已确定的参与者可以执行此操作 Manager Chief Executive Customer Service Repr
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 如何*真正*编写 UML 基数?

    我想一劳永逸地知道如何编写 UML 基数 因为我经常不得不争论它们 所以非常欢迎证明和来源 如果我想解释一下a Mother可以有几个Children but a Child有且仅有一个Mother 我应该写 Mother 1 Child
  • 如何使组合键唯一?

    I am making a database of students in one school Here is what I have so far 如果您不喜欢阅读 请跳至 简而言之 部分 问题是我对这个设计并不满意 我想要的组合gra
  • 将不同的 grViz 组合成一个图

    我想结合不同的DiagrammeR绘制成一个图形 生成的图如下例所示 library DiagrammeR pDia lt grViz digraph boxes and circles a graph statement graph ov
  • Matlab:条形图中缺少标签

    使用 Matlab 2012 和 2013 我发现设置XTickLabel on a bar图表最多只能使用 15 个柱 如果条形较多 则标签会丢失 如下所示 绘制 15 个条形图 N 15 x 1 N labels num2str x d
  • UML 的 XMI 有 XSD 吗?

    是否有 UML XMI 文件的 XSD 标头仅包含名称空间引用

随机推荐

  • 将 Django/Python 3.4 部署到 Heroku

    我正在尝试使用 Django Heroku 入门教程使用 Django Heroku 部署我的第一个示例应用程序 我的工具 Python 3 4 和 Windows 7 PowerShell 我的挑战 部署到 Heroku 失败 我不知道为
  • App.config 连接字符串相对路径

    我需要在 app config 中设置 sqlite 连接字符串 我想设置相对于调试 发布文件夹的路径 数据库文件将复制到这些文件夹
  • Windows命令行参数编码是什么?

    Windows 使用什么编码来传递给在 cmd exe 窗口中启动的程序的命令行参数 命令行参数的编码似乎不受使用控制台代码页设置的影响chcp 我将其设置为 UTF 8 代码页 65001 并使用 Lucida Console 字体 如果
  • Python 中的静态变量?

    在 C 中 我们有 static 关键字 它在循环中是这样的 for int x 0 x lt 10 x for int y 0 y lt 10 y static int number of times 0 number of times
  • 不循环查找

    我有两个表 我正在尝试从一个表中查找值以添加到另一个表中的值 目前我正在使用两个 for 循环 但它们运行缓慢 我是 R 新手 知道我应该避免循环以加快速度 但我不知道如何做 表1 几千行 37列 type cat1 cat2 cat3 c
  • C++ 的异步函数调用

    我需要提示如何在 C C 中实现异步函数调用 或 Windows 和 或 Linux 的框架 API 调用的名称 用例如下 父线程调用函数 该函数创建一个子线程并返回 因此调用是非阻塞的 父线程可以继续执行某些工作 例如 pthread j
  • React PropTypes:数字范围

    有没有更好的方法来验证如果数字在范围内 避免写作 PropTypes oneOf 1 2 3 4 5 6 7 8 9 10 根据文档 https reactjs org docs typechecking with proptypes ht
  • Sentry django 配置 - 记录器

    我正在尝试使用简单的日志记录并希望将错误 异常发送到 Sentry 我按照文档配置了 Sentry 并在我的开发人员上成功运行了测试 python manage py raven test 我添加了日志记录配置 如下所示哨兵文档 https
  • 使用 Struts 2 的 RESTful Web 服务

    我们正在评估一种教育活动设计 我们希望以 RESTful Web 服务的形式创建完整的后端 处理业务逻辑 这些服务可供各种应用程序使用 从 Struts 2 框架调用这些 Web 服务是个好主意吗 我读了几篇文档 但人们不鼓励这样做 我们很
  • REST 服务上的错误请求错误 使用 POST(json 数据)调用方法?

    您好 我是 RESTful WCF 的新手 我正在尝试使用 POST 对 Web 服务方法进行简单调用 这是我的代码 Service Interface code ServiceContract public interface IJson
  • 对于包含“+”的 Artifact 版本,Azure Artifact 发布失败

    我一直在尝试将 java 模块 jar 的工件发布到 Azure Artifact 但收到错误 404 经过一段时间的调试我已经意识到我的语义版本 https semver org spec item 10破坏了 URL 1 0 2 bet
  • Ruby Koans #75 test_constants_become_symbols,正确答案?

    我的问题建立在这个问题的基础上 Ruby Koan 常量变成符号 https stackoverflow com questions 5358727 ruby koan constants become symbols 我有以下代码 in
  • 使用MySqlCommand参数时如何查看命令字符串?

    代码如下 MySqlCommand cmd new MySqlCommand SELECT FROM DB name here WHERE some field some value cmd Parameters AddWithValue
  • 该应用程序引用 Payload Capacitor.Framework STATE_ERROR.VALIDATION_ERROR.50 中的非公共选择器

    今天 我在尝试将电容器应用程序上传到 App Store 时遇到了问题 该应用程序是在几天前发布的 据我了解 上传的任何关键内容都没有改变 我收到的错误也没有说明实际问题 The error looks the following 并说 该
  • Azure Function Docker 无法使用 http 触发器

    最近 我使用具有 HttpTrigger 的 Azure Function 节点 创建了一个 docker 映像 这是默认生成的基本 HttpTrigger 我正在 Macbook Pro MoJave 上开发此程序 并且安装了以下工具 N
  • 如何根据鼠标位置显示工具提示? - JavaFX

    我有一个stackPane 充满一个圆圈和几条线 我想在将鼠标悬停在 StackPane 上时显示工具提示 并且工具提示应包含X Y coords鼠标的 我知道如何获取鼠标的坐标 但我无法找到显示工具提示的方法 你们中有人能帮我吗 安舒尔
  • 如果包含字符串列表,则过滤 pyspark 数据帧

    假设我们有一个 pyspark 数据框 其列之一 column a 包含一些字符串值 并且还有一个字符串列表 list a 数据框 column a count some string 10 another one 20 third str
  • 在 OS X 中使用 PacketFilter 透明代理数据包 [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 有一个很酷的实用程序叫做sshuttle https github com apenwarr sshuttle 这取决于ipfw转发过
  • 递归 setTimeout() 在后台暂停

    我有一段代码 var logo blinking logo function logo blink logo fadeOut 10 delay 10 fadeIn 10 delay 20 fadeOut 10 delay 10 fadeIn
  • UML状态图中守卫和事件的区别

    我以为我可以区分event and guard 但我遇到了一个与守卫类似的事件 counter gt 4 pin is high switch on event 我将变量计数器从小于 4 的某个值更改为大于 4 的值作为事件 这是否意味着事