Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Dozenten: Markus Rentschler Andreas Stuckert Version 17.07.2015 Software Engineering I VE 02: Vorgehensmodelle Skript zur Vorlesung Software Engineering.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Dozenten: Markus Rentschler Andreas Stuckert Version 17.07.2015 Software Engineering I VE 02: Vorgehensmodelle Skript zur Vorlesung Software Engineering."—  Präsentation transkript:

1 1 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Skript zur Vorlesung Software Engineering I Vorgehensmodelle

2 2 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Definition: Entwicklungsprozess Zur erfolgreichen Durchführung eines Projekts wird ein Software-Entwicklungsprozess angewendet. Darunter versteht man ein Vorgehensmodell, alle Aktivitäten und die angewandten Methoden. Das Vorgehensmodell ist die Beschreibung einer koordinierten Vorgehensweise bei der Abwicklung eines Vorhabens. Das Vorgehensmodell legt eine Reihe von Aktivitäten sowie deren Input und Output (Artefakte) fest. Weiterhin erfolgt eine feste Zuordnung von Rollen, welche die jeweilige Aktivität ausüben. Die Rollen, und somit die Verantwortung für die Aktivitäten, werden den einzelnen Mitgliedern des Projektteams zugeordnet.

3 3 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Definition: Rollen, Aktivitäten, Artefakte Prozesse werden mittels folgender Hauptkonzepte beschrieben: Rolle: –Abstraktion der Aufgabe einer Person in einer bestimmten Situation –z.B. Analytiker, Entwickler, Tester, Projektleiter usw. –dieselbe Person hat in einem Projekt oft mehrere Rollen Aktivität: –Abstraktion für eine Sorte zielgerichteten Handelns in einem Projekt –z.B. Anforderungsermittlung, Architekturentwurf, Modulentwurf, Kodierung, Modultest etc. Artefakt: –Abstraktion für eine Sorte von Arbeitsergebnis einer Aktivität –z.B. Pflichtenheft, UML-Klassendiagramm, Programmcode, Testfall, Testbericht

4 4 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle „Code-and-Fix“ Vorgehensmodell Das wohl einfachste Modell ist die „Code-and- Fix“-Vorgehensweise, bei der Entwickler ohne ein festgelegtes Prozessmodell Funktionen implementieren. Anschließend werden die so entstandenen Komponenten ad-hoc „getestet“ und gegebenenfalls verbessert (= Debugging). Für kleine Projekte ist dieser Ansatz durchaus angemessen, versagt aber bei größeren Software-Projekten völlig. Die Verwendung dieses Modells bei größeren Systemen war ursächlich für die Softwarekrise.

5 5 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Einschub: Kommunikation in Projekten

6 6 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Anforderungen an Vorgehensmodelle Für die Entwicklung größerer Systeme müssen daher geeignete Vorgehensmodelle definiert werden, die ein strukturiertes, arbeitsteiliges Vorgehen erzwingen. Diese Modelle müssen den Entwicklungsprozess in an der Realität orientierte, sinnvolle Phasen unterteilen. Für die Übergänge zwischen den Phasen müssen Dokumentationsstandards vereinbart werden, um die arbeitsteilige Kommunikation zu unterstützen.  Geeignete Phasen müssen identifiziert werden !

7 7 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Definition: Phasen im Software-Lebenszyklus Software unterliegt (wie andere Produkte in ähnlicher Form) auch einem allgemeinen Lebenszyklus: –Systementwicklung Entwicklung der Software –Systemeinführung Vorbereitungen zur Nutzung der Software –Wachstum Verbreitung der Nutzung der Software –Reife (Wartung) Vornahme von Verbesserungen an der Software, Beseitigung von Fehlern –Ablösung (Migration) Schrittweiser Übergang zu einem neuen Software-Produkt oder zu einer neuen Version des Produkts

8 8 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Phasen im Entwicklungsprozess Um ein Software-Projekt erfolgreich durchführen zu können, sollte ein Software-Entwicklungsprozess angewendet werden, der die Phasen des Software- Lebenszyklus angemessen behandelt. Das in der Vorlesung behandelte Themengebiet beschränkt sich im Wesentlichen auf die Phasen Systementwicklung und Systemeinführung, also von der Problemspezifikation bis zur Abnahme des daraufhin entwickelten Produkts durch den Kunden.  Weitere Unterteilung dieser Phasen notwendig!

