Softwareentwicklungsprozessen

Softwareentwicklungsprozesse sind die Antwort auf die damalige „Software-Crisis“. Mit diesen Modellen sollte nun Softwareentwicklung von der Konzeption bis zum Einsatz im Echtbetrieb inklusive der im Echtbetrieb anfallenden Änderungen einer Software gesteuert werden können. Nachfolgend findet man einige Vorgehensmodelle zur Softwareentwicklung mitsamt kurzen Erklärungen.

Code-and-fix Modell

Das Code-and-Fix Model ist das älteste Modell, das allerdings immer noch genutzt wird. Für kleine Projekte ist es gut anwendbar, bei umfangreichen Projekten scheitert es aber regelmäßig. Im Grunde besteht das Modell lediglich aus zwei Phasen: Programmierung und Fehler entfernen. Dadurch ist die Testphase meistens sehr lange und nicht vorhersehbar. Durch fehlende Systematik ist das Projekt für Spaghetti-Code anfällig. Auch das Einbauen von Änderungen/neuen Anforderungen wird im Laufe des Projekts immer schwerer. Zusätzlich ist das Bug-Fixing teuer und das Modell nicht für Team-Arbeit geeignet.

Wasserfall Modell

Das Wasserfall Modell ist ein Lebenszyklusmodell, bei dem der Software-Prozess auf eine Anzahl an Stufen verteilt wird. Erst die Erledigung einer Stufe/Erreichen eines Meilenstein führt zur nächsten Stufe. Wie bei einem Wasserfall gelangt man so bindend immer zu einer nächsttieferen Phase. Eine Erweiterung des einfachen Wassermodells ist das Wasserfallmodell mit Rücksprung. Hierbei ist ein jeweiliges schrittweises „Aufwärtslaufen“, also der Sprung auf die vorherige höhere Stufe um dort den Fehler/das Problem beheben zu können.
Je nach Variante besitzt das Wasserfallmodell unterschiedliche viele Schritte. Bei Web-Projekten könnte das Wasserfallmodell beispielsweise die folgenden sechs Schritte durchlaufen:

  1. Anforderungsanalyse
  2. Anforderungsdefinition
  3. Design
  4. Implementation
  5. Testen
  6. Einsatz und Wartung

Prototyping Modell

Beim Prototyping Modell wird nach dem Erfahren der Anforderungen erst einmal ein Prototyp entwickelt. Dieser wird anschließend vorgestellt und bewertet. Auf dieser Grundlage werden nun die weiteren Stufen (wie Design, Implementation, Testen und in Betriebnahme) auf den schon vorhandenen Prototyp angewandt, bis dieser den Wünschen des Kunden entspricht. Dies wird auch evolutionäres Prototyping genannt. Generell gibt es noch viele weitere Arten von Prototyping. Beim explorativen Prototyping ist das erste Ergebnis lediglich eine übersichtliche Anforderungsspezifikation. Ziel ist es der Nachweis, dass Spezifikationen oder Ideen tauglich sind. Bei dieser Art wird der erstellte Prototyp nicht weiterverwendet, man spricht vom „Wegwerfprototyp“. Weitere Prototyping-Arten sind: Experimentelles Prototyping, Rapid Control Prototyping, Vertikales Prototyping, horizontales Prototyping.
Das Prototyping Modell eignet sich vor allem dann, wenn am Anfang der Entwicklung die Systemanforderungen noch nicht komplett beschrieben werden können. Das Prototyping hilft beim schärfen der Kundenanforderungen oder Wünsche. Gleichzeitig ist es aber auch eine gute Motivation für das Team, da schnell ein sichtbares Ergebnis vorliegt. Dieses kann dann auch das Kundenvertrauen stärken.

Spiralmodell

Das Spiralmodell unterteilt sich in vier Felder, die immer wieder, wie bei einer Spirale durchlaufen werden. Die vier Felder sind:

  1. Festlegung von Zielen, Identifikation von Alternativen und Beschreibung von Rahmenbedingungen
  2. Evaluierung der Alternativen und das Erkennen, Abschätzen und Reduzieren von Risiken, z. B. durch Analysen, Simulationen oder Prototyping
  3. Realisierung und Überprüfung des Zwischenprodukts
  4. Planung des nächsten Zyklus der Projektfortsetzung.

Das Spiralmodell zählt sich zu den iterativen Vorgehensmodellen und ist eine Weiterentwicklung des Wasserfallmodells, in der die Phasen mehrfach spiralförmig durchlaufen werden.

Rational Unified Process (RUP)

Im Gegensatz zu den anderen Modellen ist der Rational Unified Process ein kommerzielles Produkt der Firma Rational Software. Neben dem eigentlichen Vorgehensmodell zur Softwareentwicklung enthält es auch die dazugehörigen Softwareentwicklungsprogramme.
RUP besteht aus den folgenden vier Phasen, die in eine oder mehreren Iterationen unterteilt sind und jeweils in einen Meilenstein resultieren:

  • Inception (Lifecycle Objective Milestone)
  • Elaboration (Lifecycle Architecture Milestone)
  • Construction (Operational Capability Milestone)
  • Transition (Product Release Milestone)

Evolutionäre Software-Entwicklung

Bei der evolutionären Software-Entwicklung steht eine schnelle Produkt-Implementierung im Mittelpunkt. Nach der Anwendungsspezifikation folgt auch gleich schon das Design und die Implementierung mit anschließendem Test. Ist die Anwendung in Ordnung wird sie ausgeliefert, falls nicht springt man zum Design und Implementierungsschritt zurück und beginnt dort erneut. Damit wird die Software sukzessiv weiterentwickelt, bis anschließend irgendwann das Ergebnis zufriedenstellend ist. Am Anfang wird also lediglich eine Anwendung mit Grundfunktionalitäten erstellt. Auf dieser Basis wird die Software dann je nach Kundenanforderungen in mehreren iterativen Schritten verfeinert.

Das evolutionäre Vorgehen bei der Software-Entwicklung bietet sich vor allem dann an, wenn der genaue Funktionsumfang zu Beginn der Entwicklung noch nicht bekannt ist. Auch sollte der Projektumfang nicht zu groß sein.

Generell ist die evolutionäre Entwicklung teuer und die monolithische Sicht verhindert oft eine Wiederverwendbarkeit der entwickelten Software.

Ähnliche Themen:

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.