Prozessmodelle (2) Flashcards
Was ist ein Przessmodell?
- Allgemeiner Entwicklungsplan, der das generelle Vorgehen bestimmt
- Festlegung, welche Aktivitäten in welcher Reihenfolge von welchen Personen erledigt, welche Ergebnisse (Artefakte) dabei entstehen und wie diese überprüft werden
- Prozessmodell beinhaltet:
Vorgehensmodell, Organisationsstrukturen, Vorgaben für PM, QS, Doku, Konfigurationsmanagement u.Ä.
Definition Rolle
Beschreibt die notwendigen Erfahrungen, Kenntnisse und Fähigkeiten, über die ein MA verfügen muss, um eine best. Aktivität durchzuführen
Definition Artefakt
- Greifbares Stück Information, durch MA erzeugt, geändert oder genutzt
- Modell, Modellelement oder Dokument
- Beispiel: Dokument z.B. Lastenheft, Modell z.B. Quellcode, oo Analysemodell
Artefaktmuster
- Legt die Struktur, den Inhalt und das Layout eines Artefakts fest
- Kann durch Richtlinien oder impliziert durch CASE-Werkzeuge erfolgen
CASE Tools
Computer Aided Software Engineering Tools,
z.B. UML o.Ä.
Definition Phase
- Notwendige Aktivitäten, um ein Produkt zu entwickeln
Festlegung pro Phase:
- Ziel
- Durchzuführende Aktivitäten
- Zu erstellende Artefakte
- Zu verwendende Artefaktmuster
- Methoden, Richtlinien, Konventionen und Checklisten
- Werkzeuge und Sprachen
Definition Phasenmodell
Gliedert die Softwareentwicklung in einzelne Phasen, die sequenziell durchlaufen werden. Jede Phase wird durch einen Meilenstein abgeschlossen, erst dann startet die nächste Phase
Wasserfallmodell
Pro
- Einfach und verständlich
- Gut strukturiert durch Meilensteine
- Aufgaben klar definiert
- Definierte Nutzereinbindung
Contra
- Lange “Latenzzeit”
- Fehler unvermeidbar
- Änderungen unvermeidbar
Tayloring von Prozessmodellen
- Mittelweg zwischen Freiheit und Standardisierung muss gefunden werden
- Tayloring (Anpassung) an konkrete Situation nötig
Ziele
- So wenig Phasen, Rollen und Artefakte wie nötig
- Artefakte bilden Standardfall ab
- Optimale Werkzeugunterstützung sicherstellen
- Jedes Artefakt durch QS prüfen
Evolutionäres und inkrementelles Modell
- Produkt wird in lauffähige Teilprodukte aufgeteilt
- Phasen werden mehrfach durchlaufen
- Gesamtprodukt entsteht in Ausbaustufen
Evolutionäres Modell
- Zerlegung in weitgehend eigentständige Teilprojekte
- Teilprodukte können frühzeitig ausgeliefert und praktisch erprobt werden
- Funktionsumfang nimmt evolutionär zu
Inkrementelles Modell
- entspricht weitgehend dem evolutionären Modell
- Unterschied: Am Anfang steht eine vollständige Analyse aller Anforderungen. Diese werden dann iterativ in verschiedenen Versionen umgesetzt
Das Spiralmodell
Ziel: Reduzierung der Risiken der Softwareentwicklung
- iterative Entwicklung in Zyklen
- Phasen werden mehrfach spiralförmig durchlaufen
- Produkt entsteht inkrementell
Jeder Zyklus enthält folgende Aktivitäten:
- Festelegen der Ziele und Rahmenbedinungen und mögl. Alternativen
- Beurteilung von Alternativen, Abschätzen und Reduzieren von Risiken (z.B. durch Prototyping)
- Entwicklung und Test eines Teilprodukts
- Planung des nächsten Zyklus
Agile Softwareentwicklung (Zusammenfassung)
- klassische Methoden versagen häufig (Anforderungsänderungen oder falsch verstanden)
- verkürzter Innovationszyklus (schnelles Feedback, Kundenintegration, schlanker + schneller Prozess)
- Embrace the Change!
Agile Softwareentwicklung Rechte und Pflichten Kunde
Rechte des Kunden:
- Festlegung Releaseinhalt
- Erhalt des vereinbarten Umfangs
- Änderung von Anforderungen
Pflichten des Kunden:
- Forumulieren der Anforderungen
- Festlegung von Akzeptanzkriterien
Agile Softwareentwicklung Rechte und Pflichten Entwickler
Rechte der Entwickler:
- Unabhängige Aufwandsschätzung
- Risikoeinschätzung
- Festlegung des Releaseumfangs
Pflichten der Entwickler:
- Einhaltung des Releaseplans
- Einhalten der Qualitätsanforderungen
Wichtige Techniken agiler Entwicklung
- Iteratives Vorgehen mit kurzen Releasezyklen
- Userstories
- Transparenter Schätzprozess (z.B. Planungspoker)
- Akzeptanztests
- Test First und Regressionstests
- Pair Programming
- Common Coderownership
- Continous Integration
- Refactoring
Releases
- besteht aus mehreren Iterationen
- Iteration liefert neue Funktionalität mit erkennbarem Kundennutzen
- Alle ~6 Monate Releaseauslieferung
- Iteration besteht aus einer im Planungsprozess festgelegten Menge von Userstories
- Userstories werden am Ende abgenommen
Story Cards
- Funktionalität mit def. Kundennutzen
- in max. 1 Tag realisierbar
- Knappe Beschreibung (Promise of Conversation)
- Schätzung durch Entwickler
- Unit of Work
- Auf Task Board angeordnet (To Do, In Progress, To Verify, Done)
Agile Prozessmodelle
- Gestalten den Prozess der SW Entwicklung unter Berücksichtigung agiler Werte, Techniken und Methoden
- Legen besonderen Wert auf Flexibilität, Eigenverantwortung des Entwicklungsteams, Einbeziehung aller Stakeholder
- Immer iterativ-inkrementell bzw. evolutionär
Beispiele:
- Scrum
- eXtreme Programming (XP)
- Kanban
Scrum (Kurzerklärung)
- Product Owner plant Sprint aus Product Backlog -> Erzeugt den Sprint Backlog
- Sprint Durchführung (ca. 30 Tage), dabei daily Scrum (Was gestern gemacht, was behinderte, was heute)
- Team entwickelt während Sprint ohne Störungen aus dem Sprint Backlog
- Scrum Master Überwacht den Prozess
- Sprint Review (Team präsentiert dem PO die neue Funktionalität)
- Sprint Retrospektive (Lessons learned, was ist zu verbessern)