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 (www.uml.ac.at) offers a complete set of slides to aid in teaching the contents of the book, exercises and further e-learning material.
|
|
1 | (10) |
|
|
1 | (1) |
|
|
2 | (4) |
|
|
6 | (3) |
|
|
6 | (1) |
|
|
6 | (1) |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
7 | (1) |
|
|
8 | (1) |
|
1.4 The Structure of the Book |
|
|
9 | (2) |
|
|
11 | (12) |
|
|
11 | (3) |
|
|
14 | (1) |
|
|
15 | (6) |
|
|
17 | (2) |
|
|
19 | (2) |
|
2.4 Diagrams Presented in this Book |
|
|
21 | (2) |
|
|
23 | (26) |
|
|
24 | (1) |
|
|
25 | (2) |
|
|
27 | (1) |
|
3.4 Relationships between Actors |
|
|
28 | (2) |
|
3.5 Relationships between Use Cases |
|
|
30 | (3) |
|
3.6 Examples of Relationships |
|
|
33 | (1) |
|
3.7 Creating a Use Case Diagram |
|
|
34 | (12) |
|
3.7.1 Identifying Actors and Use Cases |
|
|
34 | (1) |
|
3.7.2 Describing Use Cases |
|
|
35 | (2) |
|
|
37 | (5) |
|
|
42 | (4) |
|
|
46 | (3) |
|
|
49 | (36) |
|
|
50 | (2) |
|
|
52 | (8) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (2) |
|
|
58 | (1) |
|
4.2.6 Class Variables and Class Operations |
|
|
59 | (1) |
|
|
60 | (5) |
|
4.3.1 Binary Associations |
|
|
60 | (4) |
|
|
64 | (1) |
|
|
65 | (2) |
|
|
67 | (2) |
|
4.5.1 Shared Aggregations |
|
|
68 | (1) |
|
|
68 | (1) |
|
|
69 | (3) |
|
|
70 | (2) |
|
|
72 | (1) |
|
4.7 Abstract Classes vs. Interfaces |
|
|
72 | (3) |
|
|
75 | (1) |
|
4.9 Creating a Class Diagram |
|
|
76 | (4) |
|
|
78 | (1) |
|
4.9.2 Associations and Aggregations |
|
|
78 | (2) |
|
|
80 | (5) |
|
5 The State Machine Diagram |
|
|
85 | (22) |
|
5.1 States and State Transitions |
|
|
86 | (3) |
|
|
89 | (3) |
|
5.3 Types of State Transitions |
|
|
92 | (2) |
|
|
94 | (2) |
|
|
96 | (6) |
|
5.5.1 The Orthogonal State |
|
|
97 | (1) |
|
|
98 | (1) |
|
5.5.3 Entry and Exit Points |
|
|
99 | (2) |
|
|
101 | (1) |
|
|
102 | (3) |
|
|
105 | (2) |
|
|
107 | (34) |
|
|
108 | (2) |
|
|
110 | (2) |
|
|
112 | (3) |
|
|
115 | (11) |
|
|
116 | (3) |
|
6.4.2 Concurrency and Order |
|
|
119 | (6) |
|
6.4.3 Filters and Assertions |
|
|
125 | (1) |
|
6.5 Further Language Elements |
|
|
126 | (7) |
|
6.5.1 Interaction References |
|
|
127 | (1) |
|
|
128 | (1) |
|
6.5.3 Continuation Markers |
|
|
129 | (1) |
|
6.5.4 Parameters and Local Attributes |
|
|
129 | (1) |
|
|
130 | (2) |
|
|
132 | (1) |
|
6.6 Creating a Sequence Diagram |
|
|
133 | (3) |
|
6.6.1 The Connection between a Class Diagram and a Sequence Diagram |
|
|
133 | (2) |
|
6.6.2 Describing Design Patterns |
|
|
135 | (1) |
|
6.7 The Communication, Timing, and Interaction Overview Diagrams |
|
|
136 | (3) |
|
|
139 | (2) |
|
|
141 | (26) |
|
|
142 | (1) |
|
|
143 | (3) |
|
7.2.1 Event-Based Actions |
|
|
144 | (1) |
|
7.2.2 Call Behavior Actions |
|
|
145 | (1) |
|
|
146 | (8) |
|
|
154 | (2) |
|
|
156 | (3) |
|
|
159 | (2) |
|
|
161 | (6) |
|
|
167 | (16) |
|
8.1 Example 1: Coffee Machine |
|
|
167 | (4) |
|
8.2 Example 2: Submission System |
|
|
171 | (9) |
|
8.3 Example 3: Data Type Stack |
|
|
180 | (2) |
|
|
182 | (1) |
|
|
183 | (12) |
|
|
183 | (3) |
|
|
184 | (1) |
|
9.1.2 Importing Elements/Packages |
|
|
185 | (1) |
|
|
186 | (1) |
|
9.3 UML Extension Mechanisms |
|
|
187 | (5) |
|
9.3.1 Stereotypes and Profiles |
|
|
189 | (2) |
|
9.3.2 Applying Stereotypes of a Profile |
|
|
191 | (1) |
|
9.4 Model-Based Software Development |
|
|
192 | (3) |
References |
|
195 | (4) |
Index |
|
199 | |
Martina Seidl is assistant professor at the Institute for Formal Models and Verification at the Johannes Kepler University Linz and research associate of the Business Informatics Group of the Vienna University of Technology. Her research focuses on formal methods in modeling, model evolution as well as different aspects of automated theorem proving. She has been involved in teaching numerous courses for all stages of the computer science curricula in Vienna and Linz, many of them directly related to her research.
Marion Scholz studied computer science at the Vienna University of Technology and at the University of Vienna. Since 2007 she teaches object-oriented modeling to first year bachelor students studying computer science and business informatics. As a senior lecturer, her research interests are new teaching methods with a strong focus on e-learning technologies. One of her main challenges is raising the quality of teaching despite large numbers of students.
Christian Huemer is associate professor in the Business Informatics Group of the Vienna University of Technology and serves as vice-dean of academic affairs for business informatics. In addition, he is Scientific Director of the Research Centre Smart Agent Technologies of Research Studios Austria. For ten years he was Chair of the Techniques & Methodologies Group of the United Nations Centre for Trade Facilitation and e-Business (UN / CEFACT). In particular, he has been the project lead of UN / CEFACT Modeling Methodology (UMM) - a UML profile for the specification of inter-organizational business processes.
Gerti Kappel is a full professor at the Institute of Software Technology and Interactive Systems at the Vienna University of Technology, chairing the Business Informatics Group. She is head of the Doctoral College Adaptive Distributed Systems, funded by Vienna University of Technology. Her current research interests include model engineering (model transformation/versioning/evolution, model-driven software development, object-oriented modeling), Web engineering (ubiquitous Web technologies, context awareness, information integration, model-driven development), and process engineering (process modeling, inter-organizational systems, workflow systems).