UML状态图:交叉正交区域触发器

时间:2017-04-17 23:02:23

标签: uml modeling state-diagram

我正在分析我们的一个客户可以拥有的状态,同时了解UML状态数据库。我正在尝试使用具有正交区域的复合状态,其中一个状态在一个原因中是另一个正交原因中至少一个状态变化的触发器。

我意识到我可能会尝试使用错误的范例对此进行建模,因此请在此基础上随意纠正我,但对于此问题的目的,有一个简化但略微更详细的解释:< / p>

  • 客户的“活跃”状态有3个正交区域,我称之为R1,R2和R3
  • R1已“禁用帐户提款”和“已启用提款”状态
  • R2具有“未经过身份验证的ID”和“经过身份验证的身份”状态
  • R3拥有“仅限现金帐户”和“信用帐户”

R3从“仅现金”变为“信用”只能在R1处于“已启用提款”状态并且R2处于“已验证ID”状态时加上另一个触发器发生。

在绘制状态图时,是否有一种有效的方法可以在一个正交区域(至少部分地)中进行一个状态转换,这取决于其他正交区域中的一组状态?如果没有,我可以用其他方式代表这一点吗?

(顺便说一句,我曾考虑过单独对帐户状态进行建模,但是域中的讨论就是这样,将其作为客户状态的一部分进行整合感觉更有用)

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我会使用像这样的警卫

enter image description here

假设R1R2是自己的状态机。

也许有一种更正式的方式来描述警卫。但我想读者可以掌握它背后的想法。