Wikipedia · einfach zusammengefasst · Stand
Vorgehensmodell zur Softwareentwicklung
Die agile Softwareentwicklung hingegen beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen. Je …
Inhalt6 Abschnitte
Begriff und Zweck
Ein Vorgehensmodell zur Softwareentwicklung ist ein standardisierter organisatorischer Rahmen für den idealisierten Ablauf eines Entwicklungsprojekts. Es soll die Entwicklung von Software oder verwandten Technologien, etwa Informationstechnik (IT), übersichtlicher machen und ihre Komplexität, benötigte Zeit, Risiken, Kosten und letztlich die Qualität beherrschbar machen.
Ein Vorgehensmodell ist eine abstrakte Darstellung eines Softwareprozesses aus einer bestimmten Perspektive. Es enthält deshalb immer nur einen Teil der Informationen über den gesamten Prozess. Dadurch lassen sich die zugrunde liegenden Prinzipien übersichtlich und verständlich darstellen. Vorgehensmodelle werden in Kapitel 10 des Software Engineering Body of Knowledge (SWEBOK) beschrieben und im Zusammenhang mit dem Software-Lebenszyklus behandelt. Relevant sind außerdem die Normen ISO/IEC 12207 und ISO/IEC 15288. Mit dem Thema befasst sich unter anderem die Fachgruppe Vorgehensmodelle für die betriebliche Anwendungsentwicklung (WI/VM) der Gesellschaft für Informatik (GI).
Phasen, Tätigkeitsgruppen und Detaillierungsgrad
Da Softwareentwicklung eine technische, teilweise ingenieurwissenschaftliche Herausforderung ist, wird der Entwicklungsprozess durch einen Plan in überschaubare, zeitlich und inhaltlich begrenzte Phasen aufgeteilt. Die Software wird dadurch Schritt für Schritt programmiert oder hergestellt. Projektmanagement und Qualitätsmanagement begleiten den eigentlichen Entwicklungsprozess.
Vorgehensmodelle ordnen Aktivitäten verschiedenen Phasen zu. Diese Phasen werden entweder einmal, wie beim Wasserfallmodell, oder mehrmals, wie beim Spiralmodell, durchlaufen. Bei wiederholten Durchläufen erfolgt eine iterative, also wiederholte, Verfeinerung der Softwarekomponenten.
Über die optimale Vorgehensweise besteht keine allgemeine Einigkeit. Deshalb wurden unterschiedliche Konzepte und Modelle entwickelt. In der Regel werden mindestens zwei große Tätigkeitsgruppen unterschieden: Erstens die von der programmiertechnischen Realisierung unabhängige Analyse der Geschäftsprozesse, einschließlich Geschäftsprozessmodell und Datenmodell. Zweitens folgt die EDV-technische Realisierung durch Design und Programmierung.
Die Modelle unterscheiden sich stark in ihrem Detaillierungsgrad. Der Rational Unified Process (RUP) und Rapid Application Development (RAD) sind detailliert ausgearbeitete Vorgehensweisen mit konkreten Arbeitsanweisungen. Das V-Modell nimmt eine Zwischenstellung ein: Es ist einerseits ein Prinzip, nach dem jeder Entwicklungsstufe eine Testphase entspricht, und andererseits ein detailliertes Modell beziehungsweise ein Entwicklungsstandard. Agile Softwareentwicklung stellt Methoden bereit, bei denen Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten.
Prozesse können zur Qualitätssicherung durch Bewertungsverfahren wie das Capability Maturity Model (CMM) oder ISO/IEC 15504 (SPICE) überprüft werden. Die bei der Entwicklung entstehenden Ergebnisse und Arbeitsprodukte können außerdem als Nachweise für Zertifizierung, Auditierung oder Akkreditierung dienen.
Typen von Entwicklungsprozessen
Softwareentwicklungsprozesse planen und steuern eine Softwareentwicklung von der Konzeption bis zum Einsatz des Softwaresystems im Echtbetrieb.
Das Wasserfallmodell gehört zu den ältesten Modellen und nimmt eine starre Abfolge der einzelnen Phasen an. Weiterentwicklungen wie das Spiralmodell sehen Iterationen vor. Dabei wird derselbe Arbeitsschritt, beispielsweise die Analyse, mehrmals durchlaufen; die Ergebnisse werden in jedem Durchlauf verfeinert und verbessert.
Seit den 1980er Jahren entstanden dutzende Modelle, verstärkt noch einmal in den frühen 2000er Jahren. Ab den 2010er Jahren kamen agile Softwareentwicklungsmethoden hinzu.
Lebenszyklus und Reifegrade
Softwarelebenszyklusmanagement erweitert die Betrachtung von einzelnen Entwicklungsphasen auf den gesamten Lebenszyklus einer Software oder eines Softwaresystems. Ein Vorgehensmodell berücksichtigt dabei den Produktlebenszyklus.
Es definiert die Anforderungen an betriebliche Prozesse, also das „Was“, und beschreibt die konkret EDV-technisch realisierten Prozesse, also das „Wie“. Dieser Typ verbindet eine Ist-Beschreibung mit einer normativen Vorgabe. Abhängig vom Standardisierungsgrad werden verschiedene Entwicklungsstufen vergeben. Unternehmen können diese Entwicklungsstufen von externen Stellen zertifizieren lassen.
Wichtige Bezugspunkte sind ISO/IEC 12207, ISO/IEC 15504 (SPICE), das Capability Maturity Model (CMM) und Capability Maturity Model Integration (CMMI).
Prinzipien und Leitgedanken
Neben formal ausgearbeiteten Modellen gibt es Prinzipien und Leitgedanken, die auf Erfahrungen beruhen und zeigen sollen, wie Software möglichst gut entwickelt werden kann. Sie enthalten meist auch Prozesselemente und werden deshalb ebenfalls als Prozess- oder Vorgehensmodell bezeichnet.
Beispiele sind Extreme Programming, Kanban, Prototyping und Scrum. Prototyping bezeichnet dabei die Entwicklung eines vorläufigen Systems oder Teilsystems, während Scrum, Kanban und Extreme Programming für unterschiedliche Prinzipien und Methoden der Softwareentwicklung stehen.
Nutzen, Grenzen und Anpassung
Vorgehensmodelle geben einen Rahmen vor, in dem Software systematisch, rational und strukturiert entwickelt werden kann. Sie schaffen einen geordneten Ablauf auf Projektebene und können mit dem Projektmanagement zusammenwirken oder es ergänzen. Bei Software als konkretem Produkt, etwa einer Anwendungssoftware, ähnelt der Prozess einem Produktentstehungsprozess.
Erwartet werden eine qualitative und quantitative Steigerung von Produktivität, Produktqualität und Zusammenarbeit. Entwickler, Softwaretester und Softwarearchitekten erhalten eine überschaubare Ablaufstruktur. Leitende Personen können leichter eingreifen und Entscheidungen treffen. Das Modell soll außerdem einen strukturellen Rahmen für Entwicklung, Softwaretest, Wartung und den Umgang mit hinterlassener Software (Legacy) schaffen. Es unterstützt dabei, Funktionen zu erfüllen und Fehler möglichst früh und gut zu vermeiden. Entwicklungsprozesse können zudem in übergeordnete Geschäftsprozesse eingebunden werden, etwa in Ressourcenplanung und Kostenbetrachtung.
Ein Vorgehensmodell ist ein Mittel zum Zweck und kein Selbstzweck. Es kann die Realität nie exakt abbilden. Ein „Metamodell“ wird als „ein Modell von einem Modell“ verstanden und dient dazu, Modelle auf einer Metaebene zu begründen und für verschiedene Einsatzzwecke zu entwickeln.
Modelle werden häufig von Fachexperten oder Unternehmen entworfen und vermarktet, die meist beratend tätig sind. Fehlen Schulungen und Weiterbildungen, können bei der Anwendung Missverständnisse und Probleme entstehen. Ein Modell kann außerdem zeitlich oder hinsichtlich der Ressourcen unangemessen umfangreich sein. Zusätzliche Dokumentation und andere zunächst projektfremde Aktivitäten können als Bürokratie wahrgenommen werden oder tatsächlich Bürokratie darstellen. Normen und Standards verlangen solche Aktivitäten und Artefakte jedoch teilweise als Nachweise für Zertifizierung und Akkreditierung.
Ein Vorgehensmodell bietet keine hundertprozentige Garantie für Projekterfolg oder Problemfreiheit. Auch Softwareprojekte der öffentlichen Hand wie INPOL-Neu, Nivadis, Fiscus, Herkules, Toll Collect, A2LL und POLIKS werden als Beispiele für verzögerte, ungeeignete oder erheblich verteuerte Projekte genannt. Grundsätzlich ist die Nutzung eines Vorgehensmodells empfehlenswert, wenn es an die jeweiligen Anforderungen angepasst wird. Ein zu umfangreiches oder unpassendes Vorgehen verursacht dagegen zusätzlichen Aufwand. Die Schulung und Synchronisation aller Beteiligten wird empfohlen. Software kann je nach Art kreativer oder technischer entstehen; als „ausführbares Wissen“ unterscheidet sie sich teilweise von konventionellen Ingenieurprodukten. In Deutschland ist Software nicht patentierbar, sondern nur als Teil eines übergeordneten Systems beziehungsweise einer technischen Erfindung.
Lernvideos zu Vorgehensmodell zur Softwareentwicklung
4:55
Wasserfallmodell
Programmieren leicht gemacht ! · 5.009 Aufrufe
3:16
Das Wasserfallmodell - Einfach erklärt! (inkl. Stärken & Schwächen)
Akademie Digitale Berufe | Draw my Business · 41.637 Aufrufe
30:37
Agile Softwareentwicklung
David Tielke · 12.454 Aufrufe
8:33
Software Engineering Tutorial Deutsch #3 - Das Wasserfallmodell
Programmieren Starten · 32.685 Aufrufe