home  |  suche  |  kontakt/johner  |  institut 
studierende  |  tech-docs  |  mindmailer 

Software-Entwicklungsprozesse dienen zur Steuerung einer Softwareentwicklung von der Konzeption bis zum Einsatz im Echtbetrieb. Die wichtigsten Software-Entwicklungsprozesse werden nachfolgend beschrieben.

Wasserfall-Modell

  • auf einfache Projekte anwendbar
  • nur Anwendbar wenn sich Anforderungen in Planungsphase präzise beschreiben lassen
  • verschiedene Variante von Wasserfallmodellen verfügbar
  • klare Abgrenzung der Phasen
  • einfache Möglichkeiten der Planung und Kontrolle
  • bei stabilen Anforderungen und klarer Abschätzung von Kosten und Umfang sehr effektiv

Das V-Modell

 

Das V-Modell ist ein international anerkannter Entwicklungsstandard für IT-Systeme, der einheitlich und verbindlich festlegt, was zu tun ist, wie die Aufgaben durchzuführen sind und womit dies zu geschehen hat.

  • ursprünglich vom Bundesministerium für Verteidigung entwickelt
  • Es gibt 2 Versionen: V-Modell 97 und die weiterentwickelt Version V-Modell XT.

  • Beim V-Modell XT kommt das Tailoring zum Einsatz, es bedeutet: Das Modell  besteht aus Vorgehensbausteinen, aus denen das konkrete Vorgehensmodell eines Projekts zusammengestellt wird.

  • Geeignet für staatliche Projekte, von mittlerer bis großer Größe.

  • Es setzt meist statische Anforderungen voraus.

Agile (iterative,inkrementelle) Verfahren

  • soll den Entwicklungsprozess flexibler und schlanker machen
  • Fokussierung auf zu erreichende Ziele
  • Soll mehr auf Probleme während der Entwicklung eingehen (technisch + sozial)
  • Erste Ansätze von Agile Verfahren bereits 1990
  • Reine Entwurfsphase wird versucht auf ein Mindestmaß zu reduzieren
  • Ziel: So früh wie möglich zu ausführbarer Software gelangen
  • Agile Prozesse sind zum Beispiel Scrum oder Xtreme Programming

Scrum:

  • Entwickelt von Ken Schwaber
  • Es gibt verschieden Rollen wie Product Owner, Team und Scrum Master. Alle sind am Entwicklungsprozess beteiligt.
  • Es gibt verschiedenen Scrum-Artefakte wie z. Bsp.: Product Backlog (enthält alle zu erledigenden Tasks, kann laufend ergänzt werden), Sprint Backlog (enthält die Tasks welche in einem Sprint erledigt werden müssen) und das Burndown Chart (Diagramm der abgearbeitenden Tasks bzw. Stunden)
  • Ein Sprint ist eine Iteration in der ein gewisser Teil aller zu erledigenden Tasks erledigt wird. Die Iterationsdauer ist variabel. Scrum schlägt 30 Tage hierfür vor. Der Product Owner entscheidet mit welcher Aufgaben zuerst erledigt werden sollen. Am Ende eines Sprints gibt es ein Meeting, an dem erledigte Aufgaben vorgestellt werden, und Probleme etc. der Iteration besprochen werden.
  • Daily Scrum ist ein tägliches Meeting aller Teammitglieder inkl. Scrum Master. Der Scrum Master moderiert das Meeting. Es sollte max. 15 Minuten pro Tag gehen. Jeder Teammitglied, sagt woran es gerade arbeitet hat, und welche Aufgaben es bis zum nächste Tag erledigen wird. Darüber hinaus können Probleme bei einer Aufgabe diskutiert werden.
  • Scrum eignet sich vor allem für kleine bis mittelgroße Projekte
  • Es ist ein iterativer Entwicklungsprozess. D.h. Entwicklung, Test etc. wechseln sich  im 30 Tage-Rhythmus ab. Aufgaben die nicht erledigt werden konnten, werden zurück in das Product Backlog geschoben.

Für weiterführende Informationen zu Scrum:

http://www.scrumalliance.org/

Rational Unified Process (RUP)

  • Von der Firma Rational entwickelt (gehört seit 2002 zu IBM)
  • Wurde möglich nachdem Grady Booch, Ivar Jacobson und James Rumbaugh sich auf einheitliche Notation geeignet hatten.
  • RUP ist ein Metamodell für Vorgehensmodelle zur Softwareentwicklung.
  • RUP wurde parallel zu UML von Booch, Jacobson und Rumbaugh entwickelt.
  • RUP basiert auf 3 Prinzipien: Anwendungsfälle, Architektur im Zentrum der Planung,inkrementelles und iteratives Vorgehen.
  • RUP legt statische Aspekte, welche grundlegende Arbeitschritte umfasst:  Geschäftsprozessmodellierung, Anforderungsanalyse, Analyse & Design, Implementierung, Test, Auslieferung.
  • Bei den dynamischen Aspekten (Phasen) kommen die oben genannten Arbeitschritte in unterschiedlicher Intensität zum Einsatz. Diese sind: Konzeptionsphase, Entwurfsphase, Konstruktionsphase, Übergabephase
  • Die dynamischen Aspekte sind in Iterationen unterteilt, d.h. RUP ist wie die agilen Verfahren ein iteratives Verfahren.

Unterschied zwischen vertikalen und horizontalen Prototypen

Nach der Anforderungsanalyse folgt in der Regel der Entwurf eines Software-Prototypen.

Man unterscheidet grundsätzlich zwischen horizontalen Prototypen, welche sich auf nur einer Schicht wie etwa der Präsentationsschicht bewegen, und vertikalen Prototypen, deren Entwurf sich über mehrere Schichten erstreckt.

 

Tabellarischer Überblick über die unterschiedlichen Modelle