Software-Entwurf mit UML

Ähnliche Dokumente
Software-Entwurf mit UML 2

Software-Entwurf mit UML

Java für Fortgeschrittene

Virtuelle Unternehmen

Dietrich [uhl Technische Dokumentation

Ralf-Stefan Lossack Wissenschaftstheoretische Grundlagen für die rechnerunterstützte Konstruktion

Informatiker in der Wirtschaft

Übungsbuch Makroökonomik

Einführung in die objektorientierte Programmierung

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

Gudrun Höhne. Unternehmensführung in Europa. Ein Vergleich zwischen Deutschland, Großbritannien und Frankreich. Diplomica Verlag

Verkaufserfolg bei professionellen Kunden

Diana Gabriela Födinger. Das F. Emmi Pikler und Maria Montessori im Vergleich S P E I. Diplomica Verlag

Informatik. Christian Kuhn. Web 2.0. Auswirkungen auf internetbasierte Geschäftsmodelle. Diplomarbeit

Die Balanced Scorecard als Instrument des strategischen Managements aus Sicht eines mittelständischen Logistikunternehmens

Vermögenseinlagen stiller Gesellschafter, Genußrechtskapital und nachrangige Verbindlichkeiten als haftendes Eigenkapital von Kreditinstituten

Karin Hohmann. Unternehmens Excellence Modelle. Das EFQM-Modell. Diplomica Verlag

Usability-Engineering in der Medizintechnik

Bachelorarbeit. Grundlagen im Dienstleistungsunternehmen. Mit Qualitätsmanagement und Kundenorientierung zum Erfolg. Tobias Müller

Bibliografische Information der Deutschen Nationalbibliothek:

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

SPD als lernende Organisation

Die Anforderungen der MaRisk VA. an das Risikocontrolling

Requirements Engineering I

> INTELLIGENTE OBJEKTE

Diplomarbeit. Das Selbstbild deutscher und französischer Mütter. Eine empirische Studie zur Familienpolitik. Katharina Heilmann

Projektmanagement und interkulturelle Kommunikation

Markus Schäfer. Menschenrechte und die Europäische Union. Geschichte und Gegenwart der Menschenrechte in Europa. Diplomica Verlag

Das Konzept der organisationalen Identität

Kundenorientierung von Dienstleistungsunternehmen als kritischer Erfolgsfaktor

Kundenzufriedenheit im Mittelstand

Volkskrankheit Depression

MARKUS GASTPAR WERNER HEINZ THOMAS POEHLKE PETER RASCHKE. Glossar: Substitutionstherapie bei Drogenabhängigkeit

Vortrage Reden Erinnerungen

Die gesetzliche Unfallversicherung - von der Behörde zum modernen Dienstleistungsunternehmen

NACHRICHTENTECHNISCHER SYSTEME

Bibliografische Information der Deutschen Nationalbibliothek:

Der Vertrag von Lissabon

Das Geheimnis des kürzesten Weges

Simone Schmidt Anpacken Projektmanagement in Gesundheitsberufen Top im Gesundheitsjob

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Guerilla Marketing in der Automobilindustrie

Kundenbeziehungsmanagement

Die Bilanzierung von Pensionsrückstellungen

Die Bedeutung der Geburtenregistrierung. für die Verwirklichung der UN-Kinderrechte

Yoga - die Kunst, Körper, Geist und Seele zu formen

Schulungsprogramm Gefahrguttransport

Schulungsprogramm Gefahrguttransport

Einführung in das Management von Geschäftsprozessen

Roland Thomas Nöbauer. Genossenschaften. als Chancen für Kommunen. Potentialanalyse genossenschaftlicher Infrastrukturbetriebe.

Corporate Volunteering als Instrument der Personalarbeit

Ist Europa ein optimaler Währungsraum?

Relationship Marketing

Sport. Silke Hubrig. Afrikanischer Tanz. Zu den Möglichkeiten und Grenzen in der deutschen Tanzpädagogik. Examensarbeit

Bibliografische Information der Deutschen Nationalbibliothek:

G. Mödder Erkrankungen der Schilddrüse

Spätes Bietverhalten bei ebay-auktionen

Kapitalbedarfs- und Liquiditätsplanung bei einer Existenzgründung

Das Spannungsverhältnis von Teamarbeit und Führung

Walter Schmidt. Wie fuhre ich richtig?

Gero Vogl. Wandern ohne Ziel. Von der Atomdiffusion zur Ausbreitung von Lebewesen und Ideen

Die Unified Modeling Language UML

Westhoff Terlinden -Arzt. Entscheidungsorientierte psychologische Gutachten für das Familiengericht

Wirtschaft schnell erfasst

Wege aus der Softwarekrise

Informatik im Fokus. Herausgeber: Prof. Dr. O. Günther Prof. Dr. W. Karl Prof. Dr. R. Lienhart Prof. Dr. K. Zeppenfeld

MehrWERT(e) im Employer Branding

Objektorientierte Systementwicklung

Supply Chain Management: Einführung im Rahmen einer ganzheitlichen ERP-Implementierung

Innovationscontrolling

Erfolgsfaktoren für virtuelle Teams

Langfristige Unternehmenssicherung in KMU durch optimale Liquiditätsplanung und -steuerung

DOI /

Kennzahlenbasiertes Prozeßcontrolling für den Produktionsbereich in einem Unternehmen der Investitionsgüterindustrie

Wertorientierte Kennzahlen

Niels Klußmann Arnim Malik Lexikon der Luftfahrt

Taschenlexikon Logistik

Personalbeschaffung im Internet

Bibliografische Information der Deutschen Nationalbibliothek:

Frost- bzw. Frost-Taumittel-Widerstand von Beton

Die Rechenmaschinen von Konrad Zuse

John Gribbin. Am Anfang war... Neues vom Urknall und der Evolution des Kosmos. Aus dem Englischen von Hilmar W. Duerbeck.

Therapielexikon Neurologie

Rückengerechtes Verhalten

Cyber-Mobbing. Der virtuelle Raum als Schauplatz für Mobbing unter Kindern und Jugendlichen. Problemlagen und Handlungsmöglichkeiten.

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Dubai, Reiseziel der Zukunft

Massenentlassungen, Betriebsstilllegungen, Unternehmensinsolvenzen

Der optimale Webshop

Pferdegestützte Persönlichkeitsbildung

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

X.systems.press ist eine praxisorientierte Reihe zur Entwicklung und Administration von Betriebssystemen, Netzwerken und Datenbanken.

Janina Spieß. Die Beziehung zu Kindern in der Krippe gestalten. Gebärden und Gesten als pädagogische Hilfsmittel. Diplomica Verlag

Erfolgsfaktor Inplacement

Depressionen verstehen und bewältigen. Vierte Auflage

Wie funktioniert MRI?

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik

Bibliografische Information der Deutschen Nationalbibliothek:

Transkript:

Software-Entwurf mit UML

Springer-Verlag Berlin Heidelberg GmbH

Jochen Seemann Jürgen Wolffvon Gudenberg Software Entwurf mit UML Objektorientierte Modellierung mit Beispielen in Java Mit 228 Abbildungen Springer

Jochen Seemann Jürgen Wolff von Gudenberg Lehrstuhl Informatik 11 Universität Würzburg Am Hubland D-97074 Würzburg E-mai!: wolff@informatik.uni-wuerzburg.de seemann@acm.org Die Deutsche Bibliothek - Einheitsaufnahme Software-Entwurf mit UML [Medienkombinationl: objektorientierte ModelIierung mit Beispielen in Java/Jochen Seemann; Jürgen Wolffvon Gudenberg. ISBN 978-3-540-64103-2 ISBN 978-3-662-09929-2 (ebook) DOI 10.1007/978-3-662-09929-2 Buch. 2000 brosch. CD-ROM. 2000 Additional material to this book can be downloaded from htlp:/iextras.springer.com ISBN 978-3-540-64103-2 Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfaltigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes. Additional material to this book can be downloaded from htlp://extras.springer.com Springer-Verlag Berlin Heidelberg 2000 Ursprünglich erschienen bei Springer-Verlag Berlin Heidelberg New Y ork 2000 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daß solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Umschlaggestaltung: Künkel + Lopka, Werbeagentur, Heidelberg Satz: Reproduktionsfertige Vorlagen der Autoren Gedruckt auf säurefreiem Papier SPIN 10664686 3313142SR - 5432 1 0

Vorwort Der objektorientierte Software-Entwurf ist weiterhin auf dem Vormarsch. Nachdem sich Programmiersprachen wie C++ und Java rasch verbreitet hatten, rückte die objektorientierte Analyse und der objektorientierte Entwurf in den Mittelpunkt des Interesses. Eine Vielzahl von Entwicklungsmethoden wurde in den 90er Jahren publiziert. Hinter all diesen Ansätzen steht der Wunsch, die Erstellung von Software von der bloßen Programmierung in einen systematischen, nachvollziehbaren Herstellungsprozess zu verwandeln. Weil fast jeder, der eine objektorientierte Programmiersprache einsetzt, Diagramme zeichnet, die seine Software dokumentieren, standen Entwurfsdiagramme schon immer im Zentrum der objektorientierten Methoden. Im Zeichen zunehmender Komplexität, dem Trend zur Wiederverwendung von Software einerseits und der verteilten Entwicklung andererseits wurde der Wunsch nach einer einheitlichen Diagramm-Sprache für die Modellierung laut. Die Modellierungssprache UML (Unified Modeling Language), die sich innerhalb kurzer Zeit als Standard etabliert hat, stellt sich dieser Herausforderung. Darüberhinaus regte ihre Definition auch umfangreiche wissenschaftliche Aktivitäten an, und ihr Gebrauch wird immer mehr in Vorlesungen gelehrt. UML ist eine Modellierungssprache, die für die Dokumentation der Analyse, des Entwurfs und der Implementierung objektorientierter Software entworfen wurde. Zu diesem Zweck vereinigt die UML eine Vielzahl von Beschreibungstechniken und unterstützt verschiedene Modelle. Sie beinhaltet kein Vorgehensmodell zur Software-Entwicklung, gibt aber den Rahmen eines Entwurfsprozesses vor. Wir stellen im ersten Teil des Buches die visuelle, grafische Sprache UML, also die verschiedenen Untersprachen oder Diagrammarten, ähnlich wie eine Programmiersprache vor. Das zentrale Anliegen des zweiten Teils ist der sinnvolle Einsatz dieser Mittel, die Kombination mehrerer Diagrammarten, um unser letztendliches Ziel, die kontrollierte und dokumentierte Erstellung von Software zu erreichen. So widmen wir uns in diesem Teil des Buches der Umsetzung eines UML-Modells in ausführbaren Code. Als Zielsprache verwenden wir Java. Wir stellen ein einfaches Vorgehensmodell vor, das vorschreibt, wie man durch den Einsatz verschiedener UML-Diagramme Software entwirft. Die-

"I "orvvort se "orgehensvveise vvird vervvendet, um ein vollständiges Beispiel, den Entvvurf und die Implementierung einer Tabellenkalkulation, zu beschreiben. Die UML-Diagramme und das komplette Java Programm sind auf der beiliegenden CD enthalten. Dieses Buch wendet sich in gleicher Weise an den Anwender wie an den Lernenden. Wünschenswert, aber nicht zwingend, sind Grundkenntnisse einer objektorientierten Programmiersprache wie C++ oder Java. Das Buch soll den Schritt zum objektorientierten Software-Entwurf unterstützen, indem es Umsteigern eine Einführung vermittelt und die teilweise neuen Beschreibungstechniken erläutert. Durch seinen übersichtlichen, aussagekräftigen Referenzteil am Schluss hilft das Buch auch Profis beim täglichen Einsatz der UML. Diese Zusammenfassung der UML ist zusätzlich als Hypertext auf der CD zu finden. Studenten und Neulinge werden das Buch sicher von Kapitel Ibis Kapitel 15 lesen, während erfahrene Programmierer, die vor allem der Einsatz von UML zur Dokumentation der Software interessiert, vielleicht bei Kapitel 10 oder 11 anfangen werden und dann die einzelnen Kapitel des ersten Teiles nach Bedarf hinzuziehen. Das Buch ist entstanden aus Vorlesungen an der Universität Würzburg sowie Schulungen der Firma 3SOFT in Erlangen. Im Verlauf der Fertigstellung des Buches wurde von der Object Management Group (OMG) eine Erweiterung des vorliegenden UML-Standards angeregt, deren Entwicklung sich bis in den Juli 1999 erstreckte. Diese neue Version 1.3 wurde vollständig in Buch und Referenz eingearbeitet. Wir danken allen Kollegen, Studenten und Kursteilnehmern, die durch ihre Diskussionsbeiträge und Fragen zur Entstehung und Gestaltung des Buches beigetragen haben. Insbesondere sind hier Dr. Jürgen Schmied und Michael Lerch zu nennen, sowie Pet er Fleischmann, der uns bei der Layout "TeX"nik unterstützte. Den Mitarbeitern des Springer-Verlages danken wir für die Geduld, die sie für die in Terminnöte geratenen Autoren aufbrachten. Unser besonderer Dank gilt ferner unseren Familien, die durch ihre wohlwollende Unterstützung wesentlich zum Gelingen des Buches beitrugen. Würzburg, im August 1999 Jochen Seemann Jürgen Wolff von Gudenberg

Inhaltsverzeichnis Teil I. UML als Entwurfssprache 1. Modellierung von Software-Systemen..................... 1 1.1 Entstehung der UML... 2 1.2 Zum Aufbau des Buches................................. 4 1.3 Modelle, Sichten und Diagramme......................... 6 1.4 Das statische Modell.................................... 10 1.5 Das dynamische Modell................................. 11 2. Das Use-Case-Diagramm... 15 2.1 Anwendungsfälle... 16 2.2 Das Anwendungsfalldiagramm... 18 2.3 Verfeinerung von Anwendungsfällen....................... 19 2.4 Beziehungen in Use-Case-Diagrammen...... 20 2.5 Zusammenfassung... 24 3. Das Aktivitätsdiagramm.................................. 27 3.1 Abläufe und Vorgänge... 28 3.2 Auf teilung des Kontrollflusses............................ 29 3.3 Zuteilung der Verantwortung............................. 32 3.4 Objektfluss............................................ 32 3.5 Aktivitäten und Aktionen......................... 34 3.6 Zusammenfassung... 34 4. Das Klassendiagramm.................................... 37 4.1 Klassen... 38 4.2 Attribute und Operationen.............................. 39 4.3 Verantwortlichkeiten... 42 4.4 Objekte... 43 4.5 Verknüpfungen... 45 4.6 Kooperation... 46 4.7 Assoziationen... 48 4.7.1 Rollen und Richtungen............................ 48 4.7.2 Aggregation und Komposition... 52 4.7.3 Multiplizität... 54

VIII Inhaltsverzeichnis 4.7.4 Objektselektoren................................. 55 4.7.5 Assoziation als Klasse............................. 56 4.7.6 Mehrstellige Assoziationen......................... 57 4.8 Generalisierung... 59 4.8.1 Verallgemeinerung - Spezialisierung... 59 4.8.2 Abstraktion... 62 4.8.3 Klassifikation... 62 4.9 Klassen und Schnittstellen............................... 64 4.10 Schablonen............................................ 67 4.11 Erläuternder Text... 68 4.11.1 Bedingungen... 68 4.11.2 Kommentare................................... 71 4.11.3 Eigenschaftslisten... 71 4.12 Stereotypen............................................ 72 4.13 Zusammenfassung...................................... 73 5. Das Sequenzdiagramm.................................... 75 5.1 Nachrichtenaustausch................................... 76 5.2 Aktivitätszonen........................................ 77 5.3 Asynchrone Nachrichten................................. 78 5.4 Erzeugung und Zerstörung von Objekten.................. 80 5.5 Bedingungen... 81 5.6 Zeitachse... 83 5.7 Schleifen... 83 5.8 Zusammenfassung... 84 6. Das Kooperationsdiagramm... 87 6.1 Objekte und Nachrichten................................ 88 6.2 Multiobjekte........................................... 94 6.3 Anwendung von Kooperationsdiagrammen................. 96 7. Das Zustandsdiagramm... 99 7.1 Zustandsautomaten... 100 7.2 Zustände und Ereignisse... 101 7.3 Verzweigungen... 103 7.4 Aktionen und Aktivitäten... 105 7.5 Hierarchische Zustandsdiagramme... 107 7.5.1 Unterzustände... 107 7.5.2 History-Zustand... 108 7.5.3 Nebenläufige Zustände... 110 7.6 Zusammenfassung... 112

Inhaltsverzeichnis IX 8. Die Implementierungsdiagramme... 115 8.1 Das Komponentendiagramm... 116 8.2 Das Installationsdiagramm... 117 9. Das Paket diagramm... 119 9.1 Pakete und Abhängigkeiten... 120 9.2 Subsysteme... 123 9.3 Modelle... 124 Teil 11. Anwendung der UML 10. Ein Vorgehensmodell für den Software-Entwurf..... 129 10.1 Anforderungsermittlung... 130 10.2 Analyse... 135 10.2.1 Objekte finden... 135 10.2.2 Objekte strukturieren... 136 10.2.3 Verantwortlichkeiten verteilen... 139 10.3 Entwurf... 140 10.3.1 Systemarchitektur festlegen... 140 10.3.2 Klassenentwurf... 141 10.3.3 Schnittstellen spezifizieren... 142 10.3.4 Detailentwurf... 144 10.4 Implementierung... 145 10.4.1 Klassendefinitionen... 145 10.4.2 Methoden... 145 10.5 Bemerkungen... 146 10.6 Modularisierung... 148 10.6.1 Verfeinerung von Modellelementen... 149 10.6.2 Vergröberung... 151 10.6.3 Frühe Zerlegung des Modells... 151 10.7 Das Vorgehensmodell- kurz gefasst... 151 10.8 Einsatzgebiete der Diagramme... 153 11. UML und Java... 157 11.1 Klassendefinitionen... 159 11.1.1 Attribute... 159 11.1.2 Methoden... 160 11.2 Beziehungen zwischen Klassen... 161 11.2.1 Generalisierung... 161 11.2.2 Assoziationen... 164 11.2.3 Aggregation und Komposition... 170 11.2.4 Vorgehen... 171 11.3 Methodenrümpfe... 171

X Inhaltsverzeichnis 11.3.1 Implementierung aus Kooperationsdiagrammen... 172 11.3.2 Implementierung aus Zustandsdiagrammen... 175 11.3.3 Bedingungen... 176 11.4 Pakete... 178 11.5 Java Klassenbibliotheken... 178 12. Entwurfsmuster... 183 12.1 Einführung und Begriffsklärung... 184 12.2 Das Kompositum-Muster... 185 12.3 Das Beobachter-Muster... 190 12.3.1 Die Model-View-Controller Architektur... 194 12.4 Das Adapter-Muster... 195 12.5 Das Kommando-Prozessor-Muster... 199 12.6 Das Status-Muster... 201 12.7 Der Asynchrone Methodenaufruf... 207 12.8 Software-Entwurf mit Entwurfsmustern... 209 13. Fallstudie: Eine Tabellenkalkulation... 213 13.1 Einführung... 214 13.1.1 Tabellenkalkulation... 214 13.1.2 Entwicklungsvorgehen... 214 13.2 Anforderungsermittlung... 216 13.2.1 Szenarien in Form von Aktivitätsdiagrammen... 216 13.2.2 Weitere Anforderungen... 221 13.3 Analyse und Entwurf... 223 13.3.1 Festlegen der Software-Architektur... 223 13.3.2 Die Tabelle... 224 13.3.3 Der Formel-Parser... 234 13.3.4 Die Benutzeroberfläche... 238 13.3.5 Kopplung der Subsysteme... 243 13.4 Implementierung in Java... 252 Teil IH. Formale Grundlagen der UML 14. Erweiterungsmechanismen... 257 14.1 Präzisierung... 258 14.2 Zusätzliche Information... 258 14.3 Vereinbarung von Stereotypen... 259 14.4 Die OCL... 260 14.4.1 Überblick... 261 14.4.2 Einführung der OCL an einem Beispiel... 262

Inhaltsverzeichnis XI 15. Das UML-Metamodell... 267 15.1 Modell und Metamodell... 268 15.2 Die 4-Schichten Architektur von UML... 272 15.3 Zusammenfassung... 272 Teil IV. Anhang A. Die UML Referenz... 275 A.l Aktivitätsdiagramm... 275 A.2 Implementierungsdiagramme... 280 A.3 Interaktionsdiagramme... 283 A.4 Klassendiagramm... 292 A.5 Paketdiagramm... 303 A.6 Use-Case-Diagramm... 307 A.7 Zustandsdiagramm... 309 A.8 Gemeinsame Elemente aller Diagramme... 318 A.9 Die OCL-Syntax... 321 A.lO Vordefinierte Stereotypen... 323 A.ll Vordefinierte Bedingungen... 324 B. Inhalt der CD-ROM... 325 Literatur... 327 Index... 329