This thesis presents a new Unified Modeling Language 2 (UML
AcknowledgmentsI am grateful to my supervisor Prof. Dr. Hogrefe for many fruitful and helpful discussions in the stimulating atmosphere of his research group. I also thank my co-supervisor Prof. Dr. Grabowski for accepting the task of examining this thesis.Many thanks go out to all my colleagues from the Institute of Informatics at the University of Göttingen. Especially, I am grateful to my colleagues Michael Ebner, Rene Soltwisch and Xiaoming Fu for useful and valuable discussions on formal modeling techniques.I also thank my students Julia Woch and Sebastian Kraatz for contributing to this work with their considerable efforts. This thesis would not be in its current shape without the comments of numerous people. I thank Omar Alfandi, Mohammed Alfandi, Andrea Hellner, Ingo Juchem, Helmut Neukirchen, Katharina and Peter Samow for reading this thesis, finding errors and providing helpful suggestions for improving this thesis.
List of Figures
IntroductionDue to the huge complexity of modern software systems, it is required to specify precisely what a software component should do and how it should behave. If the final implementation deviates from the expected behavior, its use or its communication with other software components may fail. In a software development process, the specification describes the expected behavior of the software; the description describes the actual behavior of that software. The actual behavior is the implementation. A specification is a technical contract between developers and users or clients. It is mainly intended to provide them with a mutual understanding of the software and is used to guide the development and the use. This also applies for the development of communicating protocols as they are merely implemented in software.Today, most protocol specifications are carried out in natural, informal language because it is easy to understand. However, experience has shown that specifications in natural languages can be vague, verbose and ambiguous. That means they can be interpreted in more than one way. A specification is formal if its meaning (its semantics) is unambiguous. Special languages, known as formal description techniques (FDTs), have been developed for the unambiguous specification and description of software. Hence, FDTs are distinguished from formal languages by having a formal syntax and a formal semantics. This stands in contrast to (semi-)formal languages such as Java or C++ which only have a formal syntax. FDTs are based on rigorous formal methods and offer the means for defining unambiguous specifications of network services and protocols in a more comprehensive and precise way than those done in natural language. In addition, they provide a basis for analysis, verification and validation of a specification before protocols are implemented. They can be used at the requirement stage to capture the user requirements. During the stage of analysis and design, FDTs can be used to describe abstract...