Zum Inhalt springen

Vorgehensmodell zur Softwareentwicklung

aus Wikipedia, der freien Enzyklopädie
In der Softwaretechnik existiert eine Vielzahl von Verfahren und Methoden, die der Softwareentwicklung dienen. Auf dem Bild sind das Prototyping, das Spiralmodell und der klassische Wasserfall zu erkennen.

Ein Vorgehensmodell zur Softwareentwicklung ist ein für die Softwareentwicklung angepasstes Vorgehensmodell.[1] Es handelt sich um einen standardisierten organisatorischen Rahmen für den idealisierten Ablauf eines Entwicklungsprojekts. Er dient dazu, die Entwicklung von Software oder verwandter Technologien, wie der Informationstechnik (IT)[2], übersichtlicher zu gestalten und ihre Komplexität, die benötigte Zeit, Risiken, Kosten und letztlich die Qualität beherrschbar zu machen.

Ein Vorgehensmodell ist eine abstrakte Darstellung eines Softwareprozesses. Der Prozess wird hierbei immer nur aus einer bestimmten Perspektive dargestellt. Daher beinhaltet ein Vorgehensmodell immer nur einen Teil der Informationen über den Prozess. Dies hat allerdings den Vorteil, dass die den einzelnen Softwareprozessen zugrunde liegenden Prinzipien übersichtlich und verständlich dargestellt werden können.

Vorgehensmodell zur Softwareentwicklung werden in Kapitel 10 des Software Engineering Body of Knowledge (SWEBOK) beschreiben und im Zusammenhang mit dem Software-Lebenszyklus behandelt. In diesem Kontext sind außerdem die Normen ISO/IEC 12207 und ISO/IEC 15288 relevant.

Die Fachgruppe Vorgehensmodelle für die betriebliche Anwendungsentwicklung (WI/VM) der Gesellschaft für Informatik (GI) befasst sich mit dem Thema.[3]

Da die Entwicklung von Software eine technische (manchmal ingenieurwissenschaftliche) Herausforderung darstellt, bedienen sich Softwareentwickler eines Plans zur Softwareentwicklung. Dieser Plan oder das Vorgehensmodell unterteilt den Entwicklungsprozess in überschaubare, zeitlich und inhaltlich begrenzte Phasen. Die Software wird somit Schritt für Schritt programmiert oder hergestellt. Der eigentliche Entwicklungsprozess wird dabei vom Projektmanagement und Qualitätsmanagement begleitet.

Vorgehensmodelle spalten einzelne Aktivitäten auf verschiedene Phasen im Entwicklungsprozess auf und diese werden dann – u. U. mit geringen Modifikationen – einmal (z. B. Wasserfallmodell) oder mehrmals durchlaufen (z. B. Spiralmodell).[4] Bei mehrmaligen Durchläufen erfolgt eine iterative (d. h. wiederholte) Verfeinerung der einzelnen Softwarekomponenten.

Es herrscht jedoch Uneinigkeit über die optimale Vorgehensweise, was zur Entwicklung verschiedener Konzepte und Modelle geführt hat. In der Regel werden im Entwicklungsprozess mindestens zwei große Tätigkeitsgruppen unterschieden,

  1. die (von der programmiertechnischen Realisierung unabhängige) Analyse von Geschäftsprozessen (Geschäftsprozessmodell und Datenmodell) einerseits und
  2. die EDV-technische Realisierung (Design und Programmierung) andererseits.

Vorgehensmodelle unterscheiden sich außerdem wesentlich in ihrem Detaillierungsgrad. Beispielsweise sind der Rational Unified Process (RUP) oder Rapid Application Development (RAD) detailliert ausgearbeitete Vorgehensweisen, die den an der Entwicklung Beteiligten konkrete Arbeitsanweisungen an die Hand geben. Das V-Modell nimmt diesbezüglich übrigens eine Zwitterstellung ein: Es ist sowohl ein Prinzip (jeder Stufe der Entwicklung entspricht eine Testphase) als auch (wie zumeist gebräuchlich) ein detailliertes Modell, siehe auch V-Modell (Entwicklungsstandard).

