Date of Award


Document Type


Degree Name

Masters of Science (Research)


Department of Mathematics and Computing

First Advisor

John O'Brien

Second Advisor

Dr. Wolfgang Weber


This thesis deals with code generation concepts for the statechart diagrams of the UML vl.l. It explores implementation approaches for mapping statechart diagrams to code. It also focuses on modelling rules for consistent design of dynamic object behaviour. Most of the given object-oriented (00) methods have statechart diagrams as their centre. It is proposed to use statechart diagrams to model the internal behaviour of objects and lifecycles, respectively. Generally, statechart diagrams are used in the area of analysis and design of reactive systems such as realtime- and embedded-systems. This thesis introduces different existing implementation patterns and shows how they can be applied. Common features and differences of the implementation concepts are shown, advantages and disadvantages m the context of critena such as runtime performance, memory requirements, simplicity and extensibility are presented. The author also introduces an alternative implementation approach which compensates for the identified disadvantages. This approach covers the complete syntax of UML, including parallel processing of state activity.

This thesis further deals with concurrency aspects of object-oriented software. It introduces mechanisms for transparent interaction of concurrent objects. In particular, an implementation concept for event queueing is developed. The UML offers to postpone events for deferred handling when the object takes a state for which the event is not defined. These patterns serve as an extension for the presented implementation concepts in the context of concurrent environments.

The introduced implementation patterns are considered to serve for the realization of code generators for CASE-tools but may also be applied manually. In object-oriented software development, code generation facilities are meaningful and play a ver>' important role as they are improving productivity and produce correct and uniform code. The use of advanced code generators helps saving time for programming which can be spent on analysis and design.

Code generation requires consistent and correct models. However, with respect to consistency constraints, the UML semantics are not strict enough. Following the foundations of the UML semantics only, inconsistent statechart diagrams may occur. The author fills in this gap by defining suitable modelling rules and consistency constraints.

Access Level