UML state machines are widely used for modeling software behavior. However state-crosscutting behaviors, such as synchronization or execution history dependence, are hard to model as the model elements that realize them are dispersed throughout the state machine. We present High-Level Aspects (HiLA) for UML state machines to address this problem. HiLA facilitates modeling crosscutting behaviors in one single place and separately from the base machine, and thus improves the modularity of the software design. HiLA provides facilities for specifying multiple history-dependent and concurrent aspects that extend the behavior of a base state machine in a straightforward, mostly declarative style; it therefore aldesigner to build models at a high level of abstraction.
Gefei Zhang, Matthias M. Hölzl