500 likes | 766 Views
Rational Unified Process. Einführung. Projekte mit Dilbert. Software-Projekte in der Realität. 16% aller Projekte scheitern 53% aller Projekte sind nicht in Time bzw. Budget 31% aller Projekte sind erfolgreich [Quelle: Chaos Report der Standish Group]. Warum scheitern Software-Projekte?.
E N D
Franz-Josef Herpers Rational Unified Process Einführung
Software-Projekte in der Realität • 16% aller Projekte scheitern • 53% aller Projekte sind nicht in Time bzw. Budget • 31% aller Projekte sind erfolgreich [Quelle: Chaos Report der Standish Group]
Warum scheitern Software-Projekte? • Anforderungsmanagement als Ad-Hoc-Angelegenheit • Unpräzise Kommunikation • Schwache Architektur • Unkontrollierbare Komplexität • Inkonsistenzen zwischen Anforderungen, Design und Implementierung • Unzureichende Tests • Subjektive, nicht messbare Projektstatus • Kein Fokus auf Projektrisiken • Unkontrollierte Änderungsmechanismen • Unzureichende Automatisierung
Prozessmodelle gegen das Scheitern • Wasserfallmodell • Spiralmodell • V-Modell • Rational Unified Process (RUP)
Was ist der RUP? • Methode • iterativ • risikogetrieben • architekturzentriert • Use-Case-getrieben • Prozess • klar definiert (wer, was, wie, wann) • klar strukturiert (Lebenszyklus, Meilensteine) • Produkt • stellt anpassbares Prozess-Framework zur Verfügung zur Unterstützung der Softwareentwicklung
Die drei Amigos Grady Booch Ivar Jacobson James Rumbaugh Booch OOSE OMT
UML - Entwicklung März 2003: UML 1.5 2001: UML 1.4 UML 2.0 WG
Einflüsse und Historie RUP RUP 2002 RUP 2000
Rational und RUP • Aufkauf aller Amigos • Aufkauf ergänzender Firmen • UML-Entwicklung • Entwicklung RUP • Kauf von Rational durch IBM (2002)
Iterativ-inkrementelles Vorgehen • Ergebnis einer Iteration: ein Stück aus-führbare Software (Inkrement) • Jede Iteration ist zielorientiert(Funktionen, Risiko) • Jede Iteration setzt auf der vor-hergehenden auf (Evolution,Verfeinerung) • Frühe Iteration legen den Fo-kus stärker auf Anforderungen,spätere auf das Testen
Warum Iterationen II? • Leichtere Anpassung an sich ändernde Anforderungen • Integration ist kein "Big Bang" am Ende des Projekts • Risiken lassen sich durch früheres Erkennen minimieren • Mittel für das Management taktische Änderungen am Produkt vorzunehmen • Wiederverwendung wird erleichtert • Fehler können über mehrere Iterationen gefunden werden • Bessere Verwendung des Projektpersonals • Teammitglieder lernen im Projektverlauf • Der Entwicklungsprozess selbst wird im Projektverlauf verbessert und verfeinert
Dynamische Struktur: Phasen Inception Elaboration Construction Transition LCO LCA IOC PR Vision Basis-Architektur Funktionalität Freigabe Meilensteine
Inception • Abstecken des Projektumfangs (mit Stakeholdern) • Vision erstellen • Akzeptanzkriterien festlegen • Systemumfang festlegen • Identifikation der kritischen Use-Cases • Architekturskizze evtl. Prototyp (Proof of Concept) • Kostenschätzung und Planung • Einschätzung und Minimierung der Geschäftsrisiken • Projektumgebung festlegen (Prozess, Tools) Meilenstein: Lifecycle Objective Milestone (LCO)
Elaboration • Verfeinerung der Anforderungen und der Vision • Basis-Architektur (Verfeinerung Skizze) • Design • Implementierung (evolutionärer Prototyp) • Validierung (v.a. gegen Anforderungen) • Minimierung v.a. der technischen Risiken • Konfiguration der Softwareentwicklungstools • Planung der Entwicklungsphase (Iterationen!) Lifecycle Architecture Milestone (LCA)
Construction • Minimierung der Entwicklungskosten • Parallelisierung der Entwicklungsarbeiten (CM!) • Iterative Entwicklung eines auslieferbaren Release • fehlende Use Cases/Afos ermitteln und beschreiben • Vervollständigung Analyse/Design • Implementierung • Integration und Testen (gegen Anforderungen) Initial Operational Capability Milestone (IOC)
Transition • Erstellen der finalen Version der Software • Auslieferung der Software an den Kunden Product Release Milestone (PR)
Phasen und Iterationen • Phasen • enden mit einem Meilenstein • enden mit einem Release (da Iterationsende = Phasenende) • Ziele durch feste Meilensteine vorgegeben • Iterationen • enden mit einem ausführbaren Release • zielorientiert (Risiken minimieren, Use Case(s) realisieren) • Iterationsziele werden NICHT vom Prozess vorgegeben, sondern projekt-individuell • sind in die Phasen eingebunden (0...N Iterationen/Phase) • sind relativ kurz
Statische Struktur: Schlüsselelemente • Workers (Das Wer?) • Activities (Das Wie?) • Artifacts (Das Was?) • Workflows (Das Wann?)
Typen von Workers • Analyst • Developer • Tester • Manager
Artifact (Artefakt) • Modell • Modellelement • Dokument • Source Code • Executables Alle Artefakte außer der SW selbst sind nur Unterstützung! Sind Sie im Zweifel, ob Sie ein Artefakt erstellen sollen, erstellen Sie es nicht!
Workflows • Core Workflows • Core Supporting Workflows • Detailed Workflows
Core Workflows • Business Modeling • Verbindung zw. Business und System (Business Use Cases, Business Object Model) • Requirements • Das Was des Systems (UC, Actors, UC-Beschreibung) • Analysis & Design • Das Wie des Systems (Design & Analysis Model) • Implementation • Das System selbst • Test • Die Qualität des Systems • Deployment • Die Auslieferung/Abnahme des Systems
Core Supporting Workflows • Project Management • Framework für das Management von SW-Projekten • Praktische Leitfäden für Planung, Staffing, Ausführung und Monitoring • Framework für Risikomanagement • Configuration and Change Management • Kontrolle über zahlreichen Prozessartefakte • Environment • Konfiguration des Prozesses und der Tools
Weitere Prozesselemente • Guidelines • Templates • Tool mentors • Reports • Checkpoints • Concepts • Roadmaps
CMM CMMI XP RUP und andere Modelle Wasserfall Formalität Agilität RUP Process Framework LightRUPKonfiguration Durchschnittl.RUPKonfiguration FormaleRUPKonfiguration Iterativ
RUP-Plattform • Webbasierte, durchsuchbare Wissensbasis • Guidelines • Tool mentors • Beispiele • SoDA-Templates • Word-Templates • MS-Project-Pläne • Development Kit • RUP-Plugins • Small RUP • RUP for .NET • RUP for J2EE • RUP-Builder • Installation von Plugins • Konfiguration der RUP-Webseite • Rational Process Workbench • Eigene Plugins entwickeln • Tailoring von RUP • Kopplung mit Rational Rose • extra zu lizensieren • RUP Knowledge Center • Get Started Guides • andere Ressourcen • RUP-Diskussionsforen • RUP Exchange • Plugin-Austausch • Rational University • Training • Consulting Services
Rational Tool Suite • Rational RequisitPro => Requirements Management • Rational ClearQuest => Change Management • Rational TestStudio => Automated Testing • Rational Rose => Visual Modeling und viele andere.....