Grundkurs Software-Engineering mit UML

Ähnliche Dokumente
Stephan Kleuker. Grundkurs Software-Engineering mit UML

Stephan Kleuker. Grundkurs Software-Engineering mit UML

Stephan Kleuker. Grundkurs Software-Engineering mit UML

Grundlagen der doppelten Buchführung

Aufgabensammlung Fertigungstechnik

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Arbeitsbuch Mathematik

Studienbücher zur Kommunikationsund Medienwissenschaft

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Konstruktionsleitfaden Fertigungstechnik

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Marcus Keichel Oliver Schwedes (Hrsg.) Das Elektroauto. Mobilität im Umbruch

Günter Schmidt. Prozessmanagement. Modelle und Methoden. 3. überarbeitete Auflage

Erfolgreiches Produktmanagement

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Gentechnik geht uns alle an!

Demokratie in einer globalen Welt

Karl Herndl. Führen im Vertrieb. So unterstützen Sie Ihre Mitarbeiter direkt und konsequent. 4., ergänzte Auflage

Soziale Arbeit in Theorie und Wissenschaft. Herausgegeben von E. Mührel, Emden B. Birgmeier, Eichstätt-Ingolstadt

Was ist und wozu betreiben wir Kritik in der Sozialen Arbeit?

Das Ingenieurwissen: Technische Thermodynamik

Stephan Kleuker. Grundkurs Software-Engineering mit UML

Roloff/Matek Maschinenelemente Formelsammlung

Die Reihe wendet sich an Praktiker und Wissenschaftler gleichermaßen und soll insbesondere auch Nachwuchswissenschaftlern Orientierung geben.

Kunst- und Kulturmanagement. Herausgegeben von A. Hausmann, Frankfurt (Oder), Deutschland

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Soziale Arbeit in Theorie und Wissenschaft. Herausgegeben von E. Mührel, Emden B. Birgmeier, Eichstätt-Ingolstadt

Das Ingenieurwissen: Chemie

Der Direktvertrieb in Mehrkanalstrategien

Entwurf integrierter 3D-Systeme der Elektronik

Konsumentenverhalten im Zeitalter der Mass Customization

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Die Assistenz im Management

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Lernen zu lernen. Werner Metzig Martin Schuster. Lernstrategien wirkungsvoll einsetzen

Basiswissen Architektur

Instrumente des Care und Case Management Prozesses

Multi-Channel im stationären Einzelhandel

Der Kampf um den Konsens

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Der Arbeitsmarkt für Ingenieure

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Kulturelle Selbstbeschreibung

Dezentrale Energiewende

Paul Chlebek. Praxis der User Interface-Entwicklung

ermöglichen einen raschen Einstieg, bieten einen fundierten Überblick, sind praxisorientiert, aktuell und immer ihren Preis wert.

Gesellschaft und Tiere

300 Keywords Informationsethik

Das doppelt geteilte Land

Klausurtraining Statistik

360 -Beurteilung und Persönlichkeitstest in der Führungsbeurteilung

Verstehen in der Sozialen Arbeit

Schwierige Menschen am Arbeitsplatz

Hygiene in Kindertagesstätten

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Narrative Brand Planning

Die überzeugende Bewerbung

Fachwissen Technische Akustik

Intelligente Verkehrssysteme und Telematikanwendungen in Kommunen

Günther Bourier. Statistik-Übungen

Soziale Arbeit in Theorie und Wissenschaft. Herausgegeben von E. Mührel, Emden B. Birgmeier, Eichstätt-Ingolstadt

Auf dem Weg zum Profi im Verkauf

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Konstruktionsleitfaden Fertigungstechnik

Konzeption von Kommunikation

Zeitmanagement in der beruflichen Bildung

Gianfranco Walsh David Dose Maria Schwabe. Marketingübungsbuch. Aufgaben und Lösungen. 2., überarbeitete und erweiterte Auflage 2016

Uwe Weinreich. Lean Digitization. Digitale Transformation durch agiles Management

Prozesse befasst. Er ist Mitherausgeber mehrerer internationaler Fachzeitschriften sowie Autor zahlreicher Lehr- und Fachbücher.

Grundlagen der Wahrscheinlichkeitsrechnung und Statistik

Gerd Czycholl. Theoretische Festkörperphysik Band 1. Grundlagen: Phononen und Elektronen in Kristallen 4. Auflage

Wirtschaftliche Unternehmensführung im Architektur- und Planungsbüro

