Automated compression of state machines using UML statechart diagram notation

Abstract In object-oriented design, behavioral modeling aims at describing the behavior of objects using state machines. State machines can also be used in dynamic reverse engineering to capture the overall run-time behavior of the objects of interest. The unified modeling language (UML) statechart diagram notation provides powerful means to structure state machines, thus avoiding the plague of combinatorial explosion. Tool support for constructing statechart diagrams automatically from example scenarios is currently available. These tools are applicable in both forward and reverse engineering. For complicated objects, the statechart diagrams tend to be large, which makes them difficult to visualize and understand. In this paper, we discuss information preserving means to transform flat statechart diagrams into a more compact form. These algorithms can be applied to both manually constructed and automatically generated diagrams. The proposed technique is integrated with a UML-based software design environment TED.