【问题标题】:Enterprise Architect: Refering to An Instantiated Class's Attribute in a State TransitionEnterprise Architect:在状态转换中引用实例化的类属性
【发布时间】:2018-06-17 16:33:02
【问题描述】:

在 Enterprise Architect 中,我有一个使用枚举属性定义的类。是否可以根据对该枚举值的测试在状态机中创建转换?怎么样?

我发现使用触发器或信号创建转换的唯一方法非常有限。

我的意图是将状态机导出到需求文档。虽然,我认为这应该适用于模拟。

【问题讨论】:

    标签: enterprise-architect state-machine


    【解决方案1】:

    触发器是导致令牌沿状态转换流动的原因。以这种状态转换为例:

    当你打开你看到的过渡属性时

    现在您可以通过单击Name: 右侧的省略号来添加触发器。在这里,您可以选择现有触发器,也可以动态创建一个新触发器。

    触发器类型可以从下拉列表中选择:

    Signal 是默认值,您可以从省略号右侧到Specification: 中选择一个。您可以像这样对信号进行建模:

    并且您会在注释中描述(例如)它在枚举更改时触发。

    该图没有显示信号的使用,但它隐藏在连接器的属性中。为了形象化,您可以添加适当的注释并将它们链接到连接器和元素:

    注意:状态机是为类建模的(您通常将它们放在类中)。如果您实例化该类,则该实例还将具有该状态机,该状态机可以在实例内作为某种代码运行。

    【讨论】:

    • 如果我将状态机放在类定义中而不是在该类的实例化上进行工作,您描述的过程会有什么不同吗?
    • 其实没有。如果您是 RE,您将从对象/实例开始并将状态机放入其中。后来你抽象到类。但在正常设计中,您将 SM 作为其行为描述的一部分放在类中。而实例只是继承了它。
    • 当类属性之一等于某个值时,您将如何更改状态?您的示例是“更改枚举”;我也对“枚举现在等于值 X”的行为感兴趣。
    • 我想我可能需要调整我的想法以适应 EA 的工作方式。与其尝试基于类属性值进行转换,不如尝试为类创建一组表示这些值变化的信号 - 正如您在上面描述的那样。
    • YMMV 我总是尝试以当前工具允许建模最简单的方式来表示事物。 SM是一个复杂的东西。 OMG 刚刚发表了一篇关于 SM 以及如何使用 UML 建模的文章(或者更确切地说是一本书):omg.org/spec/PSSM/About-PSSM 祝你好运。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    相关资源
    最近更新 更多