Roland Gabriel Heinz-Peter Röhrs. Social Media. Potenziale, Trends, Chancen und Risiken

Springer Spektrum, Springer Vieweg und Springer Psychologie.

Das neue Menschenbild

Wissenschaftliches Schreiben in Natur- und Technikwissenschaften

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Video-Marketing mit YouTube

Kompetenzmanagement in der Praxis

Medienwissen kompakt. Herausgegeben von K. Beck, Berlin, Deutschland G. Reus, Hannover, Deutschland

Illegale Migration und transnationale Lebensbewältigung

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Elektrisch leitfähige Polymerwerkstoffe

Klaus Weltner. Leitprogramm Mathematik für Physiker 1

100 Minuten für Anforderungsmanagement

Otto Forster Thomas Szymczak. Übungsbuch zur Analysis 2

Ulrich Schacht / Matthias Fackler (Hrsg.) Praxishandbuch Unternehmensbewertung

Die dokumentarische Methode und ihre Forschungspraxis

Springer Essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Klausurtraining Deskriptive und Induktive Statistik

Globale Gesellschaft und internationale Beziehungen. Herausgegeben von Th. Jäger, Köln, Deutschland

Richard K. Streich. Fit for Leadership. Entwicklungsfelder zur Führungspersönlichkeit

Michael Künzl. Beruf: Verkäufer! Mythen und Wahrheiten einer oft verkannten Profession

Essentials liefern aktuelles Wissen in konzentrierter Form. Die Essenz dessen, worauf es als State-of-the-Art in der gegenwärtigen Fachdiskussion

Strategische Kommunikation

Übungsbuch Logistik. Aufgaben und Lösungen zur quantitativen Planung in Beschaffung, Produktion und Distribution. Rainer Lasch Christian G.

Transkript:

Grundkurs Software-Engineering mit UML

Stephan Kleuker Grundkurs Software-Engineering mit UML Der pragmatische Weg zu erfolgreichen Softwareprojekten 3., korrigierte und erweiterte Auflage

Professor Dr. Stephan Kleuker Fakultät Ingenieurwissenschaften und Informatik Hochschule Osnabrück Deutschland ISBN 978-3-658-00641-9 DOI 10.1007/978-3-658-00642-6 ISBN 978-3-658-00642-6 (ebook) Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Springer Vieweg Springer Fachmedien Wiesbaden 2008, 2011, 2013 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, Mikroverfilmungen und die Einspeicherung und Verarbeitung 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. Gedruckt auf säurefreiem und chlorfrei gebleichtem Papier Springer Vieweg ist eine Marke von Springer DE. Springer DE ist Teil der Fachverlagsgruppe Springer Science+Business Media. www.springer-vieweg.de

Vorwort Das Ziel dieses Buches ist es, ein Meilenstein in der systematischen Ausbildung von Software-Entwicklern zu sein und Lösungsansätze für die unterschiedlichen Herausforderungen des Software-Engineerings zu zeigen. In einer Zeit, in der immer neue Technologien entwickelt werden, zeigt dieses Buch die Fundamente der Entwicklung, die sich langfristig als ingenieurmäßige Vorgehensweisen etabliert haben. Erfahrenen Entwicklern und anderen an IT-Projekten beteiligten Personen kann dieses Buch helfen, sich intensiver mit aktuellen Ansätzen zu beschäftigen und so an der kontinuierlichen Weiterentwicklung des Software-Engineerings teilzunehmen. Für die Lektüre des Buches ist es sinnvoll, einen ersten Grundkurs in einer objektorientierten Programmiersprache wie Java, C# oder C++ abgeschlossen zu haben, da die grundlegenden Begriffe wie Klasse, Objekt, Vererbung und Polymorphie nur kurz aufgefrischt werden. Der Inhalt dieses Buches basiert auf den Erfahrungen des Autors als Systemanalytiker und Systemberater für recht unterschiedliche komplexe Software-Systeme, die in verschiedenen Vorlesungen zunächst an der Fachhochschule Nordakademie in Elmshorn und dann an der Fachhochschule Wiesbaden erfolgreich an Informatik-Studierende weitergegeben wurden. Den beteiligten Studierenden sei auf diese Weise besonders gedankt, da sie mit ihren Ideen und vielfältigen Fragestellungen sehr zur Abrundung der Veranstaltungen und dieses Buches beigetragen haben. Sie haben mir weiterhin gezeigt, dass der Spaß an der Informatik häufig mit dem Spaß an selbst entwickelter Software zusammenhängt, die auf Basis gelernter Grundlagen zusammen mit der individuellen Kreativität zum Laufen gebracht wird. Software-Engineering ist in diesem Zusammenhang ein Hilfsmittel, das keine Energie in das erneute Entwickeln bereits etablierter Lösungen fließen lässt, sondern die Kreativität für neue Herausforderungen kanalisiert. Software-Engineering wird dabei als die Wissenschaft der systematischen Entwicklung von Software, beginnend bei den Anforderungen bis zur Abnahme des fertigen Produkts und der anschließenden Wartungsphase definiert, deren Ziel die Verknüpfung etablierter Lösungsansätze mit neuen Technologien ist. Als wichtiges Hilfsmittel wird dazu in diesem Buch die Unified Modeling Language (UML) vorgestellt, die es ermöglicht, Entwicklungsergebnisse in solch einer Form festzuhalten, dass sie leicht von anderen IT-Professionals gelesen und weiter bearbeitet werden können. Das Buch folgt dem Ablauf eines IT-Projektes, ausgehend von den Anforderungen und der besonderen Herausforderung, mit dem Kunden über das gleiche Ziel zu reden, über die erste Modellierung zur systematischen Erfassung dieser Anforde- V

