An integrated operational semantics for a UML core based on graph transformation
Autoren
Mehr zum Buch
Today, the Unified Modeling Language (UML) is widely accepted as a standard for modeling object-oriented software systems. However, its semantics is defined only in an informal way. In this thesis, we present an approach that gives a formal semantics to an important subset of UML. We cover substantial aspects of UML use case, class, object, statechart, and interaction diagrams. Additionally, full OCL is supported in the common UML fashion. The presented approach is based on the translation of a UML model into a graph transformation system consisting of graph transformation rules and a graph that represents the system state. By applying the rules on the graph, the evolution of the modeled system is simulated. To define a formal semantics, we first fix the considered subset of UML by means of a metamodel. This metamodel resembles the UML 1.5 metamodel of the OMG but is more compact. The metamodel approach is employed here with the UML community in mind that is used to this way of language definition. The concept of a system state that includes information of the system at a specific point in time during execution is likewise introduced by means of a metamodel. Aside from objects, attribute values and relationships between the objects, a system state includes processes that represent operations in execution. The actual execution is performed by applying graph transformation rules that refer to a process and modify the system state according to the semantics of the corresponding operation. This is either specified by means of an interaction diagram or is predefined. In the central part of this thesis, we describe in detail how the graph transformation rules for a given UML model are constructed. The approach is implemented in a tool that supports the user in simulating the execution of models before actually having implemented it. During the simulation, the current system state can always be checked with respect to OCL constraints. It can also be inspected with OCL queries. The modeler can check specific sequences of operation calls and gains insight into the modeled system. By analyzing the model in this way, errors can be located or the model can be validated to be correct. Therefore, this thesis contributes to the goal of improving the quality of software.