An executable semantics for UML 2 activity diagrams

Since the revision 2 of the UML, activity diagrams have acquired many new features and a completely new metamodel. UML 2 was targeted at improving semantic precision but still lacks an executable semantics as a basis for tool support and simulation. In this paper we define an executable step semantics for a subset of activity diagrams including nested interruptible activity regions, call behavior actions, and event handling. The semantics conforms to the textual description of the UML semantics but comes with a precise definition of a step including a description of the algorithm that executes a single step. The operational semantics implemented by an appropriate tool makes UML activity diagrams suitable for the specification and design of real-life complex systems from various domains.