Vorwort rungen. Die schrittweise Optimierung dieser Modelle und die unterschiedlichen Randbedingungen der Implementierung werden diskutiert. Es wird gezeigt, wie Ergebnisse so aufbereitet werden, dass andere Entwickler die Ideen des eigentlichen Autoren nachvollziehen können. Generell stehen dabei die ingenieurmäßigen Überlegungen, wie man Erfahrungen aus erfolgreichen Projekten auf die Anwendbarkeit im eigenen Projekt überprüfen und dann auch übertragen kann, im Mittepunkt. Dem querschnittlichen Thema Qualitätssicherung ist ein eigenes Kapitel gewidmet. Aus meinen Praxiserfahrungen folgt auch, dass eine gute Software-Entwicklung zwar die Grundlage eines erfolgreichen Projekts ist, es aber vielfältige Randbedingungen gibt, die von der Entwicklungsumgebung bis zum Miteinander der Projektmitglieder gehen, die den Projekterfolg beeinflussen. Diese Randbedingungen werden in diesem Buch im abschließenden Kapitel diskutiert. Zu jedem Kapitel gibt es eine Liste von möglichen Risiken, die man zur Überprüfung eigener Projekte nutzen sollte. Jedes Kapitel schließt mit zwei Arten von Aufgaben ab. Im ersten Aufgabenteil werden Wiederholungsfragen gestellt, die man nach intensiver Lektüre des vorangegangenen Kapitels beantworten können sollte. Die Lösungen zu diesen Aufgaben kann man selbst im Buch nachschlagen. Der zweite Aufgabenteil umfasst Übungsaufgaben, in denen man gezielt das angelesene Wissen anwenden soll. Diese Übungsaufgaben sind in verschiedenen Lehrveranstaltungen erfolgreich eingesetzt worden. Die Bilder, Spezifikationen, Programme und Lösungsvorschläge zu den Aufgaben dieses Buches sowie weitere Information können von der Web-Seite http://home.edvsz.hs-osnabrueck.de/skleuker/softwareengineering.html oder den Informationsseiten des Verlages zum Buch herunter geladen und unter Berücksichtigung des Copyrights genutzt werden. In diesem Buch benutze ich verkürzend ohne Hintergedanken bei Einzahlen wie Leser oder Entwickler die männliche Form. Natürlich möchte ich mit diesem Buch auch die weiblichen Leser Leserinnen ansprechen. Zum Abschluss wünsche ich Ihnen viel Spaß beim Lesen. Konstruktive Kritik wird immer angenommen. Bedenken Sie, dass das Lesen nur ein Teil des Lernens ist. Ähnlich wie in diesem Buch kleine Beispiele eingestreut sind, um einzelne Details zu klären, sollten Sie sich mit den hier vorgestellten Ideen hinsetzen und meine, aber vor allem selbst konstruierte Beispiele durchspielen. Sie runden das Verständnis des Themas wesentlich ab. Wiesbaden, Mai 2008 Stephan Kleuker VI

