Vorgehensmodelle (Prozesse)

Vorgehensmodelle / Prozessmodelle

Software Life-Cycle → Vorgehensmodell

Fokus von Vorgehensmodellen der technischen Seite

Beginn : Definition von Anforderungen

Ende : Inbetriebnahme bei Kunden

Vorgehensmodelle (Softwareprozesse)

Strategien für Schritte in Life-Cycle. (Basieren auf Software Life-Cycle Prozess)

Rahmenprozess für Projektablauf

Bestimmt wann welches Produkt von wem in welchem Fertigstellungsgrad und auf welchem Qualitätsniveau vorliegen muss.

konkrete standardisierte Strategie, kann abgeändert werden (tailoring)

Entscheidungspunkte

(zb Meilensteine) = Zeitpunkt an dem eine Entscheidung getroffen wird.

An Entscheidungspunkten müssen definierte Produkte vorliegen.

Projektdurchführungsstrategie

eine definierte Abfolge von Entscheidungspunkten.

Sie definieren die Reihenfolge der im Projekt zu erreichenden Projektfortschrittsstufen.

Klassisch / Sequentiell (traditionell)

Wasserfallmodell

Umsetzung des Life-Cycles

Fokus auf Dokumentation

Strikt sequenzieller Projektablauf.

Vorherige Phase muss vollständig abgeschlossen und freigegeben (Validierung und Verifikation) sein. → Wenn nicht erreicht, zurückspringen.

Vorteile

Backtracking zu früheren Entwicklungsphasen.

Weite Verbreitung und hoher Bekanntheitsgrad.

Nachteile

Reaktion auf spätere Änderungen schwer

Software und Prototyp für Kunden steht spät zu verfügung

keine parallele Entwicklung.

Starke Auswirkung von Fehlern aus frühen Phasen.

Anwendung

Für vollständige, stabile Anforderungen, kleinen Projekten.

kleine Entwicklungsteams

Gute Kenntnis erforderlich (No-Surprise Software)

Alle Anforderungen / Erwartungen müssen von Anfang an komplett klar sein

V-Modell (Grundkonzept)

Für vollständige, stabile Anforderungen.

Im öffentlichen Bereich.

4 Submodelle: Systemerstellung, Qualitätssicherung, Konfigurationsmanagement, Projektmanagement

Ziel:

  • Gesamtaufwand / Kostenreduktion
  • Kürzere Einarbeitungszeiten für neue Mitarbeiter im Projekt
  • Einfachere Kontrolle / vergleich des Projektfortschritts (auch für den Auftraggeber)

Teilt auf in Realisierungs und Test-Phase.

  1. Analytische Phasen

    Immer detailiertere Spezifikation

  1. Synthetische Phasen

    Immer weiter Implementiert und getestet

Sichten in analytischen und synthetischen Phasen

Anwendersicht Kundensicht, Geschäftsprozesse, Akzeptanz und Abnahmetests

Architektursicht Grundlegendes Architektur Design + Realisierug, Integrationstests

Implementierungssicht konkret spezifizierte Komponenten, oft Test-Driven-Developement

Qualitätssicherung

Ist integriert nach jeder Phase

Reviews, Inspektionen

Vorteile

Spezifikationsphase \lrarr Realisierung und Testen.

Verschiedene Abstraktionslevels.

Fehlerbehandlung in frühen Phasen mit Reviews

\cdot Frühe Fehlererkennung in analytischen Phasen

\cdot Gute Planung

Basiskonzept für V-Modell 97 und V-Modell XT.

Nachteile

Wie Wasserfallmodell

Klare System-Anforderungen von Anfang an verlangt

Alle Anforderungen / Erwartungen müssen von Anfang an komplett klar sein

Viel Aufwand für Dokumentationen

Anwendungsbereich

für kleine Projekte zu detailliert, für große Projekte mit hohem Qualitätsanspruch geeignet (speziell Embedded Systems) an die man mehrere Jahre entwickelt

Große Projekte im öffentlichen Bereich

V-Modell XT

Baut auf V-Modell und V-Modell 97 auf.

In DE im öffentlichen Bereich verpflichtend.

Modular, flexibel (kann angepasst werden durch Tailoring ).

Für unklare, sich ändernde Anforderungen auch geeignet.

Ziel: Projektrisiko minimieren, Anpassbarkeit, Anwendbarkeit, Skalierbarkeit und Änder- und Erweiterbarkeit des V-Modells.

21 verschiedene Elemente /Vorgehensbausteine

a) Kernelemente

b) Optionale Elemente

Kapseln mit Schnittstellen:

\cdot Produkte

Ein Produkt kann aus vielen Subprodukten stehen die voneinander abhängig sein können (dependency).

\cdot Produktergebnisse

\cdot zugeordnete Aktivitäten

