\documentclass{bschlangaul-aufgabe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 1}, Thematik = {Wissensfragen}, Referenz = 66116-2020-H.T2-TA1-A1, RelativerPfad = Examen/66116/2020/09/Thema-2/Teilaufgabe-1/Aufgabe-1.tex, ZitatSchluessel = examen:66116:2020:09, BearbeitungsStand = mit Lösung, Korrektheit = unbekannt, Ueberprueft = {unbekannt}, Stichwoerter = {Wasserfallmodell, Prozessmodelle, Kontinuierliche Integration (Continuous Integration), EXtreme Programming, Softwaremaße, SCRUM}, EinzelpruefungsNr = 66116, Jahr = 2020, Monat = 09, ThemaNr = 2, TeilaufgabeNr = 1, AufgabeNr = 1, } \begin{enumerate} %% % a) %% \item Nennen Sie fünf Phasen, die im Wasserfallmodell durchlaufen werden sowie deren jeweiliges Ziel bzw. Ergebnis(-dokument).\index{Wasserfallmodell} \index{Prozessmodelle} \footcite{examen:66116:2020:09} \begin{bAntwort} \begin{description} \item[Anforderung] Lasten- und Pflichtenheft \item[Entwurf] Softwarearchitektur in Form von Struktogrammen, UML-Diagrammen etc. \item[Implementierung] Software \item[Überprüfung] überarbeitete Software \item[Einsatz und Wartung] erneut überarbeitete Software, verbesserte Wartung \end{description} \end{bAntwort} %% % b) %% \item Nennen Sie drei Arten der Softwarewartung und geben Sie jeweils eine kurze Beschreibung an. \begin{bAntwort} \begin{description} \item[korrektive Wartung] Korrektur von Fehlern, die schon beim Kunden in Erscheinung getreten sind \item[präventive Wartung] Korrektur von Fehlern, die beim Kunden noch nicht in Erscheinung getreten sind \item[adaptive Wartung] Anpassung der Software an neue Anforderungen \item[perfektionierende Wartung] Verbesserung von Performance und Wartbarkeit und Behebung von technical depts\bFussnoteUrl{https://de.wikipedia.org/wiki/Softwarewartung} \end{description} \end{bAntwort} %% % c) %% \item Eine grundlegende Komponente des \emph{Extreme Programming} ist \emph{„Continuous Integration“}. Erklären Sie diesen Begriff und warum man davon einen Vorteil erwartet. \index{Kontinuierliche Integration (Continuous Integration)} \index{EXtreme Programming} \begin{bAntwort} Die Software wird nach jeder Änderung (push) automatisch kompiliert und auch getestet. Man erwartet sich davon einen Vorteil, weil Fehler schneller erkannt werden und die aktuelle Version des Systems ständig verfügbar ist. \end{bAntwort} %% % d) %% \item Nennen Sie zwei Softwaremetriken und geben Sie jeweils einen Vor- und Nachteil an, der im Projektmanagement von Bedeutung ist.\index{Softwaremaße} \begin{bAntwort} \bPseudoUeberschrift{Anzahl der Code-Zeilen} \begin{description} \item[Vorteil:] Ist sehr einfach zu bestimmen. \item[Nachteil:] Entwickler können die Zeilenzahl manipulieren (zusätzliche Leerzeilen, Zeilen aufteilen), ohne dass sich die Qualität des Codes verändert. \end{description} \bPseudoUeberschrift{Zyklomatische Komplexität} \begin{description} \item[Vorteil:] Trifft eine Aussage über die Qualität des Algorithmus. \item[Nachteil:] Ist für Menschen nicht intuitiv zu erfassen. Zwei Codes, die dasselbe Problem lösen können die gleiche Zyklomatische Komplexität haben, obwohl der eine wesentlich schlechter zu verstehen ist (Spaghetticode!). \end{description} \end{bAntwort} %% % e) %% \item Nennen und beschreiben Sie kurz drei wichtige Aktivitäten, welche innerhalb einer Sprint-Iteration von Scrum durchlaufen werden. \index{SCRUM} \begin{bAntwort} \begin{description} \item[Sprint Planning] Im Sprint Planning werden zwei Fragen beantwortet: \begin{itemize} \item Was kann im kommenden Sprint entwickelt werden? \item Wie wird die Arbeit im kommenden Sprint erledigt? \end{itemize} Die Sprint-Planung wird daher häufig in zwei Teile geteilt. Sie dauert in Summe maximal 2 Stunden je Sprint-Woche, beispielsweise maximal acht Stunden für einen 4-Wochen-Sprint. \item[Daily Scrum] Zu Beginn eines jeden Arbeitstages trifft sich das Entwicklerteam zu einem max. 15-minütigen Daily Scrum. Zweck des Daily Scrum ist der Informationsaustausch. \item[Sprint Review] Das Sprint Review steht am Ende des Sprints. Hier überprüft das Scrum-Team das Inkrement, um das Product Backlog bei Bedarf anzupassen. Das Entwicklungsteam präsentiert seine Ergebnisse und es wird überprüft, ob das zu Beginn gesteckte Ziel erreicht wurde. \footcite{wiki:scrum} \end{description} \end{bAntwort} %% % f) %% \item Erläutern Sie den Unterschied zwischen dem Product-Backlog und dem Sprint-Backlog. \begin{bAntwort} \begin{description} \item[Product Backlog] Das Product Backlog ist eine geordnete Auflistung der Anforderungen an das Produkt. \item[Sprint Backlog] Das Sprint Backlog ist der aktuelle Plan der für einen Sprint zu erledigenden Aufgaben. \footcite{wiki:scrum} \end{description} \end{bAntwort} %% % g) %% \item Erläutern Sie, warum eine agile Entwicklungsmethode nur für kleinere Teams (max. 10 Personen) gut geeignet ist, und zeigen Sie einen Lösungsansatz, wie auch größere Firmen agile Methoden sinnvoll einsetzen können. \begin{bAntwort} Bei agilen Entwicklungsmethoden finden daily scrums statt, die in der intendierten Kürze nur in kleinen Teams umsetzbar sind. Außerdem ist in größeren Teams oft eine Hierarchie vorhanden, die eine schnelle Entscheidungsfindung verhindert. Man könnte die große Firma in viele kleine Teams einteilen, die jeweils an kleinen (Teil-)Projekten arbeiten. Eventuell können die product owner der einzelnen Teams nach agilen Methoden zusammenarbeiten. \end{bAntwort} \end{enumerate} \end{document}