Vorgehensmodelle Flashcards
Softwareprozess Modell
ist eine abstrakte Darstellung eines Prozesses.
Es präsentiert eine Beschreibung eines Prozesses von etwas besonderer Perspektive.
Wasserfallmodell Merkmal
Phasen des Wasserfallmodells
- Grundlegende Prozessabläufe als eigenständige Phasen
- werden nacheinander abgeschlossen
Phasen:
Analyse und Definition der Anforderungen:
-Detaillierte Systemspezifikation
- Zusammenarbeit mit Systembenutzern
System und Softwareentwurf
- Anforderungen für Hard- und Software
- Erkennen und Beschreiben der grundlegenden Softwaresysteme und ihrer Beziehung zueinander
Wasserfallmodell Nutzung und Vorteile
Nutzung:
- Meistens für große Projekte
Vorteile:
- Strukturiert
- Entwicklungsfortschritt sichtbar
Inkrementelle Entwicklung Merkmal
Das System wird nicht als “Gesamtpaket” ausgeliefert
Entwicklung und Auslieferung ist in Komponenten geteilt, wobei jedes “Increment” Teil der geforderten Gesamtfunktion ist
Die Benutzeranforderungen und wichtigsten Anforderungen an die Software sind Teil der ersten Auslieferungen
Inkrementelle Entwicklung Vorteile
Systemfunktion kann früher bereitgestellt werden
Die ersten Einzelteile sind Prototypen, daraus kann man Anforderungen für die späteren Einzelteile ableiten
Weniger Fehlschlagrisiko für das ganze Projekt
Geringe Kosten für angepasste Kundenanforderungen
Bessere Rückmeldung vom Kunden (Softwaredemonstration)
Bessere Interpretation für den Kunden
Implementierung und Modultests
Umsetzung in Programmeinheiten
Integration und Systemtests
Sicherstellung ob Softwareanforderungen erfüllt sind
Betrieb und Wartung
Korrigieren von neu entdeckten Fehlern
Verbesserung der Implementierung
Möglicherweise neue Anforderungen einlegen
Wasserfallmodell Nachteile
Tests sind zu spät > hohe Kosten für nachträgliche Änderungen
Hohe Kosten für Dokumentation
Neue oder veränderte Anforderungen des Kunden sind aufwändig zu Implementieren
Inkrementelle Entwicklung Nachteile
- Der Prozess ist nicht sichtbar
- Manager brauchen regelmäßige Zwischenversionen um den Fortschritt messen zu können
- Systemstruktur wird schwächer
Evolutionäre Entwicklung - Ziel
Aus abstrakten Spezifikationen möglichst schnell ein System entwickeln. Mit Hilfe des Kunden wird das System auf die Bedürfnisse der Kunden abgestimmt.
Erforschende Entwicklung
man arbeitet mit dem Auftraggeber zusammen, Anforderungen müssen klar definiert sein, Änderungen durch den Auftraggeber fließen mit ein
Evolutionäre Entwicklung
Wegwerf-Prototyping > System-Anforderungen verstehen. Man hat lückenhafte Anforderungen um festzustellen was man braucht
Evolutionäre Entwicklung - Nachteile
- Mangelnde Prozess-Sichtbarkeit
- oftmals schlecht strukturiert
- Eventuell sind spezielle Fähigkeiten gefordert
Evolutionäre Entwicklung - geeignet für:
- kleine oder mittlere Systeme
- für Teile von großen Systemen wie ein GUI
- für kurzlebige Systeme
Komponentenbasierte Softwareentwicklung
Man benutzt verschiedene Vorhandene Komponenten oder COTS (Commercial-off-the-shelf: in großer Stückzahl völlig gleichartige Systeme) und integriert diese dann in das System
- eigenständige käufliche Systeme