我有一个简单的 UML 状态图,我想从中获取所有可能组合的列表。有人知道可以为我做这件事的程序或算法吗?
问问题
408 次
2 回答
1
对于单个状态图(例如,对于单个类),只需将它们从图中枚举出来。
对于具有非耦合转换的多个状态图,它只是笛卡尔积(也称为中文菜单)——您可以使用嵌套循环迭代各种独立枚举来生成它。
但如果它们是耦合的,事情就会变得更加棘手。虽然在一个设计良好的系统中几乎总是可以列举出可能的组合,但它通常是一个无法解决的问题(称为停机问题)。可能的状态将是简单笛卡尔积的子集,但使用通用算法可能无法确定哪个子集。
这就是您提供的细节(或缺乏细节)所能说的一切。
于 2009-03-05T03:23:34.157 回答
0
这取决于您对组合的实际含义......可能状态的组合,还是通过状态图的所有路径?或者您在状态图中是否有并发/正交区域,以便您能够枚举状态图的不同并发配置?
于 2009-03-05T16:56:42.830 回答