Anja Metzner
Software - Engineering ‒ kompakt
Alle in diesem Buch enthaltenen Informationen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt geprüft und getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor(en, Herausgeber) und Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Weise aus der Benutzung dieser Informationen – oder Teilen davon – entsteht. Ebenso wenig übernehmen Autor(en, Herausgeber) und Verlag die Gewähr dafür, dass die beschriebenen Verfahren usw. frei von Schutzrechten Dritter sind. 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.
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.
Dieses Werk ist urheberrechtlich geschützt.
Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) – auch nicht für Zwecke der Unterrichtsgestaltung – reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
© 2020 Carl Hanser Verlag München;
Internet: www.hanser-fachbuch.de
Lektorat: Frank Katzenmayer
Herstellung: Anne Kurth
Titelmotiv: © istockphoto.com/Artush
Umschlagrealisierung: Max Kostopoulos
Umschlagdesign: Marc Müller-Bremer, www.rebranding.de, München
Print-ISBN: 978-3-446-45949-6
E-Book-ISBN: 978-3-446-46365-3
ePub-ISBN: 978-3-446-46496-4
Vorwort |
– Guide to the Labyrinth of Software-Engineering –
Viele Bücher über Software-Engineering sind als vollständige Wissensbibliotheken des Fachgebiets konzipiert. Viele Fachbegriffe, Methoden und Vorgehensweisen sind lediglich in ausführlicher Form in meist umfangreichen, dicken Büchern zu finden. Deshalb ist es schwierig, an kurze und bündige Informationen in gut strukturierter Art und Weise zu gelangen.
Das vorliegende Buch ist aus diesem Grund anders. Anstatt Anspruch auf Vollständigkeit zu erheben, werden hier die wichtigsten Themen rund um Software-Engineering erklärt, zusammengefasst und anhand von kleinen Praxisbeispielen vertieft.
Software-Engineering ist kurz umrissen das Wissensgebiet, wie qualitativ hochwertige Software erstellt und dieser Erzeugungsvorgang in Projekten erfolgreich durchgeführt werden kann. Dafür sind umfassende Kenntnisse über Standards, Methoden und Werkzeuge des Software-Engineerings notwendig. Die wichtigsten und anwendungsorientiertesten Kenntnisse will dieses Buch vermitteln.
Es richtet sich sowohl an Anfänger als auch an fortgeschrittene Leser. Die erste Zielgruppe erlangt durch die Lektüre schnelle Orientierung und kompaktes Grundwissen. Der zweiten Lesergruppe mag dieses Buch als strukturiertes Nachschlagewerkund verdichteter Überblick über den aktuellen Stand dieses Fachgebiets dienen. Verwenden Sie zur schnelleren Recherche doch auch einfach gerne das umfangreiche Stichwortverzeichnis.
Über Ihre Gedanken und Verbesserungsvorschläge zu diesem Buch freue ich mich. Richten Sie Anfragen und Anregungen gerne an meine Email-Adresse: anja.metzner@hs-augsburg.de
Ich lade Sie ein, Ihren eigenen Lernfortschritt zu erforschen. Aus diesem Grund endet jedes Kapitel mit einem Abschnitt „Aufgabensammlung“. Die Antworten zu den Fragen sind im Anhang -A- zu finden.
Weiteres Übungsmaterial finden Sie auch auf meiner Webseite:
https://www.hs-augsburg.de/Informatik/Anja-Metzner.html
Ergänzungen und weitere Informationen zu diesem Buch können Sie ebenfalls unter https://www.hs-augsburg.de/Informatik/Anja-Metzner.html finden.
Dieses Buch ist meiner Familie gewidmet. Ohne sie wäre dieses Buchprojekt nicht entstanden. Besonderer Dank auch an meinen Kollegen Prof. Dr.-Ing. Christian Märtin für die vielen sehr hilfreichen Tipps und die umfangreiche Unterstützung. Danke auch für die gute Zusammenarbeit mit den Mitarbeitern des Verlags. Prof. Dr. Alfred Holl verdanke ich viele fachliche Einsichten. Zuletzt danke ich sehr meinen Studenten der Hochschule Augsburg für die vielen inspirierenden Momente, durch die dieses Buch überhaupt erst möglich wurde.
Und nun wünsche ich allen Lesern viel Vergnügen und viele hilfreiche Informationen über das spannende Gebiet des Software-Engineerings!
Anja Metzner |
Augsburg, im Dezember 2019 |
Titelei
Impressum
Inhalt
Vorwort
1 Einführung
1.1 Aufteilung dieses Buches
1.2 Überblick und Terminologie
1.2.1 Der Software-Lebenszyklus
1.2.2 Komplexität der Softwareentwicklung
1.3 Geschichtlicher Überblick und die Folgen der Software-Krise
1.4 Modellbildung zur Erstellung von Softwarearchitekturen
1.5 Der Software-Engineering-Spezialist
1.6 Zusammenfassung
1.7 Aufgabensammlung
2 Phasenübergreifende Verfahren
2.1 Vorgehensmodelle
2.1.1 Wasserfallmodell
2.1.2 Verbessertes Wasserfallmodell
2.1.3 V-Modell
2.1.4 Spiralmodell
2.1.5 Agiles Modell
2.2 Klassisches Projektmanagement
2.2.1 Projektplanung
2.2.2 Projektmanagement (Zeit-, Kosten- und Ressourcenplanung)
2.2.2.1 Zeitmanagement
2.2.2.2 Ressourcenplan
2.2.2.3 Kalkulation
2.2.2.4 Pufferzeiten, Ressourcenauslastung und Schätzung der Dauer von Tätigkeiten
2.3 Zusammenfassung
2.4 Aufgabensammlung
3 Planungsphase
3.1 Übersicht Planungsphase
3.2 Lastenheft
3.3 Aufwandsschätzung
3.4 Risikomanagement
3.5 Zusammenfassung
3.6 Aufgabensammlung
4 Definitionsphase
4.1 Überblick Definitionsphase
4.2 Pflichtenheft
4.3 Requirements-Engineering
4.3.1 Anforderungen
4.3.2 Anforderungsarten
4.3.2.1 Funktionale Anforderung
4.3.2.2 Nicht-funktionale Anforderung
4.3.2.3 Problembereichsanforderung
4.3.2.4 Benutzeranforderung
4.3.2.5 Systemanforderung
4.3.3 Qualitätsmerkmale für Anforderungen
4.3.4 Beschreibung von Anforderungen
4.3.4.1 Natürliche Sprache
4.3.4.2 Anforderungen in strukturierter Sprache
4.3.4.3 Anforderungen in grafischer Notation
4.3.5 Erhebung von Anforderungen
4.3.6 Anforderungsanalyse – Notation im Überblick
4.3.6.1 Anwendungsfalldiagramm (engl. Use-Case-Diagramm)
4.3.6.2 Diskussion von Use-Case-Diagrammen
4.3.6.3 Anwendungsfälle im Zusammenhang mit dem Software-Lebenszyklus
4.3.7 Validation von Anforderungen
4.3.7.1 Ziele guter Anforderungen
4.3.7.2 Prüfung von Anforderungen
4.3.8 Anforderungsmanagement
4.4 Zusammenfassung
4.5 Aufgabensammlung
5 Software-Design-Phase
5.1 Überblick
5.2 Ein durchgängiges Beispiel
5.3 Notationen
5.3.1 Strukturdiagramme
5.3.1.1 UML-Klassendiagramm
5.3.1.2 UML-Komponentendiagramm
5.3.2 Verhaltensdiagramme
5.3.2.1 Struktogramme
5.3.2.2 UML-Aktivitätsdiagramme
5.3.2.3 UML-Sequenzdiagramm
5.3.2.4 UML-Zustandsdiagramm
5.4 Softwarearchitekturen
5.4.1 Subsysteme und Komponenten
5.4.2 Makroarchitekturen
5.4.2.1 Allgemeine Architekturen
5.4.2.2 Verteilte Architekturen
5.4.2.3 Adaptive Systeme
5.4.2.4 Andere Architekturen
5.4.3 Mikroarchitekturen
5.5 Strategien und Methoden
5.6 Software-Wiederverwendung
5.7 Zusammenfassung
5.8 Aufgabensammlung
6 Testphase – Verifikation und Validation
6.1 Grundlagen
6.2 Software-Testverfahren
6.2.1 Statische Testverfahren
6.2.2 Dynamische Testverfahren
6.2.2.1 White-Box-Techniken
6.2.2.2 Black-Box-Techniken
6.2.3 Diversifizierende Tests
6.3 Zusammenfassung
6.4 Aufgabensammlung
7 Wartungsphase
7.1 Grundlagen
7.2 Wartungsprozess
7.3 Wartungstechniken
7.3.1 Re-Engineering
7.3.2 Reverse-Engineering
7.4 Zusammenfassung
7.5 Aufgabensammlung
A Lösungen zur Aufgabensammlung
Literatur
1 | Einführung |