Vorgehensmodelle Flashcards
Aufgaben von Vorgehensmodellen
Definieren von Standards für IT-Projekte
- Projektphasen (z.B. Entwicklung und Test)
- Projektorganisation (z.B. Rollen und Aktivitäten)
- Dokumente (z.B. Requirement Spec, Change Request)
- Kommunikation zwischen Beteiligten
- Methoden (z.B. für Aufwandschätzung)
Zweck von Vorgehensmodellen
- Erfahrungen aus vergangenen Projekten zusammenfassen
- Grundstruktur für Projektplanung vorgeben
- Assessment (Was lief gut/schlecht?)
Wasserfallmodell
- Reihenfolge: Anforderungen, Design, Implementierung, Test, Inbetriebnahme
- sequentielle Abarbeitung der Phasen
- am Ende jeder Phase ein Meilenstein
Vor- / Nachteile Wasserfallmodell
Vorteile: schnell für jedermann verständlich, Qualitätskontrolle nach jeder Phase
Nachteile: nicht iterativ, keine Prototypen, Test erst am Ende, Missverständnisse erst spät erkannt
Anwendungsfälle Wasserfallmodell
- klare Anforderungen und keine Änderungen an diesen
- kleine, kurze Projekte mit wenigen Mitarbeitern
- IT-interne Anwendung (Anwender sind IT-Experten)
Inkrementell-iterative Methoden
- initiale Erstellung der Kernfunktionalität unter Berücksichtigung der techn. Herausforderungen
- Ergänzung in Iterationen
- Zwischenprodukte als Prototyp zum Testen
Vor- / Nachteile inkrementell-iterativer Methoden
Vorteil: frühzeitige Fehlererkennung
Nachteil: technisches Design muss Endausbaustufe berücksichtigen, ansonsten Wegwerfaufwand (z.B. Web-Frontend)
Spiralmodell (inkrementell-iterativ)
- 4 Quadranten: Zieldefinition, Risikoabschätzung, Implementierung und Test, Planung des nächsten Zyklus
Rational Unified Process (RUP)
- Vorgehensmodell für Projekte der objektorientierten Softwareentwicklung, das sich auf UML bezieht
- Rational macht Vorgehensmodell frei verfügbar
- RUP sieht aber an vielen Stellen den Einsatz bestimmter Werkzeuge vor
Best Practices RUP
- Iterative Entwicklung
- Anforderungsmanagement
- Komponentenbasierte Architektur
- Visuelle Modellierung mittels UML
- Permanente Qualitätskontrolle
- Management von Änderungen
Vorteile RUP
- frühe und kostengünstige Fehlererkennung
- Einbindung aktueller softwaretechnischer Methoden
- geeignet für Entwicklung objektorientierter Software mit Komponentenarchitektur
- Parallelisierung von Aktivitäten
Nachteile RUP
- komplex, hoher initialer Einarbeitungsaufwand
- ungeeignet für Hardware und für nicht-objektorientierte Legacy-Erweiterungen und für Standardsoftware
- angepasst auf Tools von Rational
Agiles Manifest (4 Prinzipien)
- Individuen und Interaktionen mehr als Prozesse und Werkzeuge
- Funktionierende Software mehr als umfassende Dokumentation
- Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
- Reagieren auf Veränderung mehr als das Befolgen eines Plans
Grundsätze agiler Vorgehensmodelle
- Strukturierung, Formalisierung, Dokumentation: So wenig wie möglich, so viel wie nötig
- Vertrauen vor vertraglicher Absicherung
- kein: allgemeingültigen Regeln: Mensch im Mittelpunkt vor Werkzeugen und Prozessen
- Flexibles Reagieren auf Änderungen, Kundenzufriedenheit > Einhaltung überholter Ziele
Extreme Programming (XP)
- bekannteste agile Methode
- Entwickler und Anwender in einem Raum
- 40-Stunden-Woche, mehr Arbeit mindert die Produktivität
XP: Planning Game
Anwender definieren Anforderungen in “Stories”, Entwickler schätzen den Aufwand, beide verhandeln die Reihenfolge der Entwicklung
XP: Zyklus
- Anforderung, Design, Entwicklung, Test
- kurze Zeitabstände zwischen Zyklen
- ständige Verbesserung mit sofortiger Rückmeldung der Anwender
XP: Refactoring
Codeverbesserungen ohne zusätzliche Funktionalität
XP: Entwicklungsstandards
keine persönlichen Vorlieben bei der Codegestaltung
-> jeder ist für Gesamtergebnis verantwortlich, man darf Ergänzungen in Programmteilen der anderen vornehmen, wenn sie zur eigenen Aufgabe gehören, aber woanders implementiert werden
XP: Arbeitsvorgehen
- zwei Programmierer teilen sich einen Arbeitsplatz (einer entwickelt, der andere achtet auf Fehler)
- ständiges Deployment (Zusammenführen der Arbeitsergebnisse der 2er-Gruppen) um Unverträglichkeiten sofort zu entdecken
Würdigung des XP
- für kleinere Projekte
- setzt großes Vertrauensverhältnis voraus
- Dokumentation fehlt (Entwickler für spätere Pflege)
- wenige Grundregeln, Projektdurchführung wenig detailliert
- Elemente aus XP lassen sich in anderen Projekten einsetzen (z.B. Refactoring)