Wasserfall-Modell

Das Wasserfall-Modell ist ein folgender Designprozess, der häufig in Softwareentwicklungsprozessen verwendet ist, in denen Fortschritt als das Fließen fest abwärts (wie ein Wasserfall) durch die Phasen von Vorstellung, Einleitung, Analyse, Design, Aufbau, Prüfung, Produktion/Durchführung und Wartung gesehen wird.

Das Wasserfall-Entwicklungsmodell entsteht in den Produktions- und Bauindustrien: Hoch strukturierte physische Umgebungen, in denen Nachdem-Tatsache-Änderungen untersagend kostspielig, wenn nicht unmöglich sind. Seitdem keine formellen Softwareentwicklungsmethodiken zurzeit bestanden haben, wurde dieses Hardware-orientierte Modell einfach an die Softwareentwicklung angepasst.

Der erste bekannte Präsentationsbeschreiben-Gebrauch von ähnlichen Phasen in der Softwaretechnik wurde von Herbert D. Benington auf dem Symposium auf fortgeschrittenen Programmierverfahren für Digitalcomputer am 29. Juni 1956 gehalten. Diese Präsentation war über die Entwicklung der Software für den WEISEN. 1983 wurde das Papier mit einem Vorwort von Benington neu veröffentlicht, der darauf hinweist, dass der Prozess im strengen verfeinernd nicht tatsächlich durchgeführt, aber ein Prototyp angewiesen wurde.

Die erste formelle Beschreibung des Wasserfall-Modells wird häufig als ein 1970-Artikel von Winston W. Royce zitiert, obwohl Royce den Begriff "Wasserfall" in diesem Artikel nicht gebraucht hat. Royce hat dieses Modell als ein Beispiel eines fehlerhaften, nichtarbeitenden Modells präsentiert. Das ist tatsächlich, wie der Begriff allgemein schriftlich über die Softwareentwicklung gebraucht wird - um eine kritische Ansicht von einer allgemein verwendeten Softwarepraxis zu beschreiben.

Modell

Im ursprünglichen Wasserfall-Modell von Royce wird den folgenden Phasen in der Ordnung gefolgt:

  1. Anforderungsprofil
  2. Design
  3. Aufbau (AUCH BEKANNT ALS Durchführung oder codierend)
  4. Integration
  5. Die Prüfung und das Beseitigen (AUCH BEKANNT ALS Gültigkeitserklärung)
  6. Installation
  7. Wartung

So behauptet das Wasserfall-Modell, dass man sich zu einer Phase nur bewegen sollte, wenn seine vorhergehende Phase vollendet und vervollkommnet wird.

Jedoch gibt es verschiedene modifizierte Wasserfall-Modelle (einschließlich des Endmodells von Royce), der geringe oder größere Schwankungen auf diesem Prozess einschließen kann.

Das Unterstützen von Argumenten

Zeit verbracht früh im Softwareproduktionszyklus kann zu größerer Wirtschaft in späteren Stufen führen. McConnell zeigt, dass ein Programmfehler, der in den frühen Stufen (wie Anforderungsprofil oder Design) gefunden ist, im Geld, Anstrengung, und Zeit preiswerter ist, um zu befestigen, als derselbe Programmfehler gefunden später im Prozess. Um ein äußerstes Beispiel zu nehmen, wenn sich ein Programm-Design erweist, unmöglich zu sein, durchzuführen, ist es leichter, das Design in der Designbühne zu befestigen, als, einige Monate später zu begreifen, wenn Programm-Bestandteile integriert werden, dass die ganze geleistete Arbeit bis jetzt wegen eines gebrochenen Designs ausrangiert werden muss.

Das ist die Hauptidee hinter dem Großen Design Vorderseite und das Wasserfall-Modell: Zeit verbracht früh auf sich überzeugenden Voraussetzungen und Design ist richtig rettet Sie viel Zeit und Anstrengung später. So geht das Denken an diejenigen, die dem Wasserfall-Prozess folgen, stellen Sie sicher, dass jede Phase um 100 % abgeschlossen und absolut richtig ist, bevor Sie zur folgenden Phase weitergehen. Programm-Voraussetzungen sollten im Stein gesetzt werden, bevor Design beginnt (sonst, wird Arbeit, die in ein auf falschen Voraussetzungen gestütztes Design gestellt ist, vergeudet). Das Design des Programms sollte vollkommen sein, bevor Leute beginnen, das Design durchzuführen (sonst, führen sie das falsche Design durch, und ihre Arbeit wird vergeudet), usw.

