Table Of ContentKarl-Heinz Rau
Objektorientierte
Systementwicklung
Aus dem Bereich IT erfolgreich lernen
Java für IT-Berufe
von Wolf-Gert Matthäus
Middleware in Java
von Steffen Heinzl und Markus Mathes
Profikurs Eclipse 3
von Gottfried Wolmeringer und Thorsten Klein
IT-Projekte strukturiert realisieren
von Ralph Brugger
Grundkurs Geschäftsprozess-Management
von Andreas Gadatsch
Grundkurs Relationale Datenbanken
von René Steiner
Grundkurs JAVA
von Dietmar Abts
AufbaukursJAVA
von Dietmar Abts
Grundkurs Java-Technologien
von Erwin Merker und Dietmar Abts
Programmieren lernen mit Java
von Erwin Merker und Roman Merker
Objektorientierte Systementwicklung
von Karl-Heinz Rau
www.vieweg.de
Karl-Heinz Rau
Objektorientierte
Systementwicklung
Vom Geschäftsprozess
zum Java-Programm
Mit 162 Abbildungen
Bibliografische Information Der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet über <http://dnb.d-nb.de> abrufbar.
Das in diesem Werk enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgend-
einer Art verbunden. Der Autor übernimmt infolgedessen keine Verantwortung und wird keine daraus
folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses
Programm-Materials oder Teilen davon entsteht.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk
berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne
von Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von
jedermann benutzt werden dürfen.
Höchste inhaltliche und technische Qualität unserer Produkte ist unser Ziel. Bei der Produktion und
Auslieferung unserer Bücher wollen wir die Umwelt schonen: Dieses Buch ist auf säurefreiem und
chlorfrei gebleichtem Papier gedruckt. Die Einschweißfolie besteht aus Polyäthylen und damit aus
organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe
freisetzen.
1. Auflage März 2007
Alle Rechte vorbehalten
©Friedr.Vieweg & Sohn Verlag | GWV Fachverlage GmbH, Wiesbaden 2007
Lektorat: Günter Schulz / Andrea Broßler
Der Vieweg Verlag ist ein Unternehmen von Springer Science+BusinessMedia.
www.vieweg.de
Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede
Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne
Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für
Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung
und Verarbeitung in elektronischen Systemen.
Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de
Umschlagbild: Nina Faber de.sign, Wiesbaden
Druck-und buchbinderische Verarbeitung: MercedesDruck, Berlin
Printed in Germany
ISBN 978-3-8348-0245-3
Vorwort
Das Ziel dieses Lehrbuches ist, ein durchgängiges Konzept zur Entwicklung ob-
jektorientierter Anwendungs-Software vorzustellen. Ausgangspunkt ist der Ge-
schäftsprozess im Unternehmen, der durch Anwendungs-Software unterstützt
werden soll. Dem Leser werden Methoden vorgestellt, die eine systematische Ab-
leitung von Anforderungen erlaubt, welche Schritt für Schritt in lauffähige Soft-
ware überführt werden.
Das Buch ist aufgrund mehrjähriger Erfahrung im Rahmen einer vierstündigen
Lehrveranstaltung im Hauptstudium der Wirtschaftsinformatik entstanden. Das
didaktische Konzept geht davon aus, dass sich das Buch sowohl zum Selbststudi-
um eignet, als auch mit einer Präsenzveranstaltung kombiniert werden kann. Die
besten Erfahrungen habe ich damit gemacht, dass die Studierenden jeweils die
Kapitel vor der Lehrveranstaltung lesen und damit bereits fachlich gut vorbereitet
in die Lehrveranstaltung kommen. In der Lehrveranstaltung werden die wichtigs-
ten Inhalte dialogorientiert vertieft und vor allem an einem einfachen durchgängi-
gen Beispiel angewandt.
Lernzuwachs
Phase 1: Phase 2: Phase 3:
Individuelles Lernen im Lernen in der
Lernen Unterricht Kleingruppe
Vorwort
Im Sinne eines dreistufigen Lernmodells bearbeiten die Studierenden begleitend
zu den Präsenzveranstaltungen eine überschaubar komplexe Projektaufgabe in
Teams von zwei bis drei maximal drei Studierenden. In dieser Phase werden den
Studierenden viele Fragestellungen erst bewusst. Dabei dient das Buch als Nach-
schlagewerk. Gemäß der obigen Abbildung wird bei diesem Vorgehen ein hohes
Maß an Lernzuwachs erreicht und das Buch leistet in allen Phasen einen Beitrag.
Jedes Kapitel wird durch einen Überblick mit Lernzielen eingeleitet und durch
Wiederholungsfragen und Aufgaben abgeschlossen. Damit wird das individuelle
Lernen nachdrücklich unterstützt. Den Ausführungen liegt ein durchgängiges
Beispiel zugrunde, an dem die Methoden und Konzepte erläutert werden. Die
programmtechnische Umsetzung ausgewählter Anwendungsfälle und weiterer
Beispiele erfolgt in Java. Im Text werden die Programme auch erläutert und damit
für den Leser nachvollziehbar. Ergänzend zu den abgedruckten Listings wird der
gesamte Programmcode über den Online-Service zum Buch auf der Webseite
des Verlags (www.vieweg.de) zum Herunterladen bereitgestellt. Primäre Ziel-
gruppe dieses einführenden Lehrbuches sind Bachelor-Studierende der Wirt-
schaftsinformatik im Hauptstudium an Universitäten, Fachhochschulen und Be-
rufsakademien. Auch Praktiker in der Anwendungsentwicklung, die sich in die
objektorientierte Systementwicklung einarbeiten wollen, sind angesprochen. Un-
weigerlich reflektiert die Auswahl und Darstellung der Inhalte die Anschauung,
Erfahrung und Meinung des Autors. Der Leser dieses Buches darf vor diesem Hin-
tergrund nicht erwarten, dass hinsichtlich der existierenden Methoden, Vorge-
hensweisen und Techniken Vollständigkeit angestrebt wird. Vielmehr wurde eine
Auswahl aktueller Ansätze derart getroffen, dass sich der Lernende mit einer
durchgängigen Vorgehensweise vertraut machen kann.
Zum Zustandekommen dieses Buches haben viele beigetragen. Insbesondere
möchte ich meinen Studierenden der letzten Jahre für ihre konstruktive Kritik
danken. Insbesondere bei der drucktechnischen Aufbereitung des Manuskripts hat
mich Johannes Meier als studentischer Mitarbeiter tatkräftig unterstützt, wofür ich
mich bedanke. Besonderen Dank möchte ich Frau Sybille Thelen vom Lektorat IT
des Vieweg Verlages sagen. Für die angenehme Zusammenarbeit möchte ich mich
bei Herrn Guenter Schulz als dem zuständigen Programmleiter ausdrücklich be-
danken. Meiner lieben Familie möchte ich für ihr Verständnis im Laufe dieses
Buchprojektes ganz herzlich danken. Bereits jetzt möchte ich mich bei Ihnen, lieber
Leser, für Anregungen, Hinweise oder Kritik bedanken (E-Mail: karl-heinz.rau@hs-
pforzheim.de).
Und nun viel Freude und Erfolg beim Lesen, Üben und Lernen.
Böblingen, im Januar 2007 Karl-Heinz Rau
VI
Inhaltsverzeichnis
Ü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
Inhaltsverzeichnis
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: anlegenNeueDozentenabrechnung().......................117
4.4.3 System-Operation:
erfassenAbrechnungspositionFuerLehrveranstaltungstermin()................119
VIII
Inhaltsverzeichnis
4.4.4 System-Operation: erfassenAbrechnungspositionFuerReisekosten()......120
4.4.5 System-Operation: freigebenAbrechnung().............................................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
Inhaltsverzeichnis
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
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