Einführung zu Vorgehensmodellen
Definition Vorgehensmodell:
Vereinfachte Beschreibung eines Entwicklungs- prozesses, welcher von
einer bestimmten Perspektive aus dargestellt wird.
Vorgehensmodelle umfassen:
- Tätigkeiten des Entwicklungsprozesses
- Produkte, welche entstehen
- Rollen von Personen
Wozu dienen Vorgehensmodelle?
- Entwicklungsprozesse werden transparenter und somit
- planbar
- nachvollziehbar
- kontrollierbar
- lehrbar
für das Produkt bedeutet das
- höhere Qualität
- effizientere Produktion
- bessere Wartbarkeit und somit
- schnellere Fehlerbehebung
- erhöhte Änderungsfreundlichkeit
Vorstellung allgemeiner Vorgehensmodelle
- Phasenmodell
- Wasserfall-Modell
- Evolutionäres Modell
- Wiederverwendungsorientierte Entwicklung
- Inkrementelle Entwicklung
- Extreme Programming
- Spiralmodell
- Unified Process
- V-Modell
1. Phasenmodell
Vorteile |
Nachteile |
Vielseitiges Modell |
Streng sequenziell, keine Iterationen |
Zahlreiche Modellvarianten |
Zeitanteil der einzelnen Phasen fest |
|
Modell entspricht nicht der Realität |
2.
Wasserfall-Modell

Besonderheiten:
- Weiterentwicklung des Phasenmodells
- Weit verbreitetes Vorgehensmodell
- Jede Phase muss vollständig durchlaufen werden
- Das Modell ist streng sequentiell. Nächste Phase beginnt erst nach Abschluss der vorigen Phase
- Iterationen sind nur zwischen zwei aufeinanderfolgenden Phasen erlaubt
- Modell ist dokumentengetrieben
- Aus jeder Phase entstehen Dokumente, die abgenommen werden
Achtung:
In der Praxis sind Überlappungen der Phasen notwendig.
Vorteile |
Nachteile |
Einfach verständlich, kein großer
Schulungsaufwand notwendig |
Annahme, dass zu Beginn eine
abgeschlossene und korrekte Anforderungsdefinition
existiert, entspricht nicht der Realität |
Begrenzter Managementaufwand |
Lauffähige Version des Systems liegt
erst am Ende der Entwicklung vor |
Sehr strukturierter und
kontrollierbarer Prozessablauf |
Auftraggeber ist nur in der
Anforderungsdefinition mit eingebunden |
|
Nichteinhalten der Projektdauer führt
zu Abstrichen in den späten Phasen |
|
Tests werden nur am Ende des
Entwicklungszyklus vorgesehen |
3.
Evolutionäres Modell

Besonderheiten:
- Softwareentwicklungsprozess wird nicht als linearer Prozess betrachtet, sondern als Folge von Entwicklungszyklen
- Entwicklung verläuft über viele Versionen, bis ein angemessenes Produkt entstanden ist
- Entwicklung beginnt typischerweise mit einem Prototyp
Vorteile |
Nachteile |
Nähe zum Kunden während des
gesamten Entwicklungsprozesses |
Prozess ist nicht sichtbar |
Akzeptanz des Kunden wird durch
fortlaufende Berücksichtigung der
Wünsche verbessert |
Keine regelmäßigen
Zwischenversionen für die
Messung des Projektfortschritts |
|
Keine kosteneffiziente
Dokumentation möglich |
|
Systeme sind schlecht strukturiert |
|
Stetige Veränderungen führen zu
schlecht strukturierten Systemen |
|
Schlechte Eignung für große
Systeme mit langer Lebensdauer |
4.
Wiederverwendungsorientierte
Entwicklung

Besonderheiten:
- Basiert auf der systematischen Wiederverwendung, in der Systeme aus existierenden Komponenten zusammengebaut werden
- Dieser Ansatz wird immer wichtiger, bisher jedoch nur geringe Erfahrungen
Vorteile |
Nachteile |
Menge der zu entwickelnden Produkten
wird verringert |
Kompromisse bei den
Anforderungen sind unvermeidbar |
Kosten und Risiken werden
reduziert |
Kann zu Systemen führen, die
den Benutzerwünschen nicht gerecht werden |
|
Einfluss auf Teile der Produkte
geht verloren, da
Komponenten von Fremdfirma entwickelt werden |
5.
Inkrementelle Entwicklung