Die agile Softwareentwicklung hingegen beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen.

Je nach Bedarf können oder müssen Prozesse wie die Vorgehensmodelle durch verschiedene Bewertungsverfahren zur Qualitätssicherung im Einsatz überprüft werden, beispielsweise durch das Capability Maturity Model (CMM) oder ISO/IEC 15504 (SPICE). Die im Rahmen der Entwicklung entlang eines Vorgehensmodells entstehenden Ergebnisse und Arbeitsprodukte dienen somit zu rechtlichen und regulativen Zwecken, wie beispielsweise einer Zertifizierung, Auditierung oder Akkreditierung.

Vorgehensmodelle für Software

[Bearbeiten | Quelltext bearbeiten]
Schematische Darstellung eines Vorgehensmodell (2022)[5]

Es gibt verschiedene Typen von Vorgehensmodellen, die mit unterschiedlichen Prinzipien für die Entwicklung von Software kombiniert werden können. Diese bestehen aus mehreren Elementen, die im nebenstehenden Bild dargestellt und hier erläutert sind:[5]

Softwareentwicklungsprozesse

[Bearbeiten | Quelltext bearbeiten]

Softwareentwicklungsprozesse dienen zur Planung und Steuerung einer Softwareentwicklung von der Konzeption bis zum Einsatz des Softwaresystems im Echtbetrieb.

Eines der ältesten Modelle, das eine starre Abfolge der einzelnen Phasen annimmt, ist das Wasserfallmodell. Weiterentwicklungen wie das Spiralmodell sehen hingegen Iterationen vor, d. h. derselbe Arbeitsschritt (z. B. die Analyse) wird mehrmals durchlaufen und die Ergebnisse des Arbeitsschrittes pro Durchlauf verfeinert und verbessert.

Seit den 1980er Jahren haben sich dutzende Modelle entwickelt, noch einmal verstärkt in den frühen 2000er Jahren. Ab den 2010er Jahren kamen agile Softwareentwicklungsmethoden hinzu.

Softwarelebenszyklusmanagement

[Bearbeiten | Quelltext bearbeiten]

Softwarelebenszyklusmanagement erweitert die Phasen über den gesamten Lebenszyklus einer Software, d. h. berücksichtigt den Produktlebenszyklus der Software oder des Softwaresystems. Das Vorgehensmodell definiert die Anforderungen an betriebliche Prozesse („Was“) und beschreibt die konkreten, EDV-technisch realisierten Prozesse („Wie“). Dieser Typ ist eine Mischung aus einer Ist-Beschreibung und normativer Vorgabe. Je nach Standardisierungsgrad werden verschiedene Entwicklungsstufen vergeben. Unternehmen können sich diese Entwicklungsstufen von externen Stellen zertifizieren lassen.

Softwareentwicklungsphilosophien

[Bearbeiten | Quelltext bearbeiten]

Zu den modellhaften Verfahren existieren Prinzipien und Leitgedanken, die auf Erfahrungen basieren und aufzeigen, wie Software möglichst gut entwickelt werden kann. Diese Konzepte beinhalten in der Regel auch Prozesselemente und werden daher ebenfalls als Prozess- oder Vorgehensmodell bezeichnet. Beispiele:

Nutzen und Grenzen

[Bearbeiten | Quelltext bearbeiten]

Vorgehensmodelle zur Softwareentwicklung basieren auf einer Vielzahl historischer Hintergründe und wurden im Zuge der Entwicklung von Computern, dem Internet sowie technischen Produkten entwickelt. Grundsätzlich geben die Modelle einen Rahmen vor, wie Software systematisch, rational und strukturiert entwickelt werden kann. Dies bedeutet in der Regel auch einen geordneten Ablauf auf Projektebene. Wenn die Entwicklung zugleich ein Projekt ist, kann das Modell mit dem Projektmanagement wechselwirken oder dieses sogar ergänzen. Wenn die zu entwickelnde Software ein konkretes Produkt ist, beispielsweise eine Anwendungssoftware, ähnelt der Prozess einem Produktentstehungsprozess.

