@misc{9117, author = {Nina Holt and Erik Arisholm and Lionel Briand}, title = {An Eclipse Plug-In for the Flattening of Concurrency and Hierarchy in UML State Machines}, abstract = {In this technical report, we present an algorithm that can be used to flatten simple-composite states (or-states), orthogonal states (and-states), and submachine states in complex UML state-machines [2]. The algorithm is appli-cable to state machines that include guarded transitions. The objective of this research is to automate the flattening of complex state machines. Orthogonal states and submachine states are transformed to simple-composite states. Simple-composite states are transformed to simple states by redirecting incoming and outgoing transitions. The result is a state machine where all state components are simple states. The flattening aspects are exemplified with isolated illustrations. Furthermore, we present STATE MACHINE FLATTENER - an Eclipse plug-in that implements this algorithm using Kermeta. Interesting aspect of the flattening are exemplified and discussed. Thus, the contribution of this study is threefold: 1) a flattening algorithm, 2) a plug-in that implements this algorithm to provide automatic flattening of complex UML state machines, and 2) a demonstration of the flattening approach in a number of example models.}, year = {2009}, number = {2009-06}, publisher = {Simula Research Laboratory}, }