|
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 |
|