Einführung Wasserfall RUP XP. Teil VIII. Prozessmodelle



Ähnliche Dokumente
Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Grundlagen Software Engineering


Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Der Unified Process ist ein generischer Prozeß zur objektorientierten Software- Erstellung

The Rational Unified Process. Eine Einführung von T. Langer und A. Nitert

SOFTWARETECHNIK. Kapitel 7 Vorgehensmodelle. Vorlesung im Wintersemester 2012/13 FG System- und Software-Engineering Prof. Dr.-Ing.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Agile Softwareprozess-Modelle

Softwareentwicklungsprozesse. 18. Oktober 2012

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Der Rational Unified Process

Extreme Programming. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Softwaretechnik. Fomuso Ekellem WS 2011/12

IT-Projekt-Management

Software Engineering

Übungsaufgaben zum Software Engineering: Management

Extreme Programming: Überblick

Agile Softwareentwicklung mit Scrum

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle

07. November, Zürich-Oerlikon

Copyright 2014 Delta Software Technology GmbH. All Rights reserved.

Reference Migration Process ReMiP

Lösungen zum Test objektorientierter Software

Das Wasserfallmodell - Überblick

Die 10 größten Probleme bei der Durchführung von IT-Projekten

Software-Lebenszyklus

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Prozess-Modelle für die Softwareentwicklung

Softwareanforderungsanalyse

Wir erledigen alles sofort. Warum Qualität, Risikomanagement, Gebrauchstauglichkeit und Dokumentation nach jeder Iteration fertig sind.

17 Architekturentwurf Vorgehen und Dokumentation

Scrum. Agile Software Entwicklung mit. Agile Software Entwicklung mit. Scrum. Raffael Schweitzer 18. November 2003

PROJEKTMANAGEMENT GRUNDLAGEN_2

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Kapitel 2: Der Software-Entwicklungsprozess

Wirtschaftsinformatik I Teil 2. Sommersemester Übung

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Projektmanagement: Prozessmodelle

Vortrag von: Ilias Agorakis & Robert Roginer

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Softwaretechnik. Fomuso Ekellem WS 2011/12

Einführung in Scrum. Agiles Projektmanagement. Martin Krüger Entwicklung von Workflowanwendungen

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

Softwaretechnik (Allgemeine Informatik) Überblick

Software Projekt 2 / Gruppe Knauth Lernziele:

Neue Funktionen in Innovator 11 R5

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

16 Architekturentwurf Einführung und Überblick

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

Entwurf. Anwendungsbeginn E DIN EN (VDE ): Anwendungsbeginn dieser Norm ist...

Software Systems Engineering

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

SEA. Modellgetriebene Softwareentwicklung in der BA

Modellbasierte Softwareentwicklung

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Block R (Rahmen): SE Aktivitäten Vorlesung Methoden des Software Engineering. Block R Rahmen Aktivitäten der Software-Entwicklung

Abschnitt 16: Objektorientiertes Design

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Inhalt. 3.1 Der inkrementelle Entwurf im Überblick Flache Aufwandskurve Qualitätskriterien für den inkrementellen Entwurf...

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Extreme Programming ACM/GI Regionalgruppe Bremen,

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Unsere Kunden erzählen keine Geschichten. Ursula Meseberg microtool GmbH Berlin

Übungsklausur vom 7. Dez. 2007

Agile Software Development

Phasen. Gliederung. Rational Unified Process

Änderungsmanagement bei iterativer SW-Entwicklung

SEQUENZDIAGRAMM. Christoph Süsens

Gliederung. Einführung Phasen Ten Essentials Werkzeugunterstützung Aktivitäten, Rollen, Artefakte Werkzeug zur patternorientierten Softwareentwicklung

Agile Management Einführung in agiles Management

Übung Einführung in die Softwaretechnik

SDD System Design Document

Extreme Programming. Frank Gerberding LINEAS Informationstechnik GmbH Theodor-Heuss-Straße 2 D Braunschweig

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Projektplan. Software Engineering Projekt. November 11 Fachbereich Informatik Software Engineering Projekt Sebastian Proksch 1

Arbeiten mit UMLed und Delphi

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

Agiles Requirements Engineering mit Scrum. Rainer Fetscher Neuss, 16. November 2010

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

Requirements Engineering I

RUP Analyse und Design: Überblick

Erfahrungen über den Einsatz einer agilen Entwicklungsmethode fürdie Produktentwicklung unterstützt durch Polarion ALM forsubversion

Praktische Erfahrungen beim Einsatz des Vorgehensmodells "SCRUM" bei AGFA HealthCare

Agiles Design. Dr.-Ing. Uwe Doetzkies Gesellschaft für Informatik mail:

Anforderungsanalyse. Basis: Grundlage für Erfolg / Misserfolg. Gute Qualität, moderne Techniken... Reicht nicht!

Umfrage zum Informationsbedarf im Requirements Engineering

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Erfahrungsbericht Agile Entwicklung einer BI Anwendung für das Meldewesen

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams

Software entwickeln mit extreme Programming

Der Design-Workflow im Software-Entwicklungs-Prozess

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Agile Softwareentwicklung. Referat von Kristina Schrickel Praxisprojekt Ruby Leitung : Ralf Berger

Transkript:

Teil VIII Prozessmodelle 424

8.1 Einführung Prozessmodelle legen fest: Elemente und Reihenfolge des Arbeitsablaufs Definition der Teilprodukte Fertigstellungskriterien notwendige Mitarbeiterqualifikationen Verantwortlichkeiten und Kompetenzen anzuwendende Standards, Richtlinien, Methoden, Werkzeuge 425

8.2 Wasserfall-Modell Systemanforderungen Softwareanforderungen Analyse Entwurf Codierung Testen Betrieb weit verbreiteter Klassiker nicht mehr Stand der Technik wegen teurer Fehlerkorrektur dokumentengetrieben ursprünglich ohne Rückkopplung (Royce 70) 426

8.3 Der vereinheitlichte Software-Entwicklungsprozess Engl.: (Rational) Unified Process Vorläufer: Ericsson-Ansatz (Jacobson) seit 1967 Objectory (Jacobson) seit 1988 Grundprinzipien: Use-Case-getrieben Architektur-zentriert iterativ und inkrementell anpassbar Werkzeugunterstützung notwendig für konsistente, aktuelle Modelle 427

Grundprinzipien des Unified Process Use-Case-getrieben: Was soll das System für jeden Benutzer tun? Analyse, Entwurf und Implementierung und Testen von Use-Cases getrieben Architektur-zentriert: Architektur parallel zu Use-Cases entwickelt (gegenseitige Abhängigkeit) iterativ und inkrementell: Risiken zuerst beseitigen Kontrolle nach jeder Iteration bei Scheitern einer Iteration: nur letzte Erweiterung betroffen überschaubare Schritte beschleunigen Projekt erlaubt sukzessives, einfacheres Bestimmen der Anforderungen 428

Aufbau des Unified Process Folge von Zyklen nach jedem Zyklus: fertiges Produkt-Release aus Code, Handbüchern, UML-Modellen, Testfällen Lebensbeginn... Zyklen (jeweils beendet mit neuer Version) Lebensende Zeit Zyklus besteht aus 4 Phasen: Anfang, Ausarbeitung, Konstruktion, Übergang (Inception, Elaboration, Construction, Transition) jede Phase besteht aus Iterationen 429

Zyklus Zeit Anfang Ausarbeitung Konstruktion Übergang Iteration............... #2 #n-1 #n... Iteration #1 Iteration Iteration "neue Produktversionen" 430

Kern- Workflows Anforderungen Haupt-Workflows und Phasen Phasen Anfang Ausarbeitung Konstruktion Übergang Analyse Entwurf Implementierung Test It. #1 It. #2.................. It. #n jede Phase endet mit Meilenstein jede Phase bearbeitet alle Workflows (verschieden intensiv) 431

Anfangsphase (inception phase) Ziel: grobe Vision des Produkts Was soll das System für jeden Benutzer tun? wichtigste Use-Cases Wie könnte eine passende Architektur aussehen? (vorläufig) Projektplan und Kosten? wichtigste Risiken identifizieren (Prioritäten) Ausarbeitungsphase planen 432

