Skip to main content

About this book

This textbook mainly addresses beginners and readers with a basic knowledge of object-oriented programming languages like Java or C#, but with little or no modeling or software engineering experience – thus reflecting the majority of students in introductory courses at universities. Using UML, it introduces basic modeling concepts in a highly precise manner, while refraining from the interpretation of rare special cases.

After a brief explanation of why modeling is an indispensable part of software development, the authors introduce the individual diagram types of UML (the class and object diagram, the sequence diagram, the state machine diagram, the activity diagram, and the use case diagram), as well as their interrelationships, in a step-by-step manner. The topics covered include not only the syntax and the semantics of the individual language elements, but also pragmatic aspects, i.e., how to use them wisely at various stages in the software development process. To this end, the work is complemented with examples that were carefully selected for their educational and illustrative value.

Overall, the book provides a solid foundation and deeper understanding of the most important object-oriented modeling concepts and their application in software development. An additional website offers a complete set of slides to aid in teaching the contents of the book, exercises and further e-learning material.

Table of Contents

Chapter 1. Introduction

The Unified Modeling Language (UML) is a consolidation of the best practices that have been established over the years in the use of modeling languages. UML enables us to present the widely varying aspects of a software system (e.g., requirements, data structures, data flows, and information flows) within a single framework using object-oriented concepts. Before we venture too deeply into UML, however, in this chapter we first explain why modeling is an indispensable part of software development. To do this, we look at what models are and what we need them for. We briefly recapitulate the basic concepts of object orientation before continuing with an overview of the structure of the book.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 2. A Short Tour of UML

Before introducing the most important concepts of UML in the following chapters, we first explain the background of this modeling language. We look at how UML came into being and what the “U” for “Unified” actually means. We then answer the question of how UML itself is defined, that is, where do the rules come from that dictate what a valid model should look like in UML? Furthermore, we outline what UML is used for. Finally, we give a short overview of all 14 UML diagrams in the current version 2.4.1 of the UML standard specification. These diagrams can be used for modeling both structure and behavior.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 3. The Use Case Diagram

The use case diagram allows us to describe the possible usage scenarios (use cases) that a system is developed for. It expresses what a system should do but does not address any realization details such as data structures, algorithms, etc. These details are covered by other diagrams such as the class diagram (see Chapter 4) or the interaction diagrams (see Chapter 6). The use case diagram also models which user of the system uses which functionality, i.e., it expresses who will actually work with the system to be built.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 4. The Class Diagram

We use the class diagram to model the static structure of a system, thus describing the elements of the system and the relationships between them. These elements and the relationships between them do not change over time. For example, students have a name and a matriculation number and attend various courses. This sentence covers a small part of the university structure and does not lose any validity even over years. It is only the specific students and courses that change.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 5. The State Machine Diagram

Over the course of its life, every system, or to be more precise every object, goes through a finite number of different states. Using a state machine diagram, you can model the possible states for the system or object in question, how state transitions occur as a consequence of occurring events, and what behavior the system or object exhibits in each state.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 6. The Sequence Diagram

While the purpose of the state machine diagram presented in the last chapter is to model the intra-object behavior—that is, the life cycle of an object—in this chapter we look at the modeling of the inter-object behavior—that is, the interactions between the objects in a system.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 7. The Activity Diagram

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.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 8. All Together Now

In the preceding chapters, we have looked in detail at five UML diagrams that enable us to describe different aspects of a system. In the examples given, we have seen that the diagrams each realize different views of a system. Therefore, the diagrams must be interpreted together as a whole, taking into account how they interact with one another, rather than each one being considered in isolation. They supplement each other by illustrating the system to be developed from different perspectives. In this chapter, we model three concrete examples from different application areas that show the interaction between the different diagrams.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel

Chapter 9. Further Topics

In the preceding chapters, we have learned about the basic concepts of object-oriented modeling using numerous language elements of UML. We have learned how to apply these concepts to create UML diagrams. The diagrams offer different views of a complex system, providing abstraction mechanisms to make the complexity of the system manageable. With these mechanisms, UML offers a strong basis for many applications and we could fill many pages by looking at further topics. To give one example, the Systems Modeling Language (SysML) [37] was developed based on UML and extends a subset of UML with special concepts required for modeling complex physical systems.
Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel
Additional information