Einführung in UML - download.e-bookshelf.de · nicht-UML-bezogene Aspekte des Analyse- und...

12
Einführung in UML Hendrik Jan van Randen Christian Bercker Julian Fieml Analyse und Entwurf von Software

Transcript of Einführung in UML - download.e-bookshelf.de · nicht-UML-bezogene Aspekte des Analyse- und...

Einführung in UML

Hendrik Jan van RandenChristian BerckerJulian Fieml

Analyse und Entwurf von Software

Einführung in UML

Hendrik Jan van Randen • Christian Bercker Julian Fieml

Einführung in UML Analyse und Entwurf von Software

Hendrik Jan van Randen Vorden , Niederlande

Christian Bercker rechenwerk GmbH Essen , Deutschland

Julian Fieml rechenwerk GmbH Essen , Deutschland

ISBN 978-3-658-14411-1 ISBN 978-3-658-14412-8 (eBook) DOI 10.1007/978-3-658-14412-8

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliogra-fi e; detaillierte bibliografi sche Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Springer Vieweg © Springer Fachmedien Wiesbaden 2016 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfi lmungen und die Einspeicherung und Verar-beitung in elektronischen Systemen. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag, noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen.

Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier

Springer Vieweg ist Teil von Springer Nature Die eingetragene Gesellschaft ist Springer Fachmedien Wiesbaden GmbH Die Anschrift der Gesellschaft ist: Abraham-Lincoln-Strasse 46, 65189 Wiesbaden, Germany

Übersetzung aus dem Niederländischen mit freundlicher Genehmigung des Autors. Titel der nieder-ländischen Originalausgabe: Inleiding UML, Pearson Benelux B.V., 2013.

v

Vorwort der Übersetzer

Seit Jahrhunderten stimmen Bauherren und Architekten Gebäudeanforderungen mithilfe von Grundrissen, Schnitten und Ansichten ab. Wie Bauzeichnungen für die Gebäudeplanung bilden UML-Diagramme im Kontext der Softwareentwicklung mittlerweile das zentrale Entwurfs- und Kommunikationsmittel. Anders als Bauzeichnungen, die bis zu einem ge-wissen Grad auch von Laien intuitiv verstanden werden können, bedarf das Verstehen von UML-Diagrammen zusätzlicher Erläuterung.

Das vorliegende Buch liefert hierzu den passenden Einstieg. Dabei richtet es sich auch an Leser ohne Programmierkenntnisse, die zum Beispiel an einem Softwareentwicklungs-projekt mitarbeiten. Mit Blick auf das notwendige Methodenwissen vermittelt das Buch eine solide Basis, die eine zielorientierte Zusammenarbeit unterstützt. Bestimmte Problem-stellungen (z. B. das objektrelationale Mapping, die Problematik von parallelen Status im Aktivitäts diagramm, das Erstellen einer CRUD-Matrix), die in Entwicklungsprojekten üb-licherweise eine Rolle spielen, werden fokussiert behandelt und klar erörtert. Das Buch zeigt exemplarisch anhand der einfach nachzuvollziehenden Entwicklung eines Webshops, welche konzeptionellen Schritte der eigentlichen Programmierung vorausgehen und diese begleiten. Um das Bild zu vervollständigen, werden neben UML weitere im Entwicklungs-prozess an wendbare Methoden und Werkzeuge vorgestellt.

Der Mehrwert von UML-Diagrammen steigt mit der Anzahl der Projektbeteiligten, die sie interpretieren und mitgestalten können. Zur Etablierung einer gemeinsamen Sprache empfi ehlt sich die Lektüre dieses Buches für alle, die sich noch nicht mit UML auskennen und in ein Softwareentwicklungsprojekt eingebunden sind.

Essen , im Mai 2016 Christian Bercker Julian Fieml

vii

Einle itung

Das Ziel der Analyse und des Entwurfs von Software ist es, ein möglichst klares Bild von der Software zu erhalten und dieses vermitteln zu können.

Ein Mittel, um dieses Ziel zu erreichen, besteht aus einer Sammlung von Abbildungen, einem sogenannten Modell , das kurz und bündig folgendes beschreibt:

• Die Daten , die mit der Software betrachtet und verändert werden können. • Die Geschäftsprozesse , durch die die Daten laufen. • Die Rollen und Zugriffsrechte , die Nutzer von der Software haben. • Die Anwenderschnittstelle (Masken/Berichte der Software). • Die Navigation zwischen den Fenstern der Anwenderschnittstelle.

Das Buch zeigt, wie diese Art von Modell erstellt werden kann. Die meistgenutzten Modelliertechniken sind Teil der international standardisierten

Modelliersprache Unifi ed Modeling Language (UML) . UML wird durch eine internati-onale Organisation verwaltet, die Object Management Group (OMG) .

Um diese Modelliertechniken in einen Kontext zu setzen, werden in diesem Buch auch nicht-UML-bezogene Aspekte des Analyse- und Entwurfsprozesses beschrieben.

Bei den Modelliertechniken (Diagrammen), die Bestandteil von UML sind, wird dies zu Beginn des jeweiligen Kapitels angegeben.

ix

1 Anforderungskatalog/Lastenheft ...................................................................... 1 1.1 Ziel und Anwendungsbereich ...................................................................... 1 1.2 Anforderungsspezifi kation ........................................................................... 2 1.3 Use Cases (Anwendungsfälle) ..................................................................... 2 1.4 Unklarheit in der Anforderungsspezifi kation .............................................. 3 1.5 Übung zur Anforderungsspezifi kation ......................................................... 4

2 Daten in einem Klassendiagramm abbilden ..................................................... 5 2.1 Klasse ........................................................................................................... 5 2.2 Objekt .......................................................................................................... 6 2.3 Attribut ......................................................................................................... 6 2.3.1 Attributtyp ........................................................................................ 6 2.3.2 Pfl ichtfeld und optionales Attribut ................................................... 7 2.3.3 Aufzählung ...................................................................................... 8 2.4 Assoziation .................................................................................................. 9 2.4.1 Multiplizität ..................................................................................... 9 2.4.2 Auftreten des Henne-Ei-Problems ................................................... 10 2.4.3 Zwischenklasse ................................................................................ 11 2.4.4 Komposition ..................................................................................... 11 2.4.5 Aggregation ..................................................................................... 12 2.4.6 Navigation ....................................................................................... 13 2.4.7 Assoziationsname ............................................................................ 14 2.5 Einfachheit oder Flexibilität ........................................................................ 15 2.6 Abgeleitetes Attribut .................................................................................... 16 2.7 Vererbung ..................................................................................................... 16 2.8 Klassendiagramm vs. Datenbankentwurf .................................................... 17 2.8.1 Objektrelationale Abbildung von Beziehungen ............................... 18 2.8.2 Objektrelationale Abbildung von Vererbung ................................... 20 2.8.3 Wofür ein Klassendiagramm? .......................................................... 21

Inhaltsverzeichnis

x

2.9 Übersicht zu den Elementen eines Klassendiagramms ............................... 22 2.10 Übung zum Klassendiagramm ..................................................................... 23 2.11 Checkliste zum Klassendiagramm ............................................................... 24

3 Wiedergabe von Geschäftsprozessen in einem Aktivitätsdiagramm ............. 25 3.1 Aktion .......................................................................................................... 26 3.2 Zustand ........................................................................................................ 26 3.3 Schwimmbahn ............................................................................................. 26 3.4 Startknoten ................................................................................................... 27 3.5 Endknoten .................................................................................................... 27 3.6 Entscheidungsknoten ................................................................................... 28 3.7 Manuelle Wahl ............................................................................................. 29 3.8 Beziehung mit dem Klassendiagramm ........................................................ 29 3.9 Timer ............................................................................................................ 30 3.10 Parallele Flüsse ............................................................................................ 31 3.11 Hauptprozess und Teilprozess ..................................................................... 32 3.12 Signal ........................................................................................................... 33 3.12.1 Signal akzeptieren, wenn das Objekt einen bestimmten

Zustand hat ....................................................................................... 34 3.12.2 Signal unabhängig vom Zustand akzeptieren .................................. 35 3.12.3 Signale in der UML-2.5- Spezifi kation ........................................... 36 3.13 Übersicht zu den Elementen eines Aktivitätsdiagramms ............................ 37 3.14 Übung zum Aktivitätsdiagramm .................................................................. 38 3.15 Checkliste zum Aktivitätsdiagramm ............................................................ 39

4 Konsistenz der Anwendung ............................................................................... 41 4.1 Durchgängig einheitliche Terminologie ...................................................... 41 4.2 Konzeptionelle Integrität ............................................................................. 42 4.3 Übung zur Konsistenz der Anwendung ....................................................... 43

5 Anwenderrolle und Zugriffsrecht ..................................................................... 45 5.1 CRUD-Matrix .............................................................................................. 45 5.2 Attribut in einer CRUD-Matrix ................................................................... 46 5.3 Assoziation in einer CRUD-Matrix ............................................................. 47 5.4 Schwimmbahn ............................................................................................. 48 5.5 Löschen ........................................................................................................ 49 5.6 Übersicht zu Anwenderrolle und Zugriffsrecht ........................................... 50 5.7 Übung zu Anwenderrolle und Zugriffsrecht ................................................ 50 5.8 Checkliste zu Anwenderrolle und Zugriffsrecht .......................................... 51

6 Zustandsautomat................................................................................................. 53 6.1 Zustand und Zustandsübergang ................................................................... 53 6.2 Zustandsautomat vs. Aktivitätsdiagramm .................................................... 54

Inhaltsverzeichnis

xi

7 Anwenderschnittstelle ......................................................................................... 57 7.1 Dialogstruktur .............................................................................................. 57 7.1.1 Hauptmenü ....................................................................................... 59 7.1.2 Modales Fenster und nicht-modales Fenster ................................... 60 7.1.3 Anwenderrolle und Darstellung der Dialogstruktur ........................ 61 7.1.4 Pop-up oder Darstellung im Hauptfenster der Anwendung? ........... 62 7.2 Programmfenster .......................................................................................... 63 7.2.1 Steuerelement für Attribute ............................................................. 64 7.2.2 Steuerelement für Assoziationen mit einzahliger Multiplizität ....... 65 7.2.3 Steuerelement für Assoziationen mit mehrzähliger Multiplizität .... 66 7.2.4 Information in der Bezeichnung von Schaltfl ächen ......................... 67 7.2.5 Nicht verwendbare Schaltfl äche ...................................................... 68 7.2.6 Übersichtlichkeit oder Vollständigkeit ............................................. 68 7.2.7 Hilfefunktion .................................................................................... 69 7.3 Interaktion ................................................................................................... 69 7.3.1 Häufi gste Verarbeitungsschritte ....................................................... 70 7.3.2 Nutzung von Standardwerten und Mussfeldern ............................... 70 7.3.3 Modale Frage und Mitteilung .......................................................... 72 7.3.4 Nicht-modale Frage und Mitteilung ................................................ 72 7.3.5 Explizites und implizites Speichern ................................................. 73 7.3.6 Löschen: Bestätigen oder rückgängig machen ................................ 74 7.3.7 Tastatur anstelle der Maus ............................................................... 75 7.4 CRUD-Muster .............................................................................................. 76 7.5 Konsistente Anwendererfahrung ................................................................. 78 7.6 Übersicht zur Anwenderschnittstelle ........................................................... 78 7.7 Übung zur Anwenderschnittstelle ................................................................ 79 7.8 Checkliste zur Anwenderschnittstelle .......................................................... 80

8 Geschäftsregeln ................................................................................................... 81 8.1 Modellbestandteil oder gesonderte Beschreibung ....................................... 81 8.2 Bedingung in einem Geschäftsprozess ........................................................ 82 8.3 Bedingung in der Darstellung der Dialogstruktur ....................................... 83 8.4 Automatisches Ereignis in der Darstellung der Dialogstruktur ................... 83 8.5 Zeitpunkt, zu dem eine Bedingung einzuhalten ist ...................................... 84 8.6 Übung zu Geschäftsregeln ........................................................................... 85

9 Kopplung zwischen Systemen und Komponenten ........................................... 87 9.1 Nutzung einer Schnittstelle und Abhängigkeit ............................................ 87 9.2 Komponentendiagramm ............................................................................... 88 9.3 Paketdiagramm ............................................................................................ 90 9.4 Sequenzdiagramm ........................................................................................ 91 9.4.1 Synchroner Methodenaufruf ............................................................ 91 9.4.2 Asynchroner Methodenaufruf .......................................................... 92

Inhaltsverzeichnis