【问题标题】:How to set a class operation call as transition in an UML state machine diagram? (Sparx EA)如何在 UML 状态机图中将类操作调用设置为转换? (斯帕克斯 EA)
【发布时间】:2015-11-06 09:07:20
【问题描述】:

是否可以在 Sparx Enterprise Architect 的 UML 图中重用一个类的操作调用作为转换(我有版本 9)?如果是,我该怎么做?

可以将它用作活动图中的动作和对象图中的消息,但我无法为状态机弄清楚。我希望为软件开发人员提供更多集成...

此外,我希望我可以将图中的状态设置为类实例的特殊状态(类实例 == 对象)。

【问题讨论】:

  • “对象图中的消息”?你是说序列图吗?我从未在对象图中看到过消息。
  • “类实例的特殊状态”这句话看不懂。你能澄清一下吗?
  • 我想通过 UML 演示用于握手传输协议的编程状态机是如何工作的。状态实际上是某些 C++ 对象的源代码中的变量值,这些 C++ 对象是 C++ 类的实例。转换是导致这种新状态的类的成员函数。我想跟上代码的潮流,想重用从源代码中扫描出来的类成员函数。
  • 在对象图上可以有对象之间的定向关联,我可以在其中添加一条消息,该消息可以定义为 C++ 类成员函数的某些操作调用。这样,对象图与序列图非常相似,但没有时间线。
  • 你的意思是communication diagram?

标签: uml enterprise-architect


【解决方案1】:

是否可以重用类的操作调用作为 UML 图中的转换...?

是的。在状态机图中: 打开过渡属性,启用“效果即行为”和 从浏览器中选择操作。

可以将其用作活动图中的操作 ...

是的。将 'Call Operation' 操作添加到活动图中。 转到“操作属性”->“调用”并从 “行为:”菜单。

...并作为对象图中的消息...

是的。在对象图上的对象之间画一个链接, 右键单击链接并选择“从...添加消息”(其中“...”是所需的方向)。双击消息并从 “消息:”下拉列表。

【讨论】:

  • 太棒了!您是否还知道如何在图表中显示操作调用如何导致某个属性具有某个新值的新状态?
  • @falkb 这个问题我不清楚。操作应该在过渡期间执行还是应该由操作触发过渡?
  • 我也一样。新状态的原因是为什么在程序中调用了某个操作(C 函数)(可能带有特殊的参数值)。状态通常存储在某些变量中,例如将设置标志或将枚举类型的状态变量设置为新值。
  • @falkb Transition-behavior 和 Transition-trigger 在 UML 状态机中是两个不同的东西,并不相同。看看this。
  • 啊啊,自己搞定了!状态机图中状态的上下文菜单 -> 单击“属性...” -> 浏览并从模型树中选择“类型”,并设置名称和初始值。现在就是这样。 :-)
猜你喜欢
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
相关资源
最近更新 更多