UML 2 für Studenten
Inhaltsverzeichnis Vorwort 11 Teil I Einführung 13 Kapitel 1 UML (nicht nur) für Studenten 15 1.1 Zielgruppen 16 1.2 Konventionen 17 1.3 Abgrenzung 18 1.4 Aufbau dieses Buches 18 Kapitel 2 UML im Überblick 21 2.1 Geschichte der Methodik und der UML 22 2.2 Bedeutung und Beitrag der UML 23 2.3 Der Aufbau der UML 23 2.4 Neuerungen in UML 2.0 27 Kapitel 3 UML im Kontext 29 3.1 Der Software-Lebenszyklus 30 3.2 Die Rolle der Modellierung 31 3.3 Methode, Notation, Technik 32 3.4 Auswahl passender Modelle und Diagramme 33 Kapitel 4 UML in der Praxis 35 4.1 Projektdefinition 36 4.2 Analyse 37 4.3 Entwurf 38 4.4 Implementation 38 4.5 Integration 39 4.6 Einführung und Migration 39 4.7 Betrieb und Wartung 39 4.8 Renovierung und Stilllegung 40 Teil II Struktur 41 Kapitel 5 Klassen und Beziehungen 43 5.1 Einführung 44 5.1.1 Arten von Klassen 44 5.1.2 Arten von Klassendiagrammen 45
5.2 Analyse-Klassendiagramm 46 5.2.1 Analyse-Klassen 46 5.2.2 Beziehungen 47 5.2.3 Attribute 48 5.2.4 Komposition 51 5.2.5 Operationen (Methoden) 52 5.2.6 Vererbung 53 5.3 Entwurfs-Klassendiagramm 57 5.3.1 Attribute 58 5.3.2 Beziehungen 60 5.3.3 Operationen (Methoden) 61 5.3.4 Abstrakte Klassen 62 5.3.5 Aktive Klassen 62 5.3.6 Schnittstellen 62 5.4 Taxonomie 64 5.5 Kompositionshierarchie 66 5.6 Objektdiagramm 68 5.6.1 istlnstanzvon-beziehung 70 5.7 Rollenmodellierung 71 5.8 Klasseninventar 73 5.9 Implementations-Klassendiagramm 73 5.9.1 Datentypen 73 5.9.2 Template-Klassen 75 5.9.3 Aggregation 77 5.9.4 Profilierung von Implementations-Klassendiagrammen 77 5.9.5 Interpretation als Java-Programm 78 5.9.6 Interpretation als Datenbankmodell 83 Kapitel 6 Architektur und Komponenten 89 6.1 Kontextdiagramm 90 6.2 Facharchitekturdiagramm 92 6.3 Montagediagramme 94 6.3.1 System-Montagediagramme 94 6.3.2 Objekt-Montagediagramm 98 6.3.3 Interpretation von Anschlüssen und Verbindern in Java 102 6.4 Kollaborationen 106 6.4.1 Entwurfsmuster 106 6.4.2 Architekturstil 108 6.4.3 Kontextkollaboration 109 6.5 Paketdiagramm 110 6.5.1 Pakete 110 6.5.2 Pakethierlarchien und qualifizierte Namen 111 6.5.3 Import 112 6.5.4 Verschmelzung 115
6.6 Komponentendiagramm 115 6.6.1 Komponenten 116 6.6.2 Arten von Komponenten 117 6.6.3 Verbinder 118 6.6.4 Verhaltenskonformität 120 6.7 Installation und Verteilung 122 6.7.1 Systemstrukturdiagramm 124 6.7.2 Verteilungsdiagramm! 128 Kapitel 7 Nichtfunktionale Anforderungen 131 7.1 Arten von Anforderungen 132 7.2 Bedeutung nichtfunktionaler Anforderungen 133 7.3 Nichtfunktionale Anforderungen in der UML 134 Kapitel 8 Object Constraint Language 137 8.1 Typen 138 8.2 Einfache Randbedingungen 139 8.2.1 Navigation 139 8.2.2 Logik, Arithmetik 140 8.3 Invarianten 141 8.3.1 Definitionen 142 8.3.2 Kollektionsoperationen 143 8.3.3 Initialwerte, abgeleitete Werte 143 8.4 Vor- und Nachbedingungen 144 Teil III Verhalten 147 Kapitel 9 Nutzfälle 149 9.1 Arten von Funktionalität 150 9.2 Prozessinventar 152 9.3 Textuelle Ablaufbeschreibung 153 9.4 Prozesstabelle 153 9.5 Nutzfallinventar 159 9.6 Abhängigkeiten zwischen Funktionalitäten, 161 9.6.1 Inklusion 161 9.6.2 Erweiterung 161 9.7 Nutzfalltabelle 162 9.8 Funktionsbaum 166 Kapitel 10 Zustandsautomaten 169 10.1 Semantische Grundbegriffe 170 10.2 Objektlebenszyklus 171 10.3 Nutzfalllebenszyklus 175
10.4 Protokollrolle und Protokoll 178 10.4.1 Gedächtniszustände 181 10.4.2 Aufspaltungs- und Synchronisationsknoten 183 10.5 Systemverhalten und Steuerungsautomat 183 10.6 Aufruf und Verfeinerung von Zustandsautomaten 187 10.7 Dialogablauf 188 10.8 Zustandstabelle 190 Kapitel 11 Aktivitäten 193 11.1 Semantische Grundbegriffe 194 11.2 Prozessablauf 195 11.3 Nutzfallablauf 198 11.4 Datenfluss 200 11.4.1 Einbettung 201 11.4.2 Objektflussknoten 202 11.4.3 Objektfmsskanten 204 11.5 Dienstkomponenten 205 11.5.1 Pins und Parametermengen 206 11.5.2 Verknüpfung von Dienstkomponenten 208 11.6 Algorithmischer Ablauf 209 11.6.1 Sprünge 209 11.6.2 Ausnahmen 210 11.6.3 Strukturierte Knoten 214 11.6.4 Auffaltungsbereiche 214 11.7 Spezielle Darstellungsformen 217 11.7.1 Betriebliche Prozesse 218 11.7.2 Softwareprozesse 218 Kapitel 12 Interaktionen 221 12.1 Semantische Grundbegriffe 222 12.2 Klasseninteraktionen 222 12.2.1 Komplementäre Darstellungen 223 12.2.2 Interaktionen als Folgen von Ereignis Vorkommnissen 225 12.2.3 Aktivierung und Nachrichtentypen 226 12.2.4 Musterinteraktionen 228 12.3 Kontextinteraktionen 230 12.3.1 Tabellendarstellung 231 12.4 Interaktionsoperatoren 231 12.4.1 Strikte Reihenfolge: der Operator Stri et 232 12.4.2 Interaktionsvorkommnisse: der Operator ref 233 12.4.3 Auswahl: die Operatoren opt, a 11 und brk 233 12.4.4 Textuelle Darstellung von Interaktionen 234 12.4.5 Wiederholung: die Operatoren seq und 1 oop 236 12.4.6 Nebenläufigkeit: die Operatoren pa r und regi on 238 12.4.7 Projektion: die Operatoren ignore und consider 240 12.4.8 Ungültige Abläufe: Negation und Zusicherung 240
12.5 Testfälle 242 12.6 Protokollinteraktionen 245 12.7 Interaktionsübersichten 247 Teil IV Anhänge 251 Anhang A UML-Syntax 253 A.l Grafische Notationselemente 253 A.l.l Allgemein 253 A.l.2 Klassendiagramme 1 - Klassen und Objekte 253 A.l.3 Klassendiagramme 2 - ungerichtete Beziehungen 255 A.1.4 Klassendiagramme 3 gerichtete Beziehungen 256 A.l.5 Montagediagramme 257 A.l.6 Paketdiagramme 258 A.l.7 Verteilungsdiagramme 259 A.1.8 Nutzfalldiagramme 260 A.l.9 Zustandsdiagramme 261 A.l.10 Aktivitätsdiagramme 264 A.l.11 Interaktionsdiagramme 267 A.2 Anschriften 268 A.3 Eindeutige Bezeichner 270 A.4 Namen 270 A.5 Layout 273 Anhang B UML Diagramme und Modelle 275 Anhang C UML Erweiterbarkeit 289 C.l Stereotype 289 C.2 Tagged Values 290 C.3 Profile 290 Anhang D Anhang E UML Metamodell Glossar 291 295 Literatu rverzeich n is 305 Sachregister 313