Verlauf der Softwareentwicklung
Nachfolgend werden Entwicklungsmodelle hinsichtlich des Verlaufs über den Lebenszyklus des Softwareprodukts betrachtet. Phasenmodelle beschreiben Aktivitäten über den Lebenszyklus.
Der Begriff Phasen der Softwareentwicklung wird mehrdeutig verwendet:
- Synonym mit dem hier verwendeten Begriff Aktivität.
- Ein Zeitabschnitt im Lebenszyklus eines Softwareprodukts.
Bei linearen Modellen der Softwareentwicklung fallen beide Begriffe zusammen. Spätestens seit dem Aufkommen von inkrementellen und evolutionären Modellen ist diese Identität nicht mehr haltbar.
Hier wird eine Phase als ein Zeitabschnitt im Lebenszyklus eines Softwareprodukts verstanden.
- Phasen beschreiben den dynamischen Aspekt der Softwareentwicklung.
- Aktivitäten der Modelle beschreiben den statischen Aspekt.
In jeder Phase werden eine Menge von Aktivitäten durchgeführt. Vielfach wird die Phase nach der überwiegend durchgeführten Aktivität benannt. Der statische Aspekt beschreibt, in welcher Folge welche Aktivitäten durchgeführt werden können bzw. dürfen.
Ein Phasenmodell teilt den Verlauf der Erstellung eines Softwareprodukts in mehrere Phasen. Die Dauer und die Ergebnisse, die während einer Phase erarbeitet werden, lassen sich planen. Die Ziele einer Phase werden Meilensteine genannt. Derartige Prozesse werden auch als "Milestone Driven Process" bezeichnet.
Beispiel: Der Rational Unified Process
Der Rational Unified Process [13] (RUP) modelliert beispielsweise ein Phasenmodell. Er beschreibt aber nicht nur Phasen, sondern auch Aktivitäten. Er kennt vier Phasen:
Die Aktivitäten sind:
Bild 16: Aktivitäten in den Phasen des RUP
In Bild 16 ist dargestellt, wie sich Aktivitäten über die Phasen in einem (Beispiel-)Softwareprojekt verteilen.
Im RUP versteht man unter Iteration
- eine Wiederholung des gesamten Entwicklungsprozesses, um eine Version mit erweiterten Fähigkeiten auszuliefern. Es handelt sich also um inkrementelle Entwicklung im eigentlichen Sinne.
- eine Wiederholung des gesamten Entwicklungsprozesses einschließlich der Überarbeitung der Geschäftsziele und Anforderungen. Es handelt sich also um evolutionäre Entwicklung im eigentlichen Sinne.
Der RUP beschreibt den Lebenslauf eines Softwareprodukts im Großen. Es wird nicht auf die Entwicklung von Subsystemen oder Komponenten eingegangen.