Vorgehensmodelle hydrated
This commit is contained in:
parent
cd79c0f4bd
commit
c2dd3751e8
Binary file not shown.
@ -1780,36 +1780,12 @@
|
||||
|
||||
\newpage
|
||||
\section{Vorgehensmodelle}
|
||||
\subsection{Einführung}
|
||||
Wie läuft Softwareerstellung ab?
|
||||
\begin{itemize*}
|
||||
\item (oder besser, wie sollte sie ablaufen?)
|
||||
\item Aufgaben und Phasen siehe vorangegangene Kapitel
|
||||
\item Wann wird was getan? Abhängigkeiten?
|
||||
\begin{itemize*}
|
||||
\item Sequentiell / nebenläufig,
|
||||
\end{itemize*}
|
||||
\item Prozessmodelle der Softwareentwicklung
|
||||
\begin{itemize*}
|
||||
\item Regelwerke, Erfahrungen, best practices für große Projekte
|
||||
\item Aktives Entwicklungsgebiet
|
||||
\end{itemize*}
|
||||
\item Erweiterbar zum Software-Lebenszyklus mit Inbetriebnahme, Wartung, Außerdienststellung usw.
|
||||
\end{itemize*}
|
||||
|
||||
Softwareentwicklungsprozess/Vorgehensmodell
|
||||
\begin{itemize*}
|
||||
\item Methode zur Erstellung von Softwaresystemen
|
||||
\item Systematisch, rational und schrittweise erfolgender Weg vom Problem zur Lösung
|
||||
\item Ziel: Softwareentwicklungsprozess übersichtlich, plan- und strukturierbar
|
||||
\item Zerlegung des Softwareentwicklungsprozesses in überschaubare Einheiten
|
||||
\item Systematisch, rational und schrittweise zur Lösung
|
||||
\item Softwareentwicklungsprozess übersichtlich, plan- und strukturierbar
|
||||
\item Zerlegung des Softwareentwicklungsprozesses in Einheiten
|
||||
\item Unternehmensspezifisch, anpassbar, erweiterbar
|
||||
\begin{itemize*}
|
||||
\item Eigene Varianten, evtl. projektabhängig
|
||||
\item An spezielle Bedürfnisse des Informationsbereichs angepasst
|
||||
\item Kein allgemeingültiges Vorgehen
|
||||
\item Einsetzbar in verschiedenartigen Projekten
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Phasen
|
||||
@ -1818,12 +1794,6 @@
|
||||
\item Zeitlich begrenzte Phasen
|
||||
\item Auch inhaltlich und organisatorisch begrenzte Phasen möglich
|
||||
\item Teilprozesse / Aktivitäten
|
||||
\begin{itemize*}
|
||||
\item Inhaltliche Zerlegung
|
||||
\item Satz von Aufgaben
|
||||
\item Verteilung der Teilprozesse / Aktivitäten auf verschiedene Phasen
|
||||
\item Begleitet von unterstützenden, übergreifenden Aktivitäten
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Aufgabe
|
||||
@ -1834,7 +1804,7 @@
|
||||
|
||||
Arbeitsergebnis (oder Artefakt)
|
||||
\begin{itemize*}
|
||||
\item Dokument, Modell, System, Programmcode Lastenheft, Spezifikation, Glossar, Handbuch usw.
|
||||
\item Dokument, Modell, System, Programmcode, Lastenheft,...
|
||||
\item Intern zu lieferndes Ergebnis
|
||||
\end{itemize*}
|
||||
|
||||
@ -1845,28 +1815,13 @@
|
||||
\end{itemize*}
|
||||
|
||||
Unterstützungsprozesse / -Aktivitäten
|
||||
\begin{itemize*}
|
||||
\item Projektmanagement
|
||||
\begin{itemize*}
|
||||
\item Projektplanung, -verfolgung und -steuerung
|
||||
\item Risikomanagement
|
||||
\end{itemize*}
|
||||
\item Anforderungsmanagement
|
||||
\begin{itemize*}
|
||||
\item Im Gegensatz zur Anforderungsaufnahme und -analyse
|
||||
\end{itemize*}
|
||||
\item Qualitätsmanagement
|
||||
\begin{itemize*}
|
||||
\item Problem Management
|
||||
\item Softwaremetriken (Messung von Softwareeigenschaften)
|
||||
\item Statische + dynamische Analyse (Bestimmung von Schwachstellen)
|
||||
\end{itemize*}
|
||||
\item Konfigurationsmanagement
|
||||
\begin{itemize*}
|
||||
\item Versionsverwaltung, Änderungsmanagement
|
||||
\end{itemize*}
|
||||
\item Dokumentation
|
||||
\end{itemize*}
|
||||
\begin{description*}
|
||||
\item[Projektmanagement] Projektplanung, -verfolgung und -steuerung, Risikomanagement
|
||||
\item[Anforderungsmanagement] Im Gegensatz zur Anforderungsaufnahme und -analyse
|
||||
\item[Qualitätsmanagement] Softwaremetriken, Statische + dynamische Analyse (Bestimmung von Schwachstellen)
|
||||
\item[Konfigurationsmanagement] Versionsverwaltung, Änderungsmanagement
|
||||
\item[Dokumentation]
|
||||
\end{description*}
|
||||
|
||||
\subsection{Sequenzielle Modelle}
|
||||
\begin{itemize*}
|
||||
@ -1874,127 +1829,70 @@
|
||||
\begin{itemize*}
|
||||
\item Abhängigkeiten zwischen Teilergebnissen
|
||||
\item Ursprung in System- Hardwareentwicklung
|
||||
\begin{itemize*}
|
||||
\item Wurde für die SW-Entwicklung übernommen
|
||||
\item Auch heute verbreitetes Vorgehen bei HW-Entwicklung
|
||||
\end{itemize*}
|
||||
\item Sequenzielles Phasenmodell (Abschluss der Phasen)
|
||||
\item Stark Dokumentengetrieben (Ergebnisse der Phasen)
|
||||
\item Unterteilung in abgeschlossene Phasen:
|
||||
\begin{itemize*}
|
||||
\item Analyse
|
||||
\item Analyse (Planung)
|
||||
\item Design/Entwurf
|
||||
\item Implementierung
|
||||
\item Test \& Integration
|
||||
\item Einführung, Betrieb \& Wartung
|
||||
\end{itemize*}
|
||||
\item Alternativ:
|
||||
\begin{itemize*}
|
||||
\item Planung
|
||||
\item Definition
|
||||
\item Entwurf
|
||||
\item Implementierung
|
||||
\item Test \& Integration
|
||||
\item Einsatz und Wartung
|
||||
\end{itemize*}
|
||||
\item Vorteile
|
||||
\begin{itemize*}
|
||||
\item Einfach und verständlich, bekannt und verbreitet
|
||||
\item Erleichterte Planung und Steuerung
|
||||
\end{itemize*}
|
||||
\item Nachteile
|
||||
\begin{itemize*}
|
||||
\item Idealisierte Annahme rein sequentiellen Ablaufs
|
||||
\item Starke Abhängigkeiten zwischen Teilergebnissen
|
||||
\item Ungeeignet, falls Anforderungen zu Beginn unklar
|
||||
\item Unflexibel gegenüber Änderungen
|
||||
\item Erst sehr spät greifbare Ergebnisse
|
||||
\end{itemize*}
|
||||
\item Einfach und verständlich, bekannt und verbreitet
|
||||
\item Starke Abhängigkeiten zwischen Teilergebnissen
|
||||
\item Ungeeignet, falls Anforderungen zu Beginn unklar
|
||||
\item Unflexibel gegenüber Änderungen
|
||||
\end{itemize*}
|
||||
\item Erweitertes Wasserfallmodell
|
||||
\item Sequenziell
|
||||
\begin{itemize*}
|
||||
\item Verbesserung für Änderungen und Fehler - Rückschritte
|
||||
\item Phasen strikt nacheinander, Dokumenten-orientiert
|
||||
\item Keine Änderungen abgeschlossener Artefakte
|
||||
\end{itemize*}
|
||||
\item Alternative Arten von Phasenmodellen
|
||||
\item Nebenläufig
|
||||
\begin{itemize*}
|
||||
\item Sequenziell
|
||||
\begin{itemize*}
|
||||
\item Phasen strikt nacheinander, Dokumenten-orientiert
|
||||
\item Keine Änderungen abgeschlossener Artefakte
|
||||
\end{itemize*}
|
||||
\item Nebenläufig
|
||||
\begin{itemize*}
|
||||
\item Phasen laufen teilweise parallel für bessere Zeitnutzung
|
||||
\item Weiterhin keine Änderungen fertiger Dokumente
|
||||
\end{itemize*}
|
||||
\item Inkrementell
|
||||
\begin{itemize*}
|
||||
\item Unterteilung des Produkts in Teile
|
||||
\item Schnellere Auslieferung von Teilfunktionalität nach vollständiger Aufnahme der Anforderungen
|
||||
\end{itemize*}
|
||||
\item Alternative: Evolutionär
|
||||
\begin{itemize*}
|
||||
\item Anforderungen entwickeln sich im Projekt
|
||||
\item Ausgelieferte Versionen ergeben neue Anforderungen
|
||||
\end{itemize*}
|
||||
\item V-Modell [Boehm]
|
||||
\begin{itemize*}
|
||||
\item Explizite Adressierung der Qualitätssicherung
|
||||
%\item %
|
||||
\item Entwicklung des V-Modells in Deutschland
|
||||
\begin{itemize*}
|
||||
\item Leitfaden, in Bundesbehörden ab 1990er verbindlich
|
||||
\item Version V-Modell 97 erweitert um Werkzeuganforderungen, Rollen und Submodelle der Beteiligten
|
||||
\item Kritik: schlecht skalier\item und anpassbar, zu unflexibel,
|
||||
\item bürokratisch, nicht an moderner OO-SWEntw. orientiert
|
||||
\end{itemize*}
|
||||
\item V-Modell XT (extreme tailoring)
|
||||
\begin{itemize*}
|
||||
\item Aktuelle Version ab 2004/05
|
||||
\item Einfache projektspezifische Anpassbarkeit
|
||||
\item Assistent www.v-modell-xt.de (kleines Projekt ~40 Dok.!)
|
||||
\item Überprüfbarer Projektfortschritt
|
||||
\item AG/AN-Sichten und Schnittstellen, Ausschreibungen
|
||||
\item Gesamter SW-Lebenszyklus
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
\item Phasen laufen teilweise parallel für bessere Zeitnutzung
|
||||
\item Weiterhin keine Änderungen fertiger Dokumente
|
||||
\end{itemize*}
|
||||
\item Inkrementell
|
||||
\begin{itemize*}
|
||||
\item Unterteilung des Produkts in Teile
|
||||
\item Schnellere Auslieferung von Teilfunktionalität nach vollständiger Aufnahme der Anforderungen
|
||||
\end{itemize*}
|
||||
\item Evolutionär
|
||||
\begin{itemize*}
|
||||
\item Anforderungen entwickeln sich im Projekt
|
||||
\item Ausgelieferte Versionen ergeben neue Anforderungen
|
||||
\end{itemize*}
|
||||
\item V-Modell [Boehm]
|
||||
\begin{itemize*}
|
||||
\item Explizite Adressierung der Qualitätssicherung
|
||||
\item Entwicklung des V-Modells in Deutschland
|
||||
\item V-Modell XT (extreme tailoring)
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
|
||||
\subsection{Iterative Modelle}
|
||||
Iterativer Entwicklungsprozess
|
||||
\begin{itemize*}
|
||||
\item Spezifikation, Entwurf und Implementierung müssen immer wieder verändert und angepasst werden
|
||||
\item Häufiges Integrieren, Validieren und Testen
|
||||
\item "You should use iterative development only on projects that you want to succeed." [Fowler]
|
||||
\end{itemize*}
|
||||
|
||||
Inkrementelle Entwicklung
|
||||
\begin{itemize*}
|
||||
\item Wenn möglich, sollte es immer einen lauffähigen (unvollständigen) Prototypen geben
|
||||
\item Neue Funktionen sofort integrieren
|
||||
\item Neue Versionen gegenüber Anforderungen Validieren
|
||||
\end{itemize*}
|
||||
|
||||
%
|
||||
Spiralmodell
|
||||
\begin{itemize*}
|
||||
\item Risikogetrieben: Größte Projektrisiken identifizieren und als erstes bearbeiten (Prototyp?)
|
||||
\item Risikogetrieben: Größte Projektrisiken identifizieren und als erstes bearbeiten
|
||||
\item Spirale = iterativer Zyklus durch dieselben Schritte
|
||||
\item Ziele jedes Durchlaufs aus alten Ergebnissen ableiten
|
||||
\item Kosten/Nutzen abwägen
|
||||
\item Regelmäßige Überprüfung des Prozessmodells
|
||||
\item Anpassbar
|
||||
\item Hoher Management-Overhead, große Projekte
|
||||
\end{itemize*}
|
||||
|
||||
Unified Process
|
||||
\begin{itemize*}
|
||||
\item Vorgehensmodelle zur objektorientierten Softwareentwicklung
|
||||
\begin{itemize*}
|
||||
\item Ivar Jacobson, Grady Booch and James Rumbaugh: The Unified Software Development Process, (Rational/IBM), 1999
|
||||
\end{itemize*}
|
||||
\item Phasen der Entwicklung
|
||||
\begin{itemize*}
|
||||
\item Anfang, Ausarbeitung, Erstellung, Überleitung
|
||||
@ -2006,75 +1904,30 @@
|
||||
\item Geschäftsprozessmodellierung, Anforderungsanalyse, Analyse \& Design, Implementierung, Test, Auslieferung
|
||||
\item In unterschiedlichen Anteilen parallel ablaufend!
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Prinzipieller Ablauf des Unified Process
|
||||
%
|
||||
\begin{itemize*}
|
||||
\item Haupteigenschaften des UP
|
||||
\item Variation
|
||||
\begin{itemize*}
|
||||
\item Inkrementell, iterativ, evolutionär
|
||||
\item Anwendungsgetrieben
|
||||
\item Architekturzentriert
|
||||
\item Risikoorientiert
|
||||
\item Ereignisorientiert
|
||||
\item Nutzt die UML als Notationssprache
|
||||
\item Erweiterbar / Anpassbar
|
||||
\end{itemize*}
|
||||
\item Verbreitete Vertreter
|
||||
\begin{itemize*}
|
||||
\item Rational Unified Process - RUP (Rational / IBM)
|
||||
\item Open Unified Process - OpenUP (Eclipse Foundation)
|
||||
\item Object Engineering Process - OEP (oose GmbH)
|
||||
\end{itemize*}
|
||||
\item Vorteile
|
||||
\begin{itemize*}
|
||||
\item Vorteile der Eigenschaften (iterativ, inkrementell, anpassbar, ...)
|
||||
\item Berücksichtigung des Risikos
|
||||
\item Passend für objektorientiertes Paradigmas und UML
|
||||
\item Tool-Unterstützung
|
||||
\item Reaktion auf Änderungen möglich
|
||||
\item Industriestandard
|
||||
\end{itemize*}
|
||||
\item Nachteile
|
||||
\begin{itemize*}
|
||||
\item Hoher Bürokratischer Aufwand $\rightarrow$ Tailoring notwendig!
|
||||
\item Relativ hohe „Lernkurve“ aller Beteiligten
|
||||
\item Keine schnelle Reaktion auf Änderungen
|
||||
\item Keine integrierte Qualitätssicherung
|
||||
\end{itemize*}
|
||||
\item Passend für objektorientiertes Paradigmas und UML
|
||||
\item Tool-Unterstützung
|
||||
\item Reaktion auf Änderungen möglich
|
||||
\item Hoher Bürokratischer Aufwand $\rightarrow$ Tailoring notwendig!
|
||||
\item Relativ hohe „Lernkurve“ aller Beteiligten
|
||||
\item Keine schnelle Reaktion auf Änderungen
|
||||
\item Keine integrierte Qualitätssicherung
|
||||
\end{itemize*}
|
||||
|
||||
\subsection{Agile Methoden}
|
||||
\begin{itemize*}
|
||||
\item Ausgangspunkt
|
||||
\begin{itemize*}
|
||||
\item Ziv's Unsicherheitsprinzip des Software Engineering: "Unsicherheit ist im Software-Entwicklungsprozess und den Produkten inhärent und unvermeidlich." (Ziv, 1996)
|
||||
\item Humphrey's Prinzip der Anforderungsunsicherheit: "In einem neuen Software System werden die Anforderungen solange nicht komplett bekannt sein, bis die Anwender damit arbeiten." (Humphrey, 1995)
|
||||
\item Wegner's Lemma: "Es ist unmöglich, ein interaktives System komplett zu spezifizieren." (Wegner, 1995)
|
||||
\end{itemize*}
|
||||
\item Ziele
|
||||
\begin{itemize*}
|
||||
\item geringer bürokratischer Aufwand
|
||||
\item Hauptziel ist die Softwareentwicklung
|
||||
\item nur wenige Regeln bzw. Verhalten definiert
|
||||
\item sehr flexibel gehaltenes Vorgehen
|
||||
\item stark Anwendungs- und Ereignisorientiert
|
||||
\item iterativ / inkrementell / evolutionär
|
||||
\item sehr schnelle Entwicklungsiterationen
|
||||
\item meist Architekturzentriert
|
||||
\item auch testgetriebenes Vorgehen möglich
|
||||
\item Berücksichtigung sozialer Aspekte
|
||||
\item Softwareentwicklung: Kreative Arbeit von Kreativen
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Das Agile Manifest (2001)
|
||||
\begin{itemize*}
|
||||
\item Individuen und Interaktionen bedeutender als Prozesse und Tools
|
||||
\item Funktionierende Software bedeutender als übermäßige Dokumentation
|
||||
\item Stetige Zusammenarbeit mit dem Kunden bedeutender als Vertragsverhandlung
|
||||
\item Mut und Offenheit für Änderungen bedeutender als Befolgen eines Plans
|
||||
\item Individuen und Interaktionen $>$ als Prozesse und Tools
|
||||
\item Funktionierende Software $>$ als übermäßige Dokumentation
|
||||
\item Stetige Zusammenarbeit mit Kunden $>$ als Vertragsverhandlung
|
||||
\item Mut und Offenheit für Änderungen $>$ als Befolgen eines Plans
|
||||
\end{itemize*}
|
||||
|
||||
Eigenschaften agiler Vorgehensmodelle
|
||||
@ -2082,31 +1935,6 @@
|
||||
\item Team ist für Ergebnis verantwortlich und organisiert sich selbst
|
||||
\item Kleine Teams 5-8 Personen
|
||||
\item Definition von Richtlinien, Werten und Prinzipien
|
||||
\item Beispiele für Werte
|
||||
\begin{itemize*}
|
||||
\item Kommunikation (Kommunikation statt Dokumentation)
|
||||
\item Einfachheit (KISS „Keep it small and simple“)
|
||||
\item Feedback
|
||||
\item Mut
|
||||
\item Respekt
|
||||
\end{itemize*}
|
||||
\item Beispiele für Prinzipien
|
||||
\begin{itemize*}
|
||||
\item Beidseitiger Vorteil
|
||||
\item Fehlschläge hinnehmen
|
||||
\item Ständige Verbesserungen
|
||||
\item Ständige Lauffähigkeit des Codes
|
||||
\item Kleine Schritte
|
||||
\item Wiederverwendung bestehender / bewährter Lösungen
|
||||
\end{itemize*}
|
||||
\item Beispiele für Praktiken
|
||||
\begin{itemize*}
|
||||
\item Pair-Programing, Coding Rules
|
||||
\item Kollektives Eigentum / Gemeinsamer Codebesitz
|
||||
\item Testgetriebene Entwicklung
|
||||
\item Ständiges Refactoring
|
||||
\item Keine Überstunden
|
||||
\end{itemize*}
|
||||
\item Vorteile agiler Methoden
|
||||
\begin{itemize*}
|
||||
\item Geringer bürokratischer Aufwand
|
||||
@ -2119,10 +1947,8 @@
|
||||
\item Nachteile
|
||||
\begin{itemize*}
|
||||
\item Schwierigeres Projektmanagement
|
||||
\begin{itemize*}
|
||||
\item Chaotische Vorgehen
|
||||
\item Schwere Planbarkeit des Ergebnisses
|
||||
\end{itemize*}
|
||||
\item Chaotische Vorgehen
|
||||
\item Schwere Planbarkeit des Ergebnisses
|
||||
\item Notwendige Beteiligung des Kunden
|
||||
\item Ergebnis ist schwer vorherzusagen
|
||||
\end{itemize*}
|
||||
@ -2130,238 +1956,59 @@
|
||||
|
||||
\paragraph{eXtreme Programming (XP)}
|
||||
\begin{itemize*}
|
||||
\item Beck 1999, aus Kritik an „monumentalen Modellen“
|
||||
\item Evolutionäre Entwicklung in kleinen Schritten
|
||||
\begin{itemize*}
|
||||
\item Möglichst einfaches Design
|
||||
\end{itemize*}
|
||||
\item Konzentration auf Programmcode als Analyseergebnis, Entwurfsdokument und Dokumentation
|
||||
\item Weglassen von explizitem Design, ausführlicher Dokumentation und Reviews
|
||||
\item Code wird permanent lauffähig gehalten (täglich)
|
||||
\item Schnell und flexibel
|
||||
\item Erfordert Disziplin der Teilnehmer
|
||||
\item Rollen: Projektleiter, Kunde (verfügbar), Entwickler
|
||||
\begin{itemize*}
|
||||
\item Max. 5-10 Entwickler
|
||||
\end{itemize*}
|
||||
\item Kunde bestimmt Anforderung und Prioritäten
|
||||
\begin{itemize*}
|
||||
\item planning game; story cards (use cases)
|
||||
\end{itemize*}
|
||||
\item Implementierung in kleinen Schritten
|
||||
\begin{itemize*}
|
||||
\item pair programming, collective code ownership
|
||||
\item Häufige Releases inkl. Integration
|
||||
\item Refactoring bei Designänderungen
|
||||
\item Programmier-Konventionen
|
||||
\end{itemize*}
|
||||
\item Regelmäßiges automatisiertes Testen
|
||||
\begin{itemize*}
|
||||
\item test-first Ansatz
|
||||
\end{itemize*}
|
||||
\item Morgendliches Meeting im Stehen ohne Diskussionen
|
||||
\item 40h-Woche
|
||||
\item XP
|
||||
\begin{itemize*}
|
||||
\item Sammlung von 12 "best practices"
|
||||
\item Test-getrieben
|
||||
\item Flexibel, effizient
|
||||
\item Kleine Teams
|
||||
\item Erfordert Disziplin der Teilnehmer
|
||||
%\item %
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
\paragraph{Scrum}
|
||||
\begin{itemize*}
|
||||
\item [Ken Schwaber, Jeff Sutherland und Mike Beedle]
|
||||
\item Haupteigenschaften
|
||||
\item Iterativ / Inkrementell, Evolutionär
|
||||
\item stark Anwendungs- und Ereignisorientiert
|
||||
\item schnelle Entwicklungsiterationen
|
||||
\item Sprint: eine schnelle Iteration/Umsetzung Features (30 Tage)
|
||||
\item Product Backlog: Liste der gewünschten Features des Produkts
|
||||
\begin{itemize*}
|
||||
\item Iterativ / Inkrementell, Evolutionär
|
||||
\item stark Anwendungs- und Ereignisorientiert
|
||||
\item schnelle Entwicklungsiterationen
|
||||
\end{itemize*}
|
||||
\item Sprint
|
||||
\begin{itemize*}
|
||||
\item eine schnelle Iteration: Dauer ca. 30 Tage
|
||||
\item Festlegung welche Features umgesetzt werden
|
||||
\end{itemize*}
|
||||
\item Product Backlog
|
||||
\begin{itemize*}
|
||||
\item Liste der gewünschten Features des Produkts
|
||||
\item Vom Produkt-Owner priorisiert / Aufwand vom Team geschätzt
|
||||
\item Jeder kann Einträge beisteuern
|
||||
\end{itemize*}
|
||||
\item Rollen
|
||||
\begin{description*}
|
||||
\item[Product Owner] Erfasst Bedürfnisse der Kunden und Stakeholder, Pflegt Backlog, definiert, priorisiert Features pro Sprint
|
||||
\item[Scrum Master] Berät das Team, Überprüft Einhaltung von Werten und Techniken, moderiert die Meetings, Schützt das Team vor äußeren Störungen, Repräsentiert Team gegenüber Management
|
||||
\item[Scrum Team] Team organisiert sich und die Aufgaben selbst, gemeinsames Ziel verfolgen, selbstloses Handeln, Teamentscheidungen vertreten
|
||||
\end{description*}
|
||||
\item Sprint Backlog
|
||||
\begin{itemize*}
|
||||
\item Product Owner
|
||||
\begin{itemize*}
|
||||
\item Erfasst Bedürfnisse der Kunden und Stakeholder
|
||||
\item Pflegt Backlog, definiert, priorisiert Features pro Sprint
|
||||
\end{itemize*}
|
||||
\item Scrum Master
|
||||
\begin{itemize*}
|
||||
\item Berät das Team, Überprüft Einhaltung von Werten und Techniken, moderiert die Meetings
|
||||
\item Schützt das Team vor äußeren Störungen
|
||||
\item Repräsentiert Team gegenüber Management
|
||||
\end{itemize*}
|
||||
\item Scrum Team (ca. 5-9 Personen)
|
||||
\begin{itemize*}
|
||||
\item Team organisiert sich und die Aufgaben selbst
|
||||
\item Team bedeutet: Zielgerichtet und funktionsübergreifend arbeiten, gemeinsames Ziel verfolgen, selbstloses Handeln, Teamentscheidungen vertreten
|
||||
\end{itemize*}
|
||||
\item Für die aktuelle Iteration ausgewählte Aufgaben ($\leq$ 2 Tage)
|
||||
\item Team-Mitglieder wählen Tasks aus - keine Zuweisung
|
||||
\item Restaufwand wird täglich aktualisiert - Burndown Chart
|
||||
\item Team-Mitglied kann Tasks hinzufügen, löschen, ändern
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Sprint Backlog
|
||||
\begin{itemize*}
|
||||
\item Für die aktuelle Iteration ausgewählte Aufgaben
|
||||
\item Daily Meeting (15 Minuten)
|
||||
\begin{itemize*}
|
||||
\item Aufgabe nicht länger als 2 Tage Aufwand
|
||||
\item Was wurde geschafft? Was ist zu tun? Was behindert den Fortschritt?
|
||||
\item Weiterführende Diskussionen erst im Anschluss
|
||||
\end{itemize*}
|
||||
\item Team-Mitglieder wählen Tasks aus - keine Zuweisung
|
||||
\item Restaufwand wird täglich aktualisiert - Burndown Chart
|
||||
\item Team-Mitglied kann Tasks hinzufügen, löschen, ändern
|
||||
\item Darstellung an prominenter Stelle
|
||||
\end{itemize*}
|
||||
|
||||
Daily Meeting
|
||||
\begin{itemize*}
|
||||
\item ca. 15 Minuten
|
||||
\item Kurze Statusmeldung, Was wurde geschafft? Was ist zu tun? Was behindert den Fortschritt?
|
||||
\item Weiterführende Diskussionen erst im Anschluss
|
||||
\end{itemize*}
|
||||
|
||||
%
|
||||
|
||||
Sprint Review-Meeting
|
||||
\begin{itemize*}
|
||||
\item Präsentation des Erreichten (Feature Demo)
|
||||
\item Product Owner, Kunde usw. geben Feedback
|
||||
\item Sprint Review-Meeting
|
||||
\begin{itemize*}
|
||||
\item Präsentation des Erreichten (Feature Demo)
|
||||
\item Product Owner, Kunde usw. geben Feedback
|
||||
\item Neue Anforderungen hinzufügen / Neu priorisieren
|
||||
\item Qualitätsansprüche ändern
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
|
||||
Sprint-Retrospektive
|
||||
\begin{itemize*}
|
||||
\item Rückkopplungsschleife
|
||||
\item Sprint-Retrospektive
|
||||
\begin{itemize*}
|
||||
\item Was war gut und was hat nicht funktioniert?
|
||||
\item Was kann verbessert werden?
|
||||
\end{itemize*}
|
||||
\item Nach jedem Sprint
|
||||
\item Diskussion der identifizierten Probleme
|
||||
\item Identifikation von wenigen „Action Items“
|
||||
\end{itemize*}
|
||||
|
||||
Burndown Chart
|
||||
\begin{itemize*}
|
||||
\item Darstellung der offenen und erledigten Aufwände / Tasks
|
||||
%\item %
|
||||
\end{itemize*}
|
||||
|
||||
\subsection{Zusammenfassung}
|
||||
\begin{itemize*}
|
||||
\item Software-Entwicklungsmethode
|
||||
\begin{itemize*}
|
||||
\item Elemente
|
||||
\begin{itemize*}
|
||||
\item Darstellung - Notation und Semantik für Modelle, Diagrammtypen, Dokumentvorlagen (Artefakte)
|
||||
\item Vorgehensmodell - Phasen, Arbeitsschritte
|
||||
\item Verfahren - Regeln, Anweisungen, Aktivitäten (+Rollen)
|
||||
\item Werkzeuge
|
||||
\end{itemize*}
|
||||
\item Industriestandards: RUP + UML
|
||||
\item Öffentliche Auftraggeber: V-Modell
|
||||
\item Firmenintern: eigene Varianten, evtl. projektabhängig
|
||||
\item Weitere Themen
|
||||
\begin{itemize*}
|
||||
\item Reifegradbeurteilung CMMI, SPICE, ISO 9000
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
\item Charakterisierung von Vorgehensmodellen
|
||||
\begin{itemize*}
|
||||
\item Sequenziell
|
||||
\begin{itemize*}
|
||||
\item Teilprozesse strikt nacheinander
|
||||
\item Keine Änderungen abgeschlossener Artefakte
|
||||
\end{itemize*}
|
||||
\item Nebenläufig
|
||||
\begin{itemize*}
|
||||
\item Teilprozesse laufen teilweise parallel für bessere Zeitnutzung
|
||||
\end{itemize*}
|
||||
\item Dokumentgetrieben
|
||||
\begin{itemize*}
|
||||
\item Erstellung von Dokumenten (Artefakte) im Vordergrund
|
||||
\item Festlegung der Dokumente pro Phase
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
\item Charakterisierung von Vorgehensmodellen
|
||||
\begin{itemize*}
|
||||
\item Iterativ
|
||||
\begin{itemize*}
|
||||
\item Definition einer sich wiederholenden Abfolge von Teil-Prozessen bzw. Aktivitäten
|
||||
\item Schnelles Wiederholen dieser Abfolgen
|
||||
\end{itemize*}
|
||||
\item Inkrementell
|
||||
\begin{itemize*}
|
||||
\item Definition und Kontrolle des Fortschritts pro Iteration
|
||||
\item Kleine Erweiterungen
|
||||
\end{itemize*}
|
||||
\item Evolutionäres Vorgehen
|
||||
\begin{itemize*}
|
||||
\item Schnelle Prototypen
|
||||
\item Lauffähiger Prototyp jederzeit vorhanden
|
||||
\item Toolunterstützung (Versionierung)
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
\item Charakterisierung von Vorgehensmodellen
|
||||
\begin{itemize*}
|
||||
\item Ereignisorientiert
|
||||
\begin{itemize*}
|
||||
\item Schnelle Reaktion auf Anforderungsänderungen
|
||||
\item Keine starre Abfolge von Tätigkeiten / Prozessen
|
||||
\item Voraussetzung: Prozesse laufen parallel ab
|
||||
\end{itemize*}
|
||||
\item Architekturzentriert
|
||||
\begin{itemize*}
|
||||
\item Starke Gewichtung der Architektur
|
||||
\item Verwendung von Modellen, Mustern und vorhandenem Wissen
|
||||
\end{itemize*}
|
||||
\item Anwendungsgetrieben
|
||||
\begin{itemize*}
|
||||
\item Orientierung an den Anwendungsfällen
|
||||
\item Umsetzen, was einem Anwendungsfall zugeordnet werden kann
|
||||
\item Anwender steht im Mittelpunkt (User Stories)
|
||||
\end{itemize*}
|
||||
\item Risikoorientiert
|
||||
\begin{itemize*}
|
||||
\item Risiko der Entwicklung wird in Planung berücksichtigt
|
||||
\item Risiko- / Nutzen-Analyse
|
||||
\end{itemize*}
|
||||
\item Test- / Qualitätsgetrieben
|
||||
\begin{itemize*}
|
||||
\item Qualität steht im Vordergrund
|
||||
\item Test wird während oder sogar vor der Implementierungs-phase erstellt
|
||||
\end{itemize*}
|
||||
\item Erweiterbar / Anpassbar (tailoring)
|
||||
\begin{itemize*}
|
||||
\item Nur Rahmen des Vorgehens festgelegt
|
||||
\item Konkretes Vorgehen wird an die Bedürfnisse angepasst
|
||||
\item Grundlegende Eigenschaft von Vorgehensmodellen
|
||||
\end{itemize*}
|
||||
\end{itemize*}
|
||||
\item Softwareprojekt im Sommersemester
|
||||
\begin{itemize*}
|
||||
\item Auswahl aus 3 Vorgehensmodellen
|
||||
\begin{itemize*}
|
||||
\item Klassisches Vorgehen
|
||||
\item Unified Process
|
||||
\item Agiles Vorgehen
|
||||
\end{itemize*}
|
||||
\item Rückkopplungsschleife: Was war gut und was hat nicht funktioniert?
|
||||
\item Nach jedem Sprint
|
||||
\item Diskussion der identifizierten Probleme
|
||||
\item Identifikation von wenigen „Action Items“
|
||||
\end{itemize*}
|
||||
\item Burndown Chart: Darstellung der offenen und erledigten Aufwände / Tasks
|
||||
\end{itemize*}
|
||||
|
||||
\newpage
|
||||
|
Loading…
Reference in New Issue
Block a user