9 9 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Entwicklungsphasen: Aktivitäten AnalyseDesign CodierungTest EinführungWartung Was tun? Wie tun? Realisiere es! Wurde es richtig getan? ProblemraumLösungsraum Was muss verbessert werden? Wird benutzt…

10 10 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Phasen im Entwicklungsprozess Diese Aktivitäten sind Teil jeder Softwareentwicklung: Analyse  definieren, was das System tun soll Design  definieren, wie das System realisiert werden kann Implementierung  Realisierung des Systems Validierung  prüfen, ob das System die Anforderungen erfüllt Einführung  das System beim Kunden in Betrieb nehmen Wartung  weiterentwickeln des Systems nach geänderten Kundenanforderungen Da diese Aktivitäten normalerweise sequentiell bearbeitet werden, ist auch hierfür die Definition von Phasen geeignet. Tatsächlich enthalten alle Prozessmodelle typischerweise diese Aktivitäten und daraus abgeleitete Phasen!

11 11 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle KonzeptphaseAngebotsphase Entwicklungs- phase Testphase und Inbetriebnahme Analyse der Anforderungen Erstellung Pflichtenheft EntwurfsphaseImplementierung Aufgabendefinition Grob- entwurf Fein- entwurf Implemen- tierung Test Inbe- trieb- nahme Reine Phasenmodelle entsprechen nicht der Realität! Zeit –Streng sequenziell, keine Iterationen Anzahl und Bezeichnung der Phasen ist nicht fest vorgegeben –Zeitanteil der einzelnen Phasen fest Verschiedene Phasenmodelle

12 12 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Wasserfallmodell Anforderungs- definition System- und Softwareentwurf Implementierung und Komponententest Integration und Systemtest Betrieb und Wartung Anzahl und Bezeichnung der Phasen ist nicht fest vorgegeben Das Wasserfallmodell ist ein bekannter Ansatz zur Strukturierung des Entwicklungsprozesses nach dem Phasenprinzip. Der Name drückt aus, dass man sich wie bei einem mehrstufigen Wasserfall von der Planungsphase zur Wartungsphase bewegt. Weitere Unterteilung der Phasen ist möglich (z.B. in Implementierungsphase und Integrationsphase) Grundlegendes Modell mit vielen Varianten wie Anzahl der Phasen, Überlappung, Rücksprungmöglichkeiten etc.

13 13 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Wasserfallmodell: Nachteile Die Annahme, dass zu Beginn eine abgeschlossene und korrekte Anforderungsdefinition existiert, entspricht nicht der Realität. Auftraggeber ist nur in der ersten Phase (Anforderungsdefinition) mit eingebunden. Lauffähige Version des Systems liegt erst am Ende der Entwicklung vor. Testen ist nur am Ende des Entwicklungszyklusses vorgesehen. Nichteinhalten der Projektdauer führt zu Abstrichen in den späten Phasen (z.B. beim Testen)

14 14 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Ergebnisorientiertes Phasenmodell Gut geeignet zur Projektführung Quality Gates

