Definition

Wasserfallmodell

Was ist ein Wasserfallmodell?

Das Wasserfallmodell ist ein linearer, sequenzieller Ansatz für den Softwareentwicklungslebenszyklus (Software Development Lifecycle, SDLC), der in der Softwareentwicklung und Produktentwicklung weit verbreitet ist.

Das Wasserfallmodell verwendet eine logische Abfolge von SDLC-Schritten für ein Projekt, ähnlich der Richtung, in der Wasser über den Rand einer Klippe fließt. Es legt für jede Phase des Entwicklungsprozesses eindeutige Endpunkte oder Ziele fest. Diese Endpunkte oder Ziele können nach ihrer Fertigstellung nicht mehr überarbeitet werden.

Dr. Winston W. Royce vom Lockheed Software Technology Center führte das Konzept in einem 1970 veröffentlichten Artikel über seine Erfahrungen bei der Entwicklung von Satellitensoftware ein. Allerdings verwendete Royce nicht den Begriff Wasserfall (Waterfall), sondern bezog sich stattdessen auf den nachgelagerten Wert der Dokumentation.

Das Wasserfallmodell wird weiterhin in Industriedesignanwendungen eingesetzt. Es wird oft als erste Softwareentwicklungsmethode bezeichnet. Das Modell wird auch allgemeiner als übergeordnete Projektmanagementmethode für komplizierte, vielschichtige Projekte verwendet.

Wer verwendet das Wasserfallmodell?

Projektteams und Projektmanager nutzen das Wasserfallmodell, um Ziele zu erreichen, die auf den Anforderungen ihres Unternehmens basieren. Das Modell wird in vielen verschiedenen Projektmanagementkontexten eingesetzt, zum Beispiel im Bauwesen, in der Fertigung, in der IT und in der Softwareentwicklung.

Bei der Wasserfallmethode ist jeder Schritt vom Ergebnis des vorherigen Schritts abhängig. Die Entwicklung dieser Projekte verläuft linear.

Im Bauwesen werden diese drei allgemeinen Schritte beispielsweise in der Regel befolgt:

  1. Der physische Entwurf eines Gebäudes wird erstellt, bevor mit dem Bau begonnen wird.
  2. Das Fundament wird gegossen, bevor das Skelett eines Gebäudes errichtet wird.
  3. Das Skelett des Gebäudes wird fertiggestellt, bevor die Wände gebaut werden.

In einer Fertigungsstraße werden die Schritte beim Bau eines Produkts nacheinander in einer kontrollierten Reihenfolge ausgeführt, bis das fertige Produkt entsteht.

Das Wasserfallmodell bezieht die Endnutzer oder Kunden eines Projekts nicht so stark ein wie andere Entwicklungsmethoden. Die Nutzer werden in den ersten Phasen der Erfassung und Definition von Anforderungen konsultiert, und das Feedback der Kunden wird danach einbezogen. Indem der Kunde aus dem Hauptteil des Wasserfallprozesses herausgehalten wird, durchläuft das Entwicklungsteam die Phasen eines Projekts schnell.

Diese Methode eignet sich für Teams und Projekte, die ein Projekt gemäß den zu Beginn des Projekts festgelegten festen oder unveränderlichen Anforderungen entwickeln möchten. Bei Wasserfallprojekten ist der Prozess hochgradig definiert, und es gibt nur geringe oder keine Variabilität bei den Ergebnissen. Die Wasserfallmethode ist auch eine gute Wahl, wenn das Projekt zeitlichen oder finanziellen Beschränkungen unterliegt.

Projekte, die auf der Wasserfallmethode basieren, sind klar definiert, vorhersehbar und verfügen über eine spezifische Dokumentation. Sie weisen folgende Merkmale auf: feste Anforderungen, ausreichende Ressourcen, ein festgelegter Zeitplan und eine gut verstandene Technologie. In der Regel sind keine wesentlichen Änderungen erforderlich.

