Obligatorisches Lesen Vorgehensmodelle (Phasenmodelle) Zuser Kap. 1-3 oder Ghezzi Chapter 1 oder Pfleeger Chapter 1; Chap 8.1 http://homepages.cs.ncl.ac.uk/brian.randell/nato/ The first International Conference on Software Engineering (ICSE) 1968. Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden 07-1.0, Jan 21, 2008 Softwaretechnologie, Prof. Uwe Aßmann 1 Wie gehe ich vor, um Software zu entwickeln? Ad hoc Es lief schon oft schief... Denver International Airport, Krise 1993-95 Bahncard 50 Hamburger Güterbahnhof 1995 Gibt es nicht irgendwelche Hilfen, strukturiert vorzugehen? Prof. Uwe Aßmann, Softwaretechnologie 3 Phasenmodell (engl. process model) Einteilung des Herstellungsprozesses in defi nierte und abgegrenzte Phasen Vorgabe einer Reihenfolge in der Bearbeitung der Phasen Prof. Uwe Aßmann, Softwaretechnologie 2 Vorgehen nach einem Phasenmodell Phasenmodell (engl. process model oder software development life cycle SDLC) Einteilung des Herstellungsprozesses für ein (Software-) Produkt in definierte und abgegrenzte Abschnitte. Grobgliederung: Phasen (phases). Feingliederung: Schritte (stages, steps) Vorgabe einer Reihenfolge in der Bearbeitung der Phasen Richtlinie für die Definition von Zwischenergebnissen. Detailliertes Phasenmodell + Zwischenergebnisdefinition = Vorgehensmodell Grundaktivitäten: Validation (v.a., ) Evolution (v.a. Wartung) Prof. Uwe Aßmann, Softwaretechnologie 4
Wasserfall-Modell (pur) Ungefähre Verteilung des Arbeitsaufwandes Produktdefinition W. Royce (1970) 10 % s- Spezifikation 20 % 20 % 50 %, geprüfter, Änderungswünsche Wartung Prof. Uwe Aßmann, Softwaretechnologie 5 Wartung Prof. Uwe Aßmann, Softwaretechnologie 6 Qualitätssicherung im V-Modell Das Wasserfallmodell ist nicht realistisch. Für ein Produkt müssen, schon um des Geschäftsmodells willen, Verbesserungen (Lebenszyklen) eingeplant werden Ein Lebenszyklus dauert i.d. 2 Jahre Dennoch muss ein Softwareingenieur den Wasserfall beherrschen, denn viele andere Vorgehensmodelle setzen darauf auf Grobentwurf fälle fälle Abnahmetest Systemtest Feinentwurf fälle stest Modultest Boehm 1979 ( V-Modell ) Prof. Uwe Aßmann, Softwaretechnologie 7 Prof. Uwe Aßmann, Softwaretechnologie 8
V-Modell des BMI (vereinfacht) Inkrementelle (evolutionäre) Entwicklung Abnahme- Grobentwurf Subsystem- & Feinentwurf Evolution Bröhl/Dröschel 1993 Prüfaktivitäten Prof. Uwe Aßmann, Softwaretechnologie 9 Evolutionäre Entwicklung Modifikation Prof. Uwe Aßmann, Softwaretechnologie 10 extreme Programming (XP) Typisch für kleinere Projekte oder experimentelle Systeme Bei Objektorientierung auch für größere Projekte anwendbar? Aufgabe Validation Prototypen, Vorversionen Prof. Uwe Aßmann, Softwaretechnologie 11 Aktuelle, kontrovers diskutierte Entwicklungsmethodik (Kent Beck) Konsequente evolutionäre Entwicklung Der Programmcode ist das ergebnis, das sdokument und die Dokumentation. wird permanent (Tagesrhythmus) lauffähig gehalten Diszipliniertes und automatisiertes en als Qualitätssicherung Diverse weitere innovative Techniken (z.b. Paar-Programmierung) liefert schnell Ergebnisse, aber u.u. auf Kosten der Langlebigkeit kann prinzipiell mit traditionelleren - und stechniken kombiniert werden Nachteile wird manchmal als Gegenbewegung zu sauberem Softwareentwurf mißverstanden ist nur geeignet für relativ überschaubare, isolierte Anwendungen "Agile" Softwareentwicklung (www.agilemanifesto.org): weitere Ansätze, z.b. Crystal, Scrum Prof. Uwe Aßmann, Softwaretechnologie 12
Spiralmodell Objektorientiertes Spiralmodell Zielbestimmung, Beurteilung von Alternativen Risikoanalyse Planung der nächsten Phase B. Boehm (1988) V&V V&V P1 P2 P3 P4 V&V = Verifikation & Validation Prototypen Entwicklung nächstes Teilprodukt Prof. Uwe Aßmann, Softwaretechnologie 13 Spiralmodell vs. evolutionäre Entwicklung Produkte (Releases) einschl. Prototypen Langfristige Vorplanung der Zyklen-Durchläufe Prof. Uwe Aßmann, Softwaretechnologie 14 Parallelität im Entwicklungsprozeß Grundidee identisch: Zyklisches Durchlaufen von Entwicklungsaktivitätem Aufeinanderfolgende Prototypen Evolutionäre und agile Entwicklung: Reaktion auf Änderungen ist wichtiger als Verfolgung eines Plans Planung nur für sehr kurze Zeiträume (Tage, Wochen) im voraus Viele, häufige Durchläufe (z.b. Tagesrhythmus) Spiralmodell: Einsetzbar in verschiedener "Strenge" Vorausplanung von Durchläufen. Anzahl Durchläufe manchmal schon bei Projektbeginn festgelegt Wenige Durchläufe (z.b. Quartalsrhythmus) Kompromiß zwischen Planbarkeit und Agilität Prof. Uwe Aßmann, Softwaretechnologie 15 Anforderungen Grobentwurf Feinentwurf Abnahme Anforderungsspezifikation Produktdefinition sspezifikation Subsystem 1 Subsystem 2 Subsystem 3 Subsystem 1 Subsystem 2 Subsystem 3 Ergebnisse "Makro-Phasen" // "Mikro-Phasen" // Prof. Uwe Aßmann, Softwaretechnologie 16 Zeit
Zweidimensionales Modell Aufwandsverteilung und Schwerpunkte Rational Unified Process 1999 (Jacobson et al., Kruchten) mit Mikro- und Makrophasen Zeit Konfi gurationsmanagement Projektmanagement Entstehung (inception) Ausarbeitung (elaboration) Erstellung (construction) Übergang (transition) Rational Unified Process 1999 (Jacobson et al., Kruchten) Konfi gurationsmanagement Projektmanagement Tätigkeit Entstehung (inception) Ausarbeitung (elaboration) Erstellung (construction) Zeit Übergang (transition) Tätigkeit Prof. Uwe Aßmann, Softwaretechnologie 17 Rational Unified Process (RUP) Prof. Uwe Aßmann, Softwaretechnologie 18 Teilprojekte und Überlappungsgrade konservativ I1 E1 C1 T1 Teilprojekt 1 Release 1 I2 E2 C2 T2 Teilprojekt 2 Release 2 aggressiv Release 1 I1 E1 C1 T1 Teilprojekt 1 Release 2 I2 E2 C2 T2 Teilprojekt 2 Prof. Uwe Aßmann, Softwaretechnologie 19 Release 1 Standard I1 E1 C1 T1 Teilprojekt 1 Release 2 I2 E2 C2 T2 Teilprojekt 2 Prof. Uwe Aßmann, Softwaretechnologie 20 I E C T Inception Elaboration Construction Transition
Vorgehen im Softwarepraktikum 4. Semester Was haben wir gelernt? Echte Kunden Vorgehensmodell: V-Modell mit Akzeptanztests Einfache Inkrementalität: Kunde hat einen Verbesserungswunsch frei, der erst zu einem späten Zeitpunkt bekanntgegeben wird Vorgehen nach einem strukturierten Phasenmodell ist gewöhnlich besser als ad-hoc Vorgehen Realistische Vorgehensmodelle sind iterativ und inkrementell Der Ingenieur misst, entwirft, validiert und verbessert Intern kann ein inkrementelle Vorgehensmodell gewählt werden Prof. Uwe Aßmann, Softwaretechnologie 21 Prof. Uwe Aßmann, Softwaretechnologie 22 Referenz Die deutschen Folien der Softwaretechnologie-Vorlesung stammen zu grossen Teilen aus den Jahren 2000-2003 und wurden von Prof. Dr. Heinrich Hussmann, jetzt LMU München, erstellt. Used by permission. Prof. Uwe Aßmann, Softwaretechnologie 23