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:
Dieses Verhältnis kann grafisch wie folgt dargestellt werden:
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.
"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.
Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:
-
Die Aufgabendomäne ist bekannt.
-
Die Risiken sind klar definiert.
-
Das Projektteam ist erfahren.
"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.
Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:
-
Die Aufgabendomäne ist neu oder unbekannt.
-
Das Projektteam ist unerfahren.
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.
Diese Strategie ist geeignet, wenn folgende Bedingungen erfüllt sind:
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.
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.
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.
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.
|