Das Ziel des Wasserfallmodells ist es, die Ziele beim ersten Versuch zu erreichen. Wenn also bei Softwareentwicklungsprozessen eine Anwendung sofort einsatzbereit sein muss, ohne dass Kunden verloren gehen oder andere schwerwiegende Probleme auftreten, ist das Wasserfallmodell eine geeignete Methode. Im Gegensatz dazu steht das agile Projektmanagement- und Entwicklungsmodell. Agile Methoden nutzen fortlaufende Wiederholungen. Der iterative Ansatz umfasst das Entwerfen, Entwickeln und Testen von Software in wiederholten Zyklen, die aufeinander aufbauen.

Phasen des Wasserfallmodells

Bei der Anwendung auf komplexe Projekte, wie zum Beispiel die Softwareentwicklung, umfasst die Wasserfallentwicklungsmethodik sieben Phasen:

  1. Anforderungen. Mögliche Projektanforderungen, Fristen und Richtlinien für das Projekt werden analysiert und in einem formellen Anforderungsdokument, auch Funktionale Spezifikation oder Pflichtenheft genannt, festgehalten. In dieser ersten Entwicklungsphase wird das Projekt definiert und geplant, ohne dabei auf bestimmte Prozesse einzugehen. Außerdem werden der Projektumfang, die Teammitglieder, die Interessengruppen, der Prozess zur Erfassung von Anforderungen, die Berichterstattung über den Projektfortschritt, die Verwendung von Hilfsmitteln wie Vorlagen und Workflow-Diagrammen sowie eine Roadmap für das Projekt festgelegt.
  2. Analyse. Die Systemspezifikationen werden analysiert, um Produktmodelle und Geschäftslogik zu generieren, die als Leitfaden für die Produktion dienen. Zu diesem Zeitpunkt werden auch die finanziellen und technischen Ressourcen auf ihre Durchführbarkeit geprüft.
  3. Design. Es wird ein Design-Spezifikationsdokument erstellt, um die technischen Anforderungen während der Designphase zu skizzieren. Dazu gehören die Programmiersprache, Hardware, Datenquellen, Architektur und Dienste.
  4. Codierung und Implementierung. Der Quellcode wird unter Verwendung der in den vorherigen Phasen festgelegten Modelle, Logik und Anforderungsspezifikationen entwickelt. In der Regel wird das System in kleinere Komponenten oder Einheiten codiert, bevor es zusammengesetzt wird.
  5. Testen. In dieser Phase werden durch Qualitätssicherung und Unit-, System- und Betatests Probleme identifiziert, die behoben werden müssen. Dies erzwingt eine Wiederholung der Codierungsphase zur Fehlerbehebung. Wenn das System die Integration und den Test besteht, wird der Wasserfallprozess fortgesetzt.
  6. Betrieb und Bereitstellung. Das Produkt oder die Anwendung gilt als voll funktionsfähig und wird in einer Live-Umgebung bereitgestellt.
  7. Wartung. Es werden auf unbestimmte Zeit korrektive, adaptive und optimierende Wartungsmaßnahmen durchgeführt, um das Produkt und seine Funktionalität zu verbessern, zu aktualisieren und zu erweitern. Dies kann die Veröffentlichung von Patch-Updates und neuen Versionen beinhalten.

Bevor die nächste Phase im Wasserfallprozess beginnt, erfolgt in der Regel eine Überprüfung und Freigabe, um sicherzustellen, dass alle definierten Ziele erreicht wurden. Beispielsweise stellen Entwickler sicher, dass jede Technologieeinheit ordnungsgemäß in die Implementierungsphase integriert ist, bevor sie in die Testphase übergeht.

Wasserfallmodell
Abbildung 1: Die Wasserfallmethode ist eine lineare Methode zur Strukturierung der Verfahren und Prozesse in einem Softwareentwicklungsprojekt.

Vorteile des Wasserfallmodells

