1

在分析我们的一位客户可能拥有的状态时,我正在研究 UML 状态图。我正在尝试使用具有正交区域的复合状态,其中一个原因中的一个状态是另一个正交原因中至少一个状态变化的触发器。

我意识到我可能试图使用错误的范式来对此进行建模,因此请随时在此基础上纠正我,但出于此问题的目的,有一个简化但稍微更详细的情况解释:

  • 客户的“活动”状态有 3 个正交区域,我将它们称为 R1、R2 和 R3
  • R1 具有“帐户提款禁用”和“提款启用”状态
  • R2 具有“ID 未验证”和“ID 已验证”状态
  • R3 有“现金账户”和“信用账户”

只有当 R1 处于“提款启用”状态且 R2 处于“ID 验证”状态时,R3 才能从“仅现金”更改为“信用” - 再加上另一个触发器。

在绘制状态图时,是否有一种有效的方法可以使一个正交区域中的一个状态转换(至少部分)依赖于其他正交区域中的一组状态?如果不是,我还能用什么其他方式来表示这一点?

(顺便说一句,我曾考虑单独对帐户状态进行建模,但在此领域的讨论是如此之多,因此将其作为客户状态的一部分集成起来感觉更有用)

在此先感谢您的帮助。

4

1 回答 1

1

我会使用这样的警卫

在此处输入图像描述

假设R1R2是它们自己的状态机。

也许有一种更正式的正确方式来描述守卫。但我想读者可以理解它背后的想法。

于 2017-04-18T08:58:10.080 回答