Für einen Produkt gibt es genau eine Aktivität (die widerum aus anderen Subaktivitäten bestehen kann)

\cdot verantwortliche Rollen

Für einen Produkt gibt es genau einen Verantwortlichen.

Produkt und Aktivität können von anderen Produkte und Aktivitäten abhängig sein.

Es gibt Abhängigkeiten zwischen den Bausteinen (steht in der V-Modell XT Dokumentation).

Projektgegenstand

Inhalt des Projektes (bspws Hardware-Systeme, Software-Systeme, komplexe Systeme, eingebettete Systeme und Systemintegration im V-Modell XT)

Projekttypen

  1. Systementwicklungsprojekt des Auftraggebers AG

    Auftraggeber-Sicht

  1. Systementwicklungsprojekt des Auftragnehmers AN

    Auftragnehmer-Sicht

  1. Systementwicklungsprojekt des AN mit AG in derstelben Organisation

    InHouse-Projekt , keine externe Kommunikation

  1. Einführung und Pflege eines organisationsspezifischen Vorgehensmodells

    Warten und Verbessern

Kern und optionale Bausteine nach Projekttyp

Projekttypen vs. Projektgegenstand

Projekttypen eingeteilt nach:

  1. Gegenstand: z.B. Hardwaresystem, Softwaresystem, Komplexes System
  1. Rollen: z.B. Auftraggeber / Auftragnehmerprojekte

Gesamte Strategie inkl. Entscheidungspunkte (Projektdurchführung)

Projektdurchführungsstrategie: Aneinander-Reihung der Bausteine → Definiert Ablauf.

Unterschiedliche Arten an Strategien möglich (auch inkrementell und agil).

Beispiel:

Tools

Kann man an unterschiedliche Projektgegebenheiten mit Open Source tools anpassen:

  • Auswahl von benötigten Vorgehensbausteinen
  • passende Projektdurchführungsstrategie
  • Ergebnis: maßgefertigte Vorgehensweise + Templates für die Projektdokumentation.

Iterativ / Inkrementell (traditionell)

Schrittweises Vorgehen.

Sehr lange, sehr große, Komplexe Systeme, unklare / ändernde Anforderungen, schnell erste verwendbare Protoypen verlangt.

wenn man schnell schon etwas "greifbares" haben möchte

Integration findet kontinuierlich statt

kleine Etappen / Meilensteine die gemeinsam geplant werden, Planung einfacher

Kontinuierlich hohe Qualität

Ziel:

Rasch mit Teillösung auf den Markt kommen - dann ausbauen.

Gleichzeitig kann an darauf folgenden Versionen (von mehreren Teams) geplant / gearbeitet werden.

Architektur muss stabil sein

Prioritisierung, Anordnung nach Relevanz für Kunde.

Spiralmodell

Inkrementelles Vorgehen.

Schritte in jeder Iteration:

  1. Definition: Ziele, Alternativen
  1. Risiko Einschätzung
  1. Entwicklung, Testen
  1. Feedback zur aktuellen Lösung (Review)
  1. Planung von nächster Iteration

Rational Unified Process RUP

Inkrementell, iterativ, phasenorientiert.

Im kommerziellen Umfeld.

UML in jeder Phase.

Integriertes Anforderungsmanagement und Änderungsmanagement (supporting workflow).

Phasen mit Meilensteinen

Eine Phase kann mehrere Iterationen haben (Von Projektmanager festgelegt).

Aktivität + Verantwortlicher = Artifakt

Jede Phase / Aktivität von einem Verantwortlichen erzeugt ein Produkt / Artefakt → überprüft, freigegeben.

Wenn Überprüfung nicht bestanden, weitere Iteration.

  1. Inception (Beginn)

    Anforderungen (Geschäftsfälle / Business Cases), Rahmenbedingungen definiert.

  1. Elaboration (Entwurf + Design)

    Spezifikation aus Anforderungen.

  1. Construction (Implementierung)

    Komponenten umgesetzt.

  1. Transition (Auslieferung)

    Auslieferung an Kunden, Product release.

Disziplinen und Workflows

9 Disziplinen die durch alle Phasen geführt werden

6 Engineering Workflows

3 Supporting Workflows

Engineering Workflows

  1. Business Modeling: Geschäftsfallmodellierung mit UML
  1. Requirements: Anforderungen genau erheben, Verfeinerung der Use-Cases
  1. Analysis & Design: Erstellen wichtige Dokumente / Artefakte: Architektur, Design, Test-Dokumente
  1. Implementation
  1. Test
  1. Deployment: Fertigstellung, Auslieferung

Supporting Workflows

  1. Configuration and Change Management: Dokumentenversionierung mit Version Control System
  1. Project Management
  1. Environment: Definiert Ressourcen, Budget und Werkzeuge für Entwickler

Vorteile

Real-world Szenarien.

Werkzeugunterstützung (Rational XDE, IBM).

