UML 2 GLASKLAR //
- Viele Tipps und praktische Unterstützung für den richtigen Einsatz der UML 2. 4 in Projekten.
- Neu in der 4. Auflage: Ein ausführliches Kapitel zur Anwendung der UML 2. 4 in der Analysephase als Vorbereitung zum CPRE Advanced Level Modeling.
- Mit einem Vorwort von Chris Kobryn
- Weiterführende und aktuelle Informationen auf www. uml-glasklar. com
In diesem Buch lernen Sie die UML auf dem aktuellsten Stand kennen. Hier finden Sie alle Diagramme der UML ausführlich beschrieben und erfahren, wie Sie sie in Ihrem Projekt richtig anwenden. Zahlreiche Tipps, Tricks und anschauliche Beispiele helfen Ihnen dabei.
Als UML-Neuling erhalten Sie eine schrittweise Einführung in die Basiselemente, als erfahrener UML-Anwender können Sie die übersichtliche Darstellung der Notationsmittel der UML 2 als Nachschlagewerk nutzen. Wer sich auf die Prüfung zum Certified Professional für Requirements Engineering - Advanced Level Requirements Modeling des IREB e. V. vorbereiten will, erfährt hier, welche Teile der UML für ihn relevant sind.
Folgende Fragen werden u. a. beantwortet:
- Welche Diagramme gibt es in der UML?
- Aus welchen Elementen bestehen die Diagramme?
- Worauf sollte ich bei der Modellierung mit einem bestimmten Diagramm achten?
- Wie kann ich die UML an meine Projektbedürfnisse anpassen?
- Wie werden die wichtigsten Diagramme im Programmcode abgebildet?
- Was benötige ich wirklich von der UML?
AUS DEM INHALT: Einführung: Grundkonzepte und -elemente der UML - Analyse mit der UML - Die UML in der Realisierung; Strukturdiagramme: Klassendiagramm - Paketdiagramm - Objektdiagramm - Kompositionsstrukturdiagramm - Komponentendiagramm - Verteilungsdiagramm; Verhaltensmodellierung: Use-Case-Diagramm - Aktivitätsdiagramm - Zustandsautomat - Sequenzdiagramm - Kommunikationsdiagramm - Timing-Diagramm - Interaktionsübersichtsdiagramm; Weiterführendes: Tailoring - UML 2 Profile - SysML
Inhaltsverzeichnis
1;Inhalt;6 2;Vorwort;14 3;Einleitung;16 3.1;Liebe Leserin, lieber Leser,;16 3.1.1;Wer dieses Buch aus welchem Grund lesen sollte;18 3.2;Ihre Meinung ist uns sehr wichtig;19 3.3;Danksagungen;19 3.4;Die Autoren;20 4;Teil I: Einführung;22 4.1;1UML.2 Rückblick, Nabelschau und Ausblick;24 4.1.1;1.1 Was ist die UML ...;25 4.1.2;1.2 ... und was will sie nicht sein?;25 4.1.3;1.3 Entwicklungsgeschichtliches zur UML;26 4.1.4;1.4 Diagrammsprachen der UML.2;28 4.2;2 Vorgehensempfehlungen;30 4.2.1;2.1 Wissen explizieren;31 4.2.2;2.2 Vorgehenstipps aus der UML-Praxis;31 4.3;3Grundkonzepte und -elemente der UML;34 4.3.1;3.1 Grundkonzepte der UML;35 4.3.1.1;3.1.1 Repräsentation von UML-Elementen;35 4.3.1.2;3.1.2 Diagramm, Diagrammtyp & Sicht;36 4.3.2;3.2 Grundelemente der UML;42 4.3.2.1;3.2.1 Modell;42 4.3.2.2;3.2.2 Kommentar;43 4.3.2.3;3.2.3 Ausdruck;44 4.3.2.4;3.2.4 Randbedingung;45 4.3.2.5;3.2.5 Classifier;46 4.3.2.6;3.2.6 Datentyp;47 4.3.2.7;3.2.7 Primitiver Typ;49 4.3.2.8;3.2.8 Aufzählungstyp;50 4.3.2.9;3.2.9 Literal;51 4.3.2.10;3.2.10 UML-Schlüsselwörter;52 4.3.3;3.3 Strukturierung der Sprache UML.2;53 4.3.3.1;3.3.1 Einteilung in Language Units;53 4.3.3.2;3.3.2 Einteilung in Compliance Levels;53 4.3.4;3.4 Freiheitsgrade in der UML;55 4.3.4.1;3.4.1 Semantic Variation Points;55 4.3.4.2;3.4.2 Presentation Options;55 4.3.5;3.5 Die 4-Schichten-Architektur;56 4.3.5.1;3.5.1 M 0 Die Laufzeitschicht;56 4.3.5.2;3.5.2 M 1 Die Modellschicht;56 4.3.5.3;3.5.3 M 2 Die Metamodellschicht;58 4.3.5.4;3.5.4 M 3 Die Meta-Metamodellschicht;58 4.4;4Analyse mit der UML;60 4.4.1;4.1 Einführung;61 4.4.1.1;4.1.1 Notwendige Festlegungen;61 4.4.1.2;4.1.2 Das Beispiel Zugtürsystem;63 4.4.2;4.2 Aufgaben der Analyse;65 4.4.3;4.3 Definieren der Systemgrenzen;66 4.4.4;4.4 Beschreiben der Funktionalitäten;68 4.4.4.1;4.4.1 Use-Cases identifizieren;68 4.4.4.2;4.4.2 Use-Cases verfeinern;69 4.4.5;4.5 Zustandsautomaten in der Analyse;75 4.4.6;4.6 Das Begriffsmodell;76 4.4.7;4.7 Verbindung zu natürlich-sprachlichen
Anforderungen;77 4.4.8;4.8 Ausgewählte Modellierungsszenarien;79 4.4.8.1;4.8.1 Aufgaben von Systemschnittstellen;81 4.4.8.2;4.8.2 Modellierung der Use-Case-Auslöser;84 4.4.8.3;4.8.3 Modellierung von Interaktionen in Dialogen;86 4.4.8.4;4.8.4 Modellierung einer SOA;89 4.4.8.5;4.8.5 Weitere Tipps zur Modellierung von Anforderungen;93 4.5;5Die UML in der Realisierung;98 4.5.1;5.1 Systemarchitektur;99 4.5.1.1;5.1.1 Aufgaben;99 4.5.1.2;5.1.2 Zerlegen des Systems;100 4.5.1.3;5.1.3 Verteilen der Verantwortlichkeiten;102 4.5.1.4;5.1.4 Beschreiben der Schnittstellen;103 4.5.1.5;5.1.5 Weitere Aspekte der Systemarchitektur;106 4.5.2;5.2 Softwareanalyse;110 4.5.2.1;5.2.1 Aufgaben;110 4.5.2.2;5.2.2 Beschreibung der Funktionalitäten;112 4.5.2.3;5.2.3 Detaillierte Modellierung des Verhaltens;113 4.5.2.4;5.2.4 Weitere Aspekte im Vergleich zur Systemanalyse;113 4.5.3;5.3 Softwarearchitektur;114 4.5.3.1;5.3.1 Aufgaben;114 4.5.3.2;5.3.2 Die Dekompositionssicht;114 4.5.3.3;5.3.3 Die Kompositionssicht;118 4.5.3.4;5.3.4 Weitere Aspekte der Softwarearchitektur;119 4.5.4;5.4 Feindesign;120 4.5.4.1;5.4.1 Aufgaben;120 4.5.4.2;5.4.2 Feindesign für eine objektorientierte Implementierung;120 4.5.4.3;5.4.3 Feindesign für eine nicht objektorientierte Implementierung;123 5;Teil II: Strukturdiagramme;126 5.1;6Klassendiagramm;128 5.1.1;6.1 Überblick;129 5.1.1.1;6.1.1 Modellieren von Klassen;129 5.1.1.2;6.1.2 Grundgedanke der Klassenmodellierung;130 5.1.1.3;6.1.3 Klassen und Objekte;131 5.1.1.4;6.1.4 Klassen und Attribute;131 5.1.1.5;6.1.5 Woher kommen Klassen?;132 5.1.2;6.2 Anwendungsbeispiel;133 5.1.3;6.3 Anwendung im Projekt;134 5.1.3.1;6.3.1 Konzeptuell-analytische Modellierung;134 5.1.3.2;6.3.2 Logische, designorientierte Modellierung;135 5.1.4;6.4 Notationselemente;136 5.1.4.1;6.4.1 Klasse;136 5.1.4.2;6.4.2 Attribut;139 5.1.4.3;6.4.3 Operation;144 5.1.4.4;6.4.4 Schnittstelle;150 5.1.4.5;6.4.5 Parametrisierte Klasse;153 5.1.4.6;6.4.6 Generalisierung;156 5.1.4.7;6.4.7 Generalisierungsmenge;161 5.
1.4.8;6.4.8 Assoziation;163 5.1.4.9;6.4.9 Assoziationsklasse;178 5.1.4.10;6.4.10 Abhängigkeitsbeziehung;180 5.1.4.11;6.4.11 Verwendungsbeziehung;182 5.1.4.12;6.4.12 Abstraktionsbeziehung;183 5.1.4.13;6.4.13 Realisierungsbeziehung;185 5.1.4.14;6.4.14 Substitutionsbeziehung;186 5.1.4.15;6.4.15 Informationsfluss;187 5.1.4.16;6.4.16 Informationseinheit;188 5.2;7Paketdiagramm;192 5.2.1;7.1 Überblick;193 5.2.2;7.2 Anwendungsbeispiel;193 5.2.3;7.3 Anwendung im Projekt;194 5.2.3.1;7.3.1 Funktionale Gliederung;194 5.2.3.2;7.3.2 Definition von Schichten;195 5.2.4;7.4 Notationselemente;196 5.2.4.1;7.4.1 Paket;196 5.2.4.2;7.4.2 Paket-Import / Element-Import;197 5.2.4.3;7.4.3 Paket-Merge;200 5.3;8Objektdiagramm;204 5.3.1;8.1 Überblick;205 5.3.1.1;8.1.1 Die Inhalte eines Objektdiagramms;205 5.3.1.2;8.1.2 Die Modellierung von Objektdiagrammen;206 5.3.1.3;8.1.3 Vergleich: Klassen- und Objektdiagramm;207 5.3.2;8.2 Anwendungsbeispiel;208 5.3.3;8.3 Anwendung im Projekt;208 5.3.4;8.4 Notationselemente;209 5.3.4.1;8.4.1 Instanzbeschreibung / Objekt;209 5.3.4.2;8.4.2 Werteangaben / Slots;211 5.3.4.3;8.4.3 Link;212 5.4;9 Kompositionsstrukturdiagramm;214 5.4.1;9.1 Überblick;215 5.4.1.1;9.1.1 Motivation und Hinführung;217 5.4.1.2;9.1.2 Modellieren von Kollaborationen;222 5.4.1.3;9.1.3 Kapselung durch Ports;223 5.4.2;9.2 Anwendungsbeispiel;224 5.4.3;9.3 Anwendung im Projekt;224 5.4.3.1;9.3.1 Darstellung einer Architektur;224 5.4.3.2;9.3.2 Struktur einer Use-Case-Realisierung;225 5.4.3.3;9.3.3 Kennzeichnung und Visualisierung von Design-Pattern;226 5.4.4;9.4 Notationselemente;229 5.4.4.1;9.4.1 Part;229 5.4.4.2;9.4.2 Konnektor;230 5.4.4.3;9.4.3 Port;232 5.4.4.4;9.4.4 Kollaboration;233 5.4.4.5;9.4.5 Kollaborationsanwendung;235 5.5;10 Komponentendiagramm;236 5.5.1;10.1 Überblick;237 5.5.2;10.2 Anwendungsbeispiel;238 5.5.3;10.3 Anwendung im Projekt;239 5.5.4;10.4 Notationselemente;241 5.5.4.1;10.4.1 Komponente;241 5.5.4.2;10.4.2 Artefakt;244 5.6;11Verteilungsdiagramm;248 5.6.1;11.1 Überblick;249
5.6.2;11.2 Anwendungsbeispiel;250 5.6.3;11.3 Anwendung im Projekt;250 5.6.3.1;11.3.1 Abgrenzung des Systemkontexts;251 5.6.3.2;11.3.2 Dokumentation von Hardwarevorgaben;252 5.6.4;11.4 Notationselemente;252 5.6.4.1;11.4.1 Knoten;252 5.6.4.2;11.4.2 Kommunikationspfad;254 5.6.4.3;11.4.3 Verteilungsbeziehung;255 5.6.4.4;11.4.4 Einsatzspezifikation;257 6;Teil III: Verhaltensmodellierung;260 6.1;12Use-Case-Diagramm;262 6.1.1;12.1 Überblick;263 6.1.1.1;12.1.1 Die Use-Case-Analyse;263 6.1.1.2;12.1.2 Ursprung von Use-Cases;264 6.1.2;12.2 Anwendungsbeispiel;265 6.1.3;12.3 Anwendung im Projekt;266 6.1.3.1;12.3.1 Typische Anwendungsbereiche;266 6.1.3.2;12.3.2 Use-Cases und danach?;266 6.1.4;12.4 Notationselemente;267 6.1.4.1;12.4.1 Use-Case;267 6.1.4.2;12.4.2 System (Betrachtungsgegenstand);270 6.1.4.3;12.4.3 Akteur;272 6.1.4.4;12.4.4 include-Beziehung;277 6.1.4.5;12.4.5 extend-Beziehung;279 6.2;13Aktivitätsdiagramm;284 6.2.1;13.1 Überblick;285 6.2.1.1;13.1.1 Modellieren von Aktivitäten;285 6.2.1.2;13.1.2 Das Token-Konzept;286 6.2.1.3;13.1.3 Ursprung der Aktivitätsmodellierung;290 6.2.2;13.2 Anwendungsbeispiel;290 6.2.3;13.3 Anwendung im Projekt;292 6.2.3.1;13.3.1 Geschäftsprozessmodellierung;292 6.2.3.2;13.3.2 Beschreibung von Use-Cases;293 6.2.3.3;13.3.3 Implementierung einer Operation;294 6.2.4;13.4 Notationselemente;295 6.2.4.1;13.4.1 Aktion;295 6.2.4.2;13.4.2 Aktivität;299 6.2.4.3;13.4.3 Objektknoten;301 6.2.4.4;13.4.4 Kanten;308 6.2.4.5;13.4.5 Kontrollelemente;312 6.2.4.6;13.4.6 Startknoten;313 6.2.4.7;13.4.7 Endknoten;314 6.2.4.8;13.4.8 Verzweigungs- und Verbindungsknoten;316 6.2.4.9;13.4.9 Synchronisations- und Parallelisierungsknoten;320 6.2.4.10;13.4.10 Parametersatz;323 6.2.4.11;13.4.11 Unterbrechungsbereich;325 6.2.4.12;13.4.12 Exception-Handler;327 6.2.4.13;13.4.13 Aktivitätsbereich;329 6.2.4.14;13.4.14 Strukturierte Knoten;332 6.2.4.15;13.4.15 Mengenverarbeitungsbereich;333 6.2.4.16;13.4.16 Schleifenknoten;338 6.2.4.17;13.4.17 Entscheidungsknoten;343 6.3;14Zustand
sautomat;350 6.3.1;14.1 Überblick;351 6.3.2;14.2 Anwendungsbeispiel;353 6.3.3;14.3 Anwendung im Projekt;354 6.3.3.1;14.3.1 Use-Cases und Zustandsautomaten;354 6.3.3.2;14.3.2 Klassen und Zustandsautomaten;355 6.3.3.3;14.3.3 Protokollzustandsautomaten;356 6.3.4;14.4 Notationselemente;358 6.3.4.1;14.4.1 Einfacher Zustand;358 6.3.4.2;14.4.2 Transition;361 6.3.4.3;14.4.3 Startzustand;367 6.3.4.4;14.4.4 Endzustand;369 6.3.4.5;14.4.5 Pseudozustände;370 6.3.4.6;14.4.6 Kreuzung;372 6.3.4.7;14.4.7 Entscheidung;374 6.3.4.8;14.4.8 Terminator;377 6.3.4.9;14.4.9 Zusammengesetzter Zustand;378 6.3.4.10;14.4.10 Gabelung und Vereinigung;384 6.3.4.11;14.4.11 Region;386 6.3.4.12;14.4.12 Ein- und Austrittspunkt;390 6.3.4.13;14.4.13 Unterzustandsautomatenzustände;392 6.3.4.14;14.4.14 Historie;395 6.3.4.15;14.4.15 Spezialisierung;399 6.3.4.16;14.4.16 Protokollzustandsautomat;402 6.3.5;14.5 Codeabbildung;405 6.3.5.1;14.5.1 Einleitung;405 6.3.5.2;14.5.2 Überblick;405 6.3.5.3;14.5.3 Einfache Zustandsautomaten;408 6.3.5.4;14.5.4 Erweiterungen der Zustandsautomaten;415 6.3.5.5;14.5.5 Zusammengesetzte Zustände;419 6.4;15Sequenzdiagramm;422 6.4.1;15.1 Überblick;423 6.4.1.1;15.1.1 Modellierung von Interaktionen;424 6.4.1.2;15.1.2 Interaktionen im Sequenzdiagramm;429 6.4.1.3;15.1.3 Ursprung der Sequenzdiagramme;432 6.4.2;15.2 Anwendungsbeispiel;434 6.4.3;15.3 Anwendung im Projekt;435 6.4.3.1;15.3.1 Abgrenzung des Systemkontexts;436 6.4.3.2;15.3.2 Realisierung von Use-Cases;437 6.4.3.3;15.3.3 Spezifikation von Schnittstellen;438 6.4.3.4;15.3.4 Detailmodellierung im Feindesign;438 6.4.3.5;15.3.5 Test und Simulation;439 6.4.4;15.4 Notationselemente;440 6.4.4.1;15.4.1 Interaktion / Interaktionsrahmen;440 6.4.4.2;15.4.2 Lebenslinie;443 6.4.4.3;15.4.3 Nachricht;449 6.4.4.4;15.4.4 Zustandsinvariante;460 6.4.4.5;15.4.5 Kombiniertes Fragment;463 6.4.4.6;15.4.6 Ordnungsbeziehung;482 6.4.4.7;15.4.7 Interaktionsreferenz;483 6.4.4.8;15.4.8 Verknüpfungspunkt;486 6.4.4.9;15.4.9 Zerlegung von Lebenslinien;489 6.5
;16Kommunikationsdiagramm;494 6.5.1;16.1 Überblick;495 6.5.1.1;16.1.1 Interaktionen in Kommunikationsdiagrammen;495 6.5.1.2;16.1.2 Auswahlkriterien für das Kommunikationsdiagramm;496 6.5.2;16.2 Anwendungsbeispiel;496 6.5.3;16.3 Anwendung im Projekt;497 6.5.3.1;16.3.1 (Geschäftsprozess-)Analyse;497 6.5.3.2;16.3.2 Zusammenwirken von Classifiern;498 6.5.4;16.4 Notationselemente;498 6.5.4.1;16.4.1 Interaktion / Interaktionsrahmen;499 6.5.4.2;16.4.2 Lebenslinie;499 6.5.4.3;16.4.3 Nachricht;501 6.6;17Timing-Diagramm;506 6.6.1;17.1 Überblick;507 6.6.1.1;17.1.1 Interaktionen in Timing-Diagrammen;507 6.6.1.2;17.1.2 Auswahlkriterien für das Timing-Diagramm;508 6.6.2;17.2 Anwendungsbeispiel;509 6.6.3;17.3 Anwendung im Projekt;510 6.6.4;17.4 Notationselemente;510 6.6.4.1;17.4.1 Interaktion / Interaktionsrahmen;511 6.6.4.2;17.4.2 Lebenslinie;512 6.6.4.3;17.4.3 Zeitverlaufslinie;514 6.6.4.4;17.4.4 Nachricht;517 6.6.4.5;17.4.5 Sprungmarke;517 6.6.4.6;17.4.6 Wertverlaufslinie;518 6.6.4.7;17.4.7 Ordnungsbeziehung;519 6.7;18 Interaktionsübersichtsdiagramm;522 6.7.1;18.1 Überblick;523 6.7.2;18.2 Anwendungsbeispiel;525 6.7.3;18.3 Anwendung im Projekt;526 6.7.4;18.4 Notationselemente;526 6.7.4.1;18.4.1 Interaktion/Interaktionsreferenz;526 6.7.4.2;18.4.2 Kontrollelemente;528 7;Teil IV: Weiterführendes;532 7.1;19Tailoring UML.2 Profile;534 7.1.1;19.1 Motivation;535 7.1.2;19.2 Einführung in Profile;537 7.1.3;19.3 Anwendungsbeispiel;538 7.1.4;19.4 Notationselemente;539 7.1.4.1;19.4.1 Stereotyp;539 7.1.4.2;19.4.2 Erweiterungsbeziehung;543 7.1.4.3;19.4.3 Profil;545 7.1.4.4;19.4.4 Profilanwendung;546 7.1.5;19.5 Varianten und Beispiele;550 7.1.6;19.6 Profile: Für & Wider;550 7.1.7;19.7 Erstellen von Profilen;551 7.1.8;19.8 Tools;551 7.2;20SysML;554 7.2.1;20.1 Was ist SysML?;555 7.2.1.1;20.1.1 Die SysML in diesem Buch;555 7.2.2;20.2 SysML UML;556 7.2.3;20.3 Diagramme der SysML;556 7.2.3.1;20.3.1 Rahmen für Diagramme;557 7.2.4;20.4 Strukturmodellierung;557 7.2.4.1;20.4.1 Block;558 7.2.4.2;20.4.2
Blockdefinitionsdiagramm;558 7.2.4.3;20.4.3 Internes Blockdiagramm;559 7.2.5;20.5 Verhaltensmodellierung;562 7.2.5.1;20.5.1 Aktivitätsdiagramm der SysML ;562 7.2.6;20.6 Anforderungen und Traceability mit der SysML;564 7.2.6.1;20.6.1 Anforderungsdiagramm;564 7.2.6.2;20.6.2 Nachvollziehbarkeit;566 8;Literaturverzeichnis ;568 9;Register;572 10;Die wichtigsten Notationselemente der UML;582