15 15 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Entwicklungsphasen: Inputs, Outputs AnalyseDesign CodierungTest EinführungWartung Lastenheft (CRS) Systemmodellierung Pflichtenheft (SRS) Systemspezifikation (Grob-,Feinentwurf) Architekturspezifikation (SAS) Modulspezifikationen (MODs) SAS, MODs Implementierung, Modultests MODs Systemintegrations- report (SIR) Systemtestplan (STP) Systemvalidierungsplan (SVP) Systemtestreport (STR) Systemvalidierungs- report (SVR ) Bugreports Change Requests (CRQ) Lastenheft (CRS) Systemmodellierung Pflichtenheft (SRS) Systemspezifikation (Grob-,Feinentwurf) SAS, MODs Implementierung, Modultests Lastenheft (CRS) Systemmodellierung Pflichtenheft (SRS) Systemspezifikation (Grob-,Feinentwurf) Systemtestplan (STP) Systemvalidierungsplan (SVP) SAS, MODs Implementierung, Modultests Kundenanforderungen, Lastenheft (CRS), Systemmodellierung Pflichtenheft (SRS) Systemspezifikation (Grob-,Feinentwurf) Architekturspezifikation (SAS) Modulspezifikationen (MODs) MODs Systemintegrations- report (SIR) Architekturspezifikation (SAS) Modulspezifikationen (MODs) Systemtestreport (STR) Systemvalidierungs- report (SVR ) MODs Systemintegrations- report (SIR) Architekturspezifikation (SAS) Modulspezifikationen (MODs) Bugreports Change Requests (CRQ) Systemtestreport (STR) Systemvalidierungs- report (SVR ) MODs Systemintegrations- report (SIR) Architekturspezifikation (SAS) Modulspezifikationen (MODs) Architekturspezifikation (SAS) Modulspezifikationen (MODs) MODs Systemintegrations- report (SIR) Architekturspezifikation (SAS) Modulspezifikationen (MODs) Systemtestreport (STR) Systemvalidierungs- report (SVR ) MODs Systemintegrations- report (SIR) Pflichtenheft (SRS) Architekturspezifikation (SAS) Modulspezifikationen (MODs) Bugreports Change Requests (CRQ) Systemtestreport (STR) Systemvalidierungs- report (SVR ) MODs Systemintegrations- report (SIR) Architekturspezifikation (SAS) Modulspezifikationen (MODs)

16 16 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle V-Modell Eine Weiterentwicklung des ergebnisorientierten Phasenmodells. QS-orientiert: Es hebt die Validierung der Phasen durch Tests hervor. Weit verbreitet und bei staatlichen deutschen Organisationen und Behörden vorgeschrieben (V-Modell XT).

17 17 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Phasenmodell: Dokumente Anforderungsphase –Customer Requirements Specification (Lastenheft, CRS) –Business Case (Wirtschaftlichkeitsrechnung, BC) –Product Solution Study (Produktlösungsstudie, PSS) –System Requirements Specification (Pflichtenheft, SRS) –Milestones/Ressources/Costs (Project Plan, MRC) Realisierungsphase –System Architecture Specification (Systemarchitektur, SAS) –System Integration Plan (Systemintegrationsplan, SIP) –System Test Plan (Systemtestplan, STP) –System Validation Plan (Systemvalidierungsplan, SVP) –Module Documentation (Moduldokumentation, MOD) –System Integration Report (Systemintegrationsbericht, SIR) –System Test Report (Systemtestbericht, STR) –System Validation Report (Systemvalidierungsbericht, SVR)

18 18 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Inkrementelles Metamodell Für die Entwicklung von aufeinander aufbauenden Softwareversionen (Wachstumsmodell) Basismodell wird bis zum Entwurf (System Design) angewendet Dann wird bei der Implementierung der Features schrittweise vorgegangen Schnittstellen, welche späteres Hinzufügen von Subsystemen erlauben Jeder inkrementelle Schritt wird separat entworfen, codiert, getestet und integriert

19 19 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Inkrementelles Metamodell Darstellung eines übergeordneten Modells zur Durchführung von Software-Inkrementen (Versionen). Änderungswünsche können natürlich auch Fehlermeldungen sein!

20 20 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Inkrementelle Entwicklung Inkrement 1 Auslieferung des 1. Inkrements AnalyseEntwurfCodeTest Auslieferung des 2. Inkrements AnalyseEntwurfCodeTest Inkrement 2 Auslieferung des 3. Inkrements AnalyseEntwurfCodeTest Inkrement 3 Auslieferung des 4. Inkrements AnalyseEntwurfCodeTest Inkrement 4 Zeit

