如何从UML状态图中获取所有组合

时间:2009-03-05 02:26:22

标签: algorithm uml

我有一个简单的UML状态图,我希望从中获得所有可能组合的列表。有没有人知道可以为我做这个的程序或算法?

2 个答案:

答案 0 :(得分:1)

对于单个状态图(例如,对于单个类),只需从图中枚举它们。

对于具有非耦合转换的多个状态图,它只是笛卡尔积(也称为中文菜单) - 您可以使用嵌套循环迭代各种独立枚举来生成它。

但如果它们相互耦合,事情会变得更加棘手。虽然几乎总是可以在精心设计的系统中列举可能的组合,但它通常是一个不可解决的问题(称为暂停问题)。可能的状态将是简单笛卡尔积的一个子集,但哪个子集可能无法用通用算法确定。

这就是你所提供的细节(或缺乏细节)所能说的一切。

答案 1 :(得分:0)

这取决于你对组合的实际含义......可能状态的组合,还是状态图中的所有路径?或者您是否在状态图中有并发/正交区域,以便您能够枚举状态图的不同并发配置?