Inhalt 7
Inhalt

Vorbemerkungen 15

Vorwort 15
Warum sollten Sie dieses Buch lesen? 17
Legen der Grundlagen 17
Geben einer Entscheidungshilfe 18
Hilfe bei der Arbeit 18
Tiefgehende Beschreibung aller Funktionen 18
Beschreibung der wichtigsten Generatoren 19
Tipps zum unternehmensweiten Einsatz 19
Finden von Informationen 19
Typografie und Sprache 19
1 Die Welt in Objekten 21
1.1 Warum Objektorientierung? 21
1.1.1 Ein Paradigma kommt in die Jahre 21
1.1.2 Objektorientierung ist einfach 23
1.1.3 Objektorientierung macht Spaß 26
1.1.4 Objektorientierung hilft 29
1.1.5 Das macht man heute halt so 30
1.2 UML 30
1.2.1 Die Modellierungssprache von Rational Rose 30
1.2.2 Diagrammtypen der UML 33
1.2.3 Modelle strukturieren 36
1.2.4 Welche Diagramme wann? 37
1.2.5 Erweiterungsmöglichkeiten 39
1.3 Die Rolle von Rational Rose 40
1.3.1 Sinn und Umfeld 40
1.3.2 Einblick in die Historie 41
1.3.3 Einsatzmöglichkeiten von Rose 43
1.3.4 Die wichtigsten Features 45
1.3.5 Die Grenzen von Rose 49
1.3.6 Angrenzende Tools 50
1.4 Zusammenfassung 51
2 Der schnellste Weg zum ersten Modell 55
2.1 Die Grundlagen von Rational Rose 55
2.1.1 Installation 55
2.1.2 Lizensierung 57
2.1.3 Die Architektur von Rose 59
2.1.4 Die Bedienelemente 62
2.1.5 Die Einstellmöglichkeiten 76
2.1.6 Fehlende Features 85
2.2 Die Bedienung nach Aufgaben 86
2.2.1 Starten von Rose 86
2.2.2 Anlegen, Öffnen und Speichern eines Modells 87
2.2.3 Elemente anlegen 88
2.2.4 Elemente benennen 89
2.2.5 Diagramme layouten 89
2.2.6 Elemente löschen 91
2.3 Anforderungen als Anwendungsfälle 93
2.3.1 Anwendungsfälle sind Benutzeranforderungen 93
2.3.2 Anwendungsfälle finden 93
2.3.3 Anwendungsfalldiagramme erstellen 94
2.3.4 Die textliche Beschreibung 98
2.3.5 Verknüpfungsdetails 99
2.3.6 Vom Anwendungsfall zur Benutzeroberfläche 101
2.3.7 Anwendungsfälle detaillieren 103
2.3.8 Das Textdokument detaillieren 105
2.3.9 Anwendungsfälle prüfen 105
2.3.10 Anwendungsfälle sind Testfälle 106
2.3.11 Übung Geschäftsanwendungsfälle 107
2.4 Szenarios 107
2.4.1 Szenarios als Instanzen von Anwendungsfällen 107
2.4.2 Abläufe detaillieren: Aktivitätsdiagramm 109
2.4.3 Zeit kommt ins Spiel: Sequenzdiagramm 115
2.4.4 Zusammenarbeit darstellen: Kollaborationsdiagramm 118
2.4.5 Übung Szenarios 124
2.5 Domainmodellierung mit Klassen 124
2.5.1 Erzeugen neuer Klassen 124
2.5.2 Übung Domainmodellierung 130
2.6 Zusammenfassung 131
3 Die UML-Konstrukte im Detail 133
3.1 Akteure 133
3.1.1 Definition 133
3.1.2 Beschreibung 133
3.1.3 Notation 134
3.1.4 Beziehungen 137
3.2 Use-Cases 137
3.2.1 Definition 137
3.2.2 Beschreibung 138
3.2.3 Notation 138
3.2.4 Beziehungen 141
3.2.5 Übung Use-Cases 143
Inhalt 9
3.3 Aktivitäten 143
3.3.1 Definition 143
3.3.2 Beschreibung 143
3.3.3 Notation 144
3.3.4 Spezifikation 145
3.3.5 Unteraktivitäten 146
3.3.6 Übung Aktivitäten 149
3.4 Objekte und Interaktionen 150
3.4.1 Anlegen von Interaktionsdiagrammen 151
3.4.2 Optionen des Sequenzdiagramms 153
3.4.3 Optionen des Kollborationsdiagramms 157
3.4.4 Anzeigen von Stereotypen 159
3.4.5 Aufteilung in mehrere Diagramme 160
3.4.6 Übung Objekte und Interaktionen 160
3.5 Klassen 160
3.5.1 Anlegen von Klassen 161
3.5.2 Beschreiben der Klasseneigenheiten 161
3.5.3 Aufbau von speziellen Diagrammen 168
3.6 Attribute und Operationen 168
3.6.1 Anlegen von Attributen und Operationen 169
3.6.2 Spezifikation von Attributen 171
3.6.3 Spezifikation von Operationen 172
3.6.4 Verschieben von Attributen und Operationen 174
3.6.5 Kopieren von Attributen und Operationen 174
3.6.6 Weitere Editiermöglichkeiten 174
3.6.7 Optionen für die Diagramme 175
3.6.8 Übung Klassen 178
3.7 Klassenbeziehungen 178
3.7.1 Anlegen von Beziehungen 178
3.7.2 Vererbung 181
3.7.3 Assoziationen und Aggregationen 182
3.7.4 Assoziationsklassen 187
3.7.5 Realisierung 188
3.7.6 Abhängigkeiten 188
3.7.7 Darstellung in Diagrammen 189
3.7.8 Nutzung zur Navigation 190
3.7.9 Übung Klassenbeziehungen 190
3.8 Zustandsmodell 190
3.8.1 Anlegen von Zuständen 192
3.8.2 Spezifikation von Zuständen 193
3.8.3 Spezifikation von Transitionen 194
3.8.4 Aktionen 197
3.8.5 Erstellen von Subzuständen (»Sub states«) 198
3.8.6 Subdiagramme 198
3.8.7 Verschieben 199
3.8.8 Löschen von Elementen 199
10 Inhalt
3.8.9 Darstellungsoptionen im Diagramm 199
3.8.10 Übung Zustandsmodell 200
3.9 Komponenten 200
3.9.1 Spezifikation von Komponenten 201
3.9.2 Komponentendiagramme 204
3.9.3 Zuordnen von Klassen 205
3.9.4 Übung Komponenten 207
3.10 Knoten und Verteilung 207
3.10.1 Devices und Connections 208
3.10.2 Processors 208
3.10.3 Darstellungsoptionen 209
3.11 Pakete 209
3.11.1 Bedeutung der Pakete für das Modell 209
3.11.2 Der Spezifikationsdialog 211
3.11.3 Pakete auf Diagrammen 212
3.11.4 Beziehungen zwischen Paketen 213
3.11.5 Aufteilung in Dateien 214
3.11.6 Verschieben von Konstrukten 214
3.11.7 Die Übersicht behalten 215
3.11.8 Übung Pakete 216
3.12 Zusammenfassung 216
4 Der Projektalltag 219
4.1 Weitere grafische Möglichkeiten in Rose 219
4.1.1 Beschriftung 219
4.1.2 Nutzung von Notizen 220
4.1.3 Nutzung von Farben 222
4.1.4 Schriftarten 222
4.2 Navigation zwischen den Konstrukten 223
4.2.1 Navigation zu benachbarten Elementen 224
4.2.2 Finden eines Elements im Browser 224
4.2.3 Navigation im Browser 224
4.2.4 Finden eines Elements auf einem Diagramm 225
4.2.5 Suchen 225
4.2.6 Anzeigen des Hauptdiagramms 226
4.2.7 Finden des Ausgangselements 227
4.3 Prüfmöglichkeiten 227
4.3.1 Sichtprüfung von Diagrammen 228
4.3.2 Querverbindungen finden 228
4.3.3 Unaufgelöste Szenarios 235
4.3.4 Implementation eines Use-Cases finden 236
4.3.5 Zugriffsverletzungen 237
4.3.6 Weitere Auswertungen 239
Inhalt 11
4.4 Dokumentationsausgabe 240
4.4.1 Ausgabe auf Papier 240
4.4.2 Erzeugen von HTML-Ausgaben 242
4.5 Team-Development 245
4.5.1 Team-Development-Unterstützung in Rational Rose 245
4.5.2 Pakete als Controlled Units 245
4.5.3 Erstellen von Controlled Units 247
4.5.4 Virtual Path Map 250
4.5.5 Versionskontrolle 254
4.5.6 Der Model Integrator 260
4.5.7 Model WorkSpace 265
4.6 Konfiguration und Erweiterung 266
4.6.1 Stereotypen 267
4.6.2 Menüerweiterungen 281
4.6.3 Syntaxregeln 289
4.6.4 Kurzübersicht aller Aktionen, Variablen und Modifizierer 290
4.6.5 Modellproperties 292
4.6.6 Das Menü der Model Properties 292
4.6.7 Sprachen-Add-In 300
5 Skripting und COM-Server 305
5.1 Die RoseScript-IDE 306
5.1.1 Starten, Stoppen und Unterbrechen eines Skripts 308
5.1.2 Debuggen eines Skripts 308
5.1.3 Compilieren von Skripten 312
5.2 Der Einstieg in RoseScript 312
5.2.1 Ausgabefenster 312
5.2.2 Variablen 313
5.2.3 Prozeduren und Funktionen 315
5.2.4 If-Abfragen und Abfragedialog 316
5.2.5 Weitere Sprachkonstrukte von RoseScript 318
5.2.6 Dialoge in RoseScript 324
5.2.7 Anlegen von eigenen Dialogen mit dem Rose-Dialogeditor 328
5.2.8 Dynamische Dialoge 332
5.3 REI – Rose Extensibility Interface 335
5.3.1 Erzeugen einer Klassenliste 335
5.3.2 Anlegen von Klassen und Diagrammen 341
5.3.3 Ändern der Sprache einer Klasse – Arbeiten mit Komponenten 345
5.3.4 Nutzung des Error-Logs von Rose 351
5.3.5 Zugriff auf Path Map-Einträge 353
5.3.6 Assoziationen in Rose 354
5.3.7 Arbeiten mit Properties 356
5.3.8 Schlussbemerkung zur Nutzung des REI 360
12 Inhalt
5.4 Nutzung der COM-Schnittstelle 361
5.4.1 Rose als COM-Client 362
5.4.2 Rose als COM-Server 364
5.5 Events 367
5.6 Erstellung von eigenen Add-Ins 371
5.6.1 Basis- oder Sprachen-Add-In 371
5.6.2 Ein Basis-Add-In 374
5.6.3 Erweitern um ein Kontextmenü 379
6 Generatoren und Reverse-Engineering 387
6.1 C++ 387
6.1.1 Überblick 387
6.1.2 Das Beispiel 389
6.2 ANSI C++ 389
6.2.1 Vorbereitungen 391
6.2.2 Code generieren 394
6.2.3 Forward-Engineering 395
6.2.4 ANSI C++-Erweiterungen 433
6.2.5 Reverse-Engineering 434
6.2.6 Roundtrip-Engineering 442
6.2.7 Tabellen ANSI C++ Quelltext Mappings 447
6.