Ein weiteres Argument für das Wasserfall-Modell ist, dass es die Dokumentation (wie Voraussetzungsdokumente und Designdokumente) sowie Quellcode betont. In weniger völlig bestimmten und dokumentierten Methodiken werden Kenntnisse verloren, wenn Gruppenmitglieder abreisen, bevor das Projekt vollendet wird und es für ein Projekt schwierig sein kann, sich vom Verlust zu erholen. Wenn ein völlig arbeitendes Designdokument da ist (wie die Absicht des Großen Designs Vorderseite und das Wasserfall-Modell ist), sollten neue Gruppenmitglieder oder sogar völlig neue Mannschaften im Stande sein, sich vertraut zu machen, indem sie die Dokumente lesen.

Einige Wasserfall-Befürworter bevorzugen das Wasserfall-Modell für seine einfache Annäherung und behaupten, dass es mehr diszipliniert wird. Das Wasserfall-Modell stellt eine strukturierte Annäherung zur Verfügung; das Modell selbst schreitet geradlinig durch getrennte, leicht verständliche und erklärliche Phasen fort und ist so leicht zu verstehen; es stellt auch leicht identifizierbare Meilensteine im Entwicklungsprozess zur Verfügung. Es ist vielleicht aus diesem Grund, dass das Wasserfall-Modell als ein beginnendes Beispiel eines Entwicklungsmodells in vielen Softwaretechniktexten und Kursen verwendet wird.

Es wird behauptet, dass der Wasserfall vorbildliches und Großes Design Vorderseite im Allgemeinen Softwareprojekten angepasst werden kann, die (besonders jene Projekte mit unveränderlichen Voraussetzungen, solcher als mit der Schrumpfverpackungssoftware) stabil sind, und wo es möglich und wahrscheinlich ist, dass Entwerfer im Stande sein werden, Problem-Gebiete des Systems völlig vorauszusagen und ein richtiges Design zu erzeugen, bevor Durchführung angefangen wird. Das Wasserfall-Modell verlangt auch, dass implementers dem gut gemachten folgen, Design genau vollenden, sicherstellend, dass die Integration des Systems glatt weitergeht.

Kritik

Viele behaupten, dass das Wasserfall-Modell eine schlechte Idee im Praxis-Glauben es unmöglich für jedes nichttriviale Projekt ist, eine Phase eines Softwareproduktlebenszyklus vollkommen vor dem Bewegen zu den folgenden Phasen und Lernen aus ihnen zu beenden.

Zum Beispiel können Kunden nicht genau wissen, welche Voraussetzungen sie vor der Prüfung eines Arbeitsprototyps und dem Äußern darüber brauchen. Sie können ihre Voraussetzungen ständig ändern. Entwerfer und Programmierer können wenig Kontrolle darüber haben. Wenn Kunden ihre Voraussetzungen ändern, nachdem das Design beendet wird, muss das Design modifiziert werden, um die neuen Voraussetzungen anzupassen. Das bedeutet effektiv, ziemlich viel Arbeitsstunden ungültig zu machen, was vergrößerte Kosten besonders bedeutet, wenn ein großer Betrag der Mittel des Projektes bereits im Großen Design Vorderseite investiert worden ist.

Entwerfer können zukünftiger Durchführungsschwierigkeiten nicht bewusst sein, wenn sie ein Design für ein undurchgeführtes Softwareprodukt schreiben. D. h. es kann klar in der Durchführungsphase werden, dass ein besonderes Gebiet der Programm-Funktionalität außerordentlich schwierig ist durchzuführen. In diesem Fall ist es besser, das Design zu revidieren, als auf einem Design andauern, das auf fehlerhaften Vorhersagen gestützt ist, und das für die kürzlich entdeckten Probleme nicht verantwortlich ist.

Steve McConnell, im Code Abgeschlossen, (ein Buch, das weit verbreiteten Gebrauch des Wasserfall-Modells kritisiert) kennzeichnet Design als ein "schlechtes Problem"-a Problem, dessen Voraussetzungen und Beschränkungen vor der Vollziehung nicht völlig bekannt sein können. Die Implikation davon ist, dass es zum vollkommenen eine Phase der Softwareentwicklung unmöglich ist, so ist es unmöglich, wenn man das Wasserfall-Modell verwendet, um zur folgenden Phase weiterzugehen.

David Parnas, in Einem Vernünftigen Designprozess: Wie und Warum man Es Fälscht, schreibt:

Das Konzept oben ausbreitend, können die Projektmiteigentümer (NICHTES Personal) nicht der Fähigkeiten zur Technologie völlig bewusst sein, die wird durchführt. Das kann dazu führen, was sie "denken, ist mögliche" Definieren-Erwartungen und Voraussetzungen. Das kann zu einem Design führen, das das volle Potenzial dessen nicht verwendet, was die neue Technologie liefern kann, oder einfach die vorhandene Anwendung oder den Prozess mit der neuen Technologie wiederholt. Das kann wesentliche Änderungen zu den Durchführungsvoraussetzungen verursachen, sobald sich die Miteigentümer mehr der von der neuen Technologie verfügbaren Funktionalität bewusst werden. Ein Beispiel ist, wo eine Organisation von einem papierbasierten Prozess bis einen elektronischen Prozess abwandert. Während Schlüssel deliverables des Papierprozesses, Vorteile der Echtzeitdateneingangsgültigkeitserklärung, Rückverfolgbarkeit aufrechterhalten werden muss, und automatisierte Entscheidungspunkt-Routenplanung in den frühen Planungsstufen des Projektes nicht vorausgesehen werden darf.

Die Idee hinter dem Wasserfall-Modell kann "Maß zweimal sein; Kürzung einmal" und behaupten diejenigen, die dem Wasserfall-Modell entgegengesetzt sind, dass diese Idee dazu neigt auseinander zu fallen, wenn sich das Problem ständig wegen Voraussetzungsmodifizierungen und neuer Verwirklichungen über das Problem selbst ändert. Eine potenzielle Lösung ist für einen erfahrenen Entwickler, um Zeit Vorderseite auf dem Wiederfactoring zu verbringen, um die Software zu konsolidieren, und es auf eine mögliche Aktualisierung ganz gleich vorzubereiten, wenn solcher bereits geplant wird. Eine andere Annäherung soll eine Designzielen-Modularität mit Schnittstellen verwenden, um die Flexibilität der Software in Bezug auf das Design zu vergrößern.

Wegen der Typen von Kritiken, die über einigen Organisationen wie das US-Verteidigungsministerium besprochen sind, haben jetzt eine Vorliebe gegen Wasserfall-Typ-Methodiken, mit Mil-Std-498 anfangend, "klar Entwicklungserwerb und IID fördernd".

Der aktuelle Standard von DoD 5000.2, veröffentlicht 2000, setzt eine klare Vorliebe gegen den Wasserfall fest: "Es gibt zwei Annäherungen, evolutionär und Einzelschritt [Wasserfall] zur vollen Fähigkeit. Eine Entwicklungsannäherung wird bevorzugt. … [Darin] wird Annäherung, die äußerste an den Benutzer gelieferte Fähigkeit in zwei oder mehr Blöcke mit der zunehmenden Zunahme der Fähigkeit geteilt... Softwareentwicklung soll einem wiederholenden spiralförmigen Entwicklungsprozess folgen, in dem ständig dehnbare Softwareversionen auf dem Lernen aus der früheren Entwicklung basieren."

Modifizierte Modelle

Als Antwort auf die wahrgenommenen Probleme mit dem reinen Wasserfall-Modell sind viele modifizierte Wasserfall-Modelle eingeführt worden. Diese Modelle können einige oder alle Kritiken des reinen Wasserfall-Modells anreden. Viele verschiedene Modelle werden von Steve McConnell im "Lebenszyklus bedeckt", Kapitel seines Buches planend.

Während alle Softwareentwicklungsmodelle etwas Ähnlichkeit zum Wasserfall-Modell tragen, weil alle Softwareentwicklungsmodelle mindestens einige Phasen vereinigen, die denjenigen ähnlich sind, die im Wasserfall-Modell, diese Abteilung Geschäfte mit denjenigen verwendet sind, die am Wasserfall-Modell am nächsten sind. Für Modelle, die weitere Unterschiede zum Wasserfall-Modell, oder für radikal verschiedene Modelle anwenden, suchen allgemeine Information über den Softwareentwicklungsprozess.

Siehe auch

  • Flinke Softwareentwicklung
  • Großes Design Vorderseite
  • Verwirrungsmodell
  • Wiederholende und zusätzliche Entwicklung
  • Schnelle Anwendungsentwicklung
  • Softwareentwicklung bearbeitet
  • Spiralförmiges Modell
  • Systementwicklungsmethodik
  • V-Modell
  • Doppelmodell von Vee
  • Liste von Softwareentwicklungsphilosophien

Weiterführende Literatur

.

Links


Wemic / Wau Holland
Impressum & Datenschutz