Vorwort Danksagung Ein Buch kann nicht von einer Person alleine verwirklicht werden. Zu einer gelungenen Entstehung tragen viele Personen in unterschiedlichen Rollen bei, denen ich hier danken möchte. Mein erster Dank geht an meine Ehefrau Frau Dr. Cheryl Kleuker, die nicht nur die erste Kontrolle der Inhalte und Texte vorgenommen hat, sondern mir erlaubte, einen Teil der ohnehin zu geringen Zeit für die Familie in dieses Buchprojekt zu stecken. Dank gilt meinem Kollegen Prof. Dr. Sven Eric Panitz von der Fachhochschule Wiesbaden, der sich eine Vorversion dieses Buches kritisch durchgelesen hat und interessante Anregungen lieferte. Viele Studierende, die Veranstaltungen zum Thema Software-Entwicklung bei mir gehört haben, trugen durch ihre Fragen und Probleme wesentlich zu der Herangehensweise an die Themen des Buches bei. Abschließend sei Sybille Thelen, Günter Schulz, Andrea Broßler, Albrecht Weis und den weiteren Mitarbeitern des Verlags Vieweg+Teubner für die konstruktive Mitarbeit gedankt, die dieses Buchprojekt erst ermöglichten. Ergänzung zur zweiten Auflage Neben dem fast immer sehr positiven Feedback zur ersten Auflage, habe ich viele Anregungen zur Erweiterung des Buches und zur Korrektur einiger Tippfehler erhalten. Neben den Studierenden der Hochschule Osnabrück und anderer Hochschulen, gilt mein besonderer Dank für Anregungen meinen Kollegen Prof. Dr. Grit Behrens, Prof. Dr. Theo Gervens, Ralf Neugebauer, Prof. Dr. Andreas Terstegge, Prof. Dr. Frank Thiesing und Prof. Dr. Michael Uelschen. Es konnten zwar nicht alle Erweiterungswünsche berücksichtigt werden, dafür wurden aber dann einige Verweise auf weitere Ansätze und Vertiefungsmöglichkeiten ergänzt, damit der Umfang dieses Buches nicht gesprengt wird. Hinweise auf gewünschte Ergänzungen, unklare Formulierungen und Tippfehler werden immer gerne entgegen genommen. Die Korrekturen sind auf der Web-Seite zum Buch online erhältlich. Für die kompetente und freundliche Betreuung der zweiten Auflage möchte ich mich bei Dr. Christel Roß und den weiteren Mitarbeitern des Verlags Vieweg+Teubner bedanken. Osnabrück, September 2010 Stephan Kleuker VII

Vorwort Ergänzung zur dritten Auflage Aus dem weiteren Feedback von Lesern und aktuellen Trends der Software- Technologie sind kleine Ergänzungen und Konkretisierungen in das Buch eingeflossen. Gerade agile Methoden, die ohnehin Teil des Buches waren, sind noch weiter an verschiedenen Stellen im Buch, neu auch bei der Aufwandsschätzung, verankert. Im Kapitel zu Design-Pattern wird noch intensiver betont, dass Varianten von Pattern existieren und dass ihre Nutzung immer mehr in die Standardentwicklung z. B. durch die Nutzung von Annotationen einfließt. Für die kompetente und freundliche Betreuung der dritten Auflage möchte ich mich bei Andrea Broßler, Bernd Hansemann, Maren Mithöfer und den weiteren Mitarbeitern des Verlags Springer Vieweg sowie Sorina Moosdorf und Anne Strohbach bedanken. Osnabrück, Mai 2013 Stephan Kleuker VIII

Inhaltsverzeichnis 1 Was ist Software-Engineering?... 1 2 Prozessmodellierung... 7 2.1 Unternehmensprozesse... 8 2.2 Prozessmodellierung mit Aktivitätsdiagrammen... 10 2.3 Risikomanagement... 19 2.4 Risikoanalyse Prozessmodellierung... 21 2.5 Aufgaben... 22 3 Vorgehensmodelle... 25 3.1 Phasen der Software-Entwicklung... 27 3.2 Wasserfallmodell... 28 3.3 Prototypische Entwicklung... 30 3.4 Iterative Entwicklung... 31 3.5 Iterativ-inkrementelle Entwicklung... 33 3.6 Allgemeines V-Modell... 34 3.7 Das V-Modell der Bundesrepublik Deutschland... 35 3.8 Rational Unified Process... 42 3.9 Agile Vorgehensmodelle... 45 3.10 Scrum... 48 3.11 Extreme Programming... 50 3.12 Risikoanalyse Vorgehensmodell... 53 3.13 Aufgaben... 53 4 Anforderungsanalyse... 55 4.1 Stakeholder und Ziele... 55 4.2 Klärung der Hauptfunktionalität (Use Cases)... 63 4.3 Beschreibung typischer und alternativer Abläufe... 72 4.4 Ableitung funktionaler Anforderungen... 76 4.5 Nicht-funktionale Anforderungen... 84 4.6 Lasten- und Pflichtenheft... 88 IX

