Wasserfallmodell
Dieser Artikel beschreibt ein Modell der Softwareentwicklung. Andere Bedeutungen des Wortes „Wasserfall“ finden Sie unter Wasserfall (Begriffsklärung).
Das Wasserfallmodell bezeichnet den traditionellen Typus des Softwareprozesses (Software – "Lebenszyklus" mit mehreren Phasen) bzw. es ist ein Vorgehensmodell der Softwareentwicklung. Im Wasserfallmodell hat jede Phase wohldefinierte Start- und Endpunkte mit eindeutig definierten Ergebnissen d.h. Meilensteinsitzungen mit Ergebnisdokumenten und lediglich einem Durchlauf. In der Realität ist dieses Modell selten genau so zu finden.
Der Name "Wasserfall" kommt von der häufig gewählten grafischen Darstellung der fünf bis sechs Punkte in einer Kaskade.
Erweiterungen des einfachen Modells (Wasserfallmodell mit Rücksprung) erlauben ein schrittweises "Aufwärtslaufen" der Kaskade, sofern in der aktuellen Phase etwas schieflaufen sollte, um den Fehler auf der nächsthöheren Stufe ausmerzen zu können.
Nachteile des Wasserfallmodells sind:
- Sequenz
- Phasentrennung
- späte Verfügbarkeit von Produkten
Was soll das denn????
Phasen
- Anforderungsanalyse und -spezifikation (en. Requirement analysis and specification)
- Systemdesign und -spezifikation (en. System design and specification)
- Programmierung und Modultests (en. Coding and module testing)
- Integration und Systemtests (en. Integration and system testing)
- Auslieferung, Einsatz und Wartung (en. Delivery and maintenance)
Eine andere Variante macht daraus sechs Schritte:
- Planung (mit Erstellung des Lastenhefts, Projektkalkulation und Projektplan) (englisch: System Engineering)
- Definition (mit Erstellung des Pflichtenhefts, Produktmodell, GUI-Modell und evtl. schon Benutzerhandbuch) (englisch: Analysis)
- Entwurf (UML, Struktogramme) (englisch: Design)
- Implementierung (englisch: Code)
- Testen (englisch: Testing)
- Einsatz und Wartung (englisch: Maintenance)
"Definition und Entwurf" entsprechen dabei ungefähr dem untergliederten Punkt "Systemdesign und -spezifikation" in der ersten Variante, während die zweite Variante die zwei möglichen Ebenen des Software Testing 3.1 (auf Modul- und Gesamtsystemebene) zusammenwirft.