21 21 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Inkrementelle Entwicklung: Vor-/Nachteile Vorteile der inkrementellen Entwicklung Kundenwünsche können in jedem Inkrement erfüllt und ausgeliefert werden, somit ist Systemfunktionalität früher verfügbar. Frühe Inkremente agieren als Prototyp und helfen Anforderungen für spätere Inkremente zu eruieren. Geringeres Risiko für das Scheitern des Gesamtprojektes. Nachteile der inkrementellen Entwicklung Abbildung der Kundenbedürfnisse (Anforderungen) auf einzelne Inkremente ist nicht trivial Ermittlung der Grundfunktionen für das erste Inkrement ist schwierig Grundfunktionen sind Funktionen, die später von Teilsystemen gebraucht werden!

22 22 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Spiral-Modell Spezielle Weiterentwicklung des Wasserfallmodells für große, risikoreiche Systeme Es ist zyklisch und nicht linear wie das Wasserfallmodell Es findet also in jedem der Durchläufe erneut eine Risikoanalyse in den Quadranten statt: Q 1: Ziele, Anforderungen und Alternativen identifizieren Q 2: Alternativen untersuchen, Prototyping und Simulationen Q 3: Entwicklung und Validierung Q 4: Ergebnisse untersuchen und nächste Iteration planen Bei jedem Durchlauf entsteht ein neuer Prototyp Das Spiralmodell ist kein Wachstumsmodell, sondern ein Prototypenmodell!

23 23 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Evolutionäre Modelle: Eigenschaften Softwareentwicklungsprozess ist nicht linear, sondern Folge von Entwicklungszyklen Entwicklung verläuft über viele Versionen, bis ein angemessenes Produkt entsteht Entwicklung beginnt typischerweise mit einem Prototyp: –Evolutionäres Prototyping Zusammenarbeit mit dem Kunden, um Anforderungen zu bestimmen Entwicklung beginnt bei den eindeutigen Anforderungen –"Wegwerf"-Prototyping (Throw-Away) Anforderungen des Kunden sollen verstanden werden Entwicklung beginnt bei den unklaren Anforderungen

24 24 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Evolutionäre Modelle

25 25 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Evolutionäre Modelle: Vor-/Nachteile Vorteile der evolutionären Modelle –Kundennähe während des gesamten Entwicklungsprozesses –Akzeptanz des Kunden wird durch fortlaufende Einbeziehung seiner Wünsche verbessert Nachteile der evolutionären Modelle –Keine regelmäßigen Zwischenversionen für die Messung des Projektfortschritts –Keine kosteneffiziente Dokumentation möglich –Stetige Veränderungen führen zu schlecht strukturierten Systemen –Schlechte Eignung für große Systeme mit langer Lebensdauer –Prozess ist nicht sichtbar  Wiedergänger von „Code-and-Fix“ ?

26 26 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Evolutionäres Modell: eXtreme Programming (XP) Weiterentwicklung des inkrementellen Ansatzes Flexibles („agiles“) Vorgehensmodell Basiert auf der Entwicklung und Auslieferung sehr kleiner Inkremente (Teilsysteme) Zwei Forderungen motivierten die Entwicklung von XP –Develop for today Konzentration auf aktuelle Probleme –Do the simplest thing that could possible work Verwendung des einfachsten Entwurfs (Simple Design), d.h. -Erfüllung der Anforderungen -Redundanzfreiheit  Wiedergänger von „Code-and-Fix“ ?

27 27 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Arten und Merkmale von Prozessen In plangetriebenen Prozessen werden alle Aktivitäten im Voraus geplant und der Projektfortschritt wird gegen diesen Plan gemessen. In agilen (evolutionären) Prozessen erfolgt die Planung iterativ, es ist leichter, auf sich ändernde Kundenanforderungen einzugehen. In der Praxis enthalten die meisten existierenden Prozesse Elemente sowohl aus dem plangetriebenen als auch aus dem dem agilen Ansatz.  Es gibt keine richtigen oder falschen Software- Entwicklungsprozesse!

28 28 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Arten von Vorgehensmodellen Phasenmodell –Plangetrieben. Getrennte und eindeutige Phasen für Spezifikation und Entwicklung. Inkrementelles (Evolutionäres) Modell –Spezifikation, Entwicklung und Validierung erfolgen überlappend. Kann plangetrieben oder agil sein. Wiederverwendungs-Modell –Das System wird (teilweise) aus existierenden Komponenten zusammengebaut. Kann plangetrieben oder agil sein.  In der Realität werden die meisten großen Systeme nach einem Prozess entwickelt, der Elemente aus allen diesen Modellen enthält!

