Die Traditionelle Wasserfall-Konzept
Der Wasserfall-Ansatz zur Systemanalyse und-design wass der ersten etablierten modernen Ansatz für den Aufbau eines Systems. Diese Methode wurde ursprünglich 1970 von Winston W. Royce definiert („The Waterfall Development Methodology“, 2006). Es gewann schnell Unterstützung von Managern, weil alles logisch vom Anfang eines Projekts bis zum Ende fließt (Jonasson, 2008)., Die Quellen unterscheiden sich, wenn es um die spezifischen Schritte im Wasserfallprozess geht (Jonasson, 2008), und ich werde einige dieser Unterschiede im nächsten Absatz näher erläutern. Die grundlegende zugrunde liegende Logik und Schritte präsentieren sich jedoch in jeder Interpretation.
Abbildung 1: Wasserfallmethode
(„Die Wasserfallentwicklungsmethodik“, 2006)
Die ursprüngliche Wasserfallmethode, wie sie von Royce entwickelt wurde, ist in Abbildung 1 dargestellt. Die Schritte umfassen Anforderungsbestimmung, Design, Implementierung, Verifizierung und Wartung., Andere Modelle ändern die Anforderungsphase in die Ideenphase (Jonasson, 2008) oder brechen die Anforderungsphase in Planung und Analyse auf (Hoffer, George, Valacich, 2008). Darüber hinaus unterteilen einige Modelle die Entwurfsphase weiter in logische und physikalische Entwurfsunterphasen (Hoffer et al., 2008). Wie bereits erwähnt, bleiben die grundlegenden Grundprinzipien jedoch gleich.
Die Wasserfall-Methode geht davon aus, dass alle Anforderungen während der Anforderungsphase im Voraus gesammelt werden können (Kee, 2006)., Die Kommunikation mit dem Benutzer wird in dieser Phase vorinstalliert, da der Projektmanager sein Bestes tut, um ein detailliertes Verständnis der Anforderungen des Benutzers zu erhalten. Sobald diese Phase abgeschlossen ist, läuft der Prozess „bergab“ (Hoffer et al., 2008).
Die Entwurfsphase wird am besten beschrieben, indem sie in logische Design-und physikalische Design-Unterphasen unterteilt wird. Während der logischen Entwurfsphase nutzt der Analytiker des Systems die in der Anforderungsphase gesammelten Informationen, um das System unabhängig von Hardware-oder Softwaresystemen zu entwerfen (Hoffer et al., 2008)., Sobald das übergeordnete logische Design abgeschlossen ist, beginnt der Systemanalytiker, es in ein physisches Design umzuwandeln, das von den Spezifikationen bestimmter Hard-und Softwaretechnologien abhängt („Software Development Lifecycle“, n. d.)
Die Implementierungsphase ist, wenn der gesamte tatsächliche Code geschrieben wird („SDLC-Phasen“, n. d.). Diese Phase gehört den Programmierern in der Wasserfallmethode, da sie die Projektanforderungen und-spezifikationen übernehmen und die Anwendungen codieren.,
Die Verifizierungsphase wurde ursprünglich von Royce gefordert, um sicherzustellen, dass das Projekt den Erwartungen der Kunden entspricht. Unter realen Analysen und Designs wird diese Phase jedoch oft ignoriert. Das Projekt wird an den Kunden ausgerollt und die Wartungsphase beginnt.
Während der Wartungsphase nutzt der Kunde die entwickelte Anwendung. Da Probleme aufgrund unsachgemäßer Anforderungsbestimmung oder anderer Fehler im Entwurfsprozess oder aufgrund von Änderungen der Anforderungen der Benutzer festgestellt werden, werden in dieser Phase Änderungen am System vorgenommen. („SDLC Phasen“, n. d.).,
Die Wasserfall-Methode hat einige Vorteile, darunter:
- Konstruktionsfehler werden erfasst, bevor eine Software geschrieben wird, was Zeit während der Implementierungsphase spart.
- Eine hervorragende technische Dokumentation ist Teil der Leistungen und es ist einfacher für neue Programmierer, während der Wartungsphase auf den neuesten Stand zu kommen.
- Der Ansatz ist sehr strukturiert und es ist einfacher, den Fortschritt anhand klar definierter Meilensteine zu messen.,
- Die Gesamtkosten des Projekts können nach der Definition der Anforderungen (über die Funktions-und Benutzeroberflächenspezifikationen) genau geschätzt werden.
- Das Testen ist einfacher, da es unter Bezugnahme auf die in der Funktionsspezifikation definierten Szenarien durchgeführt werden kann („The Waterfall Development Methodology“, 2006).,
Leider birgt die Waterfall-Methode einige Nachteile, wie zum Beispiel:
- Clients fällt es oft schwer, ihre Anforderungen auf der abstrakten Ebene einer funktionalen Spezifikation anzugeben und wird nur voll und ganz zu schätzen wissen, was benötigt wird, wenn die Anwendung ausgeliefert wird. Es wird dann sehr schwierig (und teuer), die Anwendung neu zu konstruieren.
- Das Modell berücksichtigt nicht die Möglichkeit, dass sich die Anforderungen während des Entwicklungszyklus ändern.,
- Ein Projekt kann oft wesentlich länger dauern, als wenn es mit einer iterativen Methodik wie der agilen Entwicklungsmethode entwickelt wird. („Der Wasserfall-Entwicklung-Methodik“, 2006).
Aufgrund dieser und ähnlicher Probleme suchten Systemanalysten nach alternativen Methoden zum Entwerfen von Systemen. In den folgenden Abschnitten werde ich die entwickelten Methoden auswählen. Ich werde mich auf Methoden konzentrieren, die als agil eingestuft wurden. In diesem Beitrag werde ich mich auf Extreme Programming, Scrum und Test Driven Development konzentrieren.