Notice: Unexpected clearActionName after getActionName already called in /var/www/html/includes/context/RequestContext.php on line 338
Vorgehensmodell zur Softwareentwicklung – Wikipedia Zum Inhalt springen

Vorgehensmodell zur Softwareentwicklung

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Softwareentwicklungsprozess)

Ein Vorgehensmodell zur Softwareentwicklung ist ein für die Softwareentwicklung angepasstes Vorgehensmodell bei der professionellen („ingenieursmäßigen“) Anwendungsentwicklung. Es ist ein standardisierter, organisatorischer Rahmen für den idealen Ablauf eines Entwicklungsprojektes<ref>Gnatz, M., Vom Vorgehensmodell zum Projektplan, Diss., München, 2005.</ref> und dient dazu, die Softwareentwicklung übersichtlicher zu gestalten und in der Komplexität beherrschbar zu machen.

Ein Vorgehensmodell ist eine abstrakte Darstellung eines Softwareprozesses. Der Prozess wird hierbei immer nur aus einer bestimmten Perspektive dargestellt<ref>Markus Janker: (Ways to Improve) Software Economics, Universität Salzburg, studentische Arbeit, 21. Mai 2002, Online auf cosy.sbg.ac.at (archiviert von archive.org am 18. September 2004, abgerufen am 27. Februar 2007).</ref>. 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.

Entwicklungsplan

Datei:Waterfall model-de.svg
Das Wasserfallmodell

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. Der eigentliche Entwicklungsprozess wird dabei vom Projektmanagement und der Qualitätssicherung 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).<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Bei mehrmaligen Durchläufen erfolgt eine iterative (d. h. wiederholte) Verfeinerung der einzelnen Softwarekomponenten. Um die optimalen Vorgehensmodelle herrscht Uneinigkeit.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> In der Regel unterscheiden sie beim Entwicklungsprozess mindestens zwei große Tätigkeitsgruppen: 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 wesentlich in ihrem Detaillierungsgrad. OOTC-Approach, Rational Unified Process, Rapid Application Development etc. sind 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 beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen. Alternative Softwaretechnologien (Universal Application, Software factory 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“.

Typen von Vorgehensmodellen

Datei:Vorgehensmodell.png
Vorgehensmodell – schematische Darstellung

Es gibt drei unterschiedliche Typen von Vorgehensmodellen bestehend aus mehreren Elementen, die kompakt in der folgenden Grafik dargestellt sind.<ref>{{#invoke:Vorlage:Literatur|f}}</ref> Folgendes sind die Typen von Vorgehensmodellen:

Softwareentwicklungsprozesse 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. derselbe Arbeitsschritt (z. B. die Analyse) wird mehrmals durchlaufen und die Ergebnisse des Arbeitsschrittes pro Durchlauf verfeinert und verbessert.

Siehe auch: Liste von Softwareentwicklungsprozessen

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

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.

Kritik

Vorlage:Hinweisbaustein

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.

Literatur

  • Tilo Pfeifer, Robert Schmitt (Herausgeber): Qualitätsmanagement in der Softwareentwicklung, Teil IV in: Masing Handbuch Qualitätsmanagement, Carl Hanser Fachbuchverlag München Wien, 6. überarbeitete Auflage (2014), ISBN 978-3-446-43431-8.

Weblinks

[{{canonicalurl:Commons:Category:{{#if:Software development methodology|Software development methodology|Vorgehensmodell zur Softwareentwicklung}}|uselang=de}} Commons: {{#if:Vorgehensmodell zur Softwareentwicklung|Vorgehensmodell zur Softwareentwicklung|{{#if:Software development methodology|Software development methodology|{{#invoke:WLink|getArticleBase}}}}}}]{{#switch:1

|X|x= |0|-= |S|s= – Sammlung von Bildern |1|= – Sammlung von Bildern{{#if:

    | {{#switch: {{#invoke:TemplUtl|faculty|1}}/{{#invoke:TemplUtl|faculty|1}}
        |1/=  und Videos
        |1/1=, Videos und Audiodateien
        |/1=  und Audiodateien}}
    | , Videos und Audiodateien
  }}

|#default= – }}{{#if: Software development methodology

   | {{#ifeq: {{#invoke:Str|left|software development methodology|9}} 
       | category: 
| FEHLER: Ohne Category: angeben!}}}}

Vorlage:Wikidata-Registrierung

      | {{#ifeq: 20221205235128 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Vorgehensmodell für IT-Projekte. | {{#invoke:WLink|getEscapedTitle|Vorgehensmodell für IT-Projekte.}} | {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20221205235128}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Vorgehensmodell für IT-Projekte. | {{#invoke:WLink|getEscapedTitle|Vorgehensmodell für IT-Projekte.}} | {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20221205235128}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Vorgehensmodell für IT-Projekte. | {{#invoke:WLink|getEscapedTitle|Vorgehensmodell für IT-Projekte.}} | {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Vorgehensmodell für IT-Projekte. | {{#invoke:WLink|getEscapedTitle|Vorgehensmodell für IT-Projekte.}} | {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Vorgehensmodell für IT-Projekte. | {{#invoke:WLink|getEscapedTitle|Vorgehensmodell für IT-Projekte.}} | {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Vorgehensmodell für IT-Projekte. | {{#invoke:WLink|getEscapedTitle|Vorgehensmodell für IT-Projekte.}} | {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20221205235128|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.projekthandbuch.de/it_model.htm}}
    || {{#if:  || }}
  }}{{#if: Vorgehensmodell für IT-Projekte.
    | {{#if: {{#invoke:WLink|isBracketedLink|Vorgehensmodell für IT-Projekte.}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.projekthandbuch.de/it_model.htm%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.projekthandbuch.de/it_model.htm%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.projekthandbuch.de/it_model.htm }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} In: projekthandbuch.de

Einzelnachweise

<references />

ar:عملية تطوير البرمجيات fa:فرآیند تولید نرم‌افزار ja:ソフトウェア開発工程 ko:소프트웨어 개발 프로세스 pt:Processo de desenvolvimento de software vi:Quy trình phát triển phần mềm zh:软件开发过程