05.10.2013 Aufrufe

Softwareentwicklungsmodelle

Softwareentwicklungsmodelle

Softwareentwicklungsmodelle

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!