\documentclass{bschlangaul-aufgabe} \bLadePakete{wasserfall} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 2: Vorgehensmodelle}, Thematik = {Vorgehensmodelle}, Referenz = 46116-2014-H.T2-TA1-A2, RelativerPfad = Examen/46116/2014/09/Thema-2/Teilaufgabe-1/Aufgabe-2.tex, ZitatSchluessel = examen:46116:2014:09, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Prozessmodelle, Wasserfallmodell, V-Modell, Iterative Prozessmodelle}, EinzelpruefungsNr = 46116, Jahr = 2014, Monat = 09, ThemaNr = 2, TeilaufgabeNr = 1, AufgabeNr = 2, } Software wird oft in definierten Prozessen entwickelt. Diese nennt man Vorgehensmodelle.\footcite{examen:46116:2014:09} \bigskip \noindent Allgemein \begin{enumerate} %% % a) %% \item Was sind die Aufgaben eines Vorgehensmodells im Allgemeinen? \begin{bAntwort} \begin{itemize} \item liefert Erfahrungen und bewährte Methoden \item beschreibt die am Projekt beteiligten Rollen \item legt Aufgaben und Aktivitäten fest \item definiert einheitliche Begriffe \item gibt Techniken, Werkzeuge, Richtlinien / Standards an \end{itemize} \end{bAntwort} %% % b) %% \item Was sind die wesentlichen Bestandteile eines Vorgehensmodells\index{Prozessmodelle} und in welcher Beziehung stehen diese zueinander? \begin{bAntwort} Bestandteile: Anforderungsanalyse, Modellierung, Implementierung, Test, Auslieferung, Wartung Die einzelnen Phasen bauen immer aufeinander aus. Je nach Vorgehensmodell können sich Phasen auch wiederholen (Prototyping, Scrum...). \end{bAntwort} \end{enumerate} \noindent Ein frühes Vorgehensmodell ist das von Dr. Winston Royce 1970 formalisierte Wasserfallmodell. \begin{enumerate} %% % c) %% \item Geben Sie eine schematische Darstellung des Wasserfallmodells\index{Wasserfallmodell} an. \begin{bAntwort} \begin{tikzpicture}[b wasserfall] \node {Systemanforderung}; % A-1 \node {Softwareanforderung}; \node {Analyse}; \node {Entwurf}; \node {Implementierung}; \node {Test}; \node {Betrieb}; % \foreach \i [count=\j] in {2,...,7} { \draw[->, thick] (A-\i) -| (A-\j); \draw[->, thick] (A-\j) -| (A-\i); } \end{tikzpicture} \end{bAntwort} %% % d) %% \item Nennen Sie zwei Probleme des Modells und erläutern Sie diese kurz. \begin{bAntwort} Fehler werden ggf. erst am Ende des Entwicklungsprozesses erkannt, da erst dort das Testen stattfindet. Dadurch kann die Behebung eines Fehlers sehr aufwändig und somit teuer werden. Der Kunde / Endanwender wird erst nach der Implementierung wieder eingebunden. Das bedeutet, dass er nach der Stellung der Anforderungen keinen Einblick mehr in den Prozess hat und somit auch nicht gegensteuern kann, falls ihm etwas nicht gefällt oder er etwas nicht bedacht hat. \end{bAntwort} %% % e) %% \item In welchen Situationen lässt sich das Wasserfallmodell gut einsetzen? \begin{bAntwort} Das Wasserfallmodell ist geeignet, wenn es sich um ein von Anfang an klar definiertes Projekt ohne große Komplexität handelt, bei dem alle Anforderungen, Aufwand und Kosten schon zu Beginn des Projekts feststehen bzw. abgeschätzt werden können. \end{bAntwort} \end{enumerate} \noindent Barry Boehm erweiterte das Wasserfallmodell 1979 zum so genannten V-Modell. \begin{enumerate} %% % f) %% \item Geben Sie eine schematische Darstellung des V-Modells\index{V-Modell} an. %% % g) %% \item Nennen Sie zwei Probleme des Modells und erläutern Sie diese kurz. \begin{bAntwort} \begin{itemize} \item Die Nachteile des Wasserfallmodells bestehen weiterhin! \item Nicht für kleine Projekte geeignet, da aufwändige Tests vorgesehen sind, die im Kleinen detailliert meist nicht stattfinden (können). \end{itemize} \end{bAntwort} %% % h) %% \item Welchen Vorteil hat das V-Modell gegenüber dem Wasserfallmodell? \begin{bAntwort} Für jedes Dokument besteht ein entsprechender Test (Validierung / Verifikation). Dabei kann die Planung der Tests schon vor der eigentlichen Durchführung geschehen, so dass Aktivitäten im Projektteam parallelisiert werden können. So kann zum Beispiel der Tester die Testfälle für den Akzeptanztest (=Test des Systementwurfs) entwicklen, auch wenn noch keine Implementierung existiert. \end{bAntwort} \end{enumerate} \noindent In neuerer Zeit finden immer häufiger iterative und inkrementelle Vorgehensweisen Anwendung. \begin{enumerate} %% % i) %% \item Erklären Sie den Begriff iterative Softwareentwicklung\index{Iterative Prozessmodelle}. \begin{bAntwort} Iterativ heißt, dass der Entwikclungsprozess mehrfach wiederholt wird: statt den „Wasserfall“ einmal zu durchlaufen, werden „kleine Wasserfälle“ hintereinander gesetzt. \end{bAntwort} %% % j) %% \item Erklären Sie den Begriff inkrementelle Softwareentwicklung und grenzen Sie ihn von iterativer Softwareentwicklung ab. \begin{bAntwort} Bei der inkrementellen Entwicklung wird das System Schritt für Schritt fertig gestellt. D.\,h., dass ein Prototyp immer etwas mehr kann als der Prototyp davor. Dies wird durch die iterative Entwicklung unterstützt, da bei jeder Wiederholung des Entwicklungsprozesses ein neues Inkrement entsteht, d. h. ein neuer Prototyp, der mehr Funktionalitäten benutzt als der vorangegangene. \end{bAntwort} %% % k) %% \item Nennen Sie jeweils zwei Vor- und Nachteile eines iterativen und inkrementellen Vorgehens im Vergleich zum Wasserfallmodell. \begin{bAntwort} Vorteile: \begin{itemize} \item Risiken können früher erkannt werden. \item volatile Anforderungen können besser berücksichtigt werden. \item inkrementelle Auslieferung wird erleichtert. \end{itemize} Nachteile: \begin{itemize} \item komplexeres Projektmanagement \item schwerer messbar \item (Mehrarbeit)\footnote{Quelle: https://www.pst.ifi.lmu.de/Lehre/WS0607/pm/vorlesung/PM-02-Prozess.pdf} \end{itemize} \end{bAntwort} \end{enumerate} \end{document}