RUP-Lebenszyklus
Diese Seite beschreibt die Phasen und Meilensteine im Lebenszyklus eines typischen RUP-Projekts.
Beziehungen
Hauptbeschreibung

Die Phasen und Meilensteine eines Projekts

Aus der Managementperspektive betrachtet unterteilt sich der Softwarezyklus von Rational Unified Process (RUP) in vier aufeinander folgende Phasen, von denen jede durch einen Meilenstein abgeschlossen wird. Jede Phase bildet im Wesentlichen einen Zeitraum zwischen zwei wichtigen Meilensteinen. Bei jedem Phasenende wird eine Bewertung durchgeführt, um zu bestimmen, ob die Ziele der Phase erreicht wurden. Eine zufriedenstellende Bewertung ermöglicht den Eintritt des Projekts in die nächste Phase.

Planungsphasen

Nicht alle Phasen sind hinsichtlich des Zeiteinsatzes und des Aufwands identisch. Obwohl es projektabhängig starke Unterschiede gibt, sollte das Verhältnis zwischen Zeiteinsatz und Aufwand bei einem typischen einleitenden Entwicklungszyklus für ein mittleres Projekt wie folgt aussehen:

  Konzeption Ausarbeitung Konstruktion Übergang
Aufwand ca. 5 % 20 % 65 % 10 %
Zeiteinsatz 10 % 30 % 50 % 10 %

Dieses Verhältnis kann grafisch wie folgt dargestellt werden:

Übergang Konstruktion Ausarbeitung Konzeption Klicken Sie auf eine Phase, um weitere Informationen zu erhalten.

Diese Verteilung kann variieren. Tools, die Code und Testfälle generieren, können die Konstruktionsphase erheblich verkürzen. Für einen Weiterentwicklungszyklus können die Konzeptions- und die Ausarbeitungsphase wesentlich kürzer veranschlagt werden, da bereits eine Grundvision und eine Basisarchitektur vorhanden sind.

Planungsstrategien

In diesem Abschnitt werden verschiedene Lebenszyklusmuster, die allgemeinen Projektprofilen entsprechen, eingeführt.

Lebenszyklusmuster:  Inkrementell

"Die inkrementelle Strategie bestimmt Benutzerbedürfnisse, definiert Systemvoraussetzungen und realisiert die restliche Entwicklung in einer Folge von Builds. Der erste Build bindet Teile der geplanten Funktionalität ein, der nächste Build fügt weitere Funktionen hinzu usw., bis das System vollständig ist." [siehe DOD94]

Die folgenden Iterationen sind charakteristisch:

  • Eine kurze Konzeptionsiteration, um Umfang und Vision zu bestimmen und die Kosten-Nutzen-Analyse zu definieren
  • Eine einzige Ausarbeitungsiteration, bei der die Voraussetzungen definiert werden und die Architektur erstellt wird
  • Verschiedene Konstruktionsiterationen, in denen die Anwendungsfälle realisiert werden und die Architektur untermauert wird
  • Verschiedene Übergangsiterationen, um das Produkt in die Benutzergruppe zu migrieren.

Im Begleittext beschriebenes Diagramm.

Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:

  • Die Aufgabendomäne ist bekannt.
  • Die Risiken sind klar definiert.
  • Das Projektteam ist erfahren.

Lebenszyklusmuster: Evolutionär

"Die evolutionäre Strategie unterscheidet sich von der inkrementellen dadurch, dass sie dem Umstand Rechnung trägt, dass Benutzerbedürfnisse nicht vollständig geklärt sind und nicht alle Voraussetzungen im Voraus definiert werden können. Diese werden mit jedem neuen Build präzisiert." [siehe DOD94]

Die folgenden Iterationen sind charakteristisch:

  • Eine kurze Konzeptionsiteration, um Umfang und Vision zu bestimmen und die Kosten-Nutzen-Analyse zu definieren
  • Verschiedene Ausarbeitungsiterationen, in denen Anforderungen mit jeder Iteration präzisiert werden
  • Eine einzige Konstruktionsiteration, bei der die Anwendungsfälle realisiert werden und die Architektur erweitert wird
  • Verschiedene Übergangsiterationen, um das Produkt in die Benutzergruppe zu migrieren.

Im Begleittext beschriebenes Diagramm.

Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:

  • Die Aufgabendomäne ist neu oder unbekannt.
  • Das Projektteam ist unerfahren.

Lebenszyklusmuster: Inkrementelle Lieferung 

Einige Autoren haben auch die Lieferung inkrementeller Funktionen an den Kunden in Phasen eingeteilt [GIL88]. Dies kann in Situationen mit kurzen Markteinführungszeiten erforderlich sein, wenn die schnelle Lieferung bestimmter wichtiger Features bedeutende Wettbewerbsvorteile bringt.

Bei der Methode der Phaseniteration beginnt die Übergangsphase früh und hat die meisten Iterationen. Diese Strategie erfordert eine sehr stabile Architektur, die im ersten Entwicklungszyklus schwer zu erreichen ist, für ein noch nicht da gewesenes System.

