Skript zur Vorlesung Software Engineering I Vorgehensmodelle Version

  • Slides: 34
Download presentation
Skript zur Vorlesung Software Engineering I Vorgehensmodelle Version Software Engineering I VE 02: Vorgehensmodelle

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

Definition: Entwicklungsprozess • Zur erfolgreichen Durchführung eines Projekts wird ein Software-Entwicklungsprozess angewendet. • Darunter

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 einzelnen Mitgliedern des Projektteams zugeordnet. Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 2

Definition: Rollen, Aktivitäten, Artefakte Prozesse werden mittels folgender Hauptkonzepte beschrieben: • Rolle: – Abstraktion

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 Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 3

„Code-and-Fix“ Vorgehensmodell • • Version Das wohl einfachste Modell ist die „Code-and. Fix“-Vorgehensweise, bei

„Code-and-Fix“ Vorgehensmodell • • Version 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. Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 4

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

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

Anforderungen an Vorgehensmodelle • Für die Entwicklung größerer Systeme müssen daher geeignete Vorgehensmodelle definiert

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 ! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 6

Definition: Phasen im Software-Lebenszyklus • Software unterliegt (wie andere Produkte in ähnlicher Form) auch

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 Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 7

Phasen im Entwicklungsprozess • Um ein Software-Projekt erfolgreich durchführen zu können, sollte ein Software-Entwicklungsprozess

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! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 8

Entwicklungsphasen: Aktivitäten Was tun? Analyse Design Codierung Realisiere es! Problemraum Version Was muss verbessert

Entwicklungsphasen: Aktivitäten Was tun? Analyse Design Codierung Realisiere es! Problemraum Version Was muss verbessert werden? Wie tun? Test Wurde es richtig getan? Einführung Wartung Wird benutzt… Lösungsraum Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 9

Phasen im Entwicklungsprozess • Diese Aktivitäten sind Teil jeder Softwareentwicklung: • • • Analyse

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! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 10

Verschiedene Phasenmodelle Konzeptphase Analyse der Anforderungen Angebotsphase Erstellung Pflichtenheft Aufgabendefinition Grobentwurf Entwicklungsphase Entwurfsphase Feinentwurf

Verschiedene Phasenmodelle Konzeptphase Analyse der Anforderungen Angebotsphase Erstellung Pflichtenheft Aufgabendefinition Grobentwurf Entwicklungsphase Entwurfsphase Feinentwurf Testphase und Inbetriebnahme Implementierung Test Inbetriebnahme Zeit – Streng sequenziell, keine Iterationen Anzahl und Bezeichnung der – Zeitanteil der einzelnen Phasen fest Phasen ist nicht fest vorgegeben Reine Phasenmodelle entsprechen nicht der Realität! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 11

Wasserfallmodell • • Das Wasserfallmodell ist ein bekannter Ansatz zur Strukturierung des Entwicklungsprozesses nach

Wasserfallmodell • • 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. Anzahl und Bezeichnung der Phasen ist nicht fest vorgegeben Anforderungsdefinition System- und Softwareentwurf Implementierung und Komponententest Integration und Systemtest Betrieb und Wartung Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 12

Wasserfallmodell: Nachteile • Die Annahme, dass zu Beginn eine abgeschlossene und korrekte Anforderungsdefinition existiert,

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) Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 13

Ergebnisorientiertes Phasenmodell • Gut geeignet zur Projektführung Quality Gates Version Software Engineering I VE

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

Entwicklungsphasen: Inputs, Outputs Lastenheft (CRS) Kundenanforderungen, Systemmodellierung Lastenheft (CRS), Systemmodellierung SAS, MODs Implementierung, Modultests

Entwicklungsphasen: Inputs, Outputs Lastenheft (CRS) Kundenanforderungen, Systemmodellierung Lastenheft (CRS), Systemmodellierung SAS, MODs Implementierung, Modultests Pflichtenheft (SRS) Systemspezifikation (Grob-, Feinentwurf) Analyse Design Architekturspezifikation (SAS) Modulspezifikationen (MODs) Pflichtenheft (SRS) Version Systemtestplan (STP) Systemvalidierungsplan (SVP) Codierung Test Einführung Wartung Systemtestreport (STR) Systemvalidierungsreport (SVR) MODs Systemintegrationsreport (SIR) Software Engineering I VE 02: Vorgehensmodelle Bugreports Change Requests (CRQ) Dozenten: Markus Rentschler Andreas Stuckert 15

