Vorgehensmodell zur Softwareentwicklung
Plan, der den komplexen Prozess zur Entwicklung von Software strukturiert
From Wikipedia, the free encyclopedia
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 ü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.
Die Fachgruppe Vorgehensmodelle für die betriebliche Anwendungsentwicklung (WI/VM) der Gesellschaft für Informatik (GI) befasst sich mit dem Thema.[2]
Grundlagen
Da die Entwicklung von Software eine technisch-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).[3] 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.
- die (von der programmiertechnischen Realisierung unabhängige) Analyse von Geschäftsprozessen (Geschäftsprozessmodell und Datenmodell) einerseits und
- 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 Anforderung müssen Prozesse durch verschiedene Bewertungsverfahren zur Qualitätssicherung im Einsatz überprüft werden, beispielsweise durch das Capability Maturity Model (CMM) oder ISO/IEC 15504 (SPICE).
Vorgehensmodelle für Software

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:[4]
Softwareentwicklungsprozesse
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
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.
- ISO/IEC 12207
- ISO/IEC 15504 (SPICE)
- Capability Maturity Model (CMM)
- Capability Maturity Model Integration (CMMI)
Softwareentwicklungsphilosophien
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:
Bewertung
Positives
- Ein genereller Vorteil von Vorgehensmodellen ist, dass Projektmanagement-Prozesse, Qualitätssicherungsprozesse und der eigentliche produkterstellende Prozess gemeinsam abgebildet werden.
- Ein zielgerichtetes Vorgehen verbessert die Übersichtlichkeit des Gesamtprojektes, die Koordination von Teams und hilft, Fehler frühzeitig zu erkennen. Dies wirkt sich in der Regel positiv auf die Qualität des gesamten Systems aus bzw. erlaubt eine genaue Rekonstruktion des Entwicklungsprozesses und der zu Grunde liegenden Entscheidungen.
- Vorteile eines Vorgehens nach einem Vorgehensmodell:
- Trennung der Analyse von Geschäftsprozessen („Was“) von EDV-technischer Realisierung („Wie“)
- Leitfaden für die Systementwicklung
- projektbegleitende Dokumentation
- Personenunabhängigkeit
- frühzeitige Fehlererkennung durch festgeschriebene Testaktivitäten
- Vorgehensmodelle geben einen Rahmen vor, in dem ein Projekt geordnet ablaufen kann. Das Vorgehensmodell hilft dabei, den Ablauf eines Projektes zu strukturieren und nachzuvollziehen, da es den Prozess und die Dokumente der Softwareerstellung beschreibt. Die Güte der zu erstellenden Software ist demgegenüber auch von den Projektbeteiligten abhängig. Es ist wichtig, dass sie ein großes Vorwissen besitzen, gut zusammenarbeiten und ihrem gesunden Menschenverstand vertrauen. Der Projekterfolg und nicht das Vorgehensmodell ist das primäre Ziel.
Negatives
- Es existierten mehrere Vorschläge parallel zueinander, ohne dass sich eines der Vorgehensmodelle in der Praxis mit Breitenwirkung durchgesetzt hätte.
- Die Anbieter von Vorgehensmodellen sind voreingenommen. Vorgehensmodelle sind ein Geschäft, daher berät der Entwickler eines Vorgehensmodells in seinem Interesse. Anbieter stellen gerade ihr Modell als das Allheilmittel für alle Probleme dar. Hier liegt der Grundstein für eine Folge dem Prozess und alles wird gut-Mentalität. Ein Projekt scheitert dann, wenn die Beteiligten es nicht mehr objektiv betrachten und beispielsweise nur die vorgegebenen Checklisten abarbeiten.
- Aufgrund der Projektstruktur, die ein Vorgehensmodell erzeugt, bietet eine Unternehmensberatung für jede Einzeltätigkeit spezialisierte Berater an. Durch die Zersplitterung der Aufgaben auf Einzelspezialisten steigt der Koordinierungsaufwand überproportional.
- Vorgehensmodelle können dem Parkinsonschen Gesetz für Verwaltung und Management zur vollen Blüte verhelfen, da sie die Möglichkeit eröffnen, neue Mitarbeiter für neue Aufgaben nach Vorgehensmodell anzufordern. Betroffen von diesem Phänomen sind besonders solche Einrichtungen, die keiner engen wirtschaftlichen Kontrolle unterliegen, weil sie nicht zahlungsunfähig werden können (Behörde, Amt und Anstalt des öffentlichen Rechts). Als Warnung mögen die bis zum Jahr 2004 gescheiterten, erheblich verzögerten, sich als ungeeignet herausgestellten und/oder erheblich verteuerten Softwareprojekte der öffentlichen Hand, wie INPOL-Neu (Polizei), Nivadis (Polizei Niedersachsen), FISCUS (Finanzamt), Herkules (Bundeswehr), Online-Jobbörse (Arbeitsagentur), Toll Collect, A2LL (Arbeitsagentur, „Hartz IV“-Software), POLIKS (Polizei Berlin) etc. dienen.
- Es ist umstritten, ob der Entstehungsprozess von Software so gut verstanden wird, dass eine „ingenieurmäßige Herstellung“ möglich ist: Kritiker argumentieren, dass Software nichts anderes sei als „ausführbares Wissen“. Wissen jedoch lasse sich nicht ingenieurmäßig herstellen (wie sich etwa eine Brücke oder ein Hochhaus herstellen lässt), sondern werde in einem kreativen Prozess gefunden. Die Gegenposition argumentiert, dass gerade in dem „kreativen Prozess“ die Gefahr von Wartungsproblemen und struktureller Unsauberkeit liegt. Das Argument der Kritiker gelte für andere technische Entwicklungsprozesse (z. B. Bau einer Brücke, eines Hauses, einer Fabrik) auch nicht.