Die folgenden Iterationen sind charakteristisch:

  • Eine kurze Konzeptionsiteration, um Umfang und Vision zu bestimmen und die Kosten-Nutzen-Analyse zu definieren
  • Eine einzige Ausarbeitungsiteration, bei der eine stabile Architektur als Referenzversion verwendet wird
  • Eine einzige Konstruktionsiteration, bei der die Anwendungsfälle realisiert werden und die Architektur erweitert wird
  • Verschiedene Übergangsiterationen, um das Produkt in die Benutzergruppe zu migrieren.

Im Begleittext beschriebenes Diagramm.

Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:

  • Die Aufgabendomäne ist bekannt:

    • Die Architektur und die Voraussetzungen können früh im Entwicklungszyklus stabilisiert werden
    • Nur wenige Aspekte des Problems sind neu.
  • Das Projektteam ist erfahren.
  • Inkrementelle Releases der Funktionalität sind von hohem Wert für den Kunden.

Lebenszyklusmuster: "Grand Design"

Die traditionelle Wasserfallmethode kann als man als veraltet bezeichnen, da sie nur eine Iteration in der Konstruktionsphase enthält. In der Veröffentlichung [DOD94] wird sie als "Grand Design" bezeichnet. In der Praxis ist es sehr schwierig, zusätzliche Iterationen in der Übergangsphase zu vermeiden.

Die folgenden Iterationen sind charakteristisch:

  • Eine kurze Konzeptionsiteration, um Umfang und Vision zu bestimmen und die Kosten-Nutzen-Analyse zu definieren
  • Eine einzige, sehr lange Konstruktionsiteration, bei der die Anwendungsfälle realisiert werden und die Architektur erweitert wird
  • Verschiedene Übergangsiterationen, um das Produkt in die Benutzergruppe zu migrieren.

Im Begleittext beschriebenes Diagramm

Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:

  • Ein kleines Inkrement klar strukturierter Funktionen wird zu einem sehr stabilen Produkt hinzugefügt
  • Die neue Funktionalität ist klar strukturiert und bekannt
  • Das Team hat Erfahrungen mit der Aufgabendomäne und dem vorhandenen Produkt.

Lebenszyklusmuster: Hybridstrategien

In der Praxis gibt es nur wenige Projekte, die strikt eine Strategie verfolgen. In den meisten Fällen werden Sie eine Mischform verwenden, d. h., bestimmte Entwicklungsvorgänge, inkrementelle Build-Vorgänge und mehrere Bereitstellungsprozesse. Einer der Vorteile des Phaseniterationsmodells besteht darin, dass es Ihnen erlaubt, eine Hybridmethode zu verwenden, und zwar einfach dadurch, dass Sie Anzahl und Dauer der Iterationen erhöhen:

  • Für komplexe oder unbekannte Aufgabendomänen, bei denen viele Untersuchungen erforderlich sind, gilt folgende Empfehlung: Erhöhen Sie Anzahl der Iterationen in der Ausarbeitungsphase und verlängern Sie die Ausarbeitungsphase.
  • Für komplexere Entwicklungsprobleme, bei denen es schwierig ist, das Design in Code umzusetzen, gilt folgende Empfehlung: Erhöhen Sie die Anzahl der Iterationen in der Ausarbeitungsphase und verlängern Sie die Ausarbeitungsphase.
  • Wenn Sie die Software in einer Reihe von inkrementellen Releases fertigen möchten, gilt folgende Empfehlung: Erhöhen Sie die Anzahl der Iterationen in der Übergangsphase und verlängern Sie die Übergangsphase.


Von einem Zyklus in einen anderen wechseln

Ein Durchgang durch die vier Phasen ist ein Entwicklungszyklus, bei jedem Durchgang durch die vier Phasen wird eine Generation der Software erzeugt. Sofern ein Produkt nicht eingestellt wird, wird es bis zur nächsten Generation weiterentwickelt. Dabei wird die Folge von Konzeptions-, Ausarbeitungs-, Konstruktions- und Übergangsphase wiederholt, dieses Mal jedoch mit einem anderen Schwerpunkt in den einzelnen Phasen. Diese nachfolgenden Zyklen werden als Weiterentwicklungszyklen bezeichnet. Da das Produkt verschiedene Zyklen durchläuft, werden neue Generationen erzeugt.

Diagramm zu erster Entwicklung

Weiterentwicklungszyklen können in folgenden Fällen ausgelöst werden: vom Benutzer vorgeschlagene Verbesserungen, Änderungen im Benutzerkontext, Änderungen in der zugrunde liegenden Technologie, Reaktionen auf Wettbewerb usw. Weiterentwicklungszyklen haben normalerweise wesentlich kürzere Konzeptions- und Ausarbeitungsphasen, da die grundlegende Produktdefinition und -architektur durch vorangehende Entwicklungszyklen bestimmt wird. Ausnahmen von dieser Regel sind Weiterentwicklungszyklen, in denen ein wichtiges Produkt oder eine Neudefinition der Architektur eingeführt wird.