Ausarbeitungsphase (elaboration phase) die meisten Use-Cases werden im Detail spezifiziert Architektur wird entworfen Realisierbarkeit der Architektur durch versuchsweise Teilimplementierung belegen kritischste Use-Cases werden realisiert Ergebnis: Basis-Architektur Aktivitäten und Ressourceneinsatz für Restprojekt werden geplant Sind Use-Cases und Architektur stabil? Werden die Risiken beherrscht? 433

Konstruktionsphase System wird implementiert höchster Ressourcenverbrauch ggf. kleinere Architekturanpassungen Ziel: System (mit ggf. noch wenigen Fehlern) fertig für Pilotkunden 434

Übergangsphase (transition phase) β-version wird an Pilotkunden ausgeliefert entdeckte Unzulänglichkeiten werden beseitigt (oder Behebung auf nächstes Release verschoben) Ausbildung der Kunden Hotline 435

Modelle des Unified Process Use-Case-Modell Analysemodell Entwurfsmodell (design model) Einsatzmodell (deployment model) Implementierungsmodell Testmodell basierend auf UML Modelle bieten konsistente Sichten Diagramme eines Modells stehen in Beziehung (trace dependency) zu Diagrammen des übergeordneten Modells Rückverfolgungsmöglichkeit einer Verfeinerung erleichtert Verständnis 436

8.3.1 UP ist Use-Case-getrieben jeder Arbeitsschritt wird von Use-Cases getrieben Vorteil: systematische, intuitive Einbeziehung funktionaler Anforderungen 437

Beispiel: Use-Case-Diagramm für Bankautomat Geld abheben Bankkunde Geld einzahlen Überweisung 438

Vom Use-Case-Diagramm zum Analysemodell Ableitung der (Analyse-)Klassen aus Use-Case-Beschreibungen Stereotype: Kontrollklasse: zur Koordination und Kontrolle anderer Objekte für Transaktionen eine pro Use-Case Grenzklassen zur Interaktion mit Akteuren Entitätsklassen langlebige, persistente Informationen 439

Beispiel: Bankautomat Use-Case-Modell <<trace>> Analyse-Modell Geld abheben Geldausgabe Kassen- Abheben Konto schnittstelle Analyseklassen zur Realisierung des Use-Cases Geld abheben 440

Beispiel: Bankautomat Use Case Modell Analyse Modell Geld abheben Geldausgabe Abheben Bankkunde Geld einzahlen Bank kunde Kassen schnittstelle Überweisung Konto Geldeingabe Einzahlung Überweisung Klassendiagramm farbliche Zuordnung der Analyseklassen zu Use-Cases 441

Kommunikationsdiagramm: Zusammenspiel der Klassen 1: Identität Bankkunde 5: Geld ausgeben 2: Abheben beantragen Kassen 3: validiere schnittstelle und hebe ab Abheben 4: autorisiere Ausgabe Geldausgabe Konto alternativ: Sequenzdiagramm Nachrichten entsprechen Methodenaufrufen (vgl. Klassendiagramm) aus allen Rollen einer Klasse ergibt sich ihre Zuständigkeit 442

Vom Analyse- zum Entwurfsmodell Verfeinerung unter Einbeziehung von Middleware (z.b. CORBA), GUI-System, DBMS, Legacy-Systemen statt konzeptioneller nun physische Klassen Kassenschnittstelle Analysemodell Geldausgabe Abheben Konto Entwurfsmodell <<trace>> <<trace>> <<trace>> <<trace>> Anzeige Auszahlungssensor Abheben Konto Tastatur Kunden- Auszahlungsversorger Manager Persistente Klasse Kartenleser Geldzähler manager Transaktions- Konto- manager oft eine Entwurfsklasse pro Analyse-Klasse; Struktur bleibt 443

Klassendiagramm im Entwurfsmodell Kartenleser Anzeige Bankkunde Tastatur Kunden- manager Abheben Transaktionsmanager Persistente Klasse Auszahlungsversorger zähler Geld- Kontomanager Konto Auszahlungssensor 444

