Inkrementelles Vorgehensmodell

Inkrementelles Vorgehensmodell
Ein iteratives Entwicklungsmodell

Das inkrementelle Vorgehensmodell beschreibt einen Prozess der kontinuierlichen Verbesserung, welcher häufig in kleinen oder sogar kleinsten Schritten vollzogen wird. Viele freie Projekte und Wikis arbeiten nach diesem Prinzip.

Inhaltsverzeichnis

Besonderheiten

Bei der inkrementellen Verbesserung steht der Endzustand in der Regel nicht fest. Das Projekt wächst organisch.

Inkrementelles Vorgehensmodell in der Softwareentwicklung

Iterative und Inkrementelle Entwicklung ist ein zyklischer Software Entwicklungsprozess, der inzwischen auch in anderen Projektbereichen erfolgreich eingesetzt wird. Der Begriff „iterative Entwicklung“ wird meistens mit Referenz auf den kombinierten Ansatz verwendet.

Definition von Inkrementell und Iterativ

Inkrementelle Entwicklung ist eine Strategie zur Termin- und Ablaufplanung, in der die verschiedenen Teile des Systems zu unterschiedlichen Zeiten und mit verschiedenen Geschwindigkeiten entwickelt und umgehend im Gesamtsystem integriert werden. Das Gegenbild ist eine gleichzeitige, sog. Big-Bang-Integration aller Teilsysteme zum Abschluss des Projekts.

Iterative Entwicklung ist eine Strategie zur Überarbeitungsplanung, die Zeit für laufende Revision und Verbesserung von vorhandenen Teilen des Systems vorsieht. Sie setzt eine inkrementelle Entwicklung nicht voraus, passt aber sehr gut zu ihr. Ein Unterschied ist, dass das Ergebnis eines inkrementellen Arbeitsschritts nicht notwendigerweise Gegenstand weiterer Überarbeitung ist, noch dienen Ergebnisse aus Tests und Benutzerreaktionen als Vorgabe für nachfolgende Arbeitsschritte. Das Ergebnis einer Iteration hingegen wird auf notwendige Änderungen untersucht, vor allem hinsichtlich einer Anpassung der Ziele späterer Iterationen.

Der Grundgedanke hinter iterativer Überarbeitung ist es, ein Softwaresystem dergestalt schrittweise zu entwickeln, dass das Projektteam in die Lage versetzt wird, Erfahrungen aus vorangegangenen Entwicklungsschritten unmittelbar zu nutzen. Erfahrungen werden gezielt sowohl während der Entwicklung als auch aus der Verwendung des bereits abgeschlossenen Teils des Systems gewonnen.

Die wesentlichen Schritte im Prozess sind

  • mit einer einfachen und ausbaufähigen Implementierung einer definierten Untermenge der zu diesem Zeitpunkt bekannten Systemanforderungen anzufangen.
  • schrittweise mit zunehmender Kenntnis der sinnvollen Systemanforderungen die sich entwickelnden Versionen bis zur vollständigen Implementierung des Systems auszubauen
  • bei jeder Iteration den Entwurf anzupassen - wobei hier zwischen Iterationen zur Implementierung neuer Funktionen und Iterationen zur Verbesserung der Systemarchitektur (Refactoring) zu unterscheiden ist

Die Prozedur selbst besteht aus einem Initialisierungsschritt, einem Iterationsschritt, und der Projektkontrollliste.

  • Der Initialisierungsschritt schafft eine Basisversion des Systems mit dem Ziel, ein Produkt zu schaffen, auf das der Benutzer reagieren kann. Es sollte eine Stichprobe wesentlicher Gesichtspunkte des Problems abdecken und eine Lösung bieten, die leicht verstanden und umgesetzt werden kann.
  • Für die Steuerung des Iterationsprozesses wird eine Projektkontrollliste geführt, in der alle bekannten ausstehenden Aufgaben aufgezeichnet werden. Sie beinhaltet Posten wie z.B. die Implementation neuer Features und den Neuentwurf bestehender Systemteile. Die Kontrollliste wird anhand der Ergebnisse der Analysephasen ständig überarbeitet.
  • Jede Iteration beinhaltet die Umsetzung eines Postens oder einer definierten Gruppe von Posten aus der Projektkontrollliste und die Analyse der aktuellen Version des Systems. Bei der Umsetzung jedes Iterationsschritts ist das Ziel Einfachheit, Überschaubarkeit und Modularität, ob unmittelbar oder als Posten auf der Kontrollliste. Die Analyse einer Iteration beruht auf Benutzerfeedback und Programmanalyseverfahren. Sie untersucht die Struktur, Modularität, Benutzbarkeit, Zuverlässigkeit, Wirksamkeit und Zielerreichung. Anhand der Ergebnisse wird die Projektkontrollliste angepasst.

Phasen – Richtlinien für die Zeitplanung

Iterative Entwicklung.

Zum Verständnis des Diagramms ist es sehr wichtig zu berücksichtigen, dass die Phasenaufteilung informell betrachtet werden muss. Teile des Systems werden umgehend im Gesamtsystem integriert (ein Deployment findet in jeder Iteration statt). Die Übergangsphase (Transition) überführt das System Endgültig in den Produktiveinsatz. Der schräge Pfeil stellt die sequentielle Abarbeitung der Schritte dar und verdeutlicht dass Architekten und Analysten im Verhältnis zu den Entwicklern immer einen Schritt voraus arbeiten.

Iterative Entwicklung teilt den Geschäftswert, also die Systemfunktionalität, in Iterationen ein. Bei jeder Iteration wird ein Teilabschnitt der Systemfunktionalität durch interdisziplinäre Arbeit fertig gestellt – beginnend mit dem Entwurf/Anforderungen bis hin zum Testen und der Inbetriebnahme. Der vereinheitlichte Prozess gruppiert die Iterationen in Phasen: Einleitung, Ausarbeitung, Konstruktion, und Übergang. Diese Phasen sind informell anzusehen.

  • Die Einleitungsphase ermittelt Projektrahmen, Risikofaktoren und (funktionelle wie nicht-funktionelle) Anforderungen in geringer aber ausreichender Tiefe, um eine grobe Schätzung des Arbeitsaufwandes zu erlauben.
  • Die Ausarbeitungsphase liefert eine funktionsfähige Architektur, die die höchsten Risikofaktoren entschärft und die nicht-funktionellen Anforderungen erfüllt.
  • Die Konstruktionsphase füllt die Architektur schrittweise mit produktionsreifem Code aus, der durch Analyse, Entwurf, Umsetzung und Prüfung der funktionellen Anforderungen entsteht.
  • Die Übergangsphase überführt das System endgültig in den Produktiveinsatz.

Jeder dieser Phasen kann auf eine oder mehrere Iterationen aufgeteilt sein, die meistens eher zeitlich und nicht durch die Umsetzung von Funktionsmerkmalen abgegrenzt sind. Architekten und Analysten arbeiten im Verhältnis zu den Entwicklern immer einen Schritt voraus.

Ein iteratives Vorgehensmodell zur inkrementellen Verbesserung wird durch die Vorgehensweise beim Spiralmodell beschrieben.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Extreme programming — (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die Extremprogrammierung… …   Deutsch Wikipedia

  • Extremprogrammierung — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • Xtreme Programming — Extreme Programming (XP), auch Extremprogrammierung, ist eine agile Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Die… …   Deutsch Wikipedia

  • Modellgetriebene Architektur — (MDA; engl. Model Driven Architecture, MDA) bezeichnet einen Modellgetriebenen Softwareentwicklungsansatz, der auf einer klaren Trennung von Funktionalität und Technik beruht. Inhaltsverzeichnis 1 Ursprung und Abgrenzung zum CASE Ansatz 2 Ziele 2 …   Deutsch Wikipedia

  • Inkrementell — („schrittweise“) steht für: Inkrementelles Vorgehensmodell in der Softwareentwicklung Inkrement, Erhöhung des Wertes einer Variablen Siehe auch:  Wiktionary: inkrementell – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen …   Deutsch Wikipedia

  • Model Driven Architecture — Modellgetriebene Architektur (MDA; engl. Model Driven Architecture, MDA) bezeichnet einen modellgetriebenen Softwareentwicklungsansatz, der auf einer klaren Trennung von Funktionalität und Technik beruht. Inhaltsverzeichnis 1 Abgrenzung zu CASE… …   Deutsch Wikipedia

  • Rollierende Planung — Die rollierende Planung (auch Rollende Planung, engl. Rolling Wave Planning) bezeichnet eine periodenorientierte Planungsform, bei der nach bestimmten Zeitintervallen eine bereits erfolgte Planung aktualisiert, konkretisiert und überarbeitet wird …   Deutsch Wikipedia

  • Ökologische Modernisierung — ist ein analytischer und strategischer Ansatz des Umwelthandelns in Staat, Wirtschaft und Gesellschaft. Ökologische Modernisierung zielt auf eine dauerhaft tragfähige Ko Evolution von Mensch und Natur, was eine aktive Umweltnutzung und somit auch …   Deutsch Wikipedia

  • Extreme Programming — (XP), auch Extremprogrammierung, ist eine Methode, die das Lösen einer Programmieraufgabe in den Vordergrund der Softwareentwicklung stellt und dabei einem formalisierten Vorgehen geringere Bedeutung zumisst. Diese Vorgehensweise definiert ein… …   Deutsch Wikipedia

  • Barry Boehm — 2006 Barry W. Boehm (* 16. Mai 1935 in Santa Monica, Kalifornien) ist ein US amerikanischer Softwareingenieur, der durch seine Kostenbetrachtungen von großen Softwareprojekten bekannt wurde. Er sah Software als den primären Kostenfaktor für… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”