Slide 3.1 Entwicklungsmethoden Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1
Session 3 Slide 3.2 SOFTWARE LIFE-CYCLE MODELLE Development Methodologies Prof. Dr. Josef M. Joller 2
Übersicht Slide 3.3 Build-and-fix Modell Waterfall Modell Rapid Prototyping Modell Inkrementelles Modell Extreme Programming Synchronize-and-stabilize Modell Spiral Modell Objekt-orientierte Life-Cycle Modelle Vergleich der Life-Cycle Modelle Development Methodologies Prof. Dr. Josef M. Joller 3
Software Life-Cycle Modelle Slide 3.4 Life-Cycle Modelle (oder Prozess Modelle) Die folgenden Phasen finden Sie immer: Anforderungsphase Spezifikationsphase Designphase Implementationsphase Integrationsphase Wartungsphase Ablösung Development Methodologies Prof. Dr. Josef M. Joller 4
Build and Fix Modell Slide 3.5 Probleme keine Spezifikation kein Design Kaum brauchbar Man benötigt Game Plan Phasen Milestones Development Methodologies Prof. Dr. Josef M. Joller 5
Wasserfall Modell Slide 3.6 Kennzeichnen Feedback Loops Dokumentation gesteuert Vorteile Dokumentation Wartung gesichert Nachteile zu ehrgeiziges Modell Development Methodologies Prof. Dr. Josef M. Joller 6
Rapid Prototyping Modell Slide 3.7 Lineares Modell Rapid Development Methodologies Prof. Dr. Josef M. Joller 7
Drei Schlüsselpunkte des Prototyping Slide 3.8 Prototypen sollten nicht zum Produkt werden Prototypen sind eine sinnvolle Ergänzung der Spezifikation Prototypen sind nie ein Ersatz für ein Design! Vergleich: Wasserfall Modell versuche alles gleich beim ersten Mal korrekt zu machen Rapid Prototyping versuchs mal, vielleicht dann noch einmal Development Methodologies Prof. Dr. Josef M. Joller 8
Wasserfall und Rapid Prototyping Modell Slide 3.9 Wasserfall Modell wurde oft erfolgreich eingesetzt kommt den Benutzeranforderungen entgegen (klare Planung...) Rapid prototyping Modell keine sauberen statistischen Daten verfügbar kann zu Problemen führen Lösung Rapid Prototyping in der Anforderungsphase Wasserfall für den Rest Development Methodologies Prof. Dr. Josef M. Joller 9
Extreme Programming Slide 3.10 Eine kontroverse Methode Stories werden festgehalten (Anforderungen der Kunden) Kosten und Aufwandschätzung pro Story bestimmte Stories bilden zusammen ein Build, die Funktionalität, die als nächstes freigegeben wird jedes Build besteht aus mehreren Tasks Zuerst werden die Tests definiert, mit denen die Tasks getestet werden sollen Programmiert wird zu zweit Integration erfolgt kontinuierlich, auf Task Ebene Ungewöhnlich Rechner stehen alle im selben Raum der Client muss anwesend sein jeder muss alles können : keine Spezialisierung möglichst wenig oder keine Überzeit (bringt nur Stress) Refactoring (ist inn: Verbesserungen eines bestehenden Systems) Development Methodologies Prof. Dr. Josef M. Joller 10
Synchronize-and Stabilize Model Slide 3.11 Microsoft s Life-Cycle Modell Anforderungs-Analyse Interviews mit potentiellen Kunden Festhalten der Anforderungen Aufteilen des Projekts in 3-4 Builds Jedes Build wird durch je ein kleines Team realisiert Am Ende des Tages wird synchronisiert Am Ende des Build wird zusammengefügt Komponenten arbeiten zusammen und das Zusammenspiel wird dauernd getestet die Funktionsweise des Gesamtsystems soll möglichst früh sichtbar werden. Development Methodologies Prof. Dr. Josef M. Joller 11
Spiral Modell Slide 3.12 Einfaches Modell Wasserfall Modell plus Risk Analyse Pro Phase Vorarbeit: Alternativen untersuchen Risiko Analyse Pro Phase Nacharbeit Evaluation Planen der nächsten Phase Development Methodologies Prof. Dr. Josef M. Joller 12
Volles Spiralmodell Slide 3.13 Development Methodologies Prof. Dr. Josef M. Joller 13
Analyse des Spiralmodells Slide 3.14 Stärken sauberes Modell, nachvollziehbar Entwicklung und Wartung bilden eine EInheit Schwächen lediglich für grössere Projekte Probleme bei vielen Interationen (in diesem Fall eher für Inhouse Projekte) Development Methodologies Prof. Dr. Josef M. Joller 14
Objekt-Orientierte Life-Cycle Modelle Slide 3.15 Iterationen innerhalb und zwischen den Phasen rekursive und parallele Phasen round-tripgestaltung vereinheitlichter SW / IT Projekt-Prozess Typische Kennzeichen Iteration Parallele Bearbeitung mehrerer Phasen Inkrementelle Entwicklung Gefahr unendliche Schleifen Development Methodologies Prof. Dr. Josef M. Joller 15
RUP Rational Unified Process Slide 3.16 Der Rational Unified Process und UML wurden beide von Rational entwickelt Viele Hersteller haben ihren Beitrag geleistet Microsoft HP IBM Oracle Texas Instruments MCI SystemHouse Standard durch die OMG (Object Management Group) Development Methodologies Prof. Dr. Josef M. Joller 16
1. Wichtige Kennzeichen eines iterativen Prozesses Slide 3.17 Risiken werden abgeschätzt Integration geschieht kontinuierlich öfters kann ein Teil freigegeben werden (Cash fliesst) der Endbenutzer kann öfters seinen Beitrag leisten Initial Planning Planning Requirements Capture Management Environment Analysis & Design Implementation Deployment Evaluation Test Development Methodologies Prof. Dr. Josef M. Joller 17
2. Managen der Anforderungen Slide 3.18 Aufzeigen und dokumentieren der Anforderungen Entscheide werden dokumentiert Use Cases beschreiben die Geschäftsfälle / Anforderungen Use Cases können zur Planung eingesetzt werden Use-Case Modell realization influenced by verifies Use Cases werden durchgehend eingesetzt, bilden die Basis aller Modelle Design Modell Implementations Modell Test Modell Development Methodologies Prof. Dr. Josef M. Joller 18
3. Entwickeln einer Komponenten-basierten Architektur Slide 3.19 Design und Testen der Architektur sobald wie möglich! Definition einer guten Achitektur stützt sich auf klare Interfaces ab verwendet erprobte Komponenen und Konzepte basiert auf bewerteten Use Cases ist verständlich verwendet möglicht erprobte Patterns Applikationsspezifisch : Word Businessspezifisch: : Spelling Checker Komponenten basierte Architektur mit Layer Pattern Middleware System- software Development Methodologies Prof. Dr. Josef M. Joller 19
4. Visuelle Modellierung der Software Slide 3.20 Festhalten der Struktur und des Verhaltens Aufzeigen des Zusammenspiels Konsistente Beschreibung über alle Phasen Basis für eine klare Kommunikation innerhalb des Teams und mit Kunden Sub Systeme Visuelle Modellierung Klassen Code Development Methodologies Prof. Dr. Josef M. Joller 20
5. Verifikation der Software Qualität Slide 3.21 Tests basieren auf Use Cases und können sehr früh festgelegt werden Die Software kann besser geprüft werden Tests können automatisiert werden (JUnit) Die Kosten für die Fehlersuche variieren sehr stark Kost en Entwicklung Auslieferung Development Methodologies Prof. Dr. Josef M. Joller 21
6. Änderungsmanagement Slide 3.22 Änderungen und Ergänzungen werden erfolgt Jeder Entwickler arbeitet in einem gesicherten Bereich Fehler und Änderungen verbreiten sich nicht Die SW Artifakten (Dokumente, Code) werden verfolgbar Integration und Release des Produkts können vereinfacht werden Workspace Management Parallele Entwicklung Configurations Management ist mehr als Check-in und Check-out Prozess Integration REPORT ALERT Build Management Development Methodologies Prof. Dr. Josef M. Joller 22
Prozess Übersicht Slide 3.23 Aufbau Vertiefung Konstruktion Übergabe Business Modellierung Anforderungen Analyse & Design Implementation Test Ausliefern Konfigurations Management Projekt Management Infrastruktur Iteration(en) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Development Methodologies Prof. Dr. Josef M. Joller 23
Phases im Prozess Slide 3.24 Wichtige Milestones Projektstart Projektvertiefung Konstruktion Übergabe time Der Rational Unified Process besteht aus folgenden Grobphasen Inception / Start / Aufbau des Projekts - Definieren des Projekts Vertiefung - Projektplan, Festlegen der Grobarchitektur Konstruktion - Bau des Produkts Übergabe - Ausliefern des Produkts an den Kunden Development Methodologies Prof. Dr. Josef M. Joller 24
Iterationen und Phases Slide 3.25 Releases Inception Elaboration Construction Transition Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Eine Iteration besteht aus einer Sequenz von Aktivitäten, mit einem Plan und Bemessungskriterien und dem Ziel ein auslieferbares Teilsystem herzustellen (intern oder extern). Development Methodologies Prof. Dr. Josef M. Joller 25
Modelle und Workflows Slide 3.26 Business Modell Anforderungs Workflow Business Modell Workflows beschreiben, wie die Modelle entwickelt und weiter entwickelt werden realized by Analysis & Design Workflow Use-Case Modell implemented by Implementations Workflow Test Workflow Design Modell Implementation Modell verified by Test Modell Development Methodologies Prof. Dr. Josef M. Joller 26
Prozess Workflows Alles auf einen Blick... Inception Elaboration Phasen Construction Alle Aktivitäten werden in jeder Iteration ausgeführt Transition Slide 3.27 Business Modeling Anforderungen Analysis & Design Implementation Test Unterstützende Workflows Ausllieferung Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iterationen Iter. #n+2 Iter. #m Iter. #m+1 Development Methodologies Prof. Dr. Josef M. Joller 27
Beispiel eines Workflows Slide 3.28 Development Methodologies Prof. Dr. Josef M. Joller 28
Rational Unified Process (RUP) Slide 3.29 Testversion http://www.rational.com/products/rup/tryit/eval/gen_eval.jsp Username jjoller@hsr.ch Password KmiVF1wP bis Ende April 2002! Development Methodologies Prof. Dr. Josef M. Joller 29
Schlussfolgerungen Slide 3.30 Es gibt unterschiedliche Lebensphasen-Modelle Jedes Modell hat sein Stärken und Schwächen Welches Modell soll ich wählen? Welche Organisation ist etabliert? Wie denkt das Management? Welche Fähigkeiten haben die Mitarbeiter? Welches Produkt soll entwickelt werden? In der Regel wird eine Mischung das Beste sein! Development Methodologies Prof. Dr. Josef M. Joller 30