Vorgehensmodelle: Das klassiche Wasserfallmodell
Grundidee der Vorgehensmodelle
Vorgehensmodelle verfolgen das Ziel einer hierarchischen Gliederung der Gesamtaufgabe, die ein- oder mehrstufig sein kann. Vorgehensmodelle dienen zunächst der allgemeinen Ablaufmodellierung. Man möchte durch sie einen genaueren Überblick über das Gesamtprojekt gewinnen und die Plan- und Kontrollierbarkeit fördern. Letztlich dienen Vorgehensmodelle damit dem Zweck, Projekte einem sinnvollen Management zugänglich zu machen.
Im klassischen Wasserfallmodell werden die Phasen in einer linearen Abfolge durchlaufen. Rücksprünge und Iterationen sind nicht vorgesehen.
Ein Beispiel für ein einfaches Wasserfallmodell zeigt die folgende Abbildung:
Abbildung: Das klassische Wasserfallmodell
Im Vorgehensmodell "Wasserfall" können die einzelnen Phasen wie folgt interpretiert werden:
- Analyse und Definition
In der Analyse und Definition werden die spezifischen Produktanforderungen ermittelt. Dazu ist im Allgemeinen zunächst eine Ist-Analyse zu erstellen, auf deren Basis dann eine Schwachstellenermittlung durchgeführt werden kann. Daran schließt sich eine Zieldefinition an, die schließlich zu einer Definition der Produktanforderungen führt.
Das Ergebnis der Phase ist die Produktdefinition, die auch als Anforderungsdefinition oder Pflichtenheft bezeichnet wird. Diese Produktdefinition kann im Falle einer Fremdvergabe der Erstellung als Vertragsbasis zwischen Auftraggeber und Auftragnehmer dienen. Sie schreibt den Leistungsumfang des Produkts fest und ist damit auch die Basis der Endabnahme. Die Produktdefinition enthält Angaben im Hinblick auf den Funktionsumfang, die Benutzungsoberfläche, die Schnittstellen zur Systemumgebung, das Leistungsverhalten des Systems, die vorgesehene Hardware und ggf. Systemsoftware, die Dokumentationsrichtlinien und die Terminplanung.
- Entwurf
Im Entwurf wird auf der Basis der Produktdefinition die innere Struktur des Softwaresystems entwickelt. Dazu wird das Gesamtsystem schrittweise in Komponenten zerlegt. Das erste Zwischenergebnis des Entwurfs ist damit die Software-Architektur.
In einem zweiten Schritt erfolgt eine genauere Spezifikation der Aufgaben der Komponenten und ihres Zusammenwirkens. Es geht dabei allerdings noch nicht um programmtechnische Details, sondern um eine klare Definition der Komponenten. Das Leitthema ist die Bewältigung von Komplexität durch Zerlegung. Dies führt zur Entwurfsspezifikation, die die Software-Architektur verfeinert und konkretisiert.
- Implementierung
Auf Basis der Softwarespezifikation erfolgt nun die Implementierung der Komponenten in einer Programmiersprache. Dabei sind jeweils die Methoden des Programmierens im Kleinen zu beachten. Zu nennen sind hier insbesondere Wohlstrukturiertheit, ein sauberer übersichtlicher Programmierstil und der solide Test der Komponenten. Das Ergebnis der Implementierung sollte damit eine Menge dokumentierter und getesteter Komponenten sein.
- Test
Da in der Implementierung die einzelnen Komponenten bereits getestet wurden, richtet sich das Augenmerk nun auf die Integration der Komponenten und damit auf den Integrationstest, der im Allgemeinen sukzessive durchgeführt wird.
An den Integrationstest, der das Zusammenspiel der einzelnen Komponenten adressiert, schließt sich der Systemtest an, bei dem das System gegen die Produktdefinition getestet wird. Auf den Systemtest folgt die Installation des Systems im Produktionsumfeld und der Abnahmetest. Die Grenzen
zwischen System- und Abnahmetest sind dabei durchaus fließend.
- Einsatz und Wartung
Nun folgen Einsatz und Wartung des Systems, die natürlich nicht mehr zum Entwicklungsprozess, aber doch zum Lebenszyklus einer Software zu rechnen sind. Im Hinblick auf die Wartung ist dabei ebenso an die Korrektur von Fehlern wie an die Anpassung an andere Systemumgebungen oder Änderungen und Erweiterungen der Funktionalität zu denken.
Quelle
Ruparelia, Nayan. (2010). Software development lifecycle models. ACM SIGSOFT Software Engineering Notes. 35. 8-13.
DOI: 10.1145/1764810.1764814
Ach ja. Damals als die Dinge noch einfach waren. Heute gammelt man in Sprint Plannings und release trains herum :D
Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!
Please consider supporting our funding proposal, approving our witness (@stem.witness) or delegating to the @stemsocial account (for some ROI).
Please consider using the STEMsocial app app and including @stemsocial as a beneficiary to get a stronger support.
Congratulations @ozelot47! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s) :
You can view your badges on your board And compare to others on the Ranking
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last post from @hivebuzz: