Zum Hauptinhalt springen

Spiralmodell

 

Das Entwicklungs- oder Spiralmodell Es handelt sich um einen Softwareentwicklungsansatz, der als Antwort auf die Nachteile der Kaskadenentwicklung angesehen werden kann. Das Spiralmuster beschreibt den Lebenszyklus einer Software durch Spiralen, die wiederholt werden, bis das fertige Produkt geliefert werden kann. Die Spiralentwicklung wird auch als inkrementelle Entwicklung oder Modell bezeichnet. Das Produkt wird kontinuierlich weiterentwickelt und Verbesserungen erfolgen häufig in sehr kleinen Schritten.

Ein wesentliches Merkmal der Spiralentwicklung ist die Minimierung von Risiken in der Softwareentwicklung, die zu erhöhten Gesamtkosten, mehr Aufwand und einer verzögerten Veröffentlichung führen können. Diese Risiken werden durch den inkrementellen Ansatz ausgeglichen, bei dem zunächst Prototypen hergestellt werden, die später mindestens einmal die Softwareentwicklungsphasen durchlaufen. Das Spiralentwicklung Es ist generisch und kann mit anderen klassischen und agilen Entwicklungsmethoden kombiniert werden, weshalb es auch als Modell oder Entwicklung zweiter Ordnung bezeichnet wird.

Allgemeine Information

Das Spiralentwicklung Es wurde von Barry W. Boehm in seinem Aufsatz "Ein Spiralmodell der Softwareentwicklung und -verbesserung" vorgeschlagen. Zu dieser Zeit setzte sich das Wasserfallentwicklungsmodell durch, so dass die damit verbundenen Nachteile häufig diskutiert wurden. Im Gegensatz zu anderen Modellen wie "Code and Fix" oder dem "Wasserfallmodell" basiert die Spiralentwicklung auf dem Risiko. Die Identifizierung und Lösung von Risiken spielt eine wichtige Rolle in den verschiedenen Spiralen des Projekts, sobald die Ziele und Bedingungen definiert wurden. Der Fokus liegt auf möglichen Faktoren, die Unsicherheiten für die Software oder für das gesamte Projekt verursachen können. Unter der Annahme, dass Risiken auf profitable Weise kontrolliert werden können, steht dem erfolgreichen Abschluss des Projekts nichts mehr im Wege. Ansätze zur Minimierung dieser Risiken sind beispielsweise Prototypen, Simulationen, Benchmarks oder Interviews mit Benutzern. Für bestimmte Arten von Risiken kann der gesamte Prozess sogar unterschiedlich überprüft und strukturiert werden. Managementinterventionen sind in jeder Phase des Projekts möglich, und andere Entwicklungsansätze können angepasst werden.

Wie funktioniert es

Die Art Spiralentwicklung Es zeichnet sich durch folgende Zyklen (auch Quadranten) aus:[1]

  • Objektive und alternative Bestimmung: Die Ziele werden gemeinsam mit dem Kunden festgelegt. Gleichzeitig werden mögliche Alternativen diskutiert und die Rahmenbedingungen festgelegt (z. B. Betriebssysteme, Umgebungen und Programmiersprachen).
  • Analyse und Bewertung von Risiken: Potenzielle Risiken werden identifiziert und bewertet. Darüber hinaus werden vorhandene Optionen bewertet. Risiken werden mithilfe von Prototypen, Simulationen und Analysesoftware erfasst, bewertet und anschließend reduziert. In diesem Zyklus gibt es mehrere Prototypen als Entwurfsvorlagen oder Funktionskomponenten
  • Entwicklung und Erprobung: Prototypen werden erweitert und Funktionen hinzugefügt. Der eigentliche Code wird mehrmals geschrieben, getestet und in eine Testumgebung migriert, bis die Software in einer produktiven Umgebung implementiert werden kann.
  • Planen Sie den nächsten Zyklus: Der nächste Zyklus ist am Ende jeder Phase geplant. Wenn Fehler auftreten, werden Lösungen gesucht, und wenn eine Alternative eine bessere Lösung ist, wird sie im nächsten Zyklus bevorzugt.

Die wichtigste Triebkraft für die Spiralentwicklung ist die Risikobewertung und -analyse. Alle Risiken, die das Projekt bedrohen, müssen im Voraus identifiziert werden. Der Fortschritt des Projekts hängt entscheidend davon ab, wie Risiken beseitigt werden können. Das Projekt gilt nur dann als erfolgreich, wenn keine Risiken bestehen. Ziel des Zyklus ist es, ein Produkt in kontinuierlicher Verbesserung herzustellen. Die Software oder App wird ständig weiterentwickelt. Das Spiralmodell ist inkrementell, aber nicht unbedingt repetitiv. Wiederholungen treten nur auf, wenn Risiken, Fehler oder Konflikte das Projekt bedrohen. Dann muss das Produkt erneut einen Zyklus durchlaufen, der als Iteration oder Wiederholung bezeichnet wird.

Vor- / Nachteile

  • Das Spiralentwicklungsmodell wird häufig für größere Projekte verwendet, die einem Risiko ausgesetzt sind. Da diese Risiken direkte monetäre Auswirkungen haben, ist die Kontrolle der Budgets der Kunden und der Förderunternehmen von wesentlicher Bedeutung. Das Spiralmodell wird hauptsächlich in neuen technischen Umgebungen eingesetzt, da diese ein Risiko darstellen.[2]
  • Konflikte zwischen den Anforderungen einer Software und ihrem Design werden durch den zyklischen Ansatz effektiv vermieden, da die Anforderungen ständig überprüft und gegebenenfalls geändert werden können.[3]
  • Feedback von Benutzern, Entwicklern und Kunden kann in den frühen Phasen des Projekts eingeholt werden. Diese Struktur erfordert jedoch auch ein Management, das die Produktzyklen berücksichtigt und schnell auf Risiken reagieren kann. Die Steuerung solcher Projekte ist daher relativ komplex und erfordert auch eine gute Dokumentation, damit alle Änderungen aufgezeichnet werden.
  • Selbst wenn Software während des gesamten Entwicklungs- und Testzyklus (Einheit, Abnahmetest und Onboarding) unter verschiedenen Aspekten getestet wird, kommt es häufig vor, dass Prototypen auf das Produktionssystem übertragen werden. Auf diese Weise besteht die Gefahr, dass andere konzeptionelle Fehler und Inkonsistenzen in das nachfolgende Endprodukt eingeführt werden.
  • An Orten, an denen Entscheidungen über nachfolgende Zyklen getroffen werden, besteht die Gefahr, dass sich Schleifen bilden und das Projekt länger dauert, wenn falsche Entscheidungen getroffen werden. Aus diesem Grund sind die Optionen und ihre Bewertung wichtig.

Relevanz für die Programmierung

Im Gegensatz zu einem sequentiellen Modell (z. B. dem Kaskadenmodell), das in aufeinanderfolgenden Phasen angeordnet ist, beschreibt das Spiralmodell den Lebenszyklus einer Software anhand von Spiralen, die vorhanden sind, um durchlaufen zu werden. Auf diese Weise ähnelt dieser Ansatz eher dem Prototyping als klassischen Ansätzen. Das Spiralmodell soll die Nachteile anderer Modelle vermeiden und die Vorteile hervorheben. Durch die Fokussierung auf die Risikominimierung hat dieses Modell eine finanzielle Komponente, die für Entscheidungsträger relevant sein kann. Durch Gespräche mit Kunden, Analysen und Machbarkeitsstudien können Großprojekte umgesetzt und deren wirtschaftliche Auswirkungen überwacht werden. Inwieweit agile Methoden wie Scrum, Extreme Scheduling oder DevOps bessere Alternativen sind, hängt von vielen verschiedenen Faktoren ab, wie z. B. Projektumfang, Budget oder dem erforderlichen Grad an Support und Wartung. Je mehr Flexibilität erforderlich ist, desto agiler werden Methoden in Betracht gezogen.