views:

220

answers:

2

I have a simple UML state diagram from which I would like to get the list of all the combinations possible. Does anybody know a program or algorithm who could do this for me?

+1  A: 

For a single state diagram (e.g. for a single class), just enumerate them off the diagram.

For multiple state diagrams with uncoupled transitions, it's just the cartesian product (also called the chinese menu)--you can produce it with nested loops iterating through the various independent enumerations.

But if they are coupled, things get much trickier. While it is almost always possible to enumerate the possible combinations in a well designed system it is, in general, an insoluble problem (called the halting problem). The possible states will be a subset of the simple cartesian product, but which subset may be impossible to determine with a general purpose algorithm.

That's about all that can be said with the details (or lack thereof) you've provided.

MarkusQ
A: 

It depends on what you actually mean with a combination... Combination of possible states, or all paths through the state diagram? Or do you have concurrent / orthogonal regions in the state chart so that you want to be able to enumerate the different concurrent configurations of the state chart?

antti.huima