Sequenzdiagramm im Entwurfsmodell :Bankkunde manager :Kartenleser :Anzeige :Tastatur :Kunden- :Geld- zähler :Transaktions- manager Karte einschieben Karte eingeschoben (ID) PIN erfragen zeige Anfrage PIN-Code angeben PIN-Code (PIN) PIN-Validierung verlangen Betrag erfragen zeige Anfrage Betrag angeben Betrag (A) Verfügbarkeit überprüfen (A) Abhebung veranlassen... Zusammenspiel der Entwurfsklassen 445

Subsysteme <<subsystem>> Bankautomaten Schnittstelle <<subsystem>> Transaktions management <<subsystem>> Konto management Karten leser Anzeige Tastatur Auszahlungs versorger Auszahlungs sensor Kunden manager Geld zähler Ab heben Aus zahlen Transaktions manager <<service subsystem>> Abhebungs management abheben Transfer persistente Klasse Konto manager Konto semantisch zusammengeh. Klassen zu Subsystemen zusammengefasst Vorgehen bottom-up oder top-down Deployment Model bestimmt Zuordnung von Komponenten zu Rechenknoten (bei Einzelrechner trivial) 446

Vom Entwurfsmodell zum Implementierungsmodell alle Klassen werden in Programmiersprache implementiert Implementierungsmodell umfasst ausführbare Komponenten, Datenbanken, Quellcode-Dateien,... Entwurfsmodell Implementierungsmodell Kunden <<executable>> manager client.exe Auszahlungs <<trace>> <<compilation>> versorger <<file>> client.c Auszahlungs sensor <<trace>> Geld zähler <<trace>> <<file>> dispenser.c 447

Testen der Use-Cases Use-Case-Modell Test-Modell <<trace>> X Geld abheben Geld abheben - Normalfall Black-Box-Testfälle nach Fertigstellung des Use-Case-Modells erzeugen 448

8.3.2 UP ist Architektur-zentriert statt allein von Use-Cases getriebener Software-Entwicklung: zunächst grober, anwendungsunabhängiger Architekturentwurf, u.a. Architekturmuster Schichten Middleware Legacy-Systeme DBMS GUI-System zugeschnitten auf Anwendungsgebiet hauptsächlich in Ausarbeitungsphase (z.b. Client-Server, Broker, 3 Ebenen) 449

Anwendungsspezifischer Teil der Software-Entwicklung ausgehend von zentralen Use-Cases (z.b. 10 %) Anpassung der anwendungsunabhängigen Architektur an Anwendung schließlich: (einfachere) Realisierung der verbliebenen Use-Cases auf erhaltener, stabiler Architektur Use-Cases von Anforderungen und Architektur beeinflusst ggf. mit Kunden verhandeln über preiswertere Realisierung Architektur-angepasster Use-Cases Grundarchitektur bleibt über gesamte Lebenszeit des Systems 450

Deployment-Modell der Grundarchitektur Bankkunde Bank automaten Client Internet Bank automaten anwendungs server Intranet Bank automaten Datenserver Zuordnung der aktiven Klassen zu Rechenknoten: :Bankautomaten- Datenserver :Kontomanager :Bankautomaten- Anwendungsserver :Transaktionsmanager :Bankautomaten- Client :Kundenmanager 451

8.4 Extreme Programming z.z. vielbeachtetes, leichtgewichtiges Prozessmodell agil (wie auch z.b. Scrum, Crystal,... ) Code-getrieben iterativ geeignet für kleinere und mittlere Projekte mit 15 Entwicklern Ziel: leichte Berücksichtigung sich wandelnder Anforderungen 452

Grundgedanken Kunden stark eingebunden ( Feedback) Erstellung der Testfällen vor der Implementierung automatisierte Tests (bzgl. Funktion und Performance) möglichst einfacher Entwurf nur für das vorliegende (Teil-)Problem keine Wiederverwendbarkeit angestrebt keine Berücksichtigung zukünftiger Erweiterungsmöglichkeiten wichtigste Funktionen zuerst ( 20:80-Regel) Code ˆ= konkretisierte Gedanken neue Ideen 453

Kosten der Fehlerbehebung Kosten herkömmlich XP Zeit (bzw. Phase) empirisch unzureichend belegt 454

