Zum Inhalt springen
L

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
  1. 1. Begriff und Zweck
  2. 2. Phasen, Tätigkeitsgruppen und Detaillierungsgrad
  3. 3. Typen von Entwicklungsprozessen
  4. 4. Lebenszyklus und Reifegrade
  5. 5. Prinzipien und Leitgedanken
  6. 6. Nutzen, Grenzen und Anpassung

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

Weiterlesen

Softwaretechnik ... Agile Softwareentwicklung. Die Softwaretechnik umfasst den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten … Wasserfallmodell Ein Wasserfallmodell ist ein lineares (nicht iteratives) Vorgehensmodell, das insbesondere für die Softwareentwicklung verwendet wird und das in … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Informationstechnik Informationstechnik (kurz IT) steht für die Technik zur Elektronischen Datenverarbeitung (EDV) und der hierzu verwendeten Hard- und Software-Infrastruktur. Komplexität Komplexe Ordnungen sind ständig im Wandel. Die Zunahme von Komplexität wird als „positive“, die Abnahme als „negative“ Komplexifikation bezeichnet. [A 9]. Softwarequalität „Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, … Software-Lebenszyklus Ein Softwarelebenszyklus betrachtet Software ganzheitlich – von ihrer Entstehung über Entwicklung und Betrieb bis zu ihrer Abkündigung. Gesellschaft für Informatik Gesellschaft für Informatik ; 1969 · Bonn · Interessenvertretung der Informatiker in Wissenschaft, Wirtschaft, öffentlicher Verwaltung, Gesellschaft und Politik. Softwareentwickler Ein Softwareentwickler (englisch software developer) ist eine Person, die an der Erstellung und Weiterentwicklung einer Software mitwirkt. Programmierung Beim Programmieren sind wesentliche Aspekte zur Softwarequalität zu berücksichtigen und durch die Gestaltung des Quellcodes umzusetzen. Siehe dazu als Beispiele … Iteration Iteration (von lateinisch iterare ,wiederholen') beschreibt allgemein einen Prozess mehrfachen Wiederholens gleicher oder ähnlicher Handlungen zur … Rapid Application Development Es verfolgt den Zweck, Softwareentwicklung im Vergleich zu klassischen Vorgehensmodellen wie dem Wasserfallmodell flexibler zu gestalten und sich an schnell …