8 Vorgehensmodelle der Softwareentwicklung: mit Grafiken erklärt

Chief Technology Officer, ScienceSoft

Veröffentlicht:
7 Min. Lesezeit

Anmerkung des Editors: Als erfahrenes Softwareunternehmen mit umfangreichem technologischem Know-how können wir nicht nur theoretisch erklären, welche Modelle wann eingesetzt werden, sondern auch diese praktisch umsetzen. 

Vorgehensmodelle der Softwareentwicklung bestimmen, welche Aktivitäten in welcher Reihenfolge im gesamten Software-Lebenszyklus ausgeführt werden. Heute sind mehr als 50 anerkannte Modelle im Einsatz, woduech sich eine Frage ergibt: welches Vorgehensmodell wann am besten geeignet ist?

Bei der Auswahl lassen sich bestimmte Anforderungen hinsichtlich Budget, Kosten und Termine des Projekts, Rollen und Verantwortlichkeiten der Beteiligten berücksichtigen. Aber dabei sollte man nicht vergessen, dass keines der Vorgehensmodelle in der Softwareentwicklung perfekt ist und seine Vor- und Nachteile mit sich bringt.

In unserem Blogbeitrag vergleichen wir die 8 beliebtesten Modelle, um einen Einblick in ihre Grundprinzipien und Anwendungsbereiche zu geben.

Gängige Modelle: ein kurzer Überblick

Alle Vorgehensmodelle der Softwareentwicklung können in mehrere Gruppen unterteilt werden: je nachdem, wie der Prozess abläuft (linear oder iterativ) und welche Beziehungen zwischen dem Entwicklungsteam und dem Kunden aufgebaut sind (formelle oder informelle).

Gängige Vorgehensmodelle in der Softwareentwicklung

Die Vorgehensmodelle aus den unteren Quadranten der Grafik verfolgen einen sequentiellen Ansatz, d. h. alle Aktivitäten nacheinander durchgeführt werden. Sie sind einfach zu implementieren, umzusetzen und zu verwalten. Je höher sich Modelle in der Grafik befinden, desto flexibler wird der Softwareentwicklungsprozess aufgebaut, wenn es um Änderungen von Anforderungen an die zukünftige Software geht.

In den Vorgehensmodellen auf der linken Seite der Grafik ist der Grad der Kundenbeteiligung sehr niedrig. Auf der rechten Seite liegen Modelle, die „kooperationsbereiter“ sind und eine intensivere Kundenbindung in verschiedene Phasen des Softwareentwicklungszyklus erfordern.

Modelle im Überblick: was und wann am besten geeignet ist

Wasserfallmodell

Wasserfallmodell

Bei diesem sequentiellen Vorgehensmodell ist der Entwicklungsprozess in aufeinanderfolgenden Phasen organisiert: Analyse, Entwurf, Codierung, Test, Installation, Wartung. Dabei wird jede einzelne Phase stark dokumentiert.

Sobald die vorhergehende Stufe beendet wird, beginnt die nächste, die auf konkreten Ergebnissen der vorherigen Phase basiert. Deshalb gibt es keine Möglichkeit, beispielsweise, Softwareanforderungen während der Entwicklungsphase neu zu bewerten.

Es ist auch unmöglich, die fertige Software zu sehen und zu testen, bis die letzte Entwicklungsstufe vollständig abgeschlossen ist, was zu hohen Projektrisiken und unvorhersehbaren Ergebnissen führt. Deshalb werden Fehler nur am Ende des Projektes in der Testphase gefunden. Deren umgehende Behebung erfordert einen größeren Aufwand und führt zu steigenden Gesamtkosten.

Anwendungsbereiche:

  • Einfache kleine oder mittelgroße Softwareprojekte mit klar definierten und unveränderlichen Anforderungen (Entwicklung einer Website für kleine Unternehmen).
  • Projekte, bei denen eine strengere Kontrolle, vorhersehbare Budget und Zeitpläne erforderlich sind (z. B. staatliche Projekte).
  • Projekte, bei denen mehrere Regeln und Vorschriften eingehalten werden müssen (medizinische Softwareprojekte).
  • Projekte, bei denen ein bekanntes Technologie-Stack und Tools zum Einsatz kommen.

V-Modell (Validierungs- und Verifizierungsmodell)

V-Modell - ScienceSoft

Das V-Modell ist ein weiteres Vorgehensmodell, bei dem alle Phasen nacheinander, also linear, durchlaufen werden. Aber für jede Stufe werden entsprechende Testaktivitäten definiert.

Einerseits ermöglicht das, die Softwarequalität effizienter zu kontrollieren und damit Projektrisiken auf ein Minimum zu reduzieren. Andererseits gehört das V-Modell dadurch zu einem der kosten- und zeitaufwändigsten Modelle.

Auch wenn Fehler in Anforderungsspezifikation, Code und Architektur frühzeitig erkannt werden, ist es mmer noch teuer und schwierig, Änderungen während der Entwicklung zu implementieren. Wie beim Wasserfallmodell werden alle Anforderungen zu Beginn erfasst und können nicht geändert werden.

Anwendungsbereiche:

  • Projekte, bei denen Störungen und Ausfallzeiten inakzeptabel sind (z. B. medizinische Software, Software für das Fuhrparkmanagement im Luftverkehr).
Planen Sie ähnliche Projekte?

Unser erfahrenes Team steht Ihnen zur Seite, Sie in allen Phasen zu unterstützen: von der Erstellung eines Konzeptes über die Softwareprogrammierung und Testing bis hin zu Wartung und Support.

Inkrementelles und iteratives Vorgehensmodell

Inkrementelle Entwicklung

Der auf dem inkrementellen Vorgehensmodell basierende Entwicklungsprozess ist in mehrere überschaubare Iterationen unterteilt (Ein modularer Ansatz beim Softwaredesign im „Lego-Stil“ ist erforderlich!). Innerhalb jeder Iteration werden neue funktionsfähige Einzelteile (Inkremente) der Software erstellt und ausgeliefert, wobei die zuvor hinzugefügten Teile unverändert bleiben.

Der Softwareentwicklungsprozess kann entweder sequentiell oder parallel verlaufen. Die parallele Entwicklung ermöglicht eine schnellere Auslieferung. Im Gegensatz dazu können viele wiederholte aufeinanderfolgende Entwicklungszyklen eine Grundlage dafür bilden, dass das Projekt länger dauert und teurer wird.

Iterative Entwicklung

Bei der iterativen Entwicklung werden einzelne Phasen mehrmals durchlaufen. Innerhalb jeder Iteration wird die Software geändert, weiterentwickelt und erweitert. Da die Software schrittweise, also iterativ, verbessert wird, entsteht keine Notwendigkeit die vollständige Spezifikation zu Beginn zu erstellen. Es werden nur die wichtigsten Anforderungen definiert. Der iterative Ansatz bietet Möglichkeiten, im Rahmen des Projektablaufes auf Änderungen der Anforderungen flexibel zu reagieren, die auch auf dem Feedback von Kunden basieren.

Anwendungsbereiche:

  • Große Projekte, bei denen geschäftskritische Unternehmensanwendungen entwickelt werden, die vorzugsweise auf lose gekoppelten Komponenten wie Mikroservices oder Webdienste basieren.

Spiralmodell

Spiralmodell

Das Spiralmodell fokussiert sich auf eine gründliche Risikobewertung. Um die Vorteile des Vorgehensmodells voll ausschöpfen zu können, müssen Sie Spezialisten mit umfassenden Kenntnissen in der Risikobewertung einbeziehen. Eine typische Iteration im Spiralmodell dauert etwa 6 Monate und umfasst 4 wichtige Aktivitäten - sorgfältige Planung, Risikoanalyse, Erstellung von Prototypen und Bewertung des zuvor ausgelieferten Teils. Durch wiederholende Zyklen im Spiralmodel kann die Projektdauer erheblich verlängert werden.

In diesem Modell lassen sich Kunden schon in den früheren Phasen einbinden, z. B. bei der Erforschung und Überprüfung. Während der Entwicklungsphase sind Ergänzungen seitens Kunden nicht akzeptabel.

Anwendungsbereiche:

  • Projekte mit unklaren Geschäftsanforderungen oder zu anspruchsvollen / innovativen Anforderungen.
  • Bei großen und komplexen Projekten.
  • Forschungs- und Entwicklungstätigkeit (F&E) oder Einführung einer neuen Dienstleistung oder eines neuen Produkts.

Rational Unified Process (RUP)

Vorgehensmodell RUP

Beim Rational Unified Process (RUP) geht es um eine Kombination aus linearen und iterativen Frameworks. Das Modell unterteilt den Softwareentwicklungsprozess in vier Phasen: Konzeption, Entwurf, Konstruktion und Übergabe. Jede Phase außer Konzeption wird normalerweise in mehreren Iterationen durchgeführt. Alle grundlegenden Aktivitäten (Anforderungsanalyse, Design usw.) im Softwareentwicklungsprozess werden parallel über diese 4 RUP-Phasen hinweg durchgeführt, aber mit unterschiedlicher Intensität.

RUP hilft beim Aufbau stabiler und gleichzeitig flexibler Lösungen. Dennoch ist dieses Modell nicht so schnell und anpassungsfähig wie reine agile Vorgehensmodelle (Scrum, Kanban, XP usw.). Der Grad der Kundeneinbindung, der Umfang der zu erstellenden Dokumentation und die Dauer einer Iteration können je nach Projektanforderungen variieren.

Anwendungsbereiche:

  • Große und risikoreiche Projekte, insbesondere Use-Case-getriebene Entwicklung und schnelle Auslieferung hochwertiger Software.

Agile Vorgehensmodelle

Als Vertreter agiler Vorgehensmodelle haben wir Scrum, Kanban und XP ausgewählt. Mehr als 70% der Organisationen setzen heute diesen oder jenen agilen Ansatz in ihren IT-Projekten ein. Agile Vorgehensmodelle zeichnen sich im Allgemeinen durch die iterative Entwicklung, die intensive Kommunikation und frühzeitiges Kundenfeedback aus und sind darauf abgezielt, den Entwicklungsprozess schlanker und flexibler zu gestalten.

Jede Iteration kann in der Regel einige Wochen dauern und liefert eine vollständig funktionierende Softwareversion. Die Vorgehensmodelle dieser Gruppe konzentrieren sich mehr auf die schnelle Entwicklung und Auslieferung eines funktionsfähigen Zwischenproduktes. Es wird dabei weniger Wert auf die detaillierte Softwaredokumentation gelegt und hingegen mehr Aufmerksamkeit Testaktivitäten geschenkt.

Die enge Zusammenarbeit sowohl im Team als auch mit dem Kunden ermöglicht es, von Iteration zu Iteration die Qualität des ausgelieferten Produktes zu überwachen und kontinuierlich zu verbessern, den Entwicklungsprozess effektiver zu gestalten und als Ergebnis den Return on Investment (ROI) zu erhöhen. Die Kundenbedürfnisse stehen dabei im Mittelpunkt.

Aber es gilt doch etwas zu beachten: es ist schwierig, einen Gesamtüberblick über das Projekt zu schaffen (z. B. Budget, Zeitaufwand und die Anzahl von Projektbeteiligten zu schätzen), wenn es keine detaillierte Planung und Offenheit für Änderungen gibt.

Anwendungsbereiche:

  • Praktisch alle Startup-Initiativen, bei denen ein frühzeitiges Feedback der Endbenutzer erforderlich ist.
  • Die meisten mittelgroßen Projekte im Rahmen der individuellen Softwareentwicklung, bei denen detaillierte Softwareanforderungen auf Geschäftsanforderungen basieren.
  • Große Projekte, die einfach in kleinere Teile zerlegt und schrittweise umgesetzt werden können.

Es gibt verschiedene agile Vorgehensmodelle für jeden Geschmack. Aber Scrum, Extreme Programming (XP) und Kanban zählen zu den populärsten.

Scrum

Agiles Vorgehensmodell - Scrum

Scrum ist eine der beliebtesten Agilen Entwicklunsmethoden, welche die Aufteilung der gesamten Projektlaufzeit in kurze Iterationen (sog. Sprints) ermöglicht. Jede Iteration beginnt mit der sorgfältigen Planung und endet mit dem Sprint Retrospektive, wo der vorherige Sprint analysiert und bewertet wird. Nachher folgt der nächste Sprint, der auf den Ergebnissen des vorherigen Sprints gebaut ist (z. B. Kundenfeedback, neuen Anforderungen an das Produkt und mehr). Eine Iteration dauert üblicherweise von 2 bis 4 Wochen. Nachdem die Aktivitäten für den nächsten Sprint festgelegt worden sind, können keine Änderungen vorgenommen werden.

Extreme Programming (XP)

Agiles Vorgehensmodell - XP

Beim Extreme Programming (XP) stehen kurze Iterationszyklen und Kundeneinbindung im Mittelpunkt. Eine typische Iteration dauert 1-2 Wochen. Dieses Vorgehensmodell orientiert sich auf Kundenforderungen sowie -bedürfnisse und ermöglicht, Kunden intensiv zu involvieren, benötigte Änderungen in den Entwicklungsprozess zu integrieren.

Diese Flexibilität erschwert erheblich die Auslieferung hochwertiger Software. Um diesen Anforderungen zu begegnen, kommen bei der XP bewährte Praktiken ins Spiel: Programmieren in Paaren, testgetriebene Entwicklung und Testautomatisierung, Continuous Integration, kleine Releases, einfaches Softwaredesign und Vorschriften zur Einhaltung von Kodierungsstandards.

Kanban

Agile Methode - Kanban

Kanban zählt auch zu agilen Methoden. Aber im Unterschied zu Scrum und XP sind Iterationen optional. Wenn sie zum Einsatz kommen, sind sie extrem kurz ("tägliche Sprints"). Stattdessen wird der Schwerpunkt auf die Visualisierung von Arbeitsschritten gelegt.

Das Team verwendet das Kanban-Board zur Visualisierung, um eine Übersicht über alle Projektaktivitäten, ihre Anzahl, Verantwortliche und den Fortschritt von Projekten zu erhalten. Solche erhöhte Transparenz hilft, die dringendsten Aufgaben zu priorisieren und zu erledigen. Außerdem hat das Modell keine separate Planungsphase, sodass jederzeit eine neue Änderung von Anforderung eingeführt werden kann.

Die Kommunikation mit dem Kunden hört nie auf, sodass er Arbeitsergebnisse jederzeit überprüfen kann. Besprechungen mit dem Projektteam können sogar täglich stattfinden. Aufgrund seiner Beschaffenheit eignet sich dieses Modell häufig für Projekte rund um Softwaresupport und Weiterentwicklung.

Grafisch illustrierte Ergebnisse - Fazit

Basierend auf den Forschungsdaten haben wir die Modelle in Bezug auf die Kerneigenschaften – Zeit, Kosten und Qualität – verglichen, um sie klarer und verständlicher zu machen. Alle Schätzungen beziehen sich auf kleine Apps mit einem Code, der aus 1.000 Codeblocks besteht.

Vorgehensmodelle im Vergleich

Agil oder Klassisch? Was passt besser?

Wir wissen, dass Anforderungen bei der Auswahl eines Modells im Vordergrund stehen müssen. Es gibt eine Reihe von Parametern wie beispielsweise die Flexibilität von Anforderungen, der Ansatz zur Zusammenarbeit und mehr, nach denen jedes Vorgehensmodell bewertet werden kann, um das Ihren Anforderungen entsprechende Modell auszuwählen. Unser Team ist bereit, Sie nicht nur bei der Auswahl, sondern auch bei der Umsetzung Ihres Projektes mit dem passenden Modell zu unterstützen.

SICH BERATEN LASSEN

Wir haben bereits über 1850 Projekte erfolgreich durchgeführt. Nutzen Sie unser umfassendes Leistungsangebot in der Softwareentwicklung - von der Beratung bis hin zu Support und Weiterentwicklung.