Die agile Methodik wird häufig anstelle des Wasserfallmodells verwendet. Es gibt jedoch Vorteile des Wasserfall- gegenüber dem agilen Ansatz, wie die folgenden:

  • Der Wasserfallansatz ermöglicht es großen oder sich verändernden Teams, sich auf ein gemeinsames Ziel zuzubewegen, das in der Anforderungsphase definiert wurde.
  • Er erzwingt einen strukturierten, disziplinierten Ansatz.
  • Er vereinfacht das Verständnis, die Nachverfolgung und die Anordnung von Aufgaben.
  • Er erleichtert die Abteilungsbildung und die Kontrolle durch das Management auf der Grundlage des Zeitplans oder der Fristen.
  • Er fördert gute Programmiergewohnheiten, indem er die Definition vor der Umsetzung des Designs und dann die Programmierung vorsieht.
  • Er erleichtert frühzeitige Änderungen des Systemdesigns und der Spezifikationen.
  • Er definiert Meilensteine und Fristen klar.

Nachteile des Wasserfallmodells

Die Nachteile des Wasserfallmodells liegen in der Regel in dem Risiko, das mit einem Mangel an Überarbeitung und Flexibilität verbunden ist. Zu den spezifischen Problemen gehören die folgenden:

  • Das Wasserfalldesign ist nicht anpassungsfähig; wenn ein Fehler gefunden wird, muss der gesamte Prozess oft von vorne beginnen.
  • Die Methodik berücksichtigt kein Feedback von Benutzern oder Kunden während des Prozesses und nimmt Änderungen auf der Grundlage der Ergebnisse vor.
  • Beim Wasserfallmodell werden Tests bis zum Ende des Entwicklungszyklus hinausgezögert.
  • Fehlerkorrekturen werden nicht berücksichtigt.
  • Anfragen zu Änderungen, Anpassungen des Umfangs und Aktualisierungen werden nicht gut gehandhabt.
  • Beim Wasserfallmodell können sich Prozesse nicht überschneiden, sodass nicht gleichzeitig an verschiedenen Phasen gearbeitet werden kann, was die Gesamteffizienz verringert.
  • Ein funktionsfähiges Produkt ist erst in den späteren Phasen des Projektlebenszyklus verfügbar.
  • Das Wasserfallmodell ist nicht ideal für komplexe, risikoreiche laufende Projekte.

Software und Tools für das Wasserfallmodell

Gantt-Diagramme sind ein gängiges Management-Tool für Wasserfallprojekte. Diese Diagramme ermöglichen eine einfache Visualisierung aufeinanderfolgender Phasen, sodass Projektmanager Abhängigkeiten und Teilaufgaben für jede Phase des Prozesses abbilden können. Sie bieten auch einen klaren Überblick über Zeitpläne und Fristen für jede Phase.

Gantt-Diagramm
Abbildung 2: Ein Gantt-Diagramm ist ein seitliches Balkendiagramm, in dem die Länge jedes Balkens die Zeit darstellt, die für die Erledigung einer Aufgabe benötigt wird.

Projektmanagementsoftware enthält oft andere Tools, die Teams bei der Erledigung ihrer Aufgaben unterstützen. Zu den wichtigen Funktionen einer Projektmanagementsoftware gehören Teamzusammenarbeit, Notizen, Testen und Entwicklung sowie Datenanalyse und -visualisierung.

Alternativen zum Wasserfallmodell

Neben agilen Softwareentwicklungsmethoden gibt es folgende Alternativen zum Wasserfallprozess:

Trotz der Beliebtheit anderer Projektmanagementansätze spielt das Wasserfallmodell nach wie vor eine wichtige Rolle. Es kann in andere Modelle integriert werden, um Hybridlösungen zu bieten, die in regulierten Branchen wie dem Gesundheitswesen und der Verteidigung eingesetzt werden. Es kann auch als Lehrmittel und zur Unterstützung von Altprojekten verwendet werden.

Diese Definition wurde zuletzt im Dezember 2024 aktualisiert

Erfahren Sie mehr über Softwareentwicklung