Spiralmodell
Inhaltsverzeichnis
Was ist ein Spiralmodell?
Mit dem Spiralmodell (engl.: spiral model) wird ein Modell aus dem Bereich der Softwareentwicklung angesprochen. Das Modell folgt einem spezifischen Vorgehen und kann als Gegensatz zum sogenannten Wasserfallmodell erachtet werden. Das Spiralmodell erläutert, wie der Lebenszyklus einer Software anhand von Spiralen verläuft. Die Spiralen müssen nach dem Modell immer wieder durchlaufen werden, sodass letztendlich das fertige Produkt in die Auslieferung gehen kann. Eine andere Bezeichnung für das Spiralmodell ist inkrementelles Modell, das heißt es findet eine permanente Arbeit an dem Produkt statt und dies tendenziell in kleinen Schritten.
Hintergrund zum Spiralmodell
Ein inhaltlicher Fokus des Spiralmodells liegt auf der Minimierung von Risiken hinsichtlich der Softwareentwicklung. Die hierbei vorliegenden Risiken sind vor allem steigende Gesamtkosten, Mehraufwand sowie eine verspätete Einführung der Software. Bei dem vorliegenden Modell wird diesen Risiken insofern begegnet, als dass die inkrementelle Vorgehensweise Anwendung findet.
Es werden in dieser Weise zunächst Prototypen entwickelt, die sodann die Zyklen respektive Spiralen der Softwareentwicklung durchlaufen. Dieser Prozess findet mindestens ein Mal statt. Ein wesentliches Charakteristikum des Spiralmodells ist dessen generische Beschaffenheit, wodurch Kombinationsmöglichkeiten mit anderen Methoden der Entwicklung gegeben sind. Aus diesem Grund wird das Spiralmodell auch als Modell zweiter Ordnung tituliert.
Der Ursprung des Modells geht auf das Jahr 1986 zurück, als das Spiralmodell von Barry W. Boehm in einem seiner Aufsätze Beachtung fand. Zu dieser Zeit wurde das Wasserfallmodell mitsamt seinen inhärenten Nachteilen immer wieder kritisch diskutiert. Ein wesentliches Merkmal des Spiralmodells im Unterschied zum Wasserfallmodell und auch zu “Code and Fix” ist, dass es sich bei dem Spiralmodell um ein risikogetriebenes Verfahren handelt.
Mit anderen Worten geht es hier immer wieder darum, Risiken zu identifizieren und zu lösen – und dies innerhalb unterschiedlicher Produktzyklen sowie nach Festlegung der Bedingungen und Ziele. Fokussiert wird beim Spiralmodell auf Faktoren, die für das Projekt bzw. die Software eine Unsicherheit bedeuten. Die Annahme ist demzufolge, dass eine kostengünstige Reduktion der Risiken bzw. deren Kontrolle einen erfolgreichen Verlauf des Projektes deutlich begünstigen.
Vorliegende Ansätze, wie die Risiken reduziert und eliminiert werden können, gibt es mehrere, wie zum Beispiel: Simulationen, Interviews mit Anwendern, Prototypen und Benchmarktests. Das gesamte Verfahren kann je nach Risikotyp auch revidiert und auf andere Weise strukturiert werden, wobei das Intervenieren des Managements in jeder der Zyklen möglich ist. Es können demnach auch alternative Ansätze der Entwicklung übernommen werden.
Funktionalität des Spiralmodells
Wie bereits beschrieben geht es bei dem Spiralmodell um das immer wiederkehrende Durchlaufen von Zyklen, die auch als Quadranten bezeichnet werden. Bei den Zyklen, die meist mehrmals durchlaufen werden, handelt es sich um die folgenden vier Quadranten:
- Zielfestlegung, Beschreibung der Rahmenbedingungen, Identifikation von Alternativen
- Evaluierung der Alternativen, Risikoerkennung sowie Einordnung und Reduzierung der Risiken (beispielsweise mit Analysen, Prototyping, Simulationen)
- Anfertigung und Prüfung eines Zwischenprodukts
- Planung des nächsten Quadranten zur Fortsetzung des Projekts
Das Modell ist risikogetrieben und in diesem Zusammenhang sind die wichtigsten Faktoren des Modells die Risikoanalyse sowie die Risikobewertung. Es gilt, jedes das Projekt bedrohende Risiko bereits zu einem sehr frühen Zeitpunkt zu identifizieren. Inwieweit das Projekt voranschreitet, hängt sodann insbesondere davon ab, wie die spezifischen Risiken verhindert und eliminiert werden. Das Projekt ist in dieser Weise erst dann als erfolgreich zu bezeichnen, wenn keine Risiken mehr feststellbar sind.
Das Durchlaufen der Zyklen bzw. Quadranten ist mit der Zielsetzung verbunden, ein kontinuierlich besser werdendes Produkt zu produzieren, wobei die Software bzw. Applikation eine kontinuierliche Verfeinerung erfährt. Wichtig ist, dass das Spiralmodell zwar inkrementell beschaffen ist, aber nicht wirklich iterativ. Iterationen kommen nur dann vor, wenn das Projekt durch Konflikte oder Risiken bedroht wird. In einem solchen Fall hat das Produkt einen Zyklus erneut zu durchlaufen, was wiederum als Iteration zu deklarieren ist.
Das Spiralmodell: Vorteile und Nachteile
Mit dem Einsatz des risikogetriebenen Spiralmodells sind spezifische Vorteile und Nachteile verbunden. Das Einsatzfeld des Modells ist meist bei großen Projekten mit bestehenden Risiken zu finden. Hinsichtlich der Vor- und Nachteile ist zu bedenken:
Fazit: das Spiralmodell und die Programmierung
Das gegensätzliche Wasserfallmodell stellt ein sequentielles Modell dar, bei dem eine Anordnung mit aufeinanderfolgenden Phasen gegeben ist. Das Spiralmodell hingegen baut auf Spiralen auf, mit denen der Lebenszyklus einer Software charakterisiert wird. Diese Spiralen müssen durchlaufen werden, um letztendlich und ohne Risiken zu einem fertigen Endprodukt zu gelangen. Wegen dieser Beschaffenheit ähnelt das Spiralmodell in einem höheren Maße dem Prototyping als dies bei den klassischen Modellen gegeben ist. Kommt das Modell zur Anwendung, sollte darauf Acht gegeben werden, dass seine Vorteile fokussiert und die Nachteile soweit wie möglich vermieden werden. Weil das Spiralmodell sehr stark auf die Risikominimierung und -vermeidung ausgerichtet ist, kann es vor allem für Entscheider eine große Rolle spielen. Denn es konzentriert sich damit sehr intensiv auf finanzielle Aspekte. Mit dem Spiralmodell können auch größere Projekte umgesetzt werden – mitsamt den wirtschaftlichen Effekten, die diese Projekte ausmachen. Dies ist der Fall, da beim Spiralmodell häufig Kundengespräche, Machbarkeitsstudien und stringente Analysen ein wichtiger Bestandteil sind. Grundsätzlich kann hinsichtlich der Programmierung konstatiert werden, dass agile Methoden vor allem dann gefragt sind, wenn ein hohes Maß an Flexibilität notwendig ist. Dann können auch agile Methoden eine gute Wahl sein – wie etwa Extreme Programming, Scrum oder DevOps.
Sie haben noch Fragen?