The activity diagram focuses on modeling procedural processing aspects of a system. It specifies the control flow and data flow between various steps—the actions—required to implement an activity. In UML 2, activity diagrams use flow-oriented language concepts that find their origins in languages for defining business processes. Activity diagrams are also based on established concepts for describing concurrent communicating processes, such as the token concept of Petri nets [41]. One particular feature of activity diagrams is their support for modeling both object-oriented systems and non-object-oriented systems.