V-Modell • Eine Weiterentwicklung des ergebnisorientierten Phasenmodells. • QS-orientiert: Es hebt die Validierung der

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). Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 16

Phasenmodell: Dokumente • Anforderungsphase – Customer Requirements Specification (Lastenheft, CRS) – Business Case (Wirtschaftlichkeitsrechnung,

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) Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 17

Inkrementelles Metamodell • Für die Entwicklung von aufeinander aufbauenden Softwareversionen (Wachstumsmodell) • Basismodell wird

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 Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 18

Inkrementelles Metamodell • Darstellung eines übergeordneten Modells zur Durchführung von Software-Inkrementen (Versionen). • Änderungswünsche

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

Inkrementelle Entwicklung Analyse Entwurf Code Auslieferung des 1. Inkrements Test Inkrement 1 Inkrement 2

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

Inkrementelle Entwicklung: Vor-/Nachteile Vorteile der inkrementellen Entwicklung • Kundenwünsche können in jedem Inkrement erfüllt

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! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 21

Spiral-Modell • • Version Spezielle Weiterentwicklung des Wasserfallmodells für große, risikoreiche Systeme Es ist

Spiral-Modell • • Version 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! Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 22

Evolutionäre Modelle: Eigenschaften • Softwareentwicklungsprozess ist nicht linear, sondern Folge von Entwicklungszyklen • Entwicklung

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 Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 23

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

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

Evolutionäre Modelle: Vor-/Nachteile • Vorteile der evolutionären Modelle – Kundennähe während des gesamten Entwicklungsprozesses

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“ ? Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 25

Evolutionäres Modell: e. Xtreme Programming (XP) • • Weiterentwicklung des inkrementellen Ansatzes Flexibles („agiles“)

Evolutionäres Modell: e. Xtreme 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“ ? Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 26

Arten und Merkmale von Prozessen • In plangetriebenen Prozessen werden alle Aktivitäten im Voraus

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 agilen Ansatz. Es gibt keine richtigen oder falschen Software. Entwicklungsprozesse! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 27

Arten von Vorgehensmodellen • Phasenmodell – Plangetrieben. Getrennte und eindeutige Phasen für Spezifikation und

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! Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 28

Planungshorizont von Prozessmodellen Wichtiges Unterscheidungsmerkmal für Prozessmodelle: - Wie präzise / strikt / weit

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) Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 29

Auswahl des Prozessmodells Wann sind welche Modelle geeignet ? • Plangetriebene Modelle: – Wenn

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. Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 30

Auswahl des Prozessmodells Wann sind welche Modelle geeignet ? • Plangetriebene Modelle: – Parallele

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 Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 31

Organisationsprozesse Führungs prozess Kernprozess Produktmanagement / Projektmanagement / Qualitätsmanagement Analyse Supportprozesse Codierung Test Einführung

Organisationsprozesse Führungs prozess Kernprozess Produktmanagement / Projektmanagement / Qualitätsmanagement Analyse Supportprozesse Codierung Test Einführung Wartung Supportprozesse Methoden und Verfahren Version Design Versions-/ Konfigurationsmanagement Qualitäts- und Testorganisation Software Engineering I VE 02: Vorgehensmodelle Trainings- und Supportorganisation Dozenten: Markus Rentschler Andreas Stuckert 32

Zusammenfassung • Softwareentwicklungsprozesse sind Aktivitäten, die bei Produktion und Entwicklung von Softwaresystemen vorkommen. Diese

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. Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 33

Zusammenfassung iterative Prozessmodelle • Prototypenmodell: – Baue anfangs ein (Teil)System "zum Wegwerfen", um kritische

Zusammenfassung iterative Prozessmodelle • 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. Version Software Engineering I VE 02: Vorgehensmodelle Dozenten: Markus Rentschler Andreas Stuckert 34