<< back to topics

# Semantics of Modeling Languages

### A selection of papers from Bernhard Rumpe and the Software Engineering Group

Our group deals a lot with analysis, synthesis, evolution, definition of views, and abstraction based on models. For all these purposes, we need a sound semantical foundation of the meaning of the models.We also need a proper semantics when applying a given language to new domains, such as monitoring energy consumption or modeling flight safety rules for the European air traffic (see our other publications). We do this regularly with our tool workbench MontiCore [KRV10].

## The Meaning of Semantics and its Principles

Over the years we have developed a clear understanding of what the**semantics**of a model and a modeling language is. For example in [HR04] we discussed different forms of semantics and what they can be used for. We in particular distinguish between "meaning" that can be attached to any kind of modeling language and an often used narrow interpretation, that uses "semantics" synonymously to behavior of a programm.

Each modeling language, let it be

**UML or a DSL deserves a semantics**, even if the language itself is for modeling structure, such as Class Diagrams or Architecture Description Languages. Furthermore, modeling languages are

**not necessarily executable**and as their main

**purpose is abstraction**from implementation details, they are usually not fully determined, but exhibit forms of

**underspecification**. We discuss a very general framework for semantics definition in [HR04]. At the core, we use a denotational semantics, which is basically a mapping M from source language L (syntax) into a target language respectively a target domain S (semantic domain). Here we see a combination of functions, where the first simplifies the syntax language by mapping redundant concepts to their simplest form (less concepts used, but usually more complex models):

While many attempts of defining semantics only give examples on how mapping M looks like, we advocate an explicit and precise definition of M to be able to analyze or compare the semantics of models. E.g. refinement and evolution of models rely on such explicit denotational semantics.

## System Model as Semantic Domain

To define a semantic domain we use a**mathematical theory**, that allows us to explicitly specify the desired properties of the target system, we are aiming at. We call the developed theory

**System Model**. Its first version is explicitly defined in [BKR95] and [BHP+98] (including [GKR96] and [BKR96]).

The

**System Model**for the full UML however became a rather large mathematical theory, that captures object-oriented communication (method calls, dynamic lookup, inheritance, object identity) as well as distributed systems at various levels as states and statemachines. We therefore developed the full system model for the UML in [BCGR09a] and discuss the rationale for it in [BCGR09]. See also [BCR07] and [BCR07b] for more detailed versions and [CGR08] for an application on class diagrams. Here we see the hierarchy of the mathematical model:

The system model and its variants are used for a variety of tool embeddings of the semantic domain. [MRR10] explains the case for semantic model differencing as opposed to syntactic comparison. For example in [MRR11d] (based on [MRR11a]) we encoded a part of the semantics, big enough to handle differences of activity diagrams based on their semantics, and in [MRR11f] we compare class and object diagrams based on their semantics.

In [BR07] we have defined a much simpler mathematical model for

**distributed systems**based on black-box behaviors of components, hierarchical decomposition, but also the sound mathematical theory of streams for refinement and composition. While this semantic model is useful for distributed real-time systems, such as Cloud, Internet or Cyber-Physical Systems, it does not exhibit concepts of objects and classes.

We also discussed a

**meta-modeling approach**[EFL+99]. As nothing is as mighty and comfortable as mathematical theories, one needs to carefully design the semantics in particular if a concept of the language does not have a direct representation in the semantics domain. Using a meta-model to describe the semantics is appealing, because the syntactic domain L is meta-modeled anyway, but also demanding, because both the semantic domain S and the mapping M need to be encoded using meta-modeling instead of mathematical concepts. We learnt, that meta-modeling is limited, e.g. in its expressibility as well as due to finiteness.

## Semantics of UML and Object-Orientation

In the early days, when modeling technology was still in its infancy is was of interest to precisely understand objects, classes, inheritance, their interactions and also how modeling technologies, like the upcoming UML, describe those. [BGH+97] discusses potential modeling languages for the description of an exemplaric object interaction, today called Sequence Diagram, and a complete description of object interactions, which obviously needs additional mechanisms e.g. a sequential, parallel or iterative composition of Sequence Diagrams.[BGH+98] discusses the relationships between system, a view and a complete model in the context of the UML.

## Abstraction, Underspecification and Executability

A modeling language is only a good language, if it allows to abstract away from certain implementation details.**Abstraction**however often means that its models are not fully determining the original, but exhibit

**underspecification**. Underspecification is regarded as freedom of the developer or even of the implementation to choose the best solution with respect to the given constraining specification. It is an intrinsic property of a good modeling language to allow underspecification.

As a consequence a semantic mapping of an (underspecified) model into a single running programm cannot be correct or useful (to capture the semantics adequate). To tackle

**underspecification**we use a set-based mapping. This means a single model is mapped to a set of possible implementations all of which fulfill the constraints given by the model. This approach has important advantages:

- Each element in the semantics can be an
**executable implementation**, we just do not know, which of them will be the final implementation. - Given two models, the
**semantics of composition**is defined as intersection: these are exactly the systems that implement both models. This approach is based on "loose semantics", where an implementation is allowed to do everything that has not explicitly been forbidden by the specification. - A model is
**consistent**exactly when it has a nonempty semantics. -
**Refinement**of a model on the syntactic level maps to set inclusion on the semantics.

## Semantic Variation Points

In the standardization of the UML the contributors had some challenges to agree on the meaning of quite a few modeling concepts. To some extent this is due to political reasons (tool vendors try to push their already implemented solution), but to a large extent this is also due to the attempt of the UML to describe phenomena in various real world and application domains as well as software/technical domains. As it is a bad idea to capture different phenomena with the same syntactical concept, the UML Standard introduces the**semantic variantion point**without describing precisely what it means and how to describe it.

In [GR11], [CGR09] we have discussed the general requirements for a framework to describe semantic and syntactic variations of a modeling language. We also introduced a mechanism to describe variations (1) of the syntax, (2) of the semantic domain, and (3) of the semantic mapping using feature trees for class diagrams and for object diagrams in [MRR11f] as well as activity diagrams in [GRR10]. Feature trees are a perfect concept to capture variation points and denotational semantics based on a system model allowing to explicitly describe the effect of the variant.

In [Rum17] (or its German version [Rum12]) we have embodied the semantics in a variety of code and test case generation, refactoring and evolution techniques to make UML semantics amenable to developers without exposing the formalism behind. In [LRS+10] we have discussed evolution and related issues in greater detail.

## Streams and Automata as Semantic Foundation

Just as a short notice, we have used the mathematical concept of streams (e.g. Broy/Stolen: Specification and Development of Interactive Systems, springer, 2001) and various extensions including automata [Rum96] as semantic basis for the kind of systems, we have in focus: distributed, asynchronously communicating agents, which can be regarded as active objects.## Summary:

- Semantics of modeling languages helps to understand, analyze and manipulate its models.
- Semantics is precisely defined only using mathematic theories.
- The system model is a semantic theory based on streams and automata to describe distributed components.
- Semantic variation points can be captured precisely this way.
- Refinement, composition and evolution, e.g. through differencing can be defined using semantics.
- Encoding of semantics in formal tools helps to execute analyzes, consistency checks etc.

## Further Topics:

- Unified Modeling Language (UML)
- Domain Specific Languages (DSLs)
- Variability & Software Product Lines (SPL)
- Software Language Engineering (SLE)
- Compositionality/Modularity of Models
- Evolution & Transformation of Models
- State Based Modeling (Automata)
- MontiCore - Language Workbench

## Selected(!) Publications:

- [Rum17]
**B. Rumpe**

Agile Modeling with UML: Code Generation, Testing, Refactoring.

Springer International, May 2017. -
[Rin14]
J. O. Ringert:

Analysis and Synthesis of Interactive Component and Connector Systems.

Aachener Informatik-Berichte, Software Engineering Band 19. ISBN 978-3-8440-3120-1. Shaker Verlag, 2014. - [Rum12]
**B. Rumpe**

Agile Modellierung mit UML : Codegenerierung, Testfälle, Refactoring

2nd Edition, Springer Berlin, June 2012.

(html version available here) - [GR11]
H.Grönninger and
**B. Rumpe**

Modeling Language Variability

In: Workshop on Modeling, Development and Verification of Adaptive Systems. 16th Monterey

Workshop, Redmond, Microsoft Research, March 31-April 2, 2010. LNCS vol. 6662,

pp. 17-32, Springer, 2011. - [MRR11f]
**S. Maoz, J. O. Ringert, B. Rumpe**

Semantically Configurable Consistency Analysis for Class and Object Diagrams

In: Model Driven Engineering Languages and Systems (MODELS 2011), Wellington, New Zealand. pp. 153-167, LNCS 6981, 2011.

Received Best Paper Award and ACM Distinguished Paper Award at the MODELS 2011 Conference

- [MRR11d]
**S. Maoz, J. O. Ringert, B. Rumpe**

ADDiff: Semantic Differencing for Activity Diagrams

