Project Management Daten & Report
Phasenablaufmodell für die Entwicklung von Software Homepage von PS-Trainer -
an PS-Trainer
Phasenablaufmodelle für die Software-Entwicklung
(Software-Engineering)
Was ist Software-Engineering ?
Kurz gefaßt könnte man Software-Engineering als die organisierte,
methodische Erstellung eines größeren Softwareprojektes
bezeichnen.
Die
Software-Krise
Die Software Industrie mußte relativ rasch feststellen, daß es kaum
möglich war, die Bedürfnisse der Kunden zufriedenzustellen, ohne die
althergebrachte Arbeitsweisen zu überdenken.
Die Problematik war so offensichtlich, daß Fachleute in den späten
60er Jahren von einer Software-Krise sprechen.
Die Erstellung eines in Auftrag gegebenen Software Systems, die sowieso im Vergleich
zu den Kosten der Hardware immer teurer geworden war, überschritt sowohl
die Dauer als auch den Preis betreffend die vereinbarten Rahmenbedingungen oder
aber konnte qualitätsmäßig nicht zufriedenstellen.
Oft mußten angesetzte Aufträge wieder abgesagt werden, weil der Kunde
die bestellte "Ware" nicht mehr bezahlen konnte oder wollte. Auf der
anderen Seite aber wollten die hochqualifizierten Programmierer für ihre
Arbeit auch angemessen bezahlt werden. Die damaligen Großkunden der Softwareindustrie
initiierten daraufhin eigens zum Besprechen eines Ausweges Konferenzen mit den
Fachleuten auf Anbieterseite.
In dieser Zeit kommt die Bezeichnung Software-Engineering zum erstenmal in Gebrauch.
Man hatte erkannt, daß Hauptursache der Krise die Schwerfälligkeit
der damaligen Arbeitsweise bezüglich geringfügiger Änderungen
der Software war.
Schon lange konnte kein Programm oder gar System aus mehreren Programmen
oder Komponenten mehr von einer Person alleine programmiert werden. Nicht
nur die Änderung der Anforderungen an ein Programm, nachdem es bereits
fertiggestellt war, sondern auch die nachträgliche Behebung von Fehlfunktionen
konnte kaum von den ursprünglichen Programmierern ausgeführt werden.
Dokumentation war möglicherweise ausreichend erstellt, um den Anwender
zufriedenzustellen, die Wartbarkeit litt aber oft unter unzureichender Weitsicht
beim Entwurf und die ursprünglichen Gedanken der Programmierer waren
dem Wartungspersonal oft nicht mehr zugänglich. Vor allem aber war die
Vorgehensweise beim Entwurf größerer Softwaresyteme sehr wenig
tolerant gegenüber Fehlplanung.
Das Wasserfall-Modell
Die als Wasserfallmodell bekanntgewordene Vorgehensweise kann als erste Systematisierung
der für jeden Konstruktionsprozeß typischen Phasen des Entwurfes,
usw. im Software Engineering angesehen werden.
Im Sinne der Zerlegung einer großen Aufgabe in mehrere kleine Aufgaben
versucht man in jeder der einzelnen Phasen ein Teilprodukt zu erstellen, und
auch ausreichend zu dokumentieren, so daß es der nächsten Phase zur
Weiterbearbeitung übergeben werden kann. Offensichtlich kann und sollte
man jede einzelne Phase noch einmal in Planung, Realisierung und Überprüfung
zergliedern, um die Korrektheit des Teilproduktes jeder einzelnen Phase sicherzustellen.
Das Ziel war es, Rückwirkungen der Erkenntnisse einer Phase auf vorherige
Phasen möglichst auszuschließen.
Aus der Erfahrung wußte man, daß jede Fehlplanung in einer der
verschiedenen Phasen um so aufwendiger beziehungsweise kostenintensiver zu
beheben war, je weiter man innerhalb der Phasen schon fortgeschritten, war
bevor der Fehler erkannt wurde. Deshalb mußte eben besonders auf Konsistenz
und Eindeutigkeit jedes Zwischenproduktes geachtet werden. Hier wird auch
die Notwendigkeit deutlich, geeignete Methoden, Notationen u.ä. zu finden,
auf die sich die beteiligten Personen einigen konnten, um eine ordentliche
Kommunikation zwischen den einzelnen Arbeitsschritten zu gewährleisten.
Obwohl gerade mit dem Ziel entworfen, unter den einzelnen Phasen möglichst
korrekte Zwischenergebnisse auszutauschen, konnte das Wasserfallmodell die Probleme
die sich ergaben, wenn trotz größter Sorgfalt Fehlplanungen in einer
frühen Phase offenbar wurden, überhaupt nicht mindern.
Das Spiralmodell
Das nun angestrebte Verfahren, die notwendigen Phasen des Entwurfes, usw. möglichst
durchgängig oder wiederholbar zu gestalten, wird allgemein als Spiralmodell
idealisiert.
Man versucht im Prinzip die gleichen Tätigkeiten (Entwurf,..) auf verschiedene
Entwicklungsstufen eines Projektes wiederholt anwenden zu können, und so
nach und nach die vollständige Funktionalität zu realisieren. Außerdem
kann in jedem erneuten Durchlaufen eines Zyklus ein anderes Teilgebiet des Projektes
gezielt angesprochen werden, wenn dort in einer vorhergehenden Phase Mängel
entdeckt worden sind. Hier kann ein unvollständiger Prototyp des Systems
erstellt werden, an dem der Kunde prüfen kann, ob das Produkt den Wünschen
entspricht. Das entspricht grundsätzlich einem mehrfachen Durchlaufen des
Wasserfallmodells, nur daß hier explizit gewünscht ist, bei jedem
Durchlauf der "Spirale" ein Modell zu erstellen oder zu verfeinern,
welches von jeder der anderen Phasen weiter bearbeitet werden kann.
Quelle: Herbert König (TGM):
Phasenablaufmodelle
in der Software-Entwicklung