vorlesung software-engineering i - dhbw stuttgarthoyer/3.sem_2019/... · dies ist der grundzustand,...
TRANSCRIPT
Vorlesung Software-Engineering I
… im 3. und 4. Semester
02. Vorgehensmodelle - Überblick
Planung
Analyse/Entwurf Implementierung
Test
Einführung
WartungÄnderung
A l f
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
Auslauf
Wozu ein Vorgehensmodell?
Vorgehensmodelle dienen zur Steuerung der Softwareentwicklung von der Analyse bis zur Ei füh i l d d h f ll d A (W t )Einführung incl. der danach anfallenden Anpassungen (Wartung).
Vorgehensmodelle definieren dabei den Inhalt der Phasen und ihre Ergebnisse (z.B. Dokumente) genauso wie beteiligte Personen und Ihre Rollen.
AbnahmeAuftragIdee Bugfixes
Analyse Spezifikation EntwurfImple-
mentierungEinführung Wartung AuslaufTest
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 2
Lastenheft Pflichtenheft DokumentationTest-Plan
Umsetzungs-Entwurf
Anforderungen an ein Vorgehensmodell
1. Projektplanung:
O i ti i P j kt i T il b h itt it I h lt E b i d Z tä di k itOrganisation eines Projekts in Teilabschnitte mit Inhalt, Ergebnis und Zuständigkeiten.Phasen, Dokumente, Personen und Rollen.(komplexe Sachverhalte herunterbrechen in handhabbare Einheiten)
2. Reifegrad:
Möglichkeiten der Ergebniskontrolle in Bezug auf die Anforderungen.(Abweichungen vom Soll)
3. Fortschritt:
Performance-Analyse in Bezug auf den Aufwand bzw. den Kosten.(Wo stehen wir und wie gut sind wir?)(Wo stehen wir und wie gut sind wir?)
4. Verbesserungen:
Optimierungsmöglichkeiten des Ablaufs. Qualitätssicherung.
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
Optimierungsmöglichkeiten des Ablaufs. Qualitätssicherung.(Lernen aus abgeschlossenen Projekten)
3
Bewertungsverfahren für die Softwareentwicklung
• CMMI (CMM) - Capability Maturity Modelhttp://de.wikipedia.org/wiki/CMMI
-> allgemeiner Ansatz
• SPICE (A-SPICE) - Software Process Improvement and Capability Determination (ISO/IEC 15504 )http://de.wikipedia.org/wiki/Spice_(Norm)http://de.wikipedia.org/wiki/Automotive_SPICE
-> spezieller Ansatz plus besondere Ausprägung für den Automobil-Bereich (A-Spice)> spezieller Ansatz plus besondere Ausprägung für den Automobil Bereich (A Spice)lehnt sich beim Reifegrad an CMMI an.
J b d V h d ll fü di S f E i kl i Fi i i Je besser das Vorgehensmodell für die Software-Entwicklung einer Firma geeignet ist
umso besser ist ihre Einstufung im Bewertungsverfahren des Reifegrad-Modells.
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 4
http://de.wikipedia.org/wiki/Capability_Maturity_Model#Aufbau_des_Modells
CMMI - Capability Maturity Model
1 - Initial (undefinierte Prozesse)
Dies ist der Grundzustand, den jede Organisation erreicht, auch ohne dass ein Prozess für die Softwareentwicklung definiert und umgesetzt wird.Dies ist der Grundzustand, den jede Organisation erreicht, auch ohne dass ein Prozess für die Softwareentwicklung definiert und umgesetzt wird.
Kosten, Zeiten und Qualität sind nicht vorhersehbar.
2 - Repeatable (grundlegendes Projektmanagement)
Ein grundlegender Prozess existiert. Die Planung neuer Projekte erfolgt anhand der Erfahrungen mit vergangenen Projekten.
Zeiten sind einigermaßen kontrollierbar. Kosten und Qualität unterliegen starken Schwankungen.
3 - Defined (Prozess-Standartisierung)
In der Organisation ist ein typischer Software-Entwicklungs- und -wartungsprozess eingeführt und dokumentiert (Standard-Software-Prozess).
Eine spezielle Organisationseinheit ist für die Umsetzung verantwortlich.
Kosten und Zeiten sind hier einigermaßen zuverlässig bewertbar. Qualität ist immer noch Schwankungen ausgesetzt.
4 - Managed (quantitatives Management)
Sowohl für das Produkt als auch für den Prozess werden quantitative Ziele vorgegeben ihre Erreichung gemessen und überwachtSowohl für das Produkt als auch für den Prozess werden quantitative Ziele vorgegeben, ihre Erreichung gemessen und überwacht.
Zeiten, Kosten und Qualität sind zuverlässig kontrollierbar.
5 - Optimizing (kontinuierliche Prozessverbesserung)
Die gesamte Organisation konzentriert sich auf das Finden von Schwächen und die weitere Verbesserung des Prozesses.
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
Die gesamte Organisation konzentriert sich auf das Finden von Schwächen und die weitere Verbesserung des Prozesses.
(Quelle: Wikipedia 22.8.2010)
5
http://de.wikipedia.org/wiki/Liste_von_Softwareentwicklungsprozessen
Liste ausgesuchter Vorgehensmodelle
Versuch und Irrtum:
C b C di “•„Cowboy Coding“
Inkrementell:
•WasserfallmodellInkrementell Iterativ Agile
•V-Modell (XT)
Iterativ:
Spiralmodell•Spiralmodell
•Rational Unified Process (RUP)
•Agile SW-Entw. (Scrum/XP/Kanban)
Besondere Ausprägungen:
•Prototyping
•Modellgetriebene SW-Entwicklung (MDD)
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
•Feature-Driven-Development (FDD)
•Test-Driven-Development (TDD)6
http://en.wikipedia.org/wiki/Cowboy_coding
„Cowboy Coding“
• Finden einer brauchbaren Lösung durch Versuch und Irrtum“• Finden einer brauchbaren Lösung durch „Versuch und Irrtum .
• „vom Hirn ins Terminal“-Methode
• Programmierer sind Künstler!
Anfrage im Forum auf heise-Developer vom 25.1.2010:
Zählt "Cowboy coding" eigentlich auch zu den agilen Prozessen?
Antwort:
Nein.
Agile Softwaremethoden sind sehr strukturiert und müsseng
hoch-diszipiniert eingesetzt werden, was bei einer „Cowboy Coding"-Methode in keinster Weise zutrifft.
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
=> kein anerkanntes Vorgehensmodell – aber sehr weit verbreitet
7
http://de.wikipedia.org/wiki/Wasserfallmodell
Wasserfallmodell
• Sequenzielles Abarbeiten der einzelnen Phasen.
• Rückkopplungen nur zwischen zwei aufeinander folgenden Phasen möglich.(aber als Ausnahme definiert)(aber als Ausnahme definiert)
• Jede Phase schließt normalerweise mit einem Dokument ab.
Vorteile:
• Einfach und übersichtlich, wenig Managementaufwand nötig.
Nachteile:
• Nachträgliche Änderungen z.B. an Anforderungen nicht möglich.
f di h d li i LH PH Code Doku
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
• Aufwändiges Testen nach der Realisierung.
• „Big Bang“ Ansatz bei der Einführung.
8
LH PH Code Doku
http://de.wikipedia.org/wiki/V-Modell
V-Modell (XT)
• Sequenzielles Abarbeiten der Phasen (links)
• Das Ergebnis wird pro Phase spezifisch geprüft (rechts)
Vorteile:Vorteile:
• Einfach und übersichtlich, geringer Managementaufwand nötig.
• Die XT-Variante hat auch einen agilen-Ansatzg(zumindest bei der Umsetzung)
Nachteile:
Nachträgliche Änderungen z B an • Nachträgliche Änderungen z.B. an Anforderungen problematisch.
• Muss erst aufwändig durch „Tailoring“ an die Firma angepasst werden. Aktivität Produkt
beinhaltet beinhaltet
1 1 11
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
die Firma angepasst werden.(Beschreibung umfasst 850 Seiten)
• Deutsch, international wenig bekannt9
Rollehat Abhängigkeiten
bearbeitet
http://de.wikipedia.org/wiki/Spiralmodell
Spiralmodell
• Wiederholendes Vorgehen in vier Phasenbis gewünschter Funktionsumfang erreichtbis gewünschter Funktionsumfang erreicht
• KVP-Kontinuierlicher Verbesserungs-Prozess
VorteileVorteile:
• Ständige Kontrolle des Ergebnisses zur Anforderung und ggf. Anpassung
• Übersichtlich gute Erfolgskontrolle• Übersichtlich, gute Erfolgskontrolle
Nachteile:
• Ende finden“ Problem• „Ende finden -Problem
• Zwischenergebnisse oft nicht einsetzbar(meist nur Prototypen)
• Ständiges infrage stellen der Anforderungen
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
• Ständiges infrage stellen der Anforderungen
10
http://de.wikipedia.org/wiki/Rational_Unified_Process
Rational Unified Process (RUP)Kommerzielles Produkt der Fa. IBM/Rational, aufbauend auf der Modellierungssprache UMLg p
RUP basiert auf den folgenden Prinzipien:
• Anwendungsfälle
• Architektur im Zentrum der Planung
• inkrementelles und iteratives Vorgehen
Die Phasen werden dabei mit mehr oder weniger Aufwand parallel abgearbeitet.
Dabei soll möglichst viel Erfahrung aus vorherigen Phasen einfließen (Best Practices)
Vorteile:
• Sehr flexible Methode mit sehr gute Toolunterstützung (IBM/Rational).
Nachteile:
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
Nachteile:
• Für eine Agile Methode etwas zu umfangreich
11
http://de.wikipedia.org/wiki/Agile_Softwareentwicklung
Agile SW-Entw. (Scrum/XP/Kanban)
• Herunter brechen in sehr kleine Einheiten
K Ab b it kl it F k i• Kurze Abarbeitungszyklen mit Fokussierung
• Ergebnis jedes Zyklus kann produktiveingesetzt werden. Agile SW-Entwicklung
Vorteile:
• Ergebnis immer lauffähig, Projekt kann jederzeit beendet werden.
• Anforderungen können jederzeit ergänzt werden.
• Selbstorganisierende Teams
Nachteile:
• Kann in „Cowboy-Coding“ abrutschen(wenig Planung, Dokumentation)
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
g g
• Für große Projekt-Teams schwer einsetzbar(hoher Managementaufwand)
12
http://de.wikipedia.org/wiki/Agiles_Manifest#Werte
Agiles Manifest
1. Individuen und Interaktionen sind wichtiger 1. Zwar sind wohldefinierte Entwicklungsprozesse und gals Prozesse und Werkzeuge.
F k i i d P i d i h i
Entwicklungswerkzeuge wichtig, wesentlicher sind jedoch die Qualifikation der Mitarbeitenden und eine effiziente Kommunikation zwischen ihnen.
2 G t h i b d füh li h D k t ti 2. Funktionierende Programme sind wichtiger als ausführliche Dokumentation.
3 Die stetige Abstimmung mit dem Kunden ist
2. Gut geschriebene und ausführliche Dokumentation kann zwar hilfreich sein, das eigentliche Ziel der Entwicklung ist jedoch die fertige Software.
3 Statt sich an ursprünglich formulierten und 3. Die stetige Abstimmung mit dem Kunden ist wichtiger als die ursprüngliche Leistungs-beschreibung in Verträgen.
3. Statt sich an ursprünglich formulierten und mittlerweile veralteten Leistungsbeschreibungen in Verträgen festzuhalten, steht vielmehr die fortwährende konstruktive und vertrauensvolle Abstimmung mit dem Kunden im Mittelpunkt
4. Der Mut und die Offenheit für Änderungen
stehen über dem Befolgen eines f t l t Pl
Abstimmung mit dem Kunden im Mittelpunkt.
4. Im Verlauf eines Entwicklungsprojektes ändern sich viele Anforderungen und Randbedingungen ebenso wie das Verständnis des Problemfeldes Das Team
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
festgelegten Plans. wie das Verständnis des Problemfeldes. Das Team muss darauf schnell reagieren können.
13
Quelle: Wikipedia
http://de.wikipedia.org/wiki/Scrum
Scrum• Anforderungen werden in einem „Produkt-
Backlog“ gepflegt.g g p g
• Die jeweils wichtigsten Anforderungen werden in mehreren „Sprint“ von max. 30 Tagen umgesetzt (TimeBoxed).
• Das Team trifft sich einmal am Tag im „Daily Scrum“ zum Austausch und zur Fortschrittskontrolle „Burndown-Chart“.
S lb t i i d T (A f b )• Selbstorganisierende Teams (Aufgaben).
• Am Sprintende ist immer eine lauffähige Version verfügbar.
Lässt sich gut um Pair Programming (XP) • Lässt sich gut um Pair-Programming (XP) und Kanban-Techniken erweitern.
• Konzept für Skalierung vorhanden „Scrum of Scrums“, für große Projekte.
Sprint 1 Sprint 2 Sprint 3 Sprint n
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
„Scrum of Scrums , für große Projekte.
=> z.Z. die populärste agile Methode
14
http://de.wikipedia.org/wiki/Extreme_programming
eXtreme Programming (XP)
• Eines der ersten agilen Vorgehensmodelle
• Aufteilung sehr ähnlich Scrum (siehe dort),aber detailierter beschrieben:Fokussierung, Rollen, Abläufe, Artefakte.
• Featuregetrieben, weniger Timeboxed
• OneSiteCustomer (Kunde vor Ort)
• Testgetrieben z B autom Unit Tests• Testgetrieben, z.B. autom. Unit-Tests
• Bekannt durch das „Arbeiten in Paaren“„Pair Programming“:
i A h h l i- vier Augen sehen mehr als zwei- Steigerung der CodeQualität- Verbesserung der Dokumentation
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
=> die klassische agile Methode
15
http://de.wikipedia.org/wiki/Kanban_in_der_IT
Kanban
• Methode aus der Produktionssteuerung mit Laufkarten auf einem Board L i i
Wer arbeitet daran
bl d/ dLaufkarten auf einem Board.- Aufgabenkarten und Status-Spalten
• Sehr übersichtliche Darstellung was es an Aufgaben gibt und wer an was arbeitet.
Login mit Umlaut im PW
2 2 1
Problem und/oderAufgabenbeschreibung
Schätzung Restaufwandu gabe g bt u d we a was a be tet.
• Zusätzliche Möglichkeit durch Limits einen Stau in einem Status zu verhindern
Neu in Arbeit Fertig
[5]
Test
[4]
Wird im agilen Umfeld oft zur Ausgabenverteilung / Visualisierungbenutzt.
Ist aber auch als Methode zum kontroll-ierten „Cowboy Coding“ einsetzbar.
Gute Methode auch für viele kleine hä d A f b
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
unzusammen hängende Aufgaben.
16
http://de.wikipedia.org/wiki/Prototyping_(Softwareentwicklung)http://de.wikipedia.org/wiki/Modellgetriebene_Softwareentwicklunghttp://de.wikipedia.org/wiki/Feature_Driven_Developmenthttp://de.wikipedia.org/wiki/Test-Driven_development
Besondere Ausprägungen
• Prototyping:I d E t f h d M hb k it t di i F P t t t i k ltIn den Entwurfphasen werden Machbarkeitsstudien in Form von Prototypen entwickelt.Die Prototypen dienen damit zur Absicherung der Durchführbarkeit von Anforderungen.
• Modellgetriebene SW-Entwicklung (MDE):D E t f M d ll d P d kt i d l f i t bi t ti i t t llt d k Das Entwurfs-Modell des Produkts wird so lange verfeinert, bis es automatisiert erstellt werden kann. Zum Einsatz kommen spezielle Beschreibungssprachen (DSLs) und Werkzeuge (CASE).
• Feature-Driven-Development (FDD):V tik l “ R li i t h ik di i h f di U t i l F kti /M d l f k i t „Vertikale“ Realisierungstechnik die sich auf die Umsetzung einzelner Funktionen/Module fokussiert.
Gegensatz sind „horizontale“ Realisierungen (Ebenen oder Level).
• Test-Driven-Development (TDD):V d I l i d di T f d d A f d h i bVor der Implementierung werden die Tests aufgrund der Anforderungen geschrieben.Es wird so lange Implementiert bis der Test positiv ist. Mehraufwand bei der Implementierung aber hoher Nutzen bei Test (automatisiert) und Qualität.
> Di A ä d ft it d V h d ll k bi i t ll
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
=> Diese Ausprägungen werden oft mit anderen Vorgehensmodellen kombiniert, vor allem um deren Schwächen auszugleichen (z.B. Wasserfall + Prototyping, Agile-SW-Entw. + TDD)
17
Umsetzung: Horizontal oder Vertikal?Zeit
Benutzeroberfläche5.
Modul 1 Modul 2 Modul 3 Modul 4 Modul 5 Modul 6
Datenschnittstelle4.
high-Level Funktionen (externe Funktionen)3.
Ze
it
( )
low-Level Funktionen (interne Funktionen)2.
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 18
Schnittstellen (Beschreibung, Implementierung)1.
Vom Problem zur Lösungoder: Domänen und ihre Sprachen
StakeholderAnwenderAuftraggeber
ProjektleiterProgrammierer
ModellProblem Lösung Programm
Die reale Welt Das Modellder Domäne
Die Problem-beschreibung
Der Lösungsentwurfur Abdeckung
Die Umsetzungdes Lösungsentwurfsmit der Domäne
der Fachabteilung
der Domäne beschreibungIm Kontext
der Domäne
zur Abdeckung des Problems
des Lösungsentwurfs
Lastenheft PflichtentenheftDomänenspezifische
Sprache (DSL)Sourcecode
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 19
Sprache (DSL)
Problemdomäne Lösungsdomäne
Personen und Rollen
Auftraggeber
Der Kunde mit der Idee, den Anforderungen.Beauftragt die Produktentwicklung.
AnwenderAuftraggeber
P j ktl it Die Mitarbeiter, die das Produkt später benutzen sollen.
Stakeholder
Projektleiter
Die treibende Kraft hinter dem Auftraggeber und den Anwendern.
j k l i
Das Produkt
Anwender ProjektteamProjektleiter
Der Koordinatior im gesamten Ablauf.
Projektteam
i i b i di d d k St k h ld
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 20
Die Mitarbeiter, die das Produkt umsetzen sollen (Programmierer, Experten, etc.).
Stakeholder
Organisationsmodelle - Projektmodelle
Chef isChef
Leiter Leiter Leiter
isu
ng
sbe
fug
n
Ma Ma Ma Ma Ma Ma Ma Ma Ma
We
g
Projekt Projekt Projekt
be
nve
rte
ilu
ng
Prj.Leiter Prj.Leiter Prj.Leiter
Au
fga
bDHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 21
Auftraggeber
Projektmodelle:
Auftraggeber
Projektziel
Auftraggeber
un
ge
n
Projektziel
typischeProjekt
der agile
LenkungskreisProjektleiter
An
ford
erProjekt-
organisationagileAnsatz
Projektleiter
Subteam Subteam Subteam
Ma
MaMa
teil
un
g
Aufgaben
Leiter Leiter LeiterMa
Ma
Ma
Au
fga
be
nve
rt
selbstorganisierendes Team
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 22
Ma Ma Ma Ma Ma Ma
A
Wir brauchen ein Tool ! - Brauchen wir immer ein Tool ?
Falsche Benutzung des Tools! Falsches Tool benutzt!Falsche Benutzung des Tools! Falsches Tool benutzt!
Das Problem konnte mit keinem der Tools gelöst
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 23
keinem der Tools gelöst werden…
Quelle: Henrik Kniberg
Der Erfolg von IT-Projekten ist abhängig von:•bestimmte Techniken (Best Practice)( )• Informationsaustausch (SoftSkills)•Termine (Timeboxing)•Ergebnis-Reviews
Einfluss klassischer und agiler Techniken auf den Erfolg von IT-Projekten
00
9 S
. 9T-
Pro
jekt
e 3
/2 iX
Ko
mp
akt
IT
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 24
Qu
elle
:
Aufgabe bis zur nächsten Vorlesung
Welches Vorgehensmodell setzt Ihre Firma ein ?
- Welches ist das offizielle Vorgehensmodell ?
- Welches Vorgehensmodell wird „gelebt“ ?
- Wie sieht das in der Fachabteilung Ihrer Praxisphase aus ?
- Gibt es einen Unterschied zwischen „interner SW“ und „SW in Produkten“ ?
Verwendet Ihre Firma ein Bewertungsverfahren wie CMMI oder SPICE?
- Welches Verfahren wird verwendet ?
- Auf welchem Level befinden sich die Entwicklungsabteilungen ?
- Welcher Level wird angestrebt ?
Ergebnis bitte an [email protected] schicken.
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH
(Bitte vorher fragen ob Sie die Inforationen weitergeben dürfen, wg. Geheimhaltung!)
25
Fragen
DHBW-STUTTGART/Frank M. Hoyer SWE1: 02.Vorgehensmodelle 22. August 2010 geändert: 5. September 2013, FMH 26