Vordefinierte Liste mit erforderlichen Artefakten.

Nachteile

Komplexität, Dokumentationsaufwand

Anwendungsbereich

Grosse Projekte die einen Überblick brauchen (inkl. Deployment).

Agil

Bisher mangelhafte Flexibilität, unnötig hoher Dokumentationsaufwand, fehlende Nähe zum Kunden, Kunde nicht mit in Entwicklung einbezogen.

SCRUM

Art von agiler Entwicklung.

Ziel: kleine effiziente Teams bilden.

Gesamte Dauer meistens 2-4 Wochen

Sprint meistens 1 Tag → Keine Unterbrechungen, keine Änderungen zugelassen

Kurze tägliche Besprechungen Daily Scrums , 15 Minuten:

  1. Was wurde seit dem letzten meeting erledigt
  1. Welche Probleme sind aufgetreten während der Entwicklung
  1. Was ist das Ziel bis zum nächsten Meeting

Reagiert auf andauernd ändernde Anforderungen im Projektablauf. Teil-Produkte stehen dem Kunden frühzeitig zur Verfügung.

Ein Team zuständig für Einheit / Produkt / Teilprodukt.

Begriffe

Temporal structure = daily Scrum Meeting + Review + Retrospective.

Backlog: alle Arbeitspakete, die in nächster Zeit umgesetzt werden müssen (sowohl klar definierte als auch vage Anforderungen): Produkt vs. Sprint Backlog.

Priorisierte Projektergebnisse (Backlog Items).

Daily-Scrum: Täglicher Arbeitsauftrag

Das Sprint-Team darf beim Arbeiten nicht gestört werden.

Scrum Team: Funktionsübergreifendes Team, zuständig für den Sprint Backlog.

Burndown Chart: Visuelle Darstellung des Projektfortschritts.

Phasen

  1. Pregame

    Anforderungen → Architektur und Planung

    Alle Eigenschaften und Features gemeinsam mit Kunden → Product Backlog → Prioritisieren

    (alle zukünftigen Änderungen passieren im Product Backlog)

  1. Sprint

    Kleine Menge an features aus product backlog → spring backlog (machbare Menge)

  1. Postgame

    Auslieferung

Sprint

Team darf nicht gestört werden.

Wiederholung von:

  1. Develop and Test Implementierung von neuer Software
  1. Wrap Integration
  1. Review Review des integrierten Produkts
  1. Adjust Anpassung, Verbesserung

Methoden / Tools

\cdot Burndown charts

\cdot Test-Driven Developement

\cdot Pair Programming

\cdot Reviews

Vorteile:

• Wenige Regeln, leicht verständlich. • Hohe Effektivität durch Selbstorganisation. • Adaptiv/Tolerant gegenüber Anforderungsänderungen und neu Priorisierung. • Hohe Transparenz durch regelmäßige Meetings und Backlogs. • Geringer Administrations- und Dokumentationsaufwand.

Nachteile:

• Kein Gesamtüberblick über die komplette Projektstrecke. • Hoher Kommunikations- und Abstimmungsaufwand. • Erschwerte Koordination mehrerer Entwicklungsteam bei Großprojekten. • Potentielle Verunsicherungen aufgrund fehlender Zuständigkeiten und Hierarchien. • Potentielle Unvereinbarkeit mit bestehenden Unternehmensstrukturen.

eXtreme Programming XP

Anwendung: Projekte mit schnell wechselnden oder vagen Anforderungen, mit kleinen Entwicklergruppen (bis 12 Personen), zeitkritische Projekte

Eher explorativer Ansatz

Prozess-Tailoring / Customization: Anpassung der Modelle

Modelle müssen dem Projekt angepasst werden.

Nicht alle Schritte aus dem Life-Cycle können ausgeführt werden.

\cdot Schritte Zusammenlegen oder auslassen

Anpassung an

  • Organisation mit eigener Domäne (= Fachgebiet)

    zb Wenn eine Organisation öfter Web Applikationen macht.

    Kann Best-Practices in der Domäne nutzen - Process Pattern

  • Projekt

Reihenfolge

  1. Process Customization: Organisation + Domäne
  1. Process Tailoring: Projekt

Prozess Customization (Standardisierung)

Verallgemeinerte Form des „Tailorings“.

  • unternehmensspezifische Standards (für eher große Unternehmen) → Domänenabhängige Anpassungen, z.B. für Produktionsautomatisierung.
  • ähnliche Projekte (z.B. Webapplikationen).

Dient dann als Grundlage für Projektspezifisches Tailoring.

Prozess Tailoring (Prozess auf das jeweilige Projekt anpassen

Angepasst an konkrete Projekte (Projektgröße, Projekttyp und Anwendungsdomäne)

Braucht erfahrene Projektleiter und Toolunterstützung (z.B. V-Modell XT Projektassistent).