In: Proc. Euro. Soft. Eng. Conf. and SIGSOFT Symp. on the Foundations of Soft. Eng. (ESEC/FSE'11), pp. 179-189, ACM, 2011.

- [MRR11a]
**S. Maoz, J. O. Ringert, B. Rumpe**

An Operational Semantics for Activity Diagrams using SMV

RWTH Aachen University, Technical Report.

AIB-2011-07. July 2011.

- [LRS+10]
T. Levendovszky,
**B. Rumpe**, B. Schätz, J. Sprinkle

Model Evolution and Management

In: MBEERTS: Model-Based Engineering of Embedded Real-Time Systems, p. 241 - 270

International Dagstuhl Workshop

Dagstuhl Castle, Germany, LNCS 6100, Springer Berlin, October 2010 - [MRR10]
**S. Maoz, J. O. Ringert and B. Rumpe**:

A Manifesto for Semantic Model Differencing.

In: Proceedings Int. Workshop on Models and Evolution (ME'10), co-located with MoDELS'10. J. Dingel and A. Solberg (Eds.): MoDELS Workshops, LNCS 6627, pp. 194 - 203, 2010. - [GRR10]
**H. Grönniger, D. Reiß, B. Rumpe**:

Towards a Semantics of Activity Diagrams with Semantic Variation Points .

In: D. Petriu, N. Rouquette, Ø. Haugen (Eds.), Model Driven Engineering Languages and Systems, Proceedings of MODELS 2010, Oslo, Norway. LNCS 6394, Springer, 2010 - [KRV10]
**H. Krahn, B. Rumpe, S. Völkel**

MontiCore: a Framework for Compositional Development of Domain Specific Languages.

In: International Journal on Software Tools for Technology Transfer (STTT), Volume 12, Issue 5, pp. 353-372, September 2010

- [BCGR09a]
M. Broy, M. V. Cengarle,
**H. Grönniger, B. Rumpe**

Definition of the UML system model.

In: Kevin Lano, editor, UML 2 Semantics and Applications.

John Wiley & Sons, 2009

- [BCGR09]
M. Broy, M. V. Cengarle,
**H. Grönniger, B. Rumpe**

Considerations and Rationale for a UML System Model.

In: Kevin Lano, editor, UML 2 Semantics and Applications.

John Wiley & Sons, 2009

- [CGR09]
M. V. Cengarle,
**H. Grönniger, B. Rumpe**

Variability within Modeling Language Definitions

In: Model Driven Engineering Languages and Systems. Proceedings of MODELS 2009, LNCS 5795.

Denver, Colorado, USA, October 2009

- [CGR08]
M.V. Cengarle,
**H. Grönniger, B. Rumpe**

System Model Semantics of Class Diagrams

Informatik-Bericht 2008-05

Technische Universität Braunschweig, Carl-Friedrich-Gauss-Fakultät, 2008.

- [BR07]
M. Broy,
**B. Rumpe.**

Modulare hierarchische Modellierung als Grundlage der Software- und Systementwicklung..

In: Informatik-Spektrum. Springer Verlag.

Band 30, Heft 1, Februar 2007. - [BCR07b]
M. Broy, M. Cengarle,
**B. Rumpe.**

Towards a System Model for UML. Part 3. The State Machine Model.

Munich University of Technology, Technical Report

TUM-I0711. February 2007.

- [BCR07]
M. Broy, M. Cengarle,
**B. Rumpe.**

Towards a System Model for UML. Part 2. The Control Model.

Munich University of Technology, Technical Report

TUM-I0710. February 2007.

- [EFL+99]
**A. Evans, K. Lano, R. France, B. Rumpe**.

Meta-Modeling Semantics of UML

In: Behavioral Specifications of Businesses and Systems

H. Kilov, B. Rumpe, I. Simmonds (eds.)

Kluver Academic Publisher

- [BHP+98]
**M. Broy, F. Huber, B. Paech, B. Rumpe, K. Spies.**.

Software and System Modeling Based on a Unified Formal Semantics.

In: Requirements Targeting Software and Systems Engineering.

International Workshop RTSE'97. Manfred Broy, Bernhard Rumpe (Eds.).

Bernried, Germany, October 1997.

LNCS 1526, Springer Verlag. - [BGH+98]
**Ruth Breu, Radu Grosu, Franz Huber, Bernhard Rumpe, Wolfgang Schwerin**.

Systems, Views and Models of UML

In: The Unified Modeling Language, Technical Aspects and Applications

Martin Schader, Axel Korthaus (eds.)

Physica Verlag, Heidelberg. 1998. - [BGH+97]
**Ruth Breu, Radu Grosu, Christoph Hofmann, Franz Huber, Ingolf Krüger, Bernhard Rumpe, Monika Schmidt, Wolfgang Schwerin**.

Exemplary and Complete Object Interaction Descriptions

In: Proceedings OOPSLA'97 Workshop on Object-oriented Behavioral Semantics, Haim Kilov, Bernhard Rumpe, Ian Simmonds (eds.), TUM-I9737. TU Munich, 1997. - [BKR96]
**Cornel Klein, Bernhard Rumpe, Manfred Broy.**.

A stream-based mathematical model for distributed information processing systems - SysLab system model -.

In: Proceedings of the first International Workshop on Formal Methods for Open Object-based Distributed Systems. 1996. (ed.). Chapmann & Hall. - [GKR96]
**Radu Grosu, Cornel Klein, Bernhard Rumpe**.

Enhancing the SysLab System Model with State.

Technical Report TUM-I9631, TU Munich, 1996. - [BKR95]
**Bernhard Rumpe, Cornel Klein, Manfred Broy**.

Ein strombasiertes mathematisches Modell verteilter informationsverarbeitender Systeme - Syslab Systemmodell.

Technical Report TUM-I9510, TU Munich, 1995.

<< list of all topics list of all publications >>