3. Vorgehensmethoden/Prozessmodelle



Ähnliche Dokumente
Agile Softwareprozess-Modelle


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

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

- Agile Programmierung -

IT-Projekt-Management

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

Referat Extreme Programming. Von Irina Gimpeliovskaja und Susanne Richter

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

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

10 Jahre agile Softwareentwicklung Wie erwachsen sind wir geworden?

Ganzheitliches IT-Projektmanagement

Agile Software Development

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

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

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

ZuuL - Entwicklung eines Adventures

Extreme Programming: Überblick

Softwareentwicklungsprozess im Praktikum. 23. April 2015

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

Lösungen zum Test objektorientierter Software

Klausur mit Lösungshinweisen zur Vorlesung Planung und Entwicklung von IuK-Systemen Sommersemester August 2005 Deckblatt Hinweise

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

Software Systems Engineering

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

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Projekt: Requirements Engineering Sommersemester Anforderungsspezifikation im X-Treme Programming

Software entwickeln mit extreme Programming

ecambria experts IT-Projekte in der Krise Ursachen und Vermeidungsstrategien aus Sicht eines Gerichtssachverständigen

Einführung in das Scrum Framework & welche 10 Praktiken helfen, Scrum wirklich gut zu machen

Softwaretechnik. Fomuso Ekellem WS 2011/12

Agile Management Einführung in agiles Management

Das Wasserfallmodell - Überblick

Agile Softwareentwicklung

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Softwareentwicklung aus Sicht des Gehirns

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

Projektplanung für Softwareprojekte: KLIPS 2.0 Prof. Dr. Manfred Thaller WS 2011/ Dana Wroblewski

Die Welt der SW-Qualität Ein Streifzug in 30 Minuten! Johannes Bergsmann Eigentümer

Grundlagen Software Engineering

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

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

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

Probeklausur. Lenz Belzner. January 26, Lenz Belzner Probeklausur January 26, / 16

Agile Software-Entwicklung im Kontext der EN50128 Wege zum Erfolg

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

Software Engineering. 4. Methodologien. Franz-Josef Elmer, Universität Basel, HS 2014

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Einführung in die Softwaretechnik 9. Softwareprozesse

Extreme Programming. Referat von Viktoria Schwarzhaupt und Andrea Schuhmann

Agile Systemadministration (ASA)

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

Projektmanagement. Vorlesung von Thomas Patzelt 8. Vorlesung

Feature-based Programming

Software-Entwicklung

Iterativ. Inkrementell

Übungen zur Softwaretechnik

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Kapitel 2: Der Software-Entwicklungsprozess

IT-Basics 2. DI Gerhard Fließ. Vorgehensmodelle

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

IKP Uni Bonn Medienpraxis EDV II Internet Projekt

Risikomanagement in der Praxis Alles Compliance oder was?! 1. IT-Grundschutz-Tag

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

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

Christian Kühnel, BMW Group AGILE ENTWICKLUNG VON FAHRERASSISTENZSOFTWARE. AGILE CARS 2014.

Agile Softwareentwicklung mit Scrum

Einführung und Motivation

Neue Funktionen in Innovator 11 R5

barcamp Berthold Barth, Agile Coach Dysfunctional Team Game

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

oose. Was (noch) klassische Projekte von Scrum & Co lernen können eine empirische Studie

Robert Hartmann Public v1.0 (Feb 2015) Architektur & Agilität - Praxisbericht

Softwareentwicklungsprozesse. 18. Oktober 2012

Einführungsstrategien komplexer IT-Lösungen

Testen im Software- Entwicklungsprozess

Agile Enterprise Development. Sind Sie bereit für den nächsten Schritt?

Systemen - Testen im Softwarelebenszyklus

Agilität selbst erfahren. Agile Softwareentwicklung in der Praxis: Jetzt bewerben für das erste Agile Code Camp 2013!

Sabotage in Scrum. dem Prozess erfolglos ins Knie schiessen. Andreas Leidig (andrena objects ag) Vortrag bei den XP Days 2007

Software Engineering

Projektmanagement Vorlesung 12/ 13

Praktikum Grundlagen der Programmierung. Diverse Grundlagen. Dr. Karsten Tolle

Agile Programmierung: Case Studies

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

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Extreme Programming ACM/GI Regionalgruppe Bremen,

SERVICE SUCHE ZUR UNTERSTÜTZUNG

Erfahrungen mit Hartz IV- Empfängern

Übung Einführung in die Softwaretechnik

Testen Prinzipien und Methoden

Interpretation des agilen Manifest

Projektmanagement im Wandel

Software-Validierung im Testsystem

Transkript:

3. Vorgehensmethoden/Prozessmodelle Vorgehensmethode/Prozessmodell: Ablauforganisation des Projektes für eine effektive und zielgerichtete Softwareentwicklung Wasserfallmodell Spiralmodell Agiles Vorgehen extreme Programming Unified Process best practices

