Semester 1: Teil 2 Flashcards
Was ist ein Prozessmodell?
Entwicklungsplan, der das Vorgehen der Entwicklung beschreibt.
Rolle
Notwendige Erfahrungen, Kenntnisse und Fähigkeiten, um eine bestimmte Aktivität durchzuführen
Artefakt
Greifbares Stück Information, das von MA erzeugt, geändert oder benutzt wird
Modell, Modellelement, Dokument
z.B. Lastenheft, Quellcode, Analysemodell etc.
Artefaktmuster
Legt Struktur, Inhalt und Layout d. Artefaktes fest
Durch CASE-Werkzeuge oder Richtlinien bestimmt
Phase
Notwendige Aktivitäten zur Entwicklung
Festlegungen pro Phase
Ziele Aktivitäten Zuordnung d. Rollen Artefakte Artefaktmuster Methoden, Richtlinien, Konventionen und Checklisten Werkzeuge und Sprachen
Phasenmodell
Gliedert Softwareentwicklung in versch. Phasen, die nacheinander durchlaufen werden.
Ende der Phase: Meilenstein, danach erst nächste Phase
Wasserfallmodell (7 Schritte!)
Alles nacheinander:
Problem -> Planung -> Definition -> Entwurf -> Implementation -> Einführung -> Wartung
Vorteile Phasenmodell
+ Einfacher, verständlicher Aufbau
+ Gut strukturiert durch Meilensteine
+ Aufgaben klar definiert
+ Definierte Nutzereinbindung
Tayloring von Prozessmodellen
Mittelweg zwischen Standard und Freiheit zur Kreativität finden
An die konkrete Situation anpssen!
Ziele von Tayloring von Prozessmodellen
Möglichst wenig Phasen, Artefakte und Rollen
Artefakte sollen Standardfall abdecken
Optimale Werkzeug Unterstütztung
Jedes Artefakt geht durch die QS!
Evolutionäres und inkrementelles Modell
Zerlegung in lauffähige Teilprodukte
Mehrfacher Durchlauf der Phasen
Endprodukt in Ausbaustufen
Unterschied inkrementelles und evolutionäres Modell?
Inkrementell: Vollständige Analyse der Anforderungen, die iterativ in versch. umgesetzt werden.
Evolutionär ist besser geeignet, wenn am Anfang der komplette Funktionsumfang noch nicht klar ist.
Spiralmodell
Iterative Entwicklung in Zyklen. Phasen werden spiralförmig durchlaufen, also inkrementell.
Zyklus des Spiralmodells
- Festlegung der Ziele
- Beurteilung von Alternativen und Risiken
- Entwicklung und Test eines Teilprodukts
- Planung des nächsten Zyklus
Agile Softwareentwicklung
Verkürzter Innovationszyklus -> Embrace the Change!
Agile Softwareentwicklung: Rechte des Kunden?
Festlegung des Releaseinhalts
Erhalt des vereinbarten Umfangs
Änderung der Anforderung
Agile Softwareentwicklung: Pflichten des Kunden
Formulierung der Anforderungen
Festlegung von Akzeptanzkriterien
Agile Softwareentwicklung: Rechte der Entwickler
Unabhängige Aufwandsschätzung
Risikoeinschätzung
Festlegung des Releaseumfangs
Agile Softwareentwicklung: Pflichten der Entwickler
Einhaltung des Releaseplans
Einhalten der Qualitätsanforderungen
Agile Softwareentwicklung: Wichtige Techniken
Iteratives Vorgehen Userstories Transparenter Schätzprozess Akzeptanztests Test First und Regressionstests Pair Programming Common Codeownership Continuous Integration Refactoring
Agile Softwareentwicklung: Release
Release besteht aus Iterationen
Iteration: Max 2-4 Wochen
Alle 6 Monate: Neues Release ausgeliefert an den Kunden
Iteration liefert neue Funktionalität mit erkennbarem Kundennutzen
Iteration besteht aus einer Menge von Userstories (im Planungsprozess festgelegt)
Userstories werden am Ende einer Iteration abgenommen
Agile Softwareentwicklung: Story Card
Funktionalität mit definiertem Kundennutzen Realisierbar (max. 1 Tag) Knappe Beschreibung Schätzung durch Entwickler Unit of Work
Agile Softwareentwicklung: Task Board
Grafische Darstellung des Entwicklungsfortschritts
Transparenz!