Softwareentwicklungsmodelle
Softwareentwicklungsmodelle
Softwareentwicklungsmodelle
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Software-Entwicklungsmodell:<br />
Ein EinSoftware-Entwicklungsmodell Software-Entwicklungsmodell beschreibt, beschreibt, wie wie Softwareentwicklung Softwareentwicklung abläuft abläuft oder oder<br />
ablaufen ablaufen sollte. sollte.<br />
Ziel:<br />
Strukturierung des Softwareentwicklungsprozesses in<br />
handhabbare Teilaufgaben<br />
• Handhabbar = Zerlegung des Problembereichs, so dass<br />
• die Komplexität überschaubar wird<br />
• Die Arbeit in einzelne Pakete und an verschiedene Gruppen aufgeteilt<br />
werden kann<br />
• Schafft ein gemeinsames Verständnis was und wann etwas getan werden<br />
soll<br />
14
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das klassische sequentielle Phasenmodell<br />
Analyse<br />
Analyse<br />
Design<br />
Design<br />
Anforderungen<br />
Implementierung<br />
Implementierung<br />
Architektur<br />
Test<br />
Test<br />
& Integration<br />
Integration<br />
Systemkomponenten<br />
Abnahme<br />
Abnahme<br />
& Einführung<br />
Einführung<br />
System<br />
Dokumentation<br />
Betrieb<br />
Betrieb<br />
& Wartung<br />
Wartung<br />
Softwaresystem<br />
15
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das klassische sequentielle Phasenmodell<br />
Vorteile<br />
Nachteile<br />
• Einfach aufgebaut<br />
• Klarer Abgrenzung der einzelnen Aktivitäten<br />
• Erleichterte Planung<br />
• Vorgangsweise ist unabhängig von Anwendungsgebiet, Komplexität und<br />
Produkt<br />
• Arbeitsteiliger Entwicklungsprozess wird ermöglicht<br />
• Basiert auf der falschen Annahme das der Entwicklungsprozess sequentiell<br />
abläuft<br />
• Die nächste Phase beginnt erst wenn die vorhergehende Phase<br />
abgeschlossen wurde<br />
• Unzulässige Idealisierung. Oft existiert eine enge<br />
Verzahnung/Wechselwirkung zwischen den verschiedenen Phasen<br />
• Durch das sequentielle Vorgehen liegen sehr spät greifbare Ergebnisse vor<br />
Erweiterung zum zum iterativen Wasserfallmodell.<br />
Erlaubt Erlaubt Rückkopplung zwischen verschiedenen Phasen<br />
16
Das Wasserfallmodell<br />
Analyse<br />
Analyse<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Verifikation<br />
Design<br />
Design<br />
Verifikation<br />
Code<br />
Code<br />
Anforderungen<br />
Unittest<br />
Validierung Validierung (dynamischer (dynamischer Test): Test):<br />
Überprüfung, Überprüfung, ob ob ein ein Softwareprodukt Softwareprodukt und und<br />
seine seine Spezifikation Spezifikation übereinstimmen<br />
übereinstimmen<br />
Test<br />
Test<br />
Integration<br />
Integration<br />
Architektur<br />
Validierung<br />
Verifikation Verifikation (statischer (statischer Test): Test):<br />
Überprüfung, Überprüfung, ob ob ein ein Softwareprodukt<br />
Softwareprodukt<br />
für für seinen seinen Einsatzzweck Einsatzzweck geeignet geeignet ist ist<br />
Systemkomponenten<br />
Abnahme,<br />
Abnahme,<br />
Einführung<br />
Einführung<br />
Validierung<br />
System<br />
Dokumentation<br />
Betrieb<br />
Betrieb<br />
&<br />
&<br />
Wartung<br />
Wartung<br />
Validierung<br />
Softwaresystem<br />
17
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Wasserfallmodell<br />
Eigenschaften<br />
Nachteile<br />
• Einführung von Rückkopplung zwischen den Phasen<br />
• Rückkopplung möglichst nur bei aufeinanderfolgenden Phasen<br />
• Frühzeitige Validierung der Phasenergebnisse in das Vorgehensmodell<br />
• Durch das sequentielle Vorgehen liegen sehr spät greifbare Ergebnisse<br />
vor<br />
• Nicht gut geeignet für die Entwicklung interaktiver Anwendungen<br />
(Praxiserfahrung)<br />
Erweiterung des des Wasserfallmodells zum zum V-Modell<br />
18
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Probemstellung Softwaresystem<br />
Probemstellung<br />
Softwaresystem<br />
AnforderungsAnforderungsdefinitiondefinition<br />
Grobentwurf<br />
Grobentwurf<br />
Feinentwurf<br />
Feinentwurf<br />
ModulModulimplementierungimplementierung<br />
Anwendungsszenario<br />
Anwendersicht / Anwendersystem<br />
Testfälle Systemtest<br />
Architektursicht/-modell<br />
Testfälle Integrationstest<br />
Testfälle<br />
Modultest<br />
Implementierungssicht<br />
Integrationstest<br />
Integrationstest<br />
Modultest<br />
Modultest<br />
Systemtest<br />
Systemtest<br />
Abnahmetest<br />
Abnahmetest<br />
19
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
• Geschichte des V-Modells<br />
• Hat ursprünglich militärischen Ursprung (1988 – 1991)<br />
• Voraussetzung für Projekte im öffentlichen Bereich<br />
• Das V-Modell gliedert den Entwicklungsprozess in drei Sichten<br />
• Die Anwendersicht, die sich in Form eines Anwendungssystems,<br />
bestehend aus einer Systemspezifikation und dem abgenommenen<br />
Software-Produkt manifestiert.<br />
• Die Architektursicht, die sich in Form eines Architekturmodells,<br />
bestehend aus einer Spezifikation von Teilsystemen, den dazu<br />
entworfenen Systemarchitekturen, den getesteten Teilsysteme und dem<br />
getesteten Gesamtsystem manifestiert.<br />
• Die Implementierungssicht, die sich in Form der Implementierung,<br />
bestehend aus den Modulspezifikationen und den getesteten Modulen<br />
manifestiert.<br />
• Integriert die Qualitätssicherung mit in den Prozess. Klare Zuordnung<br />
zwischen Entwicklungs- und Qualitätssicherung<br />
20
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
• Das 1997 veröffentlichte Vorgehensmodell umfasst vier Teilmodelle<br />
• Systemerstellung (SE)<br />
• Qualitätssicherung (QS)<br />
• Konfigurationsmanagement (KM)<br />
• Projektmanagement (PM)<br />
• Jedes Teilmodell definiert<br />
• Reihenfolge der auszuführenden Aktivitäten<br />
• Produkte die erarbeitet werden müssen<br />
• Produkte/Artefakte die vor Beginn einer Aktivität vorliegen müssen<br />
• Einzelne Aktivitäten werden in analoge ebenfalls weiter verfeinert<br />
21
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Aktivitäten<br />
Aktivitäten<br />
und<br />
und<br />
Produkte<br />
Produkte<br />
22
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das<br />
Das<br />
Teilmodell<br />
Teilmodell<br />
Systemerstellung<br />
Systemerstellung<br />
23
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Zerlegung<br />
Zerlegung<br />
der<br />
der<br />
Aktivität<br />
Aktivität<br />
System-Entwurf<br />
System-Entwurf<br />
24
Das V-Modell<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Zusammenwirken<br />
Zusammenwirken<br />
Der<br />
Der<br />
Teilmodelle<br />
Teilmodelle<br />
25
Das V-Modell<br />
Vorteile<br />
Nachteile<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
• Gleiche Vorteile wie die einfachen phasenorientierten Modelle<br />
• Verbesserung der klassischen phasenorientierten Modelle durch Spezifikation<br />
der Teilmodelle Systemerstellung, Qualitätssicherung, Konfigurations- und<br />
Projektmanagement<br />
• Probleme des sequentiellen Phasenmodelle werden nicht signifikant beseitigt<br />
• Prozessmodell sehr aufwendig und nicht methodenneutral<br />
• Geringe Flexibilität<br />
• Hoher Verwaltungsaufwand<br />
Anpassung des des V-Modells zum zum V-Modell XT<br />
XT<br />
26
Das V-Modell-XT<br />
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
• 2005 Erweiterung des V-Modells um neue Erkenntnisse aus dem<br />
Bereich Softwareentwicklung<br />
• Folgende Aspekte wurden berücksichtig<br />
• das V-Modell ist an die jeweiligen Bedürfnisse anpassbar (=Tailoring)<br />
• Einbindung des Auftraggebers<br />
• Stärkere Modularisierung: Die vier bisherigen Submodelle existieren in<br />
dieser Form nicht mehr, sondern nur noch Vorgehensbausteine, aus<br />
denen das konkrete Vorgehensmodell eines Projekts zusammengestellt<br />
wird („tailoring“).<br />
• Stärkere Orientierung in Richtung agiler und inkrementeller Ansätze:<br />
„Weg vom Wie, hin zum Was.“ Das V-Modell XT gibt keinerlei<br />
Vorschriften über die zeitliche Abfolge von Vorgehensbausteinen vor.<br />
Details: http://www.v-modell-xt.de/<br />
27
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Prototypen-Modell<br />
Grundidee:<br />
unterstützt systematisch die die frühzeitige Erstellung ablauffähiger Modelle<br />
(Prototypen) des des zukünftigen Produkts, um um die die Umsetzung von von<br />
Anforderungen und und Entwürfen in in Software zu zu demonstrieren und und mit mit ihnen ihnen<br />
zu zu experimentieren.<br />
Analyse<br />
Design<br />
Implementierung<br />
Test &<br />
Integration<br />
Analyse<br />
Design<br />
Implementierung<br />
Test &<br />
Integration<br />
Abnahme &<br />
Einführung<br />
Betrieb<br />
28
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Prototypen-Modell<br />
• Demonstrationsprototyp<br />
• Dient zur Auftragsakquisition<br />
• um Auftraggeber einen Eindruck zu geben, was er bekommen wird<br />
• Soll dem potentiellen Auftraggeber einen ersten Eindruck vermitteln, wie<br />
ein Produkt für das vorgesehene Anwendungsgebiet im Prinzip<br />
aussehen kann<br />
• In der Regel werden solche Prototypen schnell aufgebaut<br />
• Sie werden nach der Erfüllung ihrer Aufgaben »weggeworfen«.<br />
• Labormuster<br />
• Soll konstruktionsbezogene Fragen und Alternativen beantworten.<br />
• Demonstriert die technische Umsetzbarkeit des Produktmodells.<br />
• Ist nicht für Endbenutzer bestimmt.<br />
• Sollte technisch mit dem späteren Produkt vergleichbar sein.<br />
29
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Prototypen-Modell<br />
• Pilotsystem<br />
• Softwaresystem das bereits einen gewissen Reifegrad erreicht hat<br />
• Kann als Basis für eine Produktentwicklung herangezogen werden<br />
• Die Unterscheidung zwischen dem Prototyp und dem Produkt<br />
verschwindet.<br />
• Ein Pilotsystem ist für die Benutzung in der Einsatzumgebung entworfen<br />
und nicht nur unter Laborbedingungen.<br />
• Labormuster<br />
• Soll konstruktionsbezogene Fragen und Alternativen beantworten.<br />
• Demonstriert die technische Umsetzbarkeit des Produktmodells.<br />
• Ist nicht für Endbenutzer bestimmt.<br />
• Sollte technisch mit dem späteren Produkt vergleichbar sein.<br />
30
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Prototypen-Modell<br />
• Horizontaler Prototyp<br />
Horizontaler<br />
Prototyp<br />
• Realisiert nur spezifische<br />
Ebenen des Systems<br />
• Die betreffende Ebene wird<br />
möglichst vollständig realisiert<br />
• Wahl der Ebene: die mit dem<br />
größten Risiko für Änderungen<br />
User interface<br />
Geschäftslogik<br />
Netz Persistenz<br />
Systemsoftware<br />
• Vertikaler Prototyp<br />
• Implementiert ausgewählte Teile<br />
des Zielsystems vollständig<br />
durch alle Ebenen hindurch.<br />
• Dort geeignet, wo die Funktionalitäts-<br />
und Implementierungsoptionen<br />
noch offen sind.<br />
• Erprobung von Funktionalität<br />
User interface<br />
Geschäftslogik<br />
Netz Persistenz<br />
Systemsoftware<br />
Vertikaler<br />
Prototyp<br />
31
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Prototypen-Modell<br />
Vorteile<br />
Nachteile<br />
• Reduzierung des Entwicklungsrisikos durch frühzeitigen Einsatz von<br />
Prototypen<br />
• Prototypen können sinnvoll in andere Prozeßmodelle integriert werden.<br />
• Prototypen können heute durch geeignete Werkzeuge schnell erstellt werden<br />
• Prototyping verbessert die Planung von Software-Entwicklungen<br />
• Labormuster fördern die Kreativität für Lösungsalternativen<br />
• Starke Rückkopplung mit dem Endbenutzer und dem Auftraggeber<br />
• Höherer Entwicklungsaufwand, da Prototypen zusätzlich erstellt werden<br />
• Gefahr, daß ein »Wegwerf«-Prototyp Teil des Endprodukts wird<br />
• Verträge für die Software-Erstellung berücksichtigen noch nicht das<br />
Prototypen-Modell.<br />
• Prototypen werden oft als Ersatz für die fehlende Dokumentation angesehen<br />
• Beschränkungen und Grenzen von Prototypen sind oft unbekannt<br />
32
Prof. Dr. Bernd Hafenrichter<br />
<strong>Softwareentwicklungsmodelle</strong><br />
Das Prototypen-Modell in Kombination mit dem Wasserfallmodell<br />
Analyse<br />
Analyse<br />
Projektfortschritt<br />
User-Interface<br />
Prototyping<br />
Design<br />
Design<br />
Architektur- und<br />
Komponenten Prototyping<br />
Code<br />
Code<br />
33