3.1.1 Wasserfallmodell (Royce, 1970) Zielerforschung Validierung Erhebungsbericht Analyse Design Validierung Validierung Lastenheft, Auftrag Pflichtenheft Implementierung Debuggen Testen Verifikation,Validierung Quellcode, Dokumentation Lieferversion Einführung Inbetriebnahme, Abnahme Endprodukt Betrieb Wartung Betriebsversion

3.1.1 Wasserfallmodell (Royce, 1970) Einteilung in Phasen mit Feedback-Zyklen Dokumenten-getriebenes Vorgehen Initiale Prototyp-Entwicklung im Rahmen des 'software life cycles' parallel zu Anforderungsanalyse/Design build it twice -Ansatz Wurde in 80er Jahren zum Standard in Industrie und Behörden

3.1.1 Wasserfallmodell (Royce, 1970) Warum das Wasserfallmodell falsch ist... Es nimmt an, dass: ein Projekt nur einmal die Phasen durchläuft (Architektur ist exzellent gewählt, Design ist stimmig, Fehler nur in der Realisierung). das Gesamtsystem aus gut testeten Komponenten in einem Zug aufgebaut werden kann. die Anforderungen am Anfang vollständig festgelegt werden können.

3.1.2 Spiralmodell (Boehm 1988) Organisation, Zieladaptierung Risikoanalyse Risikoanalyse Planung Vorgehensmethode Validierung Validierung Risikoanalyse Evolutionärer 2. Prototyp Prototyp 1. Prototyp 3. Prototyp Zielerforschung Analyse Implementierung Validierung Design Testen Überprüfung Betrieb Einführung Durchführung

3.1.2 Spiralmodell (Boehm 1988) Risiko-getriebener Prozess (iteratives Vorgehen) (anstatt Dokumenten-getrieben oder Code-getrieben) Software-Prozessmodell: Was soll als nächstes geschehen? Wie lange soll die nächste Phase dauern? Typische Abfolge von Schritten in jedem Zyklus (Ziele, Risiken, Durchführung, Validierung) Zyklen sind typischer Weise zwischen 6 Monaten und 2 Jahren Bettet andere Vorgehensmodelle ein.

3.1.3 Weitere Prozessmodelle Wasserfall-Modell: Dokumenten-getrieben Spiral-Modell: Risiko-getrieben Code-and-fix: Code-getrieben Evolutionäre Entwicklung: Funktions-getrieben Explorativ: System wird ständig erweitert Prototypen: Systeme werden neu entwickelt wiederverwendbare Komponenten: Tool-getrieben Unified Process: Architektur-getrieben...

3.2 Agile Softwareentwicklung Ziel: bessere Balancierung von Code-/Funktion-/Architektur-getriebenem Vorgehen Wie vermeidet man... Über-Analyse ( analysis paralysis )? hohe Kosten für späte Änderungen? Bürokratisierung des Entwicklungsprozesses? zu hohen Dokumentation-Overhead Zeitverzug von Projekten?

3.2 Agile Softwareentwicklung

3.2 Agile Softwareentwicklung Agil = Flexibilisierung / Verschlankung Anfänge 1990er Jahre 1997 C3-Projekt (Chrysler) 1999: Kent Beck extreme Programming explained Ab 2000 weitere agile Methoden XP, SCRUM, ASD, Crystal,... 2005: Untersuchung von Forrester Research Nordamerika u. Europa: 14% aller Projekte.

3.2 Agile SE: das C3-Projekt Chrysler Comprehensive Companion (C3) Gehaltsabrechnung für 86.000 Mitarbeiter Vorher 4 getrennte Systeme (4 Gruppen) hourly system (60.000 Mitarbeiter, pro Woche) salary system (16.000 Mitarbeiter, pro Woche) executive system (10.000 Mitarbeiter, pro Monat) incentive compansation system (1.500 pro Monat) 2 Verschiedene Abteilungen zuständig Ersten 3 Systeme ca. 20 Jahre alt [C3-Team, Chysler goes to 'Extreme', Distributed Computing, Oct. 1998, pp. 24-28]

3.2 Agile SE: das C3-Projekt Ziel des neuen Systems: ein einheitliches System für die ersten 3 Fälle (kein passendes kommerzielles System erhältlich) Vereinfachter Transfer zwischen den Systemen Vereinfachte Eingabe der Daten Keine Dokumentation mehr auf Papier/Microfiche Mehr automatisierte Abläufe Bessere Unterstützung von Entscheidungsprozessen Vereinfachte externe Inferfaces Erweiterbarkeit/Verbesserung externer Interfaces

3.2 Agile SE: das C3-Projekt Anfang 1990er: Entscheidung über neues System Jan. 1995: Start des C3-Projektes 1996: Projekt gescheitert (nach Wasserfallmodell), Neustart (Kent Beck, extreme programming). Mai 1997: C3-System geht an Start mit 10.000 Mitarbeitern ( executive system ). Okt. 1998: 16.000 Mitarbeiter ( salary system ) sollen zusätzlich über C3-System bezahlt werden. Mitte 1999: Plan für weitere 60.000 Mitarbeiter DaimlerChrysler stoppte das Projekt Feb. 2000.

