Inhalt | 6 |
Vorwort | 14 |
Einleitung | 16 |
Liebe Leserin, lieber Leser, | 16 |
Wer dieses Buch aus welchem Grund lesen sollte | 18 |
Ihre Meinung ist uns sehr wichtig | 19 |
Danksagungen | 19 |
Die Autoren | 20 |
Teil I: Einführung | 22 |
1UML?2 – Rückblick, Nabelschau und Ausblick | 24 |
1.1? Was ist die UML ... | 25 |
1.2? ... und was will sie nicht sein? | 25 |
1.3? Entwicklungsgeschichtliches zur UML | 26 |
1.4? Diagrammsprachen der UML?2 | 28 |
2 Vorgehensempfehlungen | 30 |
2.1? Wissen explizieren | 31 |
2.2? Vorgehenstipps aus der UML-Praxis | 31 |
3Grundkonzepte und -elemente der UML | 34 |
3.1? Grundkonzepte der UML | 35 |
3.1.1? Repräsentation von UML-Elementen | 35 |
3.1.2? Diagramm, Diagrammtyp & Sicht | 36 |
3.2? Grundelemente der UML | 42 |
3.2.1? Modell | 42 |
3.2.2? Kommentar | 43 |
3.2.3? Ausdruck | 44 |
3.2.4? Randbedingung | 45 |
3.2.5? Classifier | 46 |
3.2.6? Datentyp | 47 |
3.2.7? Primitiver Typ | 49 |
3.2.8? Aufzählungstyp | 50 |
3.2.9? Literal | 51 |
3.2.10? UML-Schlüsselwörter | 52 |
3.3? Strukturierung der Sprache UML?2 | 53 |
3.3.1? Einteilung in Language Units | 53 |
3.3.2? Einteilung in Compliance Levels | 53 |
3.4? Freiheitsgrade in der UML | 55 |
3.4.1? Semantic Variation Points | 55 |
3.4.2? Presentation Options | 55 |
3.5? Die 4-Schichten-Architektur | 56 |
3.5.1? M 0 – Die Laufzeitschicht | 56 |
3.5.2? M 1 – Die Modellschicht | 56 |
3.5.3? M 2 – Die Metamodellschicht | 58 |
3.5.4? M 3 – Die Meta-Metamodellschicht | 58 |
4Analyse mit der UML | 60 |
4.1? Einführung | 61 |
4.1.1? Notwendige Festlegungen | 61 |
4.1.2? Das Beispiel Zugtürsystem | 63 |
4.2? Aufgaben der Analyse | 65 |
4.3? Definieren der Systemgrenzen | 66 |
4.4? Beschreiben der Funktionalitäten | 68 |
4.4.1? Use-Cases identifizieren | 68 |
4.4.2? Use-Cases verfeinern | 69 |
4.5? Zustandsautomaten in der Analyse | 75 |
4.6? Das Begriffsmodell | 76 |
4.7? Verbindung zu natürlich-sprachlichen Anforderungen | 77 |
4.8? Ausgewählte Modellierungsszenarien | 79 |
4.8.1? Aufgaben von Systemschnittstellen | 81 |
4.8.2? Modellierung der Use-Case-Auslöser | 84 |
4.8.3? Modellierung von Interaktionen in Dialogen | 86 |
4.8.4? Modellierung einer SOA | 89 |
4.8.5? Weitere Tipps zur Modellierung von Anforderungen | 93 |
5Die UML in der Realisierung | 98 |
5.1? Systemarchitektur | 99 |
5.1.1? Aufgaben | 99 |
5.1.2? Zerlegen des Systems | 100 |
5.1.3? Verteilen der Verantwortlichkeiten | 102 |
5.1.4? Beschreiben der Schnittstellen | 103 |
5.1.5? Weitere Aspekte der Systemarchitektur | 106 |
5.2? Softwareanalyse | 110 |
5.2.1? Aufgaben | 110 |
5.2.2? Beschreibung der Funktionalitäten | 112 |
5.2.3? Detaillierte Modellierung des Verhaltens | 113 |
5.2.4? Weitere Aspekte im Vergleich zur Systemanalyse | 113 |
5.3? Softwarearchitektur | 114 |
5.3.1? Aufgaben | 114 |
5.3.2? Die Dekompositionssicht | 114 |
5.3.3? Die Kompositionssicht | 118 |
5.3.4? Weitere Aspekte der Softwarearchitektur | 119 |
5.4? Feindesign | 120 |
5.4.1? Aufgaben | 120 |
5.4.2? Feindesign für eine objektorientierte Implementierung | 120 |
5.4.3? Feindesign für eine nicht objektorientierte Implementierung | 123 |
Teil II: Strukturdiagramme | 126 |
6Klassendiagramm | 128 |
6.1? Überblick | 129 |
6.1.1? Modellieren von Klassen | 129 |
6.1.2? Grundgedanke der Klassenmodellierung | 130 |
6.1.3? Klassen und Objekte | 131 |
6.1.4? Klassen und Attribute | 131 |
6.1.5? Woher kommen Klassen? | 132 |
6.2? Anwendungsbeispiel | 133 |
6.3? Anwendung im Projekt | 134 |
6.3.1? Konzeptuell-analytische Modellierung | 134 |
6.3.2? Logische, designorientierte Modellierung | 135 |
6.4? Notationselemente | 136 |
6.4.1? Klasse | 136 |
6.4.2? Attribut | 139 |
6.4.3? Operation | 144 |
6.4.4? Schnittstelle | 150 |
6.4.5? Parametrisierte Klasse | 153 |
6.4.6? Generalisierung | 156 |
6.4.7? Generalisierungsmenge | 161 |
6.4.8? Assoziation | 163 |
6.4.9? Assoziationsklasse | 178 |
6.4.10? Abhängigkeitsbeziehung | 180 |
6.4.11? Verwendungsbeziehung | 182 |
6.4.12? Abstraktionsbeziehung | 183 |
6.4.13? Realisierungsbeziehung | 185 |
6.4.14? Substitutionsbeziehung | 186 |
6.4.15? Informationsfluss | 187 |
6.4.16? Informationseinheit | 188 |
7Paketdiagramm | 192 |
7.1? Überblick | 193 |
7.2? Anwendungsbeispiel | 193 |
7.3? Anwendung im Projekt | 194 |
7.3.1? Funktionale Gliederung | 194 |
7.3.2? Definition von Schichten | 195 |
7.4? Notationselemente | 196 |
7.4.1? Paket | 196 |
7.4.2? Paket-Import / Element-Import | 197 |
7.4.3? Paket-Merge | 200 |
8Objektdiagramm | 204 |
8.1? Überblick | 205 |
8.1.1? Die Inhalte eines Objektdiagramms | 205 |
8.1.2? Die Modellierung von Objektdiagrammen | 206 |
8.1.3? Vergleich: Klassen- und Objektdiagramm | 207 |
8.2? Anwendungsbeispiel | 208 |
8.3? Anwendung im Projekt | 208 |
8.4? Notationselemente | 209 |
8.4.1? Instanzbeschreibung / Objekt | 209 |
8.4.2? Werteangaben / Slots | 211 |
8.4.3? Link | 212 |
9 Kompositionsstrukturdiagramm | 214 |
9.1? Überblick | 215 |
9.1.1? Motivation und Hinführung | 217 |
9.1.2? Modellieren von Kollaborationen | 222 |
9.1.3? Kapselung durch Ports | 223 |
9.2? Anwendungsbeispiel | 224 |
9.3? Anwendung im Projekt | 224 |
9.3.1? Darstellung einer Architektur | 224 |
9.3.2? Struktur einer Use-Case-Realisierung | 225 |
9.3.3? Kennzeichnung und Visualisierung von Design-Pattern | 226 |
9.4? Notationselemente | 229 |
9.4.1? Part | 229 |
9.4.2? Konnektor | 230 |
9.4.3? Port | 232 |
9.4.4? Kollaboration | 233 |
9.4.5? Kollaborationsanwendung | 235 |
10 Komponentendiagramm | 236 |
10.1? Überblick | 237 |
10.2? Anwendungsbeispiel | 238 |
10.3? Anwendung im Projekt | 239 |
10.4? Notationselemente | 241 |
10.4.1? Komponente | 241 |
10.4.2? Artefakt | 244 |
11Verteilungsdiagramm | 248 |
11.1? Überblick | 249 |
11.2? Anwendungsbeispiel | 250 |
11.3? Anwendung im Projekt | 250 |
11.3.1? Abgrenzung des Systemkontexts | 251 |
11.3.2? Dokumentation von Hardwarevorgaben | 252 |
11.4? Notationselemente | 252 |
11.4.1? Knoten | 252 |
11.4.2? Kommunikationspfad | 254 |
11.4.3? Verteilungsbeziehung | 255 |
11.4.4? Einsatzspezifikation | 257 |
Teil III: Verhaltensmodellierung | 260 |
12Use-Case-Diagramm | 262 |
12.1? Überblick | 263 |
12.1.1? Die Use-Case-Analyse | 263 |
12.1.2? Ursprung von Use-Cases | 264 |
12.2? Anwendungsbeispiel | 265 |
12.3? Anwendung im Projekt | 266 |
12.3.1? Typische Anwendungsbereiche | 266 |
12.3.2? Use-Cases und danach? | 266 |
12.4? Notationselemente | 267 |
12.4.1? Use-Case | 267 |
12.4.2? System (Betrachtungsgegenstand) | 270 |
12.4.3? Akteur | 272 |
12.4.4? «include»-Beziehung | 277 |
12.4.5? «extend»-Beziehung | 279 |
13Aktivitätsdiagramm | 284 |
13.1? Überblick | 285 |
13.1.1? Modellieren von Aktivitäten | 285 |
13.1.2? Das Token-Konzept | 286 |
13.1.3? Ursprung der Aktivitätsmodellierung | 290 |
13.2? Anwendungsbeispiel | 290 |
13.3? Anwendung im Projekt | 292 |
13.3.1? Geschäftsprozessmodellierung | 292 |
13.3.2? Beschreibung von Use-Cases | 293 |
13.3.3? Implementierung einer Operation | 294 |
13.4? Notationselemente | 295 |
13.4.1? Aktion | 295 |
13.4.2? Aktivität | 299 |
13.4.3? Objektknoten | 301 |
13.4.4? Kanten | 308 |
13.4.5? Kontrollelemente | 312 |
13.4.6? Startknoten | 313 |
13.4.7? Endknoten | 314 |
13.4.8? Verzweigungs- und Verbindungsknoten | 316 |
13.4.9? Synchronisations- und Parallelisierungsknoten | 320 |
13.4.10? Parametersatz | 323 |
13.4.11? Unterbrechungsbereich | 325 |
13.4.12? Exception-Handler | 327 |
13.4.13? Aktivitätsbereich | 329 |
13.4.14? Strukturierte Knoten | 332 |
13.4.15? Mengenverarbeitungsbereich | 333 |
13.4.16? Schleifenknoten | 338 |
13.4.17?Entscheidungsknoten | 343 |
14Zustandsautomat | 350 |
14.1? Überblick | 351 |
14.2? Anwendungsbeispiel | 353 |
14.3? Anwendung im Projekt | 354 |
14.3.1? Use-Cases und Zustandsautomaten | 354 |
14.3.2? Klassen und Zustandsautomaten | 355 |
14.3.3? Protokollzustandsautomaten | 356 |
14.4? Notationselemente | 358 |
14.4.1? Einfacher Zustand | 358 |
14.4.2? Transition | 361 |
14.4.3? Startzustand | 367 |
14.4.4? Endzustand | 369 |
14.4.5? Pseudozustände | 370 |
14.4.6? Kreuzung | 372 |
14.4.7? Entscheidung | 374 |
14.4.8? Terminator | 377 |
14.4.9? Zusammengesetzter Zustand | 378 |
14.4.10? Gabelung und Vereinigung | 384 |
14.4.11? Region | 386 |
14.4.12? Ein- und Austrittspunkt | 390 |
14.4.13? Unterzustandsautomatenzustände | 392 |
14.4.14? Historie | 395 |
14.4.15? Spezialisierung | 399 |
14.4.16? Protokollzustandsautomat | 402 |
14.5? Codeabbildung | 405 |
14.5.1? Einleitung | 405 |
14.5.2? Überblick | 405 |
14.5.3? Einfache Zustandsautomaten | 408 |
14.5.4? Erweiterungen der Zustandsautomaten | 415 |
14.5.5? Zusammengesetzte Zustände | 419 |
15Sequenzdiagramm | 422 |
15.1? Überblick | 423 |
15.1.1? Modellierung von Interaktionen | 424 |
15.1.2? Interaktionen im Sequenzdiagramm | 429 |
15.1.3? Ursprung der Sequenzdiagramme | 432 |
15.2? Anwendungsbeispiel | 434 |
15.3? Anwendung im Projekt | 435 |
15.3.1? Abgrenzung des Systemkontexts | 436 |
15.3.2? Realisierung von Use-Cases | 437 |
15.3.3? Spezifikation von Schnittstellen | 438 |
15.3.4? Detailmodellierung im Feindesign | 438 |
15.3.5? Test und Simulation | 439 |
15.4? Notationselemente | 440 |
15.4.1? Interaktion / Interaktionsrahmen | 440 |
15.4.2? Lebenslinie | 443 |
15.4.3? Nachricht | 449 |
15.4.4? Zustandsinvariante | 460 |
15.4.5? Kombiniertes Fragment | 463 |
15.4.6? Ordnungsbeziehung | 482 |
15.4.7? Interaktionsreferenz | 483 |
15.4.8? Verknüpfungspunkt | 486 |
15.4.9? Zerlegung von Lebenslinien | 489 |
16Kommunikationsdiagramm | 494 |
16.1? Überblick | 495 |
16.1.1? Interaktionen in Kommunikationsdiagrammen | 495 |
16.1.2? Auswahlkriterien für das Kommunikationsdiagramm | 496 |
16.2? Anwendungsbeispiel | 496 |
16.3? Anwendung im Projekt | 497 |
16.3.1? (Geschäftsprozess-)Analyse | 497 |
16.3.2? Zusammenwirken von Classifiern | 498 |
16.4? Notationselemente | 498 |
16.4.1? Interaktion / Interaktionsrahmen | 499 |
16.4.2? Lebenslinie | 499 |
16.4.3? Nachricht | 501 |
17Timing-Diagramm | 506 |
17.1? Überblick | 507 |
17.1.1? Interaktionen in Timing-Diagrammen | 507 |
17.1.2? Auswahlkriterien für das Timing-Diagramm | 508 |
17.2? Anwendungsbeispiel | 509 |
17.3? Anwendung im Projekt | 510 |
17.4? Notationselemente | 510 |
17.4.1? Interaktion / Interaktionsrahmen | 511 |
17.4.2? Lebenslinie | 512 |
17.4.3? Zeitverlaufslinie | 514 |
17.4.4? Nachricht | 517 |
17.4.5? Sprungmarke | 517 |
17.4.6? Wertverlaufslinie | 518 |
17.4.7? Ordnungsbeziehung | 519 |
18 Interaktionsübersichtsdiagramm | 522 |
18.1? Überblick | 523 |
18.2? Anwendungsbeispiel | 525 |
18.3? Anwendung im Projekt | 526 |
18.4? Notationselemente | 526 |
18.4.1? Interaktion/Interaktionsreferenz | 526 |
18.4.2? Kontrollelemente | 528 |
Teil IV: Weiterführendes | 532 |
19Tailoring – UML?2 Profile | 534 |
19.1? Motivation | 535 |
19.2? Einführung in Profile | 537 |
19.3? Anwendungsbeispiel | 538 |
19.4? Notationselemente | 539 |
19.4.1? Stereotyp | 539 |
19.4.2? Erweiterungsbeziehung | 543 |
19.4.3? Profil | 545 |
19.4.4? Profilanwendung | 546 |
19.5? Varianten und Beispiele | 550 |
19.6? Profile: Für & Wider | 550 |
19.7? Erstellen von Profilen | 551 |
19.8? Tools | 551 |
20SysML | 554 |
20.1? Was ist SysML? | 555 |
20.1.1? Die SysML in diesem Buch | 555 |
20.2? SysML – UML | 556 |
20.3? Diagramme der SysML | 556 |
20.3.1? Rahmen für Diagramme | 557 |
20.4? Strukturmodellierung | 557 |
20.4.1? Block | 558 |
20.4.2? Blockdefinitionsdiagramm | 558 |
20.4.3? Internes Blockdiagramm | 559 |
20.5? Verhaltensmodellierung | 562 |
20.5.1? Aktivitätsdiagramm der SysML | 562 |
20.6? Anforderungen und Traceability mit der SysML | 564 |
20.6.1? Anforderungsdiagramm | 564 |
20.6.2? Nachvollziehbarkeit | 566 |
Literaturverzeichnis | 568 |
Register | 572 |
Die wichtigsten Notationselemente der UML | 582 |