230 likes | 808 Views
Software-Lebenszyklus. Inhalt Vorgehensmodell/Phasenplan Wasserfallmodell WAS-Beschreibung WIE-Beschreibung Weitere Phasenmodelle: Spiral-Modell, V-Modell, RUP Extreme Programming SW-Qualitätssicherung (SW-QS) Qualitätskosten (aus Projektsicht) Konstruktive/analytische QS
E N D
Software-Lebenszyklus Inhalt • Vorgehensmodell/Phasenplan • Wasserfallmodell • WAS-Beschreibung • WIE-Beschreibung • Weitere Phasenmodelle: • Spiral-Modell, V-Modell, RUP • Extreme Programming • SW-Qualitätssicherung (SW-QS) • Qualitätskosten (aus Projektsicht) • Konstruktive/analytische QS • Qualitätsmodell / Qualitätsmerkmale • Review • Beispiel: Qualitätsmodell für Pflegbarkeit Christoph Riewerts
SW-LebenszyklusPhasenmodell Wie heißt dieses Vorgehensmodell? 2 Entwicklungsphasen zur Beschreibung, was realisiert werden soll. Studie Analyse Entwurf 2 Entwicklungsphasen zur Beschreibung, wie das Produkt realisiert werden soll Implementierung Betrieb
SW-LebenszyklusPhasenmodell Tätigkeiten in der Phase „Studie“ (Projekt-Vorphase): • Definition der Projektziele • Situationsanalyse (grobe Darstellung) • Darstellung des SOLL-Ablaufs • Gegenüberstellung der SOLL/IST-Abläufe • Vorstellung der Projektfinanzierung • Terminvorstellungen für den Projektablauf Tätigkeiten in der Phase „Analyse“: • Systemabgrenzung • Zielsetzung • Zustandsanalyse (fein) • Analyse der Datenflüsse und Funktionen (funktionsorientierter Ansatz) • Analyse der Kontrollflüsse und Ablaufbedingungen (ablauforientierter Ansatz) • Analyse der Daten und Datenbeziehungen (datenorientierter Ansatz) • Qualitätsziele • Verifikation der Analyseergebnisse (mittels eines CASE-Tools)
SW-LebenszyklusPhasenmodell Tätigkeiten in der Phase „Entwurf“: • Festlegen der Software-Architektur (Client-Server, Kommunikation, Schnittstellen, …) • Festlegen der Hardware-Konfiguration • Festlegen der modularen Software-Struktur • Entwurf der Benutzeroberfläche (Layout, Navigation) • ggfs. Datenbankentwurf • Entwurf des Testplans Tätigkeiten in der Phase „Implementierung“: • Übersetzen der Module und Komponenten • Modul- und Komponententest • Integrationstest • Erstellen der Benutzerdokumentation: • Systembeschreibung (für die Weiterentwicklung) • Bedienungsanleitung (für die Benutzung) • Betriebsanleitung (für das Rechenzentrum) Tätigkeiten in der Phase „Betrieb“: Inbetriebnahme, Abnahme, Störungs- und Fehlerbeseitigung, Schulung der Benutzer, Weiterentwicklung
SW-LebenszyklusPhasenmodell Weitere Phasenmodelle: • Spiral-Modell • iterativer Entwicklungsprozess • Definition von Prototypen • V-Modell: • seit 1986 in Deutschland entwickelt (von mehreren Hochschulen) • vorgesehen für IT-Projekte der öffentlichen Hand, jedoch auch in der Privatwirtschaft eingesetzt. • keine strikte zeitliche Abfolge der Aktivitäten • RUP (Rational Unified Process) • von der IBM entwickelt • objektorientiertes Vorgehensmodell • benutzt UML (Unified Modeling Language)
Voraussetzungen schaffen Projekt planen und Softwareentwicklungs- und kontrollieren umgebung (SEU) bereitstellen SW-LebenszyklusV-Modell (2von2) PM Plandaten Istdaten SEU Plan- Ist- Plan- Ist- Plan- Ist- SEU SEU SEU daten daten daten daten daten daten SE QS- Produktstruktur Produkt Anforderungen planen entwickeln vorgeben Rechte Produkte / Produkte Rechte prüfen Produkt QS- QS- verwalten Ergebnis Anforderung Konfigurations- struktur KM QS Produkt
Process Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Management Environment Iter.#m+1 Preliminary Iteration(s) Iter.#1 Iter.#2 Iter.#n Iter.#n+1 Iter.#n+2 Iter.#m SW-LebenszyklusRUP Iterationen umfassen jeweils alle Workflows einer Phase
SW-LebenszyklusExtreme Programming (XP) • XP ist gedacht für kleinere Projekte mit unklaren und sich immer wieder ändernden Anforderungen • Das Team besteht aus 2 - 12 Mitgliedern (Kunde(!), Programmierer, Manager, Trainer, Verfolger) • Der Kunde ist fester Bestandteil des Teams. Er definiert, priorisiert und entwickelt die Testfälle für die User Stories • Die Programmierung (incl. Test) erfolgt in Paaren (pair-programming) mit Rotation der Partner • Gemeinsame Verantwortung der Gruppe für den Code: Jeder kann Änderungen am Code vornehmen • Test Driven Development (TDD): • Alle Tests sollten möglichst automatisch ablaufen • Entwickler schreiben Unit Tests, Kunden schreiben funktionale Tests • Zuerst Testfall entwerfen, dann Funktionalitäten solange implementieren, bis Testfall erfolgreich • Testfall als Spezifikation der Anforderungen • Test als Kriterium für Anforderungserfüllung
SW-LebenszyklusExtreme Programming • Der Prozess ist in monatliche Releases gegliedert, die wiederum in wöchentliche Iterationen von mehreren Tasks • Die sequentielle Integration garantiert zu jeder Zeit ein lauffähiges System • Die Entscheidungskompetenz liegt bei den Entwicklern und beim Kunden. Das Management zeigt lediglich zu lösende Probleme und Fortschritte des Teams auf • Strenge Einhaltung von Richtlinien: simple design, developfortoday, refactoring • Die Teammitglieder müssen erfahren und kommunikativ sein • XP geht von einer 40 Stunden Woche aus. Überstunden sollten überflüssig sein
SW-LebenszyklusExtreme Programming Vorteile von XP • Vollständige Erfüllung der Anforderungen wegen der engen Kopplung von Auftraggeber und Auftragnehmer • Gute Termineinhaltung wegen des strengen Zeitrasters • Hohe Qualität wegen der umfangreichen Tests und der Richtlinien • Große Motivation des Teams wegen Entscheidungskompetenz und Verantwortungsübernahme Nachteile von XP • Das Fehlen einer expliziten Spezifikation und einer Entwurfsdokumentation wird häufig kritisiert • spätere Änderungen sind nur unvollständig berücksichtigt • Das gemeinsame Code-Eigentum kann zu Problemen führen • Es gibt keine empirische Untersuchung, die belegt, dass XP anderen Vorgehensweisen überlegen ist