Das
Wasserfallmodell
ist ein Modell zur strukturierten, prozeßhaften Entwicklung großer Software.
Der gesamte Entwicklungsprozeß wird in mehrere Phasen zerlegt
(siehe Abbildung).
Jede Phase muss abgeschlossen sein, bevor die nächste Phase begonnen werden kann.
Zudem produziert
jede Phase ein Dokument
bzw. ein Programm.
Auch der gesamte Entwicklungsprozeß bringt mehrere Dokumente hervor,
wie zum Beispiel diverse Checklisten, Fehler- und Änderungsprotokolle.
Auch die Hilfedatei entwickelt sich meist aus dem
Pflichtenheft
heraus
parallel zu allen Phasen während des gesamten Entwicklungsvorgangs.
So spiegeln sich in der Hilfedatei die Leistungen und Funktionen der Software wider.
In der Regel ist die Hilfedatei, bis auf ein paar kleine Ergänzungen, schon vor der zu schreibenden Software fertiggestellt.
Wichtig:
Besonders die teure
Implementation
wird erst dann begonnen, wenn der
Entwurf
und die
Spezifikation
abgeschlossen sind!
Im Vergleich zum Häuserbau:
Es kommt auch vor, dass Neubauten wieder abgerissen werden müssen, nur weil das Fundament Fehler hat.
Ein Fehler im Software-Fundament pflanzt sich in aller Regel bis ins kleinste Detail fort, so dass die
Zuverlässigkeit,
die
Robustheit
und vor allem die
Korrektheit
der Software
nicht mehr gewährleistet werden können.
Ein Software-Produkt wird als korrekt bezeichnet, wenn diese gemäß ihrer Spezifikation fehlerfrei funktioniert.
Um also korrekte Software produzieren zu können, muss die Implementationsphase auf die Fertigstellung der Spezifikation warten.
Viele Entwurfs- und Spezifikationsprogramme
(Together, Rational Rose, usw.)
bieten schon während der Spezifikation eine automatische Generierung bestimmter Source-Code-Fragmente an.
Diese Code-Fragmente sollte man in der Implementierungsphase aus Konsistenzgründen auch weiterverwenden.
Jedenfalls muss sich der Programmierer genau an die Spezifikation
(verfeinerter Entwurf)
halten.
Ein Grundsatz zur Entwicklung mit dem Wasserfallmodell besagt:
Je später die Phase, desto weniger Spielraum das Projekt kostengünstig abzuändern!
Deshalb ist es so wichtig, besonders in den frühen Phasen des Entwicklungsprozeßes, so klar und deutlich wie möglich zu planen.
Mehrdeutigkeiten sind zu vermeiden,
Mißverständnisse müssen aufgeklärt werden und
Redundanz zwingt zu Verallgemeinerung.
Das
Wasserfallmodell mit Rückkopplung
ist im Vergleich zu seinem Vorgänger weniger statisch.
Es ermöglicht den Rücksprung in schon abgeschlossene Phasen, falls erforderlich.
Häufig ergeben sich beim Arbeiten am Detail Erkenntnisse darüber, dass noch Planungslücken vorhanden sind.
Diese Lücken kann man mit diesem Modell ausbessern
(Vorteil),
indem man frühere Phasen modifiziert,
was allerdings auch eine Modifizierung aller Folge-Phasen nach sich zieht
(Nachteil).
Diese Änderungen müssen auch dem entsprechend in den Dokumenten der jeweiligen Phasen aufgenommen werden,
was den Papierkram bei häufigem Abändern schnell anwachsen lässt.
Diese Variante berechtigt aber nicht zu schlampiger Planung,
denn jeder Rücksprung ist mit einem Mehraufwand verbunden, der die Software teurer macht.