UML 2 glasklar - Praxiswissen für die UML-Modellierung
von: Chris Rupp, Stefan Queins, die SOPHISTen
Carl Hanser Fachbuchverlag, 2012
ISBN: 9783446431973
Sprache: Deutsch
596 Seiten, Download: 16255 KB
Format: PDF, auch als Online-Lesen
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 | ||
1 UML?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 | ||
3 Grundkonzepte 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 | ||
4 Analyse 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 | ||
5 Die 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 | ||
6 Klassendiagramm | 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 | ||
7 Paketdiagramm | 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 | ||
8 Objektdiagramm | 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 | ||
11 Verteilungsdiagramm | 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 | ||
12 Use-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 | ||
13 Aktivitä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 | ||
14 Zustandsautomat | 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 | ||
15 Sequenzdiagramm | 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 | ||
16 Kommunikationsdiagramm | 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 | ||
17 Timing-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 | ||
19 Tailoring – 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 | ||
20 SysML | 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 |