Der Lebnslauf von SW ist ein _____ oder ein _____
Projekt
kontinuierlicher Prozess
Der Lebnslauf von SW ist ein Projekt oder ein kontinuierlicher Prozess
Zwischen was muss bei einem SW-Development-Process unterschieden werden ?
Klasse (Prozessmodell)
Objekt (Prozessinstanz)
Begriffserklärung: Prozessinstaz
= Objekt
Ein einzelnes Projekt, in dem reale Handlungen stattfinden und das ein greifbares Ergebnis liefern soll
Begriffserklärung: Prozessmodell
= Klasse
Eine Schablone für eine Menge von Objekten, die alle nach dem gleichen Schema ablaufen sollen
Steuerungssicht
Organisationssicht
Qualitätssicherung
Projektmanagement
Dokumenttion
Konfigurationsmanagement
Begriffserklärung: Projekt
ist eine Prozessinstanz
Begriffserklärung: Vorgehensmodell
Nur die Steuerungssicht des Prozessmodells
Besonderheit von SW Projekten
Nichtgreifbarkeit der Produkte
eingeschränkte Sichtbarkeit
fehlendeshaptisches Erlebnis
Nenne Attribute eines Projekts
Anfangsdatum
zeitlicher Ablaufplan
Enddatum
speziefische Zielsetzung
Randbedingungen
festgelegte Zuständigkeit
Budget
Was sind Beispiele für Auftraggeber, Geld und Produkt bei einem Entwicklungsprojekt
Auftraggeber:
Marketingabteilung des UN
Geld:
Entwicklungsbudget des UN
Produkt:
Standart-Software , Shrinkware
Was sind Beispiele für Auftraggeber, Geld und Produkt bei einem Auftragsprojekt
extern
Zahlung durch externen Auftragsgeber auf Basis eines Vertrags
Individualsoftware
Was sind Beispiele für Auftraggeber, Geld und Produkt bei einem EDV-Projekt
Interner Budget-Inhaber
Verrechnung über Kostenstellen
SW zur Optimierung firmeninterner Abläufe
Was sind Beispiele für Auftraggeber, Geld und Produkt bei einem Systemprojekt
Extern
Software in einem größeren Systemkontext eingebettet.Besonders hohe Qualitätsanforderungen
Was ist das Wesen von einem Code & Fix Prozessmodell
Anwendung meinst unbewusst
Keine Anforderungsspezifikationen, kein Entwurf
Kodierung und Ad-hoc-Tests wechseln sich ab und sind die einzigen explizit ausgewiesesen Tätigkeiten
Was sind Vorteile von einem Code & Fix Prozessmodell
vorerst das Gefühl schnell voran zu kommen
es ist schnell ein lauffähiges Programmm verfügbar
Tätigkeiten (Kodieren, Testen) sind relativ einfach und gut voneinander abgrenzbar
Was sind Nachteile von einem Code & Fix Prozessmodell
Projekt ist nicht planbar (entscheidende Informationen fehlen)
Arbeitsteilige Aufgaben sind nicht durchfürbar
da Anforderungen nicht explizit vorliegen, ist deren Erfüllung unwahrscheinlich
Prüfungen sind ineffektiv da keine Soll-Vorgaben existieren
Fehlender Entwurf führt zu schlecht strukturierten Programmen
Mängel werden erst sehr spät entdeckt —> so ist ihre Beseitigung sehr kostspielig
Konzepte und Entscheidungen können durch fehlende Dokumentation nicht rekonstruiert oder weitergegeben werden
Was ist das Wesen von einem Wasserfall Prozessmodell
Geordnete Menge von Aktivitäten (=Projektphasen)
Ergebnisse der Aktivitäten sind Dokumente
Ergebnisse werden an nachgelagerte Aktivitäten weitergegeben
Entwicklung erfolgt in Stufen/Kaskaden
(Ergebnisse fließen wie Wasser über diese hinunter)
Wenig bis keine Iteration
Überlappung der Aktivitäten möglich
Was sind Vorteile von einem Wasserfall Prozessmodell
Einfach
Einsteigerfreundliche Möglichkeit Struktur in den SW-Prozess zu bringen
Was sind Nachteile von einem Wasserfall Prozessmodell
Vermischung von Aktivitäten und Phasen
keine Qualitätssicherungsaspekte
Einbanstraße —> Moving Targets werden ignoriert
Kundenkontakt / -rückkopplung nur zu Beginn und am Ende
Wasserfallmodell
Was ist das Wesen von einem Prototyping Prozessmodell
Herstellung vorläufiger Versionen einer Hard- oder Software zum Zweck von
Benutzer-Feedback
Machbarkeitsstudien
Untersuchung von Eigenschaften zur Unterstützung des Entwicklungsprozesses
Vorläufige Versionen sind „Wegwerfprototypen“
Reaktion auf Probleme herkömmlicher Prozessmodelle
Was sind Vorteile von einem Prototyping Prozessmodell
Auftraggeber kann Anforderungen oft nicht präzise formulieren
Diskussion unterschiedlicher Lösungsmöglichkeiten
Fortwährende Kommunikation zwischen Entwicklern und Anwendern
Kein Zurückziehen des Herstellers bis zur Vorstellung des Endprodukts
Überprüfung, ob spezielle Anforderungen (z.B. Echtzeitbedingungen) haltbar sind
Was sind Nachteile von einem Prototyping Prozessmodell
Konflikt: Auftraggeber interpretiert Prototyp als fertige SW
Begriffserklärung: Prototyp
==> ist ein provisorisches aber lauffähiges Softwaresystem, veranschaulicht Aspekte der Nutzerschnittstelle oder der Funktionalität.
Eine vorläufige Variante, Gestalt oder ein Beispiel eines Systems, das als Vorlage für spätere Stadien oder die abschließende, vollständige Version des Systems dient.
Nenne 3 Eigenschaften von Prototypen
sie sind lauffähig
sie realisieren ausgewählte Aspekte des Zielsystems
sie werden von Klienten geprüft und detailliert bewertet
Welche 4 Fragen sind bei der Prototypentwicklung zu beantworten?
Welches Erkenntnisinteresse verfolgen wir mit dem Prototypen (z.B.Aufgaben)?
Wer entwickelt den Prototypen?
Wer bewertet den Prototypen?
Welche Ressourcen stehen für dieEntwicklung des Prototypen zurVerfügung (Zeit, Geld)?
Begriffserklärung: Demonstrationsprototyp
==> dient zur Akquisition eines Auftrags, wird dann ”weggeworfen”
ist ein „Wegwerfprodukt“
zeigt prinzipielle Einsatzmöglichkeiten
zeigt mögliche Handhabung
verwendung in Start- & Akquisephase
ausreichend weit vom Zielsystementfernt, so dass keine falschen Erwartungen geweckt werden.
Begriffserklärung: Funktionale Prototypen
Abbildung von Ausschnitten des GUI sowie Teilen der Funktionalität
Unterstützung der Anforderungsanalyse
Begriffserklärung: Labormuser
==> zum internen Experimentieren, fokussiert einen technische Aspekt des Zielsystems
fokussiert einen technische Aspekt des Zielsystems (z.B. Architektur oder Funktionalität)
Experimentalsystem der Entwickler für z.B. Machbarkeitsstudien
kann Teil des Zielsystems werden
Begriffserklärung: Pilotsystem
==> breists Kern des Zielsystems wird nach Benutzerprioritäten weiterentwickelt
Funktionsumfang und Qualität mind. für temporären Einsatz ausreichend
Realisierung eines abgeschlossenen Teil des Zielsystems
komfortable, sichere Bedienbarkeit (wenn GUI enthalten)
Benutzungsdokumentation vorhanden
sukzessiver Ausbau ⇒ Teil des Zielsystems
Begriffserklärung: Evolutionäres Prototyping
Ziel: Schrittweise Anpassung eines Systems an sich ändernde Anforderungen, die nicht zuverlässig vorausgesehen werden können
Übergang zu evolutionärem Prozess
weniger Prototyp als Pilotsystem
vgl. auch „Perpetual Beta”
Begriffserklärung: Exploratives Prototyping
Ziel: Klärung von Anforderungen und Eigenschaften des Zielsystems
Diskussion von Alternativen
Demonstrationsprototypen und funkt. Prototypen
häufig Rapid Prototyping genannt
Begriffserklärung: Experimentelles Prototyping
Ziel: Feststellung der Aufgabenangemessenheit eines Lösungsansatzes bevor in massive Aufwände investiert wird
Kommunikation zwischen Benutzern und Entwicklern
funkt. Prototypen und Labormuster
Welche Probleme löst die iterative SW-Entwicklung?
Große Projekte sind a priori nicht vollständig planbar
Anforderungen lassensich meist nichtvollständig zu Beginn erheben und bleiben überdie Projektdauer selten stabil
Was sind die Lösungsansätze von iterativer SW-Entwicklung?
Zerlegung des Projekts in viele kleine (Teil-) Projekte => Iterationsschritte
Korrektur von im Einsatz auftretender Mängel in jedem Iterationsschritt
Systemoptimierung in jedem Iterationsschritt
Aktivitäten des Wasserfallmodells (Analyse, Entwurf, Kodierung, Test) in jeder Iteration
Welche Probleme löst die inkrementelle SW-Entwicklung?
Funktionsumfang z.B. einer Standard-Software wächst sukzessive von Release zu Release
Nach einer gewissen Zeit der Wartung ist die Architektur des beim Kunden im Einsatz befindlichen Systems erodiert.
Was sind der Lösungsansätze von inkrementeller SW-Entwicklung?
Ausgehend vom Kernsystem wird pro neuem Inkrement ein vollständiges Projektaufgesetzt.
In dem Projekt werden neue Funktionen realisiert (vgl. inkrementell) sowie die alten Systembestandteile überarbeitet.
Was sind Vorteile von inkrementeller SW-Entwicklung?
Frühes Kundenfeedback ab Kernsystem bzw. Inkrement 1
Relativ kurze Entwicklungszeiten pro Inkrement
Bei deren Einsatz entdeckte Fehler lassen sich kostengünstig korrigieren
Kurze „Time to Market“ bei weitestmöglicher Offenheit für neueAnforderungen
Spiralmodell
Beschreibe das Spiralmodell
Es basiert auf risikogetriebenem Verhalten.
Es wiederholt folgende Schritte bis Projekt erfolgreich abgeschlossen oder gescheitert ist:
Analyse sämtlicher Risiken, die ein Projekt beeinflussen
—> Finden sich keine Risiken mehr, so gilt das Projekt als erfolgreich abgeschlossen
Risikobewertung, um eine Rangfolge der Risiken zu erhalten
Versuch, das größte Risiko zubeseitigen
—> gelingt dies nicht, so gilt das Projekt als gescheitert
Nenne 2 wesentliche Vorteile des Spiralmodells
Unlösbare Probleme werden schnell erkannt, weil Sie wahrscheinlich amgrößten Risiko scheitern
Nach der Bewältigung der größten Risiken, stabilisiert sich das Projekt sehr schnell
Last changeda year ago