Vorgehensmodell Zeit klassische iterative Entwicklung XP Test Codierung Entwurf Analyse Umfang Phasen simultan 455

Planung pro Iteration 1-4 Wochen nur nächste Iteration detailliert planen (spätere nur grob) Planungsphase 1) Planspiel zwischen Kunden und Entwicklern 2) Planung einer Iteration 456

Planspiel Erforschungsphase Auftraggeber: Story Cards schreiben Entwickler: Bewertung bzgl. benötigter Entwicklungszeit Auftraggeber & Entwickler: Stories aufsplitten Verpflichtungssphase Auftraggeber: Prioritäten festlegen Entwickler: Stories bzgl. Risiko und Verzögerungsgefahr bewerten Dauer festlegen Auftraggeber: Zeitplan u. Umfang festlegen Steuerungssphase Entwickler: ggf. Plankorrektur (weniger?) Auftraggeber: Stories ergänzen/entfernen Entwickler: Neukalkulation 457

Planung einer Iteration Erforschungsphase Storycards > Taskcards ggf. aufteilen gemeinsame Teile? Verpflichtungssphase jeder Entwickler übernimmt Verantwortung für ausgewählte Karten Verantwortlicher bewertet Karte bzgl. Entwicklungszeit Steuerungssphase Implementierung einzelner Aufgaben Fortschrittskontrolle durch Entwickler, ohne Kunden 458

Implementierung einer Aufgabe Entwickler übernimmt Aufgabe wählt Partner erstellt Testfälle implementiert Aufgabe führt Tests durch 459

Entwurf einfachste mögliche Problemlösung keine unnötige Komplexität, keine Wiederverwendbarkeit geringste Menge an Klassen und Methoden Refactoring: bei Hinzufügen neuer Funktionalität: System anpassen und, wo möglich, ständig vereinfachen ( Tests, Mut) Literatur: M. Fowler: Refactoring, Addison-Wesley, 1999. Verständlichkeit durch geeignete Metaphern fördern 460

Tests Testfälle vor Implementierung erstellt sichern Fortschritt trotz Änderungen Unit-Tests: durch Entwickler erstellt Funktionstests: durch Kunden (zusammen mit erfahrenem Entwickler) 461

Implementierung gemeinsamer Codebesitz: jeder darf stets alles ändern ( Tests verhindern Rückschritt) kontinuierliche Integration (Vor.: Integration/Build/Test-Tool) jederzeit lauffähiges System kurze Entwicklungszyklen: neue Features direkt Kunden zeigen ( Feedback) 462

Programmieren in Paaren je zwei Entwickler pro Bildschirm simultan: Analyse, Entwurf, Implementierung, Test gegenseitige Qualitätskontrolle lernen voneinander 15% mehr Zeitaufwand, 15% weniger Fehler Mehraufwand durch bessere Qualität und Wegfall einer separaten Qualitätssicherung kompensiert funktioniert auch unter Stress 463

Organisatorische Rahmenbedingungen 40-Stunden-Woche: Überstunden nur kurzfristig sinnvoll, sonst Leistungsminderung räumliche Nähe der Teammitglieder Software-Entwicklungsumgebung geeignet für inkrementelle Entwicklung Konfigurations- und Versionsmanagement OO-Sprache ständiges Testen und Integrieren möglich Kunden ständig/regelmäßig verfügbar 464

Überblick: Extreme Programming Komplexes Problem Neue Aufgabe Story Karten Einfacher Entwurf Bilden von Paaren Testfälle erzeugen Unit Test OK Unit Test nicht OK Ändern der Paare Programmieren in Paaren Hilfe benötigt Neue Unit Tests Neue Funktionalität Neu gruppierung Kontinuierliche Integration 100 % Tests OK Alle Unit Tests Akzeptanztests Komplexer Code Einfacher Code Refactoring Akzeptanztests OK Planung Entwurf/Test Implementierung Test 465

8.4 Weitere Prozessmodelle V-Modell: bei Behörden zu den Phasen Definition bis Implementierung jeweils eigene Testphasen Spiralmodell: iterativ Prototyp-Modell Evolutionäres Modell Nebenläufiges Modell... Details s. Balzert! 466