Besonderheiten:
- Die Systementwicklung wird in Schritte/Inkremente unterteilt
- Jeder Schritt realisiert einen Teil der geforderten Funktionalität
- Kundenanforderungen werden priorisiert und die
höchstpriorisierten Anforderungen in die frühen Schritte integriert
- Die Anforderungen eines Inkrements werden zu Beginn der Entwicklung dieses Inkrements eingefroren
- Anforderungen können somit kontinuierlich weiterentwickelt werden
Vorteile |
Nachteile |
Kundenwünsche können in jedem
Inkrement erfüllt und ausgeliefert
werden, somit ist die
Systemfunktionalität früher verfügbar |
Abbildung der Kundenbedürfnisse/Anforderungen auf einzelne
Inkremente ist schwierig |
Frühe Inkremente agieren als
Prototyp und helfen
Anforderungen für spätere Inkremente zu eruieren |
Ermittlung der Grundfunktionen für
das erste Inkrement ist schwierig |
Geringeres Risiko für Scheitern
des Gesamtprojekts |
|
Die höchstpriorisierten Funktionen werden
am intensivsten getestet |
|
Grundfunktionen = Funktionen, welche später von Teilsystemen
gebraucht werden.
6. eXtreme Programming (XP)

Besonderheiten:
- Leichtgewichtiges und flexibles Vorgehensmodell
- Weiterentwicklung der inkrementellen Entwicklung
- Basiert auf der Entwicklung und Auslieferung kleiner
Inkremente/Teilsysteme
- Zwei Forderungen motivierten die Entwicklung von XP
1. Develop for today
- Konzentration auf aktuelle Probleme
2. Do the simplest thing that could possible work
- Verwendung des einfachsten Entwurfs (Simple Design)
- Erfüllung der Anforderungen
- Redundanzfreiheit
7.
Spiralmodell

Besonderheiten:
- Risikogetriebenes Vorgehensmodell
- Oberstes Ziel: Minimierung des Risikos
- Ähnlichkeiten zu evolutionärem Modell
- Softwareprozess wird als iterativer Prozess verstanden und als Spirale dargestellt, statt einer Sequenz aus Aktivitäten mit Rückkopplung
- Jede Windung repräsentiert eine Projektphase
- Jede Windung ist in Segmente aufgeteilt
- Festlegung von Zielen, Alternativen und Randbedingungen
- Evaluierung der Alternativen, Erkennen und Reduzieren der Risiken
- Realisierung und Überprüfung des Zwischenprodukts
- Planung der Projektfortsetzung
Vorteile |
Nachteile |
Flexibles Modell |
Hoher Managementaufwand |
Periodische Überprüfung und erneute Festlegung des
Ablaufs in Abhängigkeit von
Risiken |
Risikomanagement ist nicht
weit verbreitet |
Integrierte Risikoabwägung |
Schlechte Eignung für kleine
und mittlere Projekte oder Wiederverwendung von Produkten |
Integration anderer
Vorgehensmodelle |
|
Betrachtung von Alternativen |
|
8.
Unified Process

