Softwaretechnik und Programmierparadigmen Test 1, 16. Januar 2019 PDF

Summary

Dieser Dokument enthält einen Test zur Softwaretechnik und Programmierparadigmen, der am 16. Januar 2019 abgehalten wurde. Der Test besteht aus mehreren Aufgaben zu Themen wie Design Patterns, Softwaretechnikprozesse, und Diagrammen (Use-Case-Diagramm, Sequenz-Diagramm, Klassendiagramm, Aktivitätsdiagramm). Dabei werden auch OCL und Hoare-Logik behandelt.

Full Transcript

# Softwaretechnik und Programmierparadigmen ## Test 1 ### 16. Januar 2019 ## Aufgabe 1 (Allgemeines Multiple Choice) * **Genau 1 Antwort korrekt:** richtige Antwort = 1 Punkt, falsche/keine Antwort = 0 Punkte (keine Minuspunkte) **a.) Welcher Architekturstil ist dem Observer Design Pattern am ähn...

# Softwaretechnik und Programmierparadigmen ## Test 1 ### 16. Januar 2019 ## Aufgabe 1 (Allgemeines Multiple Choice) * **Genau 1 Antwort korrekt:** richtige Antwort = 1 Punkt, falsche/keine Antwort = 0 Punkte (keine Minuspunkte) **a.) Welcher Architekturstil ist dem Observer Design Pattern am ähnlichsten?** - Layer-Based - Event-Based - Pipes-And-Filters - Client-Server **b.) Welche Aussage trifft auf Builder Design Patterns zu?** - Es ermöglicht, zeitgleich beliebig viele Objekte der gleichen Klasse zu erstellen - Es erzwingt eine einmalige Instanziierung einer Klasse, um redundante Objekte zu vermeiden - Es skaliert besser als Teleskoping, und ermöglicht es, Objekte mithilfe vieler Konstruktoren mit unterschiedlichen Parametern zu instanziieren - Es ermöglicht eine felxible Instanziierung von Objekten ohne ungültige Zwischenzustände **c.) Welche der folgenden Aussagen über Softwaretechnikprozesse ist FALSCH?** - Verschiedene Projekte erfordern verschiedene Softwaretechnikprozesse - Inkrementelle Entwicklung versucht, durch möglichst frühe Prototypen Fehlentwicklungen zu vermeiden - Das V-Modell legt sehr viel Wert auf Validierung - Agile Softwareprojekte basieren auf einem ausführlichen Plan und festen Anforderungen **d.) Welche der folgenden Anforderungen ist Nicht-Funktional?** - Admins können neue User*innen mit einem Namen und einer E-Mail Adresse anlegen - Kund*innen können sich ihre offenen Bestellungen anzeigen lassen - Die Anmeldung soll sicher und benutzerfreundlich durchgeführt werden können **e.) Was lässt sich nicht in einem Objektdiagramm abbilden?** - Verbindungen zwischen Objekten, die Assoziationen im Klassendiagramm entsprechen - Ein bestimmter Zustand des Systems, das im Klassendiagramm abgebildet wird - Mehrere Zustände des gleichen Systems in einem Objektdiagramm - Eine 1..* Multiplizität ## Aufgabe 2 (Requirements) **a.) Vervollständigen Sie das Use-Case-Diagramm mit folgenden Informationen:** * Benutzer*innen können Bewertungen erstellen und können zu diesen Bewertungen Ressourcen hinzufügen. Die Ressourcen können auch direkt bei der Erstellung der Bewertung hizugefügt werden. **b.) In einem externen Sequenz-Diagramm soll die Erstellung der Bewertung modelliert werden. Dies beginnt damit, dassdie Benutzer*innen eine Bewertung erstellen möchten. Sie werden gefragt, ob sie noch eine Ressource hinzufügen möchten, und können diese anschließend entweder hochladen oder den Bewertungsprozess direkt abschließen.** ## Aufgabe 3 (Klassendiagramm) **a.) Erweitern Sie das Klassendiagramm um folgende Informationen:** * Bewertungen enthalten eine ganzzahlige Anzahl von Sternen. Rezensionen sind eine besondere Art von Bewertungen, die Text und bis zu fünf Ressourcen enthalten. Eine Ressource wird gespeichert mit der Bewertung, die sich auf sie bezieht, und einem Link. **b.) Es ist möglich, zu jeder Bewertung eine Antwort zu verfassen. Antworten beziehen sich auf eine Bewertung oder eine andere Antwort.** **c.) Ergänzen Sie das folgende Klassendiagramm um die entsprechenden Stereotype der Entity-Boundary-Control Architektur.** - Bewertung - Moderator - Web-Interface ## Aufgabe 4 (Aktivitätsdiagramm) **Vervollständigen Sie das Aktivitätsdiagramm, das folgenden Ablauf darstellen soll:** * Es ist möglich, nach einem Ort zu suchen. Wenn kein Ort gefunden wird, soll eine Fehlermeldung angezeigt und der Prozess beendet werden. Ist ein Ort ausgewählt, werden die Bewertungen dieses Ortes geladen. Gleichzeitig wird im Hintergrund eine Anfrage an einen externen Web-Server gesendet, um weitere Informationen zu laden. Sobald alle Bewertungen und Informationen vorliegen, werden sie angezeigt und der Prozess beendet. ## Aufgabe 5 (OCL) **(Ich hatte leider nicht mehr genug Zeit, um mir die genauen Anfragen aufzuschreiben und das Klassen- und Objektdiagramm abzuzeichnen, deswegen hier nur die jeweilige Aufgabenstellung)** * Evaluieren Sie die folgenden Anfragen an das gegebene Objektdiagramm und geben Sie sowohl das Ergebnis, als auch den Typ an. (Beispielsweise Set{1,2,3}: Set (Integer)) * Formulieren Sie die folgenden Anfragen in OCL * Schreiben Sie einen OCL-Contract für die Funktion XY (Hier wurde genauer erklärt, was die Funktion machen soll, und die Vor- und Nachbedingungen genannt, sie mussten nur in OCL "übersetzt" werden.) ## Aufgabe 6 (Hoare) **Gegeben ist folgende Funktion:** ``` topfac(int k, int n): x := k; i := k while i<n do i := i+1; x := x*i od ``` * Finden Sie eine geeignete Schleifeninvariante. * Beweisen Sie die partielle Korrektheit mit der gegebenen Vorbedingung {k ≤ n} und der Nachbedingung {x = Πα=k a}. * Welche der folgenden Terminierungsfunktionen t sind geeignet, um die vollständige Korrektheit der Funktion zu beweisen? - t: i - t:= n-i - t:=-i - t:=-n+1