cd Blatt 1

Was ist das Wasserfallmodell?

  • Das Wasserfallmodell ist ein Projektmanagement-Ansatz bei dem Aufgaben und Phasen nacheinander abgeschlossen werden.
  • Es besteht aus fest definierten Phasen die jeweils einmal durchlaufen werden. Die nächste Projektphase kann nicht beginnen wenn die vorherige nicht abgeschlossen ist
  • Besteht aus folgenden5 aufeinanderfolgenden Phasen:
    1. Anforderungsdefiniton
    2. System und Softwareentwurf
    3. Implementierung und Modultests
    4. Integration und Systemtests
    5. Betrieb und Wartung
  • Vor und Nachteile
    1. + Klare Struktur und Planung
    2. + Gut geeignet für Projekte mit stabilen Anforderungen
    3. + Einfache Verwaltung und Kontrolle
    4. - Wenig Flexibilität für Änderungen Während des Prozzesses
    5. - Risiko, dass Fehler erst spät erkannt werden
  • Eignet sich für Projekte bei denen die Anforderungen von Beginn an klar und vollständig sind und keine Änderungen erwartet werden

1. Software Life Cycle

  1. Erläutern Sie, wieso das Wasserfall-Modell kaum mit modernen Softwareentwicklung vereinbar ist
    • mangelnde Flexibilität:
      • streng sequenziell, jede Phase nur einmal durchlaufen und auf den Ergebnissen der vorherigen Phase aufgebaut
      • wenn eine Phase abgeschlossen ist kein zurück mehr → kein Raum für Änderungen
    • Späte Fehlerekennung:
      • Testen findet erst spät im Wasserfallmodell statt → führt zu erheblichen Verzögerungen und Kosten
    • Widerspricht moderenen agilen Methoden:
      • moderne Software braucht ständiges Feedback und die Fähigkeit schnell auf Änderungen zu reagieren
    • Annahme von vollständigen und unveränderlichen Anforderungen:
      • In der Praxis ändern sich Anforderungen ständig
  2. Erklären Sie, warum Änderungen in komplexen Systemen unvermeidlich sind und geben Sie Beispiele von Softwareprozessaktivitäten (abgesehen von Prototypen und inkrementeller Auslieferung), die helfen, mögliche Änderungen vorherzusagen und die die zu entwickelnde Software robuster gegenüber Änderungen zu machen.
    • Änderungen in komplexen Systemen sind unumgänglich, weil die Anforderungen sich durch äußere Faktoren ändern zB. wechselnde Unternehmensziele und -policies zwingen neue Anforderungen ändern
    • Änderungen vorhersagen bzw. robuster gegenüber Änderungen machen, indem:
      • Aufzeichnen der Gründe (Rationale) für eine Anforderung
      • Nachvollziehbarkeit der Anforderungen, sodass Abhängigkeiten zwischen Anforderungen erkannt werden können
      • Code Refactoring: Verbesserung der Codequalität; Code wird zugänglicher für Veränderungen
  3. Erklären Sie, warum es wichtig ist, während der Anforderungsanalyse zwischen der Entwicklung der Benutzeranforderungen und der Entwicklung der Systemanforderungen zu unterscheiden.
    • Benutzeranforderungen:
      • Beschreiben die Funktionalität des Systems aus Sicht des Benutzers
      • Sind in natürlicher Sprache formuliert
      • Erlauben Flexibilität in der Umsetzung
    • Systemanforderungen:
      • Beschreiben die Funktionalität des Systems präzise und detailliert
      • Sind in technischer Sprache formuliert / Für Entwickler gedacht
      • Werden nach den Benutzeranforderungen gestellt

K Softwareprozesse

    Die Softwarevalidierung oder allgemeiner die Verifikation und Validierung (V&V) soll zeigen, dass ein System sowohl seine Spezifikationen erfüllt als auch den Erwartungen des Kunden des Systems entspricht

  1. Nennen sie drei Testphasen die im Prozess der Verifikation und Validierung durchlaufen werden
    • Komponententests
      • Softwarekomponenten werden isoliert und mit Testdaten überprüft
      • ZIEL:Fehler in der Implementierung und im Entwurf der Komponenten zu finden
    • Systemtests
      • Die integrierten Softwareprozesse werden als Gesamtsystem getestet um Fehler in den Schnittstellen und in der Funktionalität zu finden
      • ZIEL:Zeigen, dass das System die Anforderungen und die erwartete Leistung erbringt.
    • Kundentest
      • fertige Softwareprodukt wird mit realen Daten des Kunden oder der Benutzer getestet, um zu überprüfen, ob es die Kundenerwartungen und die Nutzungsziele erfüllt
      • ZIEL:Die Akzeptanz und die Zufriedenheit des Kunden oder der Benutzer zu gewährleisten
  2. Nennen Sie die Phasen des Wasserfallmodells
    • Anforderungsdefiniton
      • Bedürfnisse und Erwartungen der Nutzer erfasst und dokumentiert
    • System und Softwareentwurf
      • Architektur des Systems und der Software geplant und entworfen
    • Implementierung und Modultests
      • Code wird geschrieben und einzelne Module getestet
    • Integration und Systemtests
      • einzelnen Module werden zusammengefügt und werden getestet
    • Betrieb und Wartung
      • System wird in Betrieb genommen und im Laufe der Zeit gewartet und aktualisiert
  3. Welche der Phasen des Wasserfallmodells finden sich nicht im V-Modell wieder?
    • Das V-Modell erweitert das Wasserfallmodell durch zusätzliche Testphasen in jeder Entwicklungsphase, wobei alle Wasserfallphasen integriert und um Verifizierungs- und Validierungsaspekte ergänzt werden. Es ist detaillierter und stärker auf Tests fokussiert.