SWEGL Braindump (SS 2018)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

SWEGL Braindump (SS 2018)
Klausur Grundlagen des Software Engineering vom 27.9.18, 90min, keine Hilfsmittel
Kurze Zusammenfassung der Aufgabenstellung aus dem Gedächtnis raus, Verbesserungen/Ergänzungen natürlich erwünscht.

1. allgemeine Fragen
a) 4 kurze Textbeschreibungen von Anforderungen an die Software, dazu sollte man jeweils ein geeignetes Prozessmodell nennen
Texte zu a) waren sowas wie “Software soll schnell in Betrieb sein und danach noch weitere Sachen hinzukommen” oder “Software muss später mal was sicherheitskritisches machen”, nur in drei Sätzen ausformuliert halt.
b) Unterschied validieren - verifizieren
c) neben Zuverlässigkeit 2 weitere Qualitätsmerkmale von Software nennen
d) je 1 Vor-/Nachteil von formalen Spezifikationssprachen

2. Kopplung
zu 3 üblichen Codebeispielen die Kopplungsart nennen und begründen

3. Petri-Netze
Gegebenes Petrinetz in etwa: 3 Prozesse (P) die entweder laufen oder nicht (kleiner Kreislauf aus je 2 Stellen und Transitionen, oben je eine Marke), darunter 3 Ressourcen (R) = je eine Stelle mit Marke
a) gegebenes Petrinetz nach Vorgaben ergänzen
die da waren (sinngemäß, vielleicht fehlt hier auch was): Marke in Ressource = Ressource wird nicht benutzt; P1 soll R1,R2,R3 P2 soll R1,R2 und P3 soll R3 nutzen; eine Ressource kann nicht von zwei Prozessen gleichzeitig verwendet werden; ein Prozess darf eine Ressource erst wieder benutzen wenn sie dazwischen von einem anderen Prozess benutzt wurde (heißt u.a.: P1 erst wieder wenn P2 und P3 liefen)
b) davon dann den Zustandsgraphen
c) am Zustandsgraphen erklären, ob es sein kann dass ein Prozess nie auf Ressourcen zugreift

4. Entwurfsmuster
→ siehe 1. Kommentar (danke!)
Text (Sehr dunkel, vom Sinn sollte es aber noch passen…): Software kann E-Mails verschicken, dazu soll nun Verschlüsselung (und noch was) kommen, aber vom Nutzer zur Laufzeit nach Belieben zu- und abschaltbar sein.
Die Aufgabe war auf jeden Fall, das passende Entwurfsmuster zu nennen und das zugehörige Klassendiagramm zu zeichnen

5. Model Checking (CTL)
a) Graph mit Zuständen und jeweils darin gültigen Aussagen gegeben, dazu für 5 CTL-Formeln wahr/falsch angeben, falls falsch noch begründen
Größenordnung 5 Zustände und 3 Buchstaben die in verschidenen Zuständen gelten oder nicht, Schleifen und viele Selbstkanten. CTL-Formeln waren teils mit “u”
b) zu 4 CTL-Formeln angeben ob sie syntaktisch korrekt sind oder nicht, falls ja noch Bedeutung erklären.
Erinnere mich nur noch an “[nicht]a” und “EF Gb”, die anderen waren komplizierter

6. Testen
Text mit Klassendiagramm, grober Inhalt: Klasse Sichtschutz mit Attributen Länge und Höhe sowie Methoden oberfläche(Länge, Höhe)=2LängeHöhe und instandhaltungskosten(int c, oberfläche())=c*oberfläche(). Neu soll davon erben die Klasse Mauer, die eine dritte Dimension bekommt (zusätzl. Attribut Tiefe) und eine daran angepasste Funktion oberfläche(Länge, Höhe, Tiefe)=[alle 6 Seiten addiert]. Im Text kommt dann noch vor, dass die Instandhaltungskosten eben die Konstante c mal die Fläche sein sollen, allerdings geht es dabei um die Fläche vom Sichtschutz die man sehen kann.
Frage dazu: Warum hätte die Methode instandhaltungskosten() für die Unterklasse Mauer neu getestet werden müssen und was für ein Fehler würde momentan auftreten?


Zu 4. Entwurfsmuster:
Eine Klasse Stream kann über einen Kommunikationskanal Nachrichten versenden. Dazu nutzt sie die Methode send(s:String).
Es soll nun die Möglichkeit gegeben werden, die Nachricht vor dem Versenden zu verschlüsseln und zu komprimnieren.
Die beiden Funktionen sollen sich zur Laufzeit in beliebige Reihenfolge setzen lassen.
a) Welches Software-Entwurfsmuster eignet sich am besten für die Umsetzung?
b) Zeichnen Sie ein Klassendiagramm in dem Sie das gewählte Entwurfsmuster und die benötigte Initialisierung herausstellen.

1 „Gefällt mir“