Uml 来自复合状态的多个触发事件

Uml 来自复合状态的多个触发事件,uml,statechart,umlet,Uml,Statechart,Umlet,我正在设计一个可以检查用户帐户余额的应用程序,我为该应用程序设置了一个FSM,并为此设置了一个复合状态 我有一些问题: 从该复合状态设置两个箭头进行传输是否正确 这两个转换是从creditAccountCheck发出的,但是我没有从这个状态设置箭头,对吗 请随时给我任何其他意见 没有问题,行旁边的标签是一个触发器,因此一旦发生其中一个事件(有钱和(没有)负余额),则将触发相应的转换 这没关系,可以将复合状态看作是常规“accountCheck”状态的扩展视图(毕竟,其余的简单状态可能也包含某种

我正在设计一个可以检查用户帐户余额的应用程序,我为该应用程序设置了一个FSM,并为此设置了一个复合状态

我有一些问题:

  • 从该复合状态设置两个箭头进行传输是否正确

  • 这两个转换是从creditAccountCheck发出的,但是我没有从这个状态设置箭头,对吗

  • 请随时给我任何其他意见

  • 没有问题,行旁边的标签是一个触发器,因此一旦发生其中一个事件(有钱和(没有)负余额),则将触发相应的转换

  • 这没关系,可以将复合状态看作是常规“accountCheck”状态的扩展视图(毕竟,其余的简单状态可能也包含某种FSM)

  • 尽管规范允许从复合形状内部进行转换,但我建议不要这样做,因为它打破了概念边界

    如果您想要显式地可视化流,那么有相应的符号

    两者的作用基本相同。在你的情况下,你选择哪一个并不重要,无论是你的(其中“缺失”的过渡是隐含的——用常识来决定它将如何进行),还是那些。如果您的状态更复杂,具有复杂的分支和正交状态,则可能需要使用更复杂的表示法


    最后,“hasMoneyAndNoNegativeBalance”和“hasMoneyAndNegativeBalance”有点多余。在这个阶段,你总是有钱的,否则“有钱”这个过渡就不会被接受,所以“消极平衡”和“积极平衡”应该足够了(而且更容易阅读).

    状态机不是我的主要专长,但是你不应该写
    把…
    标签用方括号括起来吗?如果没有方括号,它就是触发器,而不是守卫;但我同意,在这里,守卫可能更合适