Besonderheiten:
- Vorgehensmodell passend zur Unified Modeling Language (UML)
- Sehr mächtiges Prozessframework
- Baut auf den "Best Practices" der Softwareentwicklung auf
- Iterative Softwareentwicklung
- Anforderungsmanagement
- Verwendung komponentenbasierter Architekturen
- Visuelle Software-Modellierung (Standardnotation - UML)
- Prüfung der Softwarequalität
- Kontrolliertes Änderungsmanagement
- Unterstützung der "Best Practices" durch vordefiniertes
Framework von Methoden, Templates und Tools
- Unterscheidung zwischen Projektphasen und Arbeitsschritten/Workflows
- Projektphasen werden zusätzlich in Iterationen unterteilt
Phasen des Unified Process
- Beginn ("Inception")
- Entwicklung der Vision des Endprodukts
- Entwicklung einer Architekturidee
- Abschätzung von Risiken
- Ausarbeitung ("Elaboration")
- Festlegung der späteren Nutzung im Detail
- Festlegung der Systemarchitektur
- Realisierung der wichtigsten Funktionalitäten
- Genaue Planung der Kosten
- Konstruktion ("Construction")
- Realisierung des Systems
- Alpha-Release
- Umsetzung ("Transition")
- Übergang zu Beta-Release
- Schulung von Benutzern
- Fehler und Unzulänglichkeiten nachbessern
Vorteile und Nutzen von Standards bei
standardisierten Vorgehensweise
- Standards sind eine notwendige Voraussetzung für eine einheitliche Verwendung
- Durch standardisiertes Vorgehen wird die Vollständigkeit der zu liefernden Ergebnisse am ehesten gewährleistet
- Definierte Zwischenergebnisse ermöglichen frühzeitige Validierung und Verifikation
- Standardisierter Einsatz von Notationen erleichtert die Lesbarkeit, Wartbarkeit sowie die Codegenerierung
- Das standardisierte Vorgehen macht die Kalkulation des Aufwands transparenter
- Standards erlauben eine globale Entwicklung. Sie helfen beim Outsourcing und bei der Auftragsbearbeitung
9.
V-Modell

Besonderheiten:
- Entwicklungsmodell für ein Gesamtsystem
- Einheitlicher Standard für den gesamten öffentlichen Bereich
- ISO-Standard: Militär- und Bundesbehörden
- Anspruch auf Allgemeingültigkeit
- Definiert 25 Rollen für Managementaufgaben
- Zurechtschneiden auf konkrete Anforderungen (Tailoring)
- Aufteilung in 4 Submodelle
- System-Erstellung (SE)
- Qualitätssicherung (QS)
- Konfigurationsmanagement (KM)
- Projektmanagement (PM)
V-Modell - Submodell Systemerstellung

Besonderheiten:
- Ähnlichkeit zum Wasserfallmodell
- Integration von Validierung/Verifikation
- Formale Kriterien zur Abnahme von Teilprodukten
Vorteile |
Nachteile |
Umfassendes Modell |
Zu allgemein und generisch |
Integriert viele Aspekte des
Entwicklungsprozesses |
Nicht für kleine Projekte
geeignet |
Erweiterbar und anpassbar |
Benötigt unbedingt gute
CASE-Tools in der Softwareentwicklung |
Unter dem Begriff CASE versteht man Computerprogramme, welche bei
der Entwicklung von Software unter anderem folgende Aufgaben
übernehmen können:
- Planung und berwachung aller erforderlichen Teilschritte
- Unterstützung der Entwurfsphase durch geeignete Methoden
- Automatische Umsetzung der Entwürfe in die Datenbank,
einschliesslich Prüfung auf vollständigkeit
- Automatische Umsetzung der Entwürfe in lauffähige Programme
- Automatisches Erstellen von Datenstrukturen, Bidschirmmasken,..
Die Erfahrungen zeigen allerdings, dass CASE-Tools in grösseren
Projekten zwar hilfreich sind, aber das "Programmieren auf
Knopfdruck" in der Realität eher schwierig zu erreichen ist.
Neue Version des V-Modells: V-Modell XT
- Stärkere Modularisierung
- Integration agiler und inkrementeller Ansätze
Dreistufiges Standardisierungskonzept
1. Vorgehensweise "Was ist zu tun"
- Tätigkeiten in der Softwareentwicklung
- Ergebnisse
- Inhalte der Ergebnisse
2. Methoden "Wie ist etwas zu tun"
- Methodenunterstützung der Tätigkeiten
- Darstellungsmittel für Ergebnisse
3. Werkzeuganforderungen "Womit ist etwas zu tun"
- Funktionale Eigenschaften an Softwarewerkzeugen
zurück zum Beitragsanfang
Markieren Sie den Inhalt der Textbox und kopieren Sie ihn in Ihre Website