Karl-Heinz Rau Objektorientierte Systementwicklung Vom Geschäftsprozess zum Java-Programm Mit 162 Abbildungen vieweg
Überblick und Vorbemerkungen 1 1 Objektorientierte Software-Entwicklung 5 1.1 Überblick und Lernziele 5 1.2 Ausgangssituation und Ziele in der Software-Entwicklung 5 1.3 Das iterative, inkrementelle Vorgehensmodell 8 1.4 Vertrag zwischen Auftrag- und Auftragnehmer 13 1.5 Vorstellung des Fallbeispiels 16 1.6 Resümee und Ausblick : 18 1.7 Wiederholungsfragen und Aufgaben 19 2 Geschäftsprozessmodellierung und Anforderungsanalyse 21 2.1 Überblick und Lernziele 21 2.2 Grundlagen zur Vorbereitungsphase 22 2.3 Analyse der Geschäftsprozesse eines Unternehmens 23 2.3.1 Identifikation der Unternehmensziele 23 2.3.2 Identifikation und Beschreibung von Geschäftsprozessen 24 2.3.3 Identifikation und Beschreibung von Geschäftsanwendungsfällen..30 2.3.4 Glossar und Vision aus betriebswirtschaftlicher Sicht 34 2.3.5 Ergebnisse der Analyse von Geschäftsprozessen 39 2.4 Anforderungsanalyse im Rahmen der Vorbereitungsphase 39 2.4.1 Qualitätsmerkmale als Anforderungskategorien an Software-Systeme 39 2.4.2 Grundlagen zu Systemanwendungsfällen 42 2.4.3 Identifikation und Beschreibung von Systemanwendungsfällen 43 2.4.4 Prototyp für die Benutzungsschnittstelle zur Unterstützung der Anforderungsanalyse 50 2.4.5 Beschreibung ergänzender Anforderungen 51 2.4.6 Ansätze zur Aufwandschätzung und Nutzenbewertung in der Vorbereitungsphase 53
2.5 Resümee zur Anforderungsanalyse in der Vorbereitungsphase 55 2.6 Wiederholungsfragen und Aufgaben 58 3 Anforderungsanalyse 65 3.1 Überblick und Lernziele 65 3.2 Charakterisierung und Planung der Spezifikationsphase 66 3.3 Fachkonzept-Klassenmodell 67 3.3.1 Grundlagen zum Klassenmodell des Fachkonzepts 67 3.3.2 Vorgehen zum Identifizieren von Fachklassen 68 3.3.3 Validierung identifizierter Fachklassen 72 3.3.4 Identifikation und Modellierung von Attributen 73 3.3.5 Identifikation und Modellierung von Assoziationen 76 3.3.6 Identifikation und Modellierung von Generalisierungs- Spezialisierungsbeziehungen 82 3.3.7 Analysemuster als Hilfsmittel zur Erstellung eines Klassenmodells 83 3.4 System-Sequenzdiagramme 89 3.5 Spezifikation von System-Operationen 90 3.6 Resümee zur Anforderungsanalyse in der Spezifikationsphase 93 3.7 Wiederholungsfragen und Aufgaben 97 4 Analyse und Entwurf in der Spezifikationsphase 101 4.1 Überblick und Lernziele 101 4.2 Grundlagen zu Analyse und Entwurf 102 4.3 Anwendung von Mustern zur Modellierung von Operationen 105 4.3.1 Anwendung des Experten-Musters : 105 4.3.2 Anwendung des Polymorphismus-Muster 109 4.3.3 Anwendung des Erzeuger-Musters 110 4.3.4 Anwendung des Controller-Musters 113 4.4 Realisierung von Anwendungsfällen am Beispiel 116 4.4.1 Einführung 116 4.4.2 System-Operation: anlegenneuedozentenabrechnungo 117 4.4.3 System-Operation: erfassenabrechnungspositionfuerlehrveranstaltungstermino 119 VIII
4.4.4 System-Operation: erfassenabrechnungspositionfuerreisekosteno 120 4.4.5 System-Operation: freigeben AbrechnungO 122 4.4.6 Auswirkungen auf das Klassenmodell 124 4.4.7 Entwurf des Start-Anwendungsfalls 126 4.5 Sichtbarkeit und Ergänzungen des Klassenmodells 127 4.5.1 Sichtbarkeit zwischen Objekten 127 4.5.2 Ergänzungen im Klassenmodell 129 4.6 Resümee zu Analyse und Entwurf in der Spezifikationsphase 132 4.7 Wiederholungsfragen und Aufgaben ' 134 5 Gestaltung der Mensch-Computer-Interaktion 137 5.1 Überblick und Lernziele 137 5.2 Grundlagen zur Mensch-Computer-Interaktion 138 5.3 Grundsätze der Dialoggestaltung 140 5.4 Elemente der Dialoggestaltung 147 5.4.1 Grundlagen 147 5.4.2 Fenster 148 5.4.3 Menüs 150 5.4.4 Interaktionselemente 152 5.4.5 Entwicklungsschritte zur Dialog-Schnittstelle 154 5.5 Resümee zur Gestaltung der Mensch-Computer-Interaktion 157 5.6 Wiederholungsfragen und Aufgaben 159 6 Computer Aided Software Engineering (CASE) und Model Driven Architecture (MDA) 163 6.1 Überblick und Lernziele 163 6.2 Grundlagen zu CASE 164 6.3 Allgemeine Anforderungen an CASE-Umgebungen 165 6.4 Überblick zu CASE-Umgebungen 167 6.5 Grundzüge der Model Driven Architecture (MDA) 169 6.6 Charakterisierung einer speziellen CASE-Umgebung 174 IX
6.7 Wiederholungsfragen und Aufgaben 176 7 Entwurf der Systemarchitektur 179 7.1 Überblick und Lernziele 179 7.2 Gegenstand und Ziele des Software-Entwurfs 180 7.2.1 Ziele für den Software-Entwurf 180 7.2.2 Das Schichtenmodell als grundsätzliches Architekturprinzip 181 7.3 Entwurfsmöglichkeiten für die Fachkonzeptschicht 184 i 7.4 Entwurfsmöglichkeiten für die Dialogschicht 186 7.4.1 Komponenten des Model View Controller Musters 186 7.4.2 Entwurfsmöglichkeiten bei Web-Anwendungen 188 7.5 Entwurfsmöglichkeiten für die Datenhaltungsschicht 191 7.5.1 Zusammenwirken zwischen Geschäftslogik und Datenhaltung 191 7.5.2 Verhaltensorientierte Aspekte des Entwurfs der Datenhaltung 194 7.5.3 Abbildung des Klassenmodells auf das Tabellenschema 196 7.5.4 Metadaten Mapping 202 7.6 Zusammenfassung 203 7.7 Wiederholungsfragen und Aufgaben 206 8 Ausgewählte Entwurfsmuster mit Beispielen 209 8.1 Überblick und Lernziele 209 8.2 Allgemeine Grundlagen zu Entwurfsmustern 209 8.3 Ausgewählte Erzeugungsmuster 212 8.3.1 Erzeugungsmuster Fabrikmethode 212 8.3.2 Erzeugungsmuster Abstrakte Fabrik 214 8.3.3 Erzeugungsmuster Singleton 217 8.4 Beschreibung und Anwendung ausgewählter Strukturmuster 219 8.4.1 Strukturmuster Fassade 219 8.4.2 Strukturmuster Adapter 221 8.4.3 Strukturmuster Kompositum 224 8.5 Ausgewählte Verhaltensmuster 231 8.5.1 Verhaltensmuster Beobachter 231 8.5.2 Verhaltensmuster Schablonenmethode 233 X
8.5.3 Verhaltensmuster Zustand 239 8.6 Zusammenfassung 243 8.7 Wiederholungsfragen und Aufgaben 244 9 Annotierter Code am Anwendungsbeispiel 255 9.1 Überblick und Lernziele 255 9.2 Entwurf des Anwendungsbeispiels 255 9.3 Implementierung des Anwendungsbeispiels 268 9.3.1 Grundlagen und vorbereitende Maßnahmen 268 9.3.2 Implementierung des Start-Anwendungsfalls 270 9.3.3 Implementierung der System-Operation anzeigenabrechenbarelehrveranstaltungeno 272 9.3.4 Implementierung der System-Operation anlegendozentenabrechnungo 277 9.3.5 Implementierung der System-Operation erfassenabrechnungspositionfuerhonoraro 281 9.3.6 Implementierung der System-Operation erfassenabrechnungspositionfuerreisekosteno 284 9.3.7 Implementierung der System-Operation loeschenabrechnungspositiono 287 9.3.8 Implementierung der System-Operation freigebenabrechnungo 290 9.4 Zusammenfassung 296 9.5 Wiederholungsfragen und Aufgaben 298 Anhang 1 Ausgewählte Elemente der Unified Modeling Language (UML) 301 Al.l Überblick 301 A1.2 Grundlagen zur Unified Modeling Language (UML) 302 A1.3 Strukturmodellierung 304 Al.3.1 Klassendiagramm (class diagram) 305 Al.3.2 Paketdiagramm (package diagram) 321 Al.3.3 Weitere Strukturdiagramme im Überblick 323 A1.4 Verhaltensmodellierung 326 Al.4.1 Überblick zur Verhaltensmodellierung.< 326 XI
Al.4.2 Anwendungsfall-Diagramm (use-case-diagram) 326 Al.4.3 Aktivitätsdiagramm (activity diagram) 329 Al.4.4 Zustandsautomat (state machine) 335 Al.4.5 Interaktionsdiagramme 338 Al.4.6 Kommunikationsdiagramm... 341 Literaturverzeichnis 343 Stichwortverzeichnis 347 XII