Vorgehensmodelle Flashcards
(21 cards)
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
Komponentenbasierte Softwareentwicklung
Vorteile und Nachteile
Vorteile:
- geringe Kosten und Risiken durch geringe, zu entwickelnde Software
- schnelle Fertigstellung und Lieferung
Nachteile:
- Kompromisse bei den Anforderungen
- Möglichkeit der Weiterentwicklung geht teilweise verloren (Copyright)
Extreme Programmierung
- Die Funktionen werden in sehr kleinen Komponenten entwickelt
- Konstante Verbesserung des Codes
- User müssen sich mit ins Entwicklungsteam einbringen
- Programmierung immer zu zweit (Pair-Programming)
- Programm für Programm-Tests schreiben
Spiralförmige Entwicklung
- Der Entwicklungsprozess ist eine Spirale, kein “Prozess”
- Jeder “Kringel” ist eine Phase in einem Prozess
- Keine festgelegten Phasen wie “Spezifikation”, es wird gemacht was gebraucht wird
- Risiken werden abgeschätzt
Spiralmodellsektoren
Zielfestlegung
Risikoabschätzung und Reduktion
Zielfestlegung
- Ziele für die aktuelle Phase werden bestimmt
- Rahmenbedingungen geklärt
- Risiken werden aufgelistet
Risikoabschätzung und Reduktion
- Risiken werden analysiert und minimiert
- Prototyp bau möglich
Spiralmodellsektoren
Entwicklung und Validierung
Planung
Entwicklung und Validierung
- je nach Art der Risiken wird ein passendes Entwicklungsmodell ausgewählt (z.B. Wasserfallmodell)
Planung
- Projekt wird überprüft und die nächste Phase der Spirale wird geplant
Prozess Wiederholung (iteration)
- Systemanforderungen entwickeln sich immer (weiter) während des Projektes
- in großen Projekten werden vorherige Stufen des Projektes nochmals überarbeitet
- Iteration kann auf jedes “generic Process model” abgewandt werden
Es gibt zwei Herangehensweisen
- Inkrementelle Auslieferung
- Spiralförmige Entwicklung