Vorgehensmodell (Software)
aus Wikipedia, der freien Enzyklopädie
Ein Vorgehensmodell zur Softwareentwicklung ist ein für die Softwareentwicklung angepasstes Vorgehensmodell. Es dient dazu, die Softwareentwicklung übersichtlicher zu gestalten und in der Komplexität beherrschbar zu machen.
Da komplexe Software nur schwer zu erstellen und zu warten ist, bedienen sich Softwareentwickler eines Planes zur Entwicklung von Software. Dieser Plan (das Vorgehensmodell) unterteilt den Entwicklungsprozess in überschaubare, zeitlich und inhaltlich begrenzte Phasen. Die Software wird somit Schritt für Schritt fertiggestellt.
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). Bei mehrmaligen Durchläufen erfolgt eine iterative (d. h. wiederholte) Verfeinerung der einzelnen Softwarekomponenten. Um die optimalen Vorgehensmodelle herrscht Uneinigkeit. In der Regel verhält es sich aber so, dass je statischer und eindimensionaler die Betrachtungsweise ist, desto weniger hat sie mit der Praxis der Programmierung zu tun.
Vorgehensmodelle unterscheiden sich wesentlich in ihrem Detaillierungsgrad. Es sind OOTC-Approach, Rational Unified Process, Rapid Application Development etc. 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 (dass jeder Stufe der Entwicklung eine Testphase entspricht) als auch (wie zumeist gebräuchlich) ein detailliertes Modell.
Die Agile Software-Entwicklung beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen. Alternative Softwaretechnologien (Universal Application, Software Fabric u. ä.) verfolgen Ansätze, welche die konventionelle Vorgehensweise von Softwareentwurf und anschließender Programmierung grundsätzlich in Frage stellen, indem vorgefertigte universalisierte Software per Konfiguration an die jeweiligen Anforderungen angepasst wird.
Es gibt verschiedene Bewertungsverfahren für den Softwareprozess, u. a. das Capability Maturity Model (Integration) oder "Spice".
Inhaltsverzeichnis |
[Bearbeiten] Typen von Vorgehensmodellen
Es gibt drei unterschiedliche Typen von Vorgehensmodellen:
Software-Entwicklungsprozesse dienen zur Steuerung einer Softwareentwicklung von der Konzeption bis zum Einsatz im Echtbetrieb inklusive der im Echtbetrieb anfallenden Änderungen einer Software. Eines der ältesten Modelle ist das Wasserfallmodell, das eine starre Abfolge der einzelnen Phasen annimmt. Weiterentwicklungen wie das Spiralmodell sehen hingegen Iterationen vor, d. h. ein und derselbe Arbeitsschritt (z. B. die Analyse) wird mehrmals durchlaufen und die Ergebnisse des Arbeitsschrittes pro Durchlauf verfeinert und verbessert).
siehe auch: Liste von Softwareentwicklungsprozessen
Software-Lebenszyklusmanagement erweitert die Phasen über den gesamten Lebenszyklus einer Software. Das Vorgehensmodell definiert die Anforderungen an gelebte Prozesse (das "was") und beschreibt die konkreten, gelebten Prozesse (das "wie"). Dieser Typ ist eine Mischung einer Ist-Beschreibung und normative Vorgabe. Je nach Standardisierungsgrad werden verschiedene Entwicklungsstufen vergeben. Sehr oft können Unternehmen sich diese Entwicklungsstufen von externen Stellen zertifizieren lassen.
- Norm ISO/IEC 12207
- Capability Maturity Model® (CMM®)
- Capability Maturity Model Integration® (CMMI®)
Softwareentwicklungs-Philosophie entspricht einer Programmierer-Philosophie, einem bestimmten Ansatz, wie Software nach Ansicht der Proponenten am besten entwickelt werden sollte. Diese Philosophien beinhalten sehr oft auch Prozesselemente und werden daher ebenfalls als Prozessmodell bezeichnet.
[Bearbeiten] Kritik
- 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 Vorgehen nach einem Vorgehensmodell:
- 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 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.
- Es existierten mehrere Vorschläge parallel zueinander, ohne dass sich eins 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 (Managementvoodoo).
- Unternehmensberater kennen die Vorgehensmodelle besser als die fest angestellten Softwareentwickler eines Unternehmens. Unternehmensberater besitzen Dienstverträge und werden nach Zeitaufwand bezahlt. Deshalb verlängert ein Unternehmensberater möglichst die Projektlaufzeit, falls er daran mehr Geld verdienen möchte ("Cargo-Kult-Wissenschaft").
- 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 pleite gehen können (Behörde, Amt und Anstalt des öffentlichen Rechts AöR). Als Warnung mögen die gerade in letzter Zeit (Stand Ende 2004) grandios 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. Die Häufung und der Umfang der notleidenden Projekte ist erschreckend.
- 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.
- Wasserfallmodell, V-Modell und Modellierungssprachen verdecken den ad-hoc-Charakter eines Entwicklungsprozesses. Diese Methoden bürokratisieren die Entwicklung und hemmen die Kreativität des Entwicklers.
[Bearbeiten] Literatur
- Filß, C.; Höhn, R.; Höppner, S.; Schumacher, M.; Wetzel, H.: Rahmen zur Auswahl von Vorgehensmodellen. In: Entscheidungsfall Vorgehensmodell. 12. Workshop der Fachgruppe WI-VM der Gesellschaft für Informatik e. V. Aachen, 2005, S. 185-229.