29 29 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Planungshorizont von Prozessmodellen Wichtiges Unterscheidungsmerkmal für Prozessmodelle: -Wie präzise / strikt / weit voraus wird geplant? Sehr: Phasenmodelle –möglichst präzise und strikt, für das gesamte Projekt im Voraus Mittel: Iterative Modelle –präzise wo möglich –nicht strikt (nötige Veränderungen werden akzeptiert) –nur für wenige Iterationen im Voraus Wenig: Agile Modelle –Nur so viel Planung wie unbedingt nötig –Lieber Ziele als Pläne (wegen Flexibilität)

30 30 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Auswahl des Prozessmodells Wann sind welche Modelle geeignet ? Plangetriebene Modelle: –Wenn exaktes Resultat in definierter Zeit erreicht werden muss –Wenn sehr große (insbesondere verteilte) Projektgruppen koordiniert werden müssen Dann sind Pläne und Dokumente zur Koordination unverzichtbar Agile Modelle: –Wenn hohe Unsicherheit über die Anforderungen besteht Inhalt, Prioritäten –Wenn Änderungen von außen häufig sind Anforderungen, Zeitplan, Budget, Qualitätsziele etc.

31 31 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Auswahl des Prozessmodells Wann sind welche Modelle geeignet ? Plangetriebene Modelle: –Parallele Entwicklung von HW und SW (z.B. Automotive) –Verteilte Entwicklung (z.B. in mehreren Firmen, Standorten) –Wiederverwendung geplant/gewünscht Agile Modelle: –Projekt hat keinen Zeitplan (z.B. Hobbyprojekt) –Arbeit mit unausgereifter und unbeherrschter Technologie –Projekt hat unklare Anforderungen

32 32 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Organisationsprozesse Produktmanagement / Projektmanagement / Qualitätsmanagement Führungs prozess AnalyseDesignCodierungTest EinführungWartung Kern- prozess Supportprozesse Support- prozesse Methoden und Verfahren Trainings- und Support- organisation Qualitäts- und Testorganisation Versions-/ Konfigurations- management

33 33 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Zusammenfassung Softwareentwicklungsprozesse sind Aktivitäten, die bei Produktion und Entwicklung von Softwaresystemen vorkommen. Diese können in einem Vorgehensmodell dargestellt werden. Allgemeine Aktivitäten sind Anforderungsanalyse und -spezifikation, Entwurf und Implementierung, Validierung und Weiterentwicklung. Iterative Vorgehensmodelle beschreiben den Softwareentwicklungsprozess als Kreislauf von Aktivitäten Für eine inkrementelle Entwicklung muss im Initialprojekt ein Grobkonzept und die Definition der Systemarchitektur für den gesamten Projektumfang festgelegt werden.

34 34 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 02: Vorgehensmodelle Prototypenmodell: –Baue anfangs ein (Teil)System "zum Wegwerfen", um kritische Anforderungen besser zu verstehen. –Dann folge einem Phasenmodell. Risikomodell (Spiralmodell): –Prototypenmodell, tue in jeder Iteration das, was am stärksten zur Verringerung des kritischsten Projektrisikos beiträgt. Inkrementelles Modell: –Baue das Gesamtsystem schrittweise. –In jedem Schritt werden nur neue Teile hinzugebaut, es wird jedoch (theoretisch) nie etwas Existierendes verändert. Iteratives (Evolutionäres) Modell: –Baue das Gesamtsystem schrittweise. –In jedem Schritt werden neue Teile hinzugebaut und wo nötig auch existierende verändert. Zusammenfassung iterative Prozessmodelle


Herunterladen ppt "1 Dozenten: Markus Rentschler Andreas Stuckert Version 17.07.2015 Software Engineering I VE 02: Vorgehensmodelle Skript zur Vorlesung Software Engineering."

Ähnliche Präsentationen


Google-Anzeigen