Inhaltsverzeichnis 4.7 Risikoanalyse Anforderungsanalyse... 89 4.8 Aufgaben... 90 5 Grobdesign... 93 5.1 Systemarchitektur... 93 5.2 Ableitung von grundlegenden Klassen... 94 5.3 Ableitung von Methoden und Kontrollklassen... 101 5.4 Validierung mit Sequenzdiagrammen... 107 5.5 Überlegungen zur Oberflächenentwicklung... 117 5.6 Anforderungsverfolgung... 120 5.7 Risikoanalyse Grobdesign... 122 5.8 Aufgaben... 123 6 Vom Klassendiagramm zum Programm... 127 6.1 CASE-Werkzeuge... 127 6.2 Übersetzung einzelner Klassen... 129 6.3 Übersetzung von Assoziationen... 133 6.4 Spezielle Arten der Objektzugehörigkeit... 138 6.5 Aufbau einer Software-Architektur... 142 6.6 Weitere Schritte zum lauffähigen Programm... 148 6.7 Risikoanalyse Klassendiagrammübersetzung... 153 6.8 Aufgaben... 154 7 Konkretisierungen im Feindesign... 157 7.1 Zustandsdiagramme... 157 7.2 Object Constraint Language... 168 7.3 Risikoanalyse Feindesign... 174 7.4 Aufgaben... 174 8 Optimierung des Designmodells... 177 8.1 Design im Kleinen... 178 8.2 Model View Controller... 186 8.3 Vorstellung einiger GoF-Pattern... 192 8.4 Abschlussbemerkungen zu Pattern... 214 8.5 Risikoanalyse Design-Optimierungen... 217 8.6 Aufgaben... 217 X

Inhaltsverzeichnis 9 Implementierungsaspekte... 223 9.1 Einfluss nicht-funktionaler Anforderungen... 224 9.2 Verteilte Systeme... 225 9.3 Grundideen von XML... 230 9.4 Programmbibliotheken... 232 9.5 Komponenten... 233 9.6 Frameworks... 238 9.7 Persistente Datenhaltung... 244 9.8 Annotationen... 247 9.9 Domain Specific Languages... 250 9.10 Model Driven Architecture... 253 9.11 Refactoring... 255 9.12 Risikoanalyse Implementierungsaspekte... 257 9.13 Aufgaben... 258 10 Oberflächengestaltung... 263 10.1 Hintergründe der Oberflächengestaltung... 263 10.2 Konkretisierung des Nutzbarkeitsbegriffs... 265 10.3 Berücksichtigung der Ergonomie im Software-Entwicklungsprozess... 270 10.4 Prüfung der Nutzbarkeit... 272 10.5 Risikoanalyse Oberflächengestaltung... 276 10.6 Aufgaben... 277 11 Qualitätssicherung... 279 11.1 Formale Korrektheit... 280 11.2 Zusicherungen... 282 11.3 Unit-Tests... 285 11.4 Testbarkeit von Systemen herstellen... 292 11.5 Äquivalenzklassentests... 295 11.6 Kontrollflussbezogene Testverfahren... 303 11.7 Testarten und Testumfeld... 309 11.8 Metriken... 315 11.9 Konstruktive Qualitätssicherung... 320 11.10 Manuelle Prüfverfahren... 321 11.11 Risikoanalyse Qualitätssicherung... 325 11.12 Aufgaben... 326 XI

Inhaltsverzeichnis 12 Umfeld der Software-Entwicklung... 333 12.1 Versionsmanagement... 334 12.2 Build-Management... 338 12.3 Grundlagen der Projektplanung und -verfolgung... 343 12.4 Aufwandsschätzung... 353 12.5 Qualitätsmanagement... 365 12.6 Der Mensch im Projekt... 372 12.7 Risikoanalyse Projektumfeld... 379 12.8 Aufgaben... 380 A UML-Überblick... 383 Literaturverzeichnis... 389 Sachwortverzeichnis... 397 XII