Lösung Klausur Sommersemester 2013

Hi,

ich habe mich mal ran gesetzt und die Klausur bearbeitet. Nachfolgend meine Ergebnisse, die ich zur Diskussion stelle.

Aufgabe 1
Zu den einzelnen Teilaufgaben schreibe ich nur Zahl der korrekten Antwort(en) hin.
a) 2
b) 2, 3
c) 2, 3
d) 2, 3
e) 2, 3
f) -
g) -
h) 1
i) 3
j) 2, 3
k) 1, 3
l) 1, 2
m) 1, 2
n) 1, 2
o) 1, 2

Aufgabe 2
a)
KE1 Seite 23
b) Validierung wird durch den Auftraggeber und Benutzer durchgeführt und dient dazu, zu prüfen, ob die Anforderungsspezifikationen mit den Vorstellungen und Gegebenheiten des Anwendungsbereichs übereinstimmen.
Verifikation wird durch Analytiker, Entwickler und Tester durchgeführt und dient der Überprüfung der Anforderungsspezifikationen auf Korrektheit und Konsistenz.
c) Das Muster "Einzelstück" stellt sicher, dass von einer Klasse nur eine einzige Instanz existiert und bietet einen globalen Zugriffsmechanismus auf diese an.
Beispiel Im GUI-Rahmenwerk InterViews wird das Muster zum Zugriff z. B. auf Element- Klassen und die aktuelle Sitzung (session) verwendet.
d) Sichtbarkeit OperationsName (Parameterliste) : Rückgabewert {Eigenschaften}
e) Ein Anwendungsfall bildet eine (Teil)Funktion eines Anwendungssystems ab, das für mindestens einen Benutzer ein bestimmtes Ergebnis erbringt. Es können Generalisierungs-, extend- und include-Beziehungen zwischen Anwendungsfällen bestehen.
f) Ein Testfall beschreibt einen Test zur Überprüfung einer zugesicherten Eigenschaft eines Testobjekts. Dabei wird das zu prüfende Testobjekt gegen die Anforderungsspezifkationen geprüft.
Ein Black-Box-Test ist ein funktionaler Test, bei dem die Implementierung keine Rolle spielt. Dagegen ist ein White-Box-Test ein struktureller Test, bei dem die innere Struktur (Implementierung) geprüft wird.
g) Unter einer Transformation versteht man die Überführung von Modellierungselementen, die sich nicht direkt in einer objektorientierten Programmmiersprache ausdrücken lassen, in zielsprachenkonforme Konstrukte.
Beispielweise die Transformation einer einseitig navigierbaren 1:1 Assoziation durch Einfügen eines Attributs in der Klasse, von der aus die Assoziation navigierbar ist.
h) 1.externe Schnittstelle: dient zur Interaktion zwischen Akteur und Anwendungssystem
2.Anwendungskern: stellt die Funktionalitäten zur Verfügung
3.Datenhaltung: dient der persistenten Speicherung der Informationen des Anwendungssystems
i) Die Kopplung kann durch Einführung einer Vermittlerklasse verringert werden.Lösung_Aufgabe_2i_SS13.jpg
j) Ein Glossar ist eine zentrale Sammlung der Definitionen aller wichtigen Gegenstände und Sachverhalte der Domäne.
Beschreibungselemente
  • Name
  • Typ
  • Bedeutung
  • Struktur
  • Beispiel
  • Kontext
  • Synonyme, Homonyme
  • Referenzen
Aufgabe 3
Den Anhang 9129 betrachten
Aufgabe 4
Lösung_Aufgabe_4_SS13.jpg
 
Bei Aufgabe 1 d) würde ich die 3 nicht ankreuzen. (es ist nicht mal gesagt, dass die Objekte derselben Klasse angehören)
und bei n) noch die 3 dazu (Model View Controller)
 
Bei Aufgabe 1 d) würde ich die 3 nicht ankreuzen. (es ist nicht mal gesagt, dass die Objekte derselben Klasse angehören)
und bei n) noch die 3 dazu (Model View Controller)

Hi,

bei 1d würde ich 3 schon als richtig ansehen. In Kurseinheit 2 Seite 78 heißt es dazu: "Zustandsgleichheit oder Wertegleichheit liegt vor, wenn Objekte (mit demselben Verhalten) dieselben Attribute besitzen und in den jeweiligen Attributwerten übereinstimmen."
Haben zwei Objekte dieselben Attributbelegungen müssen sie dieselben Attribute besitzen und gehören folglich derselben Klasse an.
Bei 1n würde ich 3 weglassen, denn im Text heißt es nicht "Model/View/Controller" sondern Model View Controller. Aber ehrlich gesagt, weiß ich nicht, ob der Lehrstuhl sich da einfach nur verschrieben hat oder das wirklich fehlerhaft ist. Im Zweifel würde ich es als falsch ankreuzen, denn so steht es ja nicht im Text.
Hast du Lösungen zu den Aufgaben 3 und 4?
 
@chris zu Aufgabe 3:
Statt dem Attribut durchführungstag in der Klasse Arbeitsgemeinschaft wäre eine Klasse Termine vermutl. angebrachter.
Dann wäre die Assoziation auch von AG über die Termine zum Raum.
Ausserdem würde ich das Attribut anzahlDienstjahre in der Klasse Lehrer als abgeleitetes Attribut führen (Differenz heute - Diensteintritt).
Die anzahlSchüler in der Klasse Schulklasse könnte wohl auch über eine rekursive Beziehung der Klasse als abgeleitetes Attribut modelliert werden.
Die Assoziation zwischen Lehrer / Schulfach und Schulklasse habe ich modelliert als Lehrer lehrt Fach - Klasse hat Fächer - Schüler gehört zu Klasse, statt wie in deinem Fall Lehrer lehrt Klasse (was auch im Vertretungsfall nicht zutreffend wäre).
 
Hi,

bei 1d würde ich 3 schon als richtig ansehen. In Kurseinheit 2 Seite 78 heißt es dazu: "Zustandsgleichheit oder Wertegleichheit liegt vor, wenn Objekte (mit demselben Verhalten) dieselben Attribute besitzen und in den jeweiligen Attributwerten übereinstimmen."
Haben zwei Objekte dieselben Attributbelegungen müssen sie dieselben Attribute besitzen und gehören folglich derselben Klasse an.
Bei 1n würde ich 3 weglassen, denn im Text heißt es nicht "Model/View/Controller" sondern Model View Controller. Aber ehrlich gesagt, weiß ich nicht, ob der Lehrstuhl sich da einfach nur verschrieben hat oder das wirklich fehlerhaft ist. Im Zweifel würde ich es als falsch ankreuzen, denn so steht es ja nicht im Text.
Hast du Lösungen zu den Aufgaben 3 und 4?

Ich würde aber sagen, dass die auf Seite 78, KE 2 definierte "Zustandsgleichheit" nicht bedeutet, dass die Objekte identisch sind. Auf Seite 77, KE 2 steht "... jedes Objekt besitzt eine eindeutige Identität...". Folgt daraus nicht, dass Objekte nicht identisch sein können?
 
Man mache aus unserem WS14 ein WS13 und et voila :)

https://online-uebungssystem.fernuni-hagen.de/KursStartSeite/01793/WS13



@ Chris21:
Außerdem zu der Aufgabe 3:
Das ist ja quasi analog zu der Waschmachinenaufgabe aus 2012. D.h. man könnte die Zustände P1 gewählt / P2 gewählt etc einfach auch durch "Programmauswahl" ersetzen? Zumal nutzt du mit "setzeProgramm" ja die Funktion, da braucht man nicht noch extra den Verweis auf den expliziten Zustand? Zumindest sagt die Musterlösung aus 2012 da was anderes?
 
Hier nur kurz ein paar Anmerkungen: (ich kann natürlich aber auch völlig falsch liegen)
  • Variablenzuweisungen: Variablenzuweisungen wie "beitrag:=betrag+münzwert" dürfen meiner Meinung nach nicht mit aufgeführt werden. Es gibt lediglich Ereignis [Wächterbedingungen] / Aktionsfolge
  • Aktionsfolgen: Aktionsfolgen müssen per Strichpunkt und nicht mit Komma getrennt werden, wie z.B. bei auszahlen(auszahlungsbetrag), türSchließen()
  • Keine Parameter bei Ereignisse: einem Ereignis kann man keinen Parameter mitgeben, wie z.B. "Geld einwerfen (Münze)", das müsste wenn über eine Aktion gemacht werden also z.B. "Geld einwerfen / geldEinwerfen(münzwert)"
  • nicht angegebene Methoden: z.B. "gewähltesProgramm", diese Methode gibt es nicht, diese muss "gibProgramm()" heißen.
 
Leider kann ich meinen vorherigen Beitrag nicht bearbeiten daher hier meine Lösung zu Aufgabe 3.
Den Anhang 9132 betrachten
In der NG befinden sich die Unterlagen zum letzten Studientag und dort wurde die Musterlösung zu dieser Aufgabe besprochen. Deshalb kann ich sagen, dass in deiner Lösung die Klassen Belegung (mit Attribut Tag) und Unterrichtsstunde fehlen. Außerdem müsste diese gestrichelte Linie mit der Beschriftung "oder" falsch sein. In der Musterlösung gibt es diese Linie nicht und mir ist solch eine Linie auch nur zu einer Assoziationsklasse bekannt. Aber eine solche Assoziationsklasse haben wir hier nicht. In der Musterlösung wurden außerdem zu den Assoziationsnamen die jeweilige Leserichtung angegeben. Die Generalisierungsbeziehungen wurden beschriftet. Zwischen Lehrer und Klasse wurde des weiteren nur eine Assoziation angegeben, die Assoziation "lehrt in" gibt es da nicht (nur "ist Klassenlehrer").
 
Mir ist nochwas aufgefallen: Die Domänen-Klassenmodellierung ist natürlich Teil der Anforderungsermittlung.
Dementsprechend für a) 1,2

Achja, viel Glück an alle. Wer ist morgen in HH dabei ?
 
In der NG befinden sich die Unterlagen zum letzten Studientag und dort wurde die Musterlösung zu dieser Aufgabe besprochen. Deshalb kann ich sagen, dass in deiner Lösung die Klassen Belegung (mit Attribut Tag) und Unterrichtsstunde fehlen. Außerdem müsste diese gestrichelte Linie mit der Beschriftung "oder" falsch sein. In der Musterlösung gibt es diese Linie nicht und mir ist solch eine Linie auch nur zu einer Assoziationsklasse bekannt. Aber eine solche Assoziationsklasse haben wir hier nicht. In der Musterlösung wurden außerdem zu den Assoziationsnamen die jeweilige Leserichtung angegeben. Die Generalisierungsbeziehungen wurden beschriftet. Zwischen Lehrer und Klasse wurde des weiteren nur eine Assoziation angegeben, die Assoziation "lehrt in" gibt es da nicht (nur "ist Klassenlehrer").

Hi Stefan,

sieht gut aus, nur ist der Automat ( die Waschanlage, wie auch immer ) bei der Programmauswahl natürlich an. Bei der Programmauswahl hatte ich auch schon die Idee, ob man es so machen kann.

Gruß
 
ne, weil es fehlen ganz klar die Zustände zum Thema Münzeinzahlung. sonst könnte man das verwenden. Waschanlage und Waschmaschine sind da ja nicht so unterschiedlich. weiß nicht ob man das so modellieren kann wie im Skript? hat denn keiner eine Lösung? ich tu mir da schwer
 
Keine Ahnung wie man an die Rechte kommt. habs selber auch nicht mehr hinbekokmmen :confused:
Danke für deinen Lösungsvorschlag. An sich finde ich ihn wirklich gut. Zwei Dinge fehlen noch, die Frage ist, wo packt man das rein? die Methode "zeige" soll immer während dem gesamten Waschvorgang die Restlaufzeit anzeigen. wäre es hier sinnvoll, bei jedem Zustand im Eingeschalteten-Modus noch do/zeige() hinzuzufügen?
Ebenfalls fehlt noch das Ereignis "Not-Aus" welches in jedem Zustand gewählt werden kann, und die Waschanlage öffnet und wieder in den Programmauswahlzustand versetzt. Das heißt, man müsste von jedem Zustand aus noch ein Not-Aus-Ereignis einfügen?
 
Hi danke für die Rückmeldung
Ich versteht nicht ganz, was du mit "wo packt man das rein" meinst.
man könnte noch zusätzlich den oberen Bereich in den Zustand "ausgeschaltet/TürOffen" einkapseln.
Bei der Methode "zeige()" die soll laut Aufgabe bei "jedem Eintritt in einen neuen Abschnitt" die Restzeit anzeigen. Das habe ich genauso wie du es vorgeschlagen hast eingefügt, die Laufzeit wird nach jedem Waschforgang neu berechnet: siehe neues Bild.
Ich habe die Waschvorgänge in einen großen Betriebszustand "eingeschaltet/TürGeschlossen" eingekapselt, da dran habe ich die Not-Aus Funktionalität angebunden.

Meine Schwierigkeiten ligen bei dieser Aufgabe in dem Übergang zwischen Waschanlage aus/Tür offen und Tür zu/Hauptwäsche starten.
 
vielleicht machst du auch nur zwei große Betriebszustände Waschanlage offen, Waschanlage geschlossen. Denn eigentlich ist die Waschanlage ja immer eingeschaltet? Sie startet ja nur das Programm nicht, da sie auf das Geld wartet. somit könnte man da von geschlossen nach offen einfach ein Ereignis nehmen mit ausTüroffen()
 
...vielleicht machst du auch nur zwei große Betriebszustände Waschanlage offen, Waschanlage geschlossen. ...
Diese Idee hatte ich auch, das werde ich machen. Zu deinem vorherigen Beitrag: "Not-Aus" welches in jedem Zustand gewählt werden kann
Ich habe mir die Aufgabe 4 aus der Klausur SS2013 und Studientag SS2014 angeschaut, dort sollte die Waschmaschine zu jedem Zeitpunkt ausgeschaltet werden können, nur habe ich leider diesen Umstand in der Musterlösung/Modellierung nicht gesehen. Kann man hier Parallelen ziehen und das einfach weglassen?

Ich habe dazu noch ein Thema aufgemacht: https://www.studienservice.de/thema/75442/
 
Es ist nicht mehr viel Zeit bis zur Klausur, aber denn noch hier ist mein Lösungsansatz: (bitte Liken)


ich habe die Bedingungen und möglichen Eingaben etwas verkürzt dargestellt z.B gibProgramm()==1 | 2 | 3
heißt soviel wie: gibProgramm() == 1 oder gibProgramm() == 2 .....
 
Abbruch / auszahlen(betrag)
Macht Sinn fehlt aber in der Aufgabenstellung.

Status "Programm ausgewählt"

Der Status lässt sich meiner Meinung nach gut sparen. Ich gehe direkt in Status Bezahlung über und behandle das Event(!) Geld einwerfen einfach reflexiv.
Betrag setze ich mit entry/ auf 0.

Laufzeit
Aufgrund der fehlenden Funktion gibGesamtLaufzeit() habe ich diese bei setzeProgramm(P*), laufzeit := gesetzt.

Auszahlen
Um Auszahlen von nichts zu verhindern, habe ich die Übergang in [Betrag > gibKosten(..)] sowie [Betrag = gibKosten(..)] unterteilt.

Laufzeit-Anpassung
Die Laufzeit-Anpassung nach den Waschvorgängen erledige ich als exit/ und spare mir so noch ein wenig Redundanz

türÖffnen()
Ich rufe die Funktion explizit als exit/ bei der Trocknung sowie beim Not-Aus auf. Erscheint mir besser, da die Funktion türSchliessen() auch explizit aufgerufen wird.

Trocknung zu Start
Hier fehlt noch Event "nach 1 Minute"


 
Könnte man die Berechnung der Laufzeit auch in die einzelnen Punkte verfrachten als "Do/Laufzeit:=Laufzeit - 2) ? So hätte ich das wahrscheinlich geschrieben.
Hi,
das Problem wäre dann, dass du zu jedem Rechenschritt (in dem State aktiv ist) die Operation ausführen würdest. Nehmen wir mal an die Taskzeit der SW wäre 10ms, dann würdest du alle 10ms (State aktiv) von dem aktuellen Wert der Laufzeit 2min abziehen...Hoffe, die Erklärung ist verständlich.
Gruß
 
Lösungen MC / Aufgabe 1

a) 1,2
b) 2
c) 2, 3
d) 2
e) 2, 3
f) -
g) -
h) 1
i) 3
j) 3 (2 stimmt nicht, da die Bedingungen nicht identisch sein müssen. Es gilt nur VorA => VorB sowie NachB => NachA als auch InvB => InvA)
k) 1, 3
l) 2 (1 stimmt nicht, da auch Entitätsklassen verwendet werden)
m) 1, 2
n) 1, 2, 3
o) 1, 2
 
Die Newsgroup ist öffentlich zugänglich und unter dem Namen "feu.informatik.kurs.1793" zu finden.
Aber für die, die keine Lust haben danach zu suchen:

oder hier per Link: http://imgur.com/a/uu8Nx
 
Top