3.2 Agile SE: das C3-Projekt Bewertung des Projektes Erstes Projekt das agile Methoden gesammelt umsetzt Schnelle Anfangserfolge in ersten 1-2 Jahren Zeigt die Anwendbarkeit von XP Erfolg wird unterschiedlich bewertet (DaimlerChrysler nahm danach erstmal Abstand von XP-Methoden) C3-Team bestand aus 20 Mitarbeitern (darunter Kent Beck, Martin Fowler, u.a.)

3.2 Agile SE: Minimieren von Risiken Risiken in der Softwareentwicklung Zeitplan wird nicht eingehalten, Projekt wird eingestellt, System ist nicht anpassbar, System ist fehlerhaft, Anforderungen wurden verfehlt, Anforderungen ändern sich, Implementierte Feature sind nutzlos, Personalwechsel während der Projektlaufzeit.

3.2 Agile SE: Minimierung von Risiken Risiken und Prozessvariablen Kosten: wenig skalierbar für ein Projekt Zeit meistens vom Auftraggeber fest vorgegeben Qualität Hohe Qualität spart eher Zeit Umfang am ehesten skalierbare Variable

3.2 Agile SE: Anforderungsänderungen Klassische Sicht: Steigt exponentiell mit zunehmendem Fortschritt des Projektes. Agile Sicht: Kosten steigen mit Projektfortschritt nur wenig an. -> Einfaches Design, -> automatisierte Tests, -> genügende Praxis bei Änderungen.

3.3 extreme Programming (Beck 1999) Aus dem Tagebuch eines Programmierers: Stand-up meeting Aufgaben-Karte auswählen (höchste Priorität) Team-Partner suchen Kurzes Review des letzten Tages (im 2er-Team) Identifizieren der Testfälle Design des neuen Testfalls (Wiederverwendung) Refactoring weiterer Testfälle als Aufgabe notieren Implementierung des Testfalls (wenige Minuten)

3.3 extreme Programming (Beck 1999) Tagebuch (Fortsetzung): Beginn der Implementierung der Aufgabe (wer die klarste Idee hat... kann wechseln) Während der Implementierung, Identifikation und Implementierung weiterer Testfälle. Refactoring falls Aufgabe einfacher implementiert werden kann. Durchlauf der Testfälle, optionales Debugging Offene Aufgabenkarten abarbeiten

3.3 extreme Programming (Beck 1999) Tagebuch (Fortsetzung): Letztes Release laden. Laden der implementierten Veränderungen Durchlauf sämtlicher Test-Fälle Optionales Debugging Durchlauf sämtlicher Test-Fälle Release des geänderten Codes.

3.3 extreme Programming (Beck 1999) Eckdaten des XP-Entwicklungszyklus: Kleine Programmier-Einheiten definieren Programmieren in Paaren Test-getrieben: Erst testen, dann coden Jeder analysiert, designt, implementiert, testet Integration nach jedem Entwicklungsschritt

3.3 extreme Programming (Beck 1999) XP als Wertegemeinschaft (4 Werte): Kommunikation: Atmosphäre schaffen die Kommunikation fördert Einfachheit Nicht an morgen denken! Probleme heute lösen! Feedback Don't ask me, ask the system (Testfälle) Feedback auf verschiedenen Zeitskalen Mut Auch größere Designänderungen durchführen

3.3 extreme Programming (Beck 1999) embrace change Prinzipien: Sofortiges Feedback (steilere Lernkurve) Einfachheit (kein design for reuse ) Inkrementell (kleine Schritte machen) Änderung (möglichst viele Optionen offen halten) Qualität (Notwendig zur eigenen Motivation)

3.3 extreme Programming (Beck 1999) Weitere Prinzipien: Lernen lehren Geringe Startinvestition Spiele um zu gewinnen Konkrete Experimente Offene Kommunikation Nicht gegen Instinkte arbeiten Verantwortung akzeptieren Lokales Adaptieren Nur leichtes Gepäck Ehrliche Messung des Fortschritts

3.3 extreme Programming (Beck 1999) Aktivitäten Coden: Ziel, Mittel zur Kommunikation, Lernen Testen: Unit tests (Programmierer) Funtionale Tests (Kunde) Zuhören: Aktives Zuhören (Feedback an Kunden) Designen: Erlaubt das Erweitern des Systems

3.3 extreme Programming (Beck 1999) Praktiken: The Planning Game Small releases Metaphor Simple Design Testing Refactoring Pair programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards

3.3 extreme Programming (Beck 1999) Lifecycle eines (idealen) XP Projektes: Explorieren (1-2 Wochen) Sammlung von 'story cards' Austesten von Technologien und Systemarchitekturen Planen

3.3 extreme Programming: Kritik Kritik und offene Fragen an XP Projekte, die einen festen Umfang, festen Preis und festen Zeitrahmen haben? fixierten externe Interfaces? feste nichtfunktionalen Anforderungen (Sicherheit, Performanz)? Entwicklungsteams an verschiedenen Orten? Integration von off-the-shelf Komponenten? Eignung für große Projekte (>> 10)?