\documentclass{bschlangaul-aufgabe} \begin{document} \bAufgabenMetadaten{ Titel = {Aufgabe 2}, Thematik = {Wahrheitsgehalt-Tabelle Software Engineering}, Referenz = 66116-2016-H.T2-TA2-A1, RelativerPfad = Examen/66116/2016/09/Thema-2/Teilaufgabe-2/Aufgabe-1.tex, ZitatSchluessel = sosy:ab:9, ZitatBeschreibung = {Aufgabe 2}, BearbeitungsStand = mit Lösung, Korrektheit = korrekt und überprüft, Ueberprueft = {unbekannt}, Stichwoerter = {Software Engineering, Agile Methoden, Spiralmodell, Nicht-funktionale Anforderungen, Entwurfsmuster, Schichtenarchitektur, Blackboard-Muster, Einbringen von Abhängigkeiten (Dependency Injection), Sequenzdiagramm, Zustandsdiagramm Wissen, Komponentendiagramm, Modell-Präsentation-Steuerung (Model-View-Controller), Einzelstück (Singleton), Kommando (Command), Validation, Verifikation}, EinzelpruefungsNr = 66116, Jahr = 2016, Monat = 09, ThemaNr = 2, TeilaufgabeNr = 2, AufgabeNr = 1, } Ordnen Sie die folgenden Aussagen entsprechend ihres Wahrheitsgehaltes in einer Tabelle der folgenden Form an: \footcite[Aufgabe 2]{sosy:ab:9} \begin{center} \begin{tabular}{|c|c|c|} \hline Kategorie & WAHR & FALSCH \\\hline X & X1, X3 & X2 \\ Y & Y2 & Y1 \\ $\dots$ & $\dots$ & $\dots$ \\\hline \end{tabular} \end{center} \begin{description} %% % %% \item[A] Allgemein\footcite[Thema 2 Teilaufgabe 2 Aufgabe 1]{examen:66116:2016:09} \begin{description} \item[A1] Im Software Engineering\index{Software Engineering} geht es vor allem darum qualitativ hochwertige Software zu entwickeln. \item[A2] Software Engineering ist gleichbedeutend mit Programmieren. \end{description} %% % %% \item[B] Vorgehensmodelle \begin{description} \item[B1] Die Erhebung und Analyse von Anforderungen sind nicht Teil des Software Engineerings. \item[B2] Agile Methoden\index{Agile Methoden} eignen sich besonders gut für die Entwicklung komplexer und sicherer Systeme in verteilten Entwicklerteams. \item[B3] Das Spiralmodell\index{Spiralmodell} ist ein Vorläufer sogenannter Agiler Methoden. \end{description} %% % %% \item[C] Anforderungserhebung \begin{description} \item[C1] Bei der Anforderungserhebung dürfen in keinem Fall mehrere Erhebungstechniken (\zB{} Workshops, Modellierung) angewendet werden, weil sonst Widersprüche in Anforderungen zu, Vorschein kommen könnten. \item[C2] Ein Szenario beinhaltet eine Menge von Anwendungsfällen. \item[C3] Nicht-funktionale Anforderungen\index{Nicht-funktionale Anforderungen} sollten, wenn möglich, immer quantitativ spezifiziert werden. \end{description} %% % %% \item[D] Architekturmuster\index{Entwurfsmuster} \begin{description} \item[D1] Schichtenarchitekturen\index{Schichtenarchitektur} sind besonders für Anwendungen geeignet, in denen Performance eine wichtige Rolle spielt. \item[D2] Das Black Board Muster\index{Blackboard-Muster} ist besonders für Anwendungen geeignet, in denen Performance eine wichtige Rolle spielt. \item[D3] „Dependency Injection“\index{Einbringen von Abhängigkeiten (Dependency Injection)} bezeichnet das Konzept, welches Abhängigkeiten zur Laufzeit reglementiert. \end{description} %% % %% \item[E] UML \begin{description} \item[E1] Sequenzdiagramme\index{Sequenzdiagramm} beschreiben Teile des Verhaltens eines Systems. \item[E2] Zustandsübergangsdiagramme\index{Zustandsdiagramm Wissen} beschreiben das Verhalten eines Systems. \item[E3] Komponentendiagramme\index{Komponentendiagramm} beschreiben die Struktur eines Systems. \end{description} %% % %% \item[F] Entwurfsmuster \begin{description} \item[F1] Das MVC Pattern\index{Modell-Präsentation-Steuerung (Model-View-Controller)} verursacht eine starke Abhängigkeit zwischen Datenmodell und Benutzeroberfläche. \item[F2] Das Singleton Pattern\index{Einzelstück (Singleton)} stellt sicher, dass es zur Laufzeit von einer bestimmten Klasse höchstens ein Objekt gibt. \item[F3] Im Kommando Enwurfsmuster (engl. „Command Pattern“) \index{Kommando (Command)} werden Befehle in einem sog. Kommando-Objekt gekapselt, um sie bei Bedarf rückgängig zu machen. \end{description} %% % %% \item[G] Testen \begin{description} \item[G1] Validation\index{Validation} dient der Überprüfung von Laufzeitfehlern. \item[G2] Testen ermöglicht sicherzustellen, dass ein Programm absolut fehlerfrei ist. \item[G3] Verifikation\index{Verifikation} dient der Überprüfung, ob ein System einer Spezifikation entspricht. \end{description} \end{description} \begin{bAntwort} \begin{center} \begin{tabular}{|c|c|c|} \hline Kategorie & WAHR & FALSCH \\\hline\hline A & A1 & A2 \\\hline B & B3 & B1, B2 \\\hline C & C3 & C1, C2 \\\hline D & D3 & D1, D2 \\\hline E & E1, E2, E3 & \\\hline F & F2, F3 & F1 \\\hline G & G3 & G1\footnote{Validierung: Prüfung der Eignung beziehungsweise der Wert einer Software bezogen auf ihren Einsatzzweck: „Wird das richtige Produkt entwickelt?“}, G2\footnote{Ein Softwaretest prüft und bewertet Software auf Erfüllung der für ihren Einsatz definierten Anforderungen und misst ihre Qualität.} \\\hline \end{tabular} \end{center} \end{bAntwort} \end{document}