Prozess-Modelle beschreiben…
… den organisatorischen Rahmen für die Software-Entwicklung mit:
1) Reihenfolge und Phasen des Arbeitsablaufs
2) jeweils durchzuführenden Aktivitäten
3) Definition der Teilprodukte und ihrer Anforderungen
Eigenschaften des einfachen Wasserfall-Modells
Plangesteuert, sowohl inhaltlich als auch zeitlich. Eine Phase muss abgeschlossen sein, bevor die nächste beginnt. Aus jeder Phase gehen entsprechende Dokumente hervor.
Phasen des einfachen Wasserfall-Modells
1) Machbarkeitsstudie
2) Anforderungsanalyse
3) Entwurf
4) Codierung
5) Test
6) Betrieb
Wasserfall-Modell: Machbarkeitsstudie
Alternative Lösungsvorschläge:
Wasserfall-Modell: Anforderungsanalyse
Pflichtenheft, spezialisiert was die Software leisten soll, d.h. alle relevanten Funktions- und Qualitätsmerkmale präzise, vollständig, konsistent und verständlich
Wasserfall-Modell: Entwurf
Systemarchitektur:
Wasserfall-Modell: Codierung
Implementierung:
Wasserfall-Modell: Test
Modultest: unabhäniger Test einzelner Module
Integrationstest: Test des Zusammenspiels mehrerer Module
Systemtest: Test des Gesamtsystems (alle Module)
Testbericht: Ergebnisse der durchgeführen Tests
Wasserfall-Modell: Betrieb
Installation beim Kunden -> Beginn der Wartung
Probleme des einfachen Wasserfall-Modells
V-Modell
erweitert das Wasserfall-Modell um die Qualitätssicherung:
Anforderungsdefinition -> Anwendungsszenarien -> Abnahmetest
Grobentwurf -> Testfälle -> Systemtest
Feinentwurf -> Testfälle -> Integrationstest
Modulimplementation -> Testfälle -> Modultest
Probleme von Wasserfall-Modellem im Allgemeinen
1) Machbarkeit und Kosten lassen sich nur schwer schätzen
2) Pflichtenheft gibt dem Kunden nur unzureichenden Eindruck des zu entwickelnden Systems
3) Anforderungen werden zu früh festgesetzt
4) Zu viele Berichte, Dokumente -> Bürokratie
5) Kunde weiß oft nicht was er will
6) Fehler und Lücken in Anforderungen werden häufig erst im Betrieb entdeckt
7) Wartung schließt Weiterentwicklung mit ein -> Wiederholung einzelner Phasen
Evolutionäre/inkrementelle Softwareentwicklung
Herausforderungen inkrementeller Softwareentwicklung
Arten von Prototypen
1) Demonstations-Prototyp: dient der Auftragsakquise
2) Analyse-Prototyp: dient der Veranschaulichung während der Analyse und ist ein provisorisches, ablauffähiges System
3) Labormuster: dient der Klärung konstruktionsbezogener Fragen
4) Pilotsystem: ist kein des zu erstellenden Produkts
Eigenschaften agiler Softwareentwicklung
1) Inkrementeller Ansatz (sehr kleine Inkremente)
2) Schnelle Entwicklung (zwei bis drei Wochen bis zur nächsten Version)
3) Kunde essentieller Bestandteil der Entwicklung (schnelle Rückmeldung bzgl. Anforderungen)
4) Informelle Kommunikation (Dokumentation wird minimiert)
5) Fokus auf Programmentwicklung
Extreme Programming
1) Anforderungen über User-Stories, direkte Implementierung über Abfolge von Aufgaben
2) Pair-Programming (Driver, Navigator)
3) Kollektives Eigentum (jeder darf alles ändern, verhindert Experteninseln)
4) Kunde vor Ort
5) Test-Driven Development (Tests vor Implementierung, Regressionstests)
6) Refactoring
7) Kurzer Releasezyklus
8) Continuous Integrations (Integrationstests)
SCRUM
Fokus auf Verwaltung iterativer Entwicklung
Personen:
Produkt Owner, Scrum Master, Team
Abfolge:
Product Backlog Items > Sprint Planning > Sprint Backlog > Sprint Demo & Retrospective (2 Wochen + tägliche Scrum Meetings und Burndown Charts) > Shippable Produkt
Probleme agiler Ansätze