Ein Vorgehensmodell soll als ein Mittel zum Zweck und nicht als Selbstzweck dienen. Ein Modell kann die Realität jedoch nie exakt abbilden. Die konzeptuellen Vorüberlegungen zu den Modellen sind notwendig, um diese auf einer Metaebene zu begründen und für verschiedene Einsatzzwecke zu entwickeln. Ein solches „Metamodell“ wäre laut einer Definition als „ein Modell von einem Modell“ zu verstehen.[6]

Die Erwartungen an die Arbeit mit einem Vorgehensmodell umfassen eine qualitative und quantitative Steigerung der Produktivität, der Produktqualität und der Zusammenarbeit der beteiligten Personen. Die Modelle und daraus instanziierten Prozesse bieten den teilhabenden Personen (Softwareentwickler, Softwaretester, Softwarearchitekten usw.) eine überschaubare Ablaufstruktur und den leitenden Personen die Möglichkeit zum Eingreifen und Entscheiden.

Bei der komplexen Herstellung (Programmierung) oder Wartung von Software, die teilweise entlang einer zu entwickelnden Computerhardware abläuft, versucht man, Funktionen zu erfüllen und Fehler zu vermeiden. Dies soll so früh und so gut wie möglich geschehen. Ein Vorgehensmodell soll dabei helfen, einen strukturellen Rahmen für die Entwicklung und den Softwaretest sowie im Hinblick auf die Hinterlassenschaft (Legacy) oder die Wartung von Software zu schaffen.

Des Weiteren weicht die Software teilweise von der konventionellen Ingenieurs-Praxis ab. Zwar kann man Software als „ausführbares Wissen“ bezeichnen, das sich nicht ingenieurmäßig herstellen ließe (wie etwa eine Brücke oder ein Hochhaus), jedoch basiert die Softwaretechnik auf dem Grundwissen der Rechnertechnik (Rechnerarchitektur) und der Informatik – beides sind Ingenieurswissenschaften mit unterschiedlichen Ausprägungen. In diesem Zusammenhang sei erwähnt, dass Software in Deutschland nicht patentierbar ist, sondern nur als Teil eines übergeordneten Systems bzw. einer technischen Erfindung. Je nach Art der Software kann der Entstehungsprozess daher kreativer oder technischer erfolgen (Embedded Software).

Durch die Nutzung eines Vorgehensmodells bzw. den konkreten Entwicklungsprozessen besteht außerdem die Möglichkeit der Einbindung in übergeordnete Geschäftsprozesse, die beispielsweise die Ressourcenplanung oder die Kosten berücksichtigen, da die Projekte selbst häufig einen technischen und keinen wirtschaftlichen Fokus haben.

Heute existieren verschiedene, teils historisch gewachsene Vorgehensmodelle zur Entwicklung von Software oder anderen technischen Produkten. Die Modelle werden häufig von Fachexperten oder Unternehmen entworfen und vermarktet, die meist in der Rolle des Beraters tätig sind (vgl. auch technische Unternehmensberatung). Werden die Vorgehensmodelle in Organisationen oder Unternehmen ohne entsprechende Schulungen und Weiterbildungen eingesetzt, können Missverständnisse und Probleme auftreten.

Je nach Modell können auch Umfänge entstehen, die einem Projekt nicht angemessen sind, sei es zeitlich oder ressourcentechnisch. Sodann wird ein Minimum oder Maximum an zunächst projektfremden Aktivitäten wie der Dokumentation gefordert, was mit einer Wahrnehmung von Bürokratie einhergeht oder diese tatsächlich darstellt (siehe auch Parkinsonsches Gesetz). Je nach Anwendungsfall fordern jedoch Normen oder Standards diese Aktivitäten und daraus resultierenden Artefakte als Evidenzen im Hinblick auf Zertifizierung und Akkreditierung ein.

Im Zusammenhang mit Bürokratie seien einige Softwareprojekte der öffentlichen Hand (Ämter, Behörden und Anstalten des öffentlichen Rechts) erwähnt, die sich verzögerten, als ungeeignet herausgestellt wurden und/oder erheblich verteuerten, wie beispielsweise: INPOL-Neu (Polizei), Nivadis (Polizei Niedersachsen), Fiscus (Finanzamt), Herkules (Bundeswehr), Toll Collect, A2LL (Arbeitsagentur, damals auch bekannt als „Hartz IV“-Software), POLIKS (Polizei Berlin) usw. Wie bereits erwähnt, kann ein Vorgehensmodell bzw. der darauf aufgestellte Prozess nur einen idealisierten Rahmen, jedoch keine hundertprozentige Garantie für Erfolg oder Freiheit von Problemen einräumen. Prinzipiell ist die Nutzung eines Modells jedoch empfehlenswert.

Zusammenfassend schaffen Vorgehensmodelle einen wichtigen Rahmen für die strukturierte und systematische Entwicklung, Prüfung und Wartung von Software oder technischen Produkten. Sie können die Produktivität, Qualität und Zusammenarbeit verbessern, garantieren jedoch keinen Projekterfolg. Entscheidend ist, dass das Modell an die jeweiligen Anforderungen situativ angepasst und nicht zum Selbstzweck eingesetzt wird. Ein zu umfangreiches oder unpassendes Vorgehen kann zusätzlichen Aufwand und Bürokratie verursachen. Die Schulung und Synchronisation aller Beteiligten wird empfohlen.

Commons: Vorgehensmodell zur Softwareentwicklung – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ Stephan Kleuker: Vorgehensmodelle. In: Grundkurs Software-Engineering mit UML. 5. Auflage. Springer Fachmedien Wiesbaden, Wiesbaden 2025, ISBN 978-3-658-46533-9, S. 25–51, doi:10.1007/978-3-658-46534-6_3 (springer.com [abgerufen am 23. August 2026]).
  2. ↑ Christoph Albers: Bewertung und Auswahl von Vorgehensmodellen im IT-Projektmanagement – Ein Ansatz für die Unternehmenspraxis. In: Neue Algorithmen für praktische Probleme. Springer Fachmedien Wiesbaden, Wiesbaden 2021, ISBN 978-3-658-32586-2, S. 21–38, doi:10.1007/978-3-658-32587-9_3 (springer.com [abgerufen am 26. August 2026]).
  3. ↑ Startseite - FG WI-VM. In: GI. 2026, abgerufen am 22. August 2026.
  4. ↑ W. W. Royce: Managing the development of large software systems: concepts and techniques. In: Proceedings of the 9th international conference on Software Engineering (= ICSE '87). IEEE Computer Society Press, Washington, DC, USA 1987, ISBN 978-0-89791-216-7, S. 328–338, doi:10.5555/41765.41801 (englisch, acm.org [abgerufen am 22. August 2026]).
  5. 1 2 Sascha Alpers: Notwendigkeit der Integration von ethischen, rechtlichen und sozialen Aspekten in die gängigen Vorgehensmodelle für IT-Projekte. In: Masud Fazal-Baqaie et al. (Hrsg.): Projektmanagement und Vorgehensmodelle, Lecture Notes in Informatics. Gesellschaft für Informatik e. V., Bonn 2022, ISBN 978-3-88579-721-0, S. 173 (gi.de [abgerufen am 9. Januar 2024]).
  6. ↑ Meta-model (glossary). In: SEBoK. 27. August 2026, abgerufen am 27. August 2026 (englisch).