Aufgabe S1: Einmal quer durch s Skript / 10 Punkten Entscheiden Sie, ob die folgenden Aussagen zutreffen oder nicht. Machen Sie in der entsprechenden Spalte ein Kreuz. Für jede richtige Antwort erhalten Sie einen Punkt. Für jede falsche Antwort wird Ihnen ein Punkt abgezogen! Sie können in der Aufgabe dadurch aber nicht weniger als 0 Punkte erzielen. Aussage Richtig Falsch Im Pflichtenheft steht wie die gewünschte Funktionalität zu realisieren ist im Vordergrund. Im "klassischen" Wasserfallmodell gibt es auch Rückgriffe auf frühere Phasen. In der Anforderungsanalyse wird exakt festgelegt, was die Software leisten soll. Durch Zerlegung in Teilsysteme können Anwendungsfälle strukturiert werden. Eine Klasse kann in Java mehrere Oberklassen erweitern, aber nur ein Interface implementieren. UML 2.0 Aktivitätsdiagramme schaffen einen Zusammenhang zwischen Objekten und Aktionen. Eine Unterklasse erbt von der Oberklasse unter anderem die Implementierung der Operationen. Sequenzdiagramme eignen sich nicht für die detaillierte Beschreibung von Anwendungsfällen. Statecharts von Harel sind erweiterte Zustandsdiagramme. Eine Klasse kann auch mehrere solcher Statecharts besitzen, die das Verhalten der Klasse beschreiben. Pakete können nicht nur andere Pakete importieren, sondern auch einzelne Klassen.
Aufgabe S2: Use Case Diagramm / 15 Punkten Die Firma MultiKom möchte ein revolutionäres Multimediagerät entwickeln, das serienmäßig mit einem Fingerabdruckscanner ausgestattet ist und engagiert Sie, damit Sie bei der Entwicklung des Prototypen helfen. Ein Manager gibt Ihnen die untenstehenden Anforderungen an das zu entwickelnde System. Aus diesen Anforderungen sollen Sie ein UML Use Case Diagramm erstellen. Der Manager hat bereits einen ersten Versuch gemacht, die Anforderungen in ein Diagramm umzusetzen. Vervollständigen Sie nun dieses Diagramm. Identifizieren Sie auch alle beteiligten Akteure und fügen Sie diese dem Diagramm hinzu. Fügen sie dem Diagramm keine neuen Use Cases hinzu. Jeder Benutzer soll verschiedene (abstrakte) Systemfunktionen auf dem Multimediagerät ausführen können. Systemfunktionen sind beispielsweise einschalten und ausschalten. Während des Einschaltvorgangs soll das Gerät die Energieversorgung prüfen und einen Warnhinweis ausgeben, falls die verbleibende Akkukapazität weniger als 10% der maximalen Kapazität beträgt. Beim Ausschalten soll immer das Firmenjingle der Firma MultiKom abgespielt werden. Angemeldete Benutzer sind spezialisierte Benutzer. Bei diesen Benutzern weiß das Gerät, wie alt der Benutzer ist. Angemeldete Benutzer dürfen all das, was normale Benutzer auch können. Zusätzlich dürfen sie Medien wiedergeben. Jedes Medium ist mit einer Altersbeschränkung versehen. Ist der angemeldete Benutzer zu jung, wird die Medienwiedergabe abgebrochen und ein FSK Hinweis abgespielt. Administratoren sind spezielle angemeldete Benutzer. Administratoren dürfen neue Benutzer anlegen und bestehende Benutzerdaten editieren.
zu Aufgabe S2: Matrikelnummer:
Aufgabe S3: Klassendiagramm und OCL / 26 Punkten Ein Softwaretechniker der Firma MultiKom hat ein UML Klassendiagramm erstellt, das die Struktur der Software für den Prototypen widerspiegelt. Sie sollen daraus nun Java-Code erstellen. a) Vervollständigen Sie untenstehende Java-Quellcodefragmente anhand des oben gezeigten Klassendiagramms. b) Erstellen Sie zu oben gezeigtem Klassendiagramm die folgenden OCL Ausdrücke. Fügen Sie die Ausdrücke nicht in das Diagramm ein, sondern schreiben Sie diese textuell in die vorgegebene Zelle. Denken Sie daran den vollständigen Ausdruck aufzuschreiben und den Kontext anzugeben. 1) Schreiben Sie einen OCL-Constraint für die Klasse Multimediasystem, der besagt, dass das abgeleitete Attribut anzahlmedien gleich der Anzahl der Elemente der Menge der aggregierten Medien ist. Die Angabe des Kontextes für ein abgeleitetes Attribut erfolgt auf die gleiche Weise, wie bei der Initialisierung eines Attributes. 2) Schreiben Sie einen OCL-Constraint für die Klasse Benutzer, der besagt, dass für jeden Benutzer mindestens ein Fingerscan vorliegen muss.
zu Aufgabe S3: public Multimediasystem { anzahlmedien ; medien ; energie ; benutzer ; public Energie { niveau ; public EnergieNiveau { ; public Benutzer { VOLLJAEHRIG ; name ; alter ; system ; fingerscans ; public Medium { fskbeschraenkung ; system ; abspielen( ) { wirdabgespielt( ) { public Audio { public Sicherheitsmerkmal { istvalide( ) { public Fingerscan { benutzer ; istidentisch( ) {
Aufgabe S4: Aktivitätsdiagramm / 25 Punkten Die Firma MultiKom möchte den Ablauf des Abspielens eines Mediums auf dem Multimediagerät visualisieren. Ein Softwaretechniker hat den Ablauf bereits textuell beschrieben. Vervollständigen Sie untenstehendes Aktivitätsdiagramm gemäß des im Folgenden beschriebenen Ablaufs. Denken Sie daran alle möglichen und notwendigen Objektflüsse anzugeben. Zeichnen Sie alle Kontrollflusskanten ein. Ergänzen Sie fehlende Beschriftungen und Elemente. Die Eingabeparameter für die Aktivität sind die ID des Mediums und der Fingerabdruck des Benutzers. Das Medium und der zum Fingerabdruck gehörige Benutzer werden aus einer Mediendatenbank bzw. einer Benutzerdatenbank geholt. Dies geschieht parallel zueinander. Jetzt wird die Altersbeschränkung des Mediums mit dem Alter des Benutzers verglichen. Ist der Benutzer nicht alt genug, wird ein FSK-Hinweis ausgegeben, der Hinweis dem Ausgabeparameter hinweis übergeben und die Aktivität beendet. Andernfalls wird die Wiedergabe des Mediums gestartet und überprüft, ob im Medium Zusatzinformationen in Form einer URL hinterlegt sind. Sind keine Zusatzinformationen vorhanden, so ist die Aktivität abgeschlossen. Ansonsten werden die Zusatzinformationen aus dem Internet heruntergeladen (Hinweis: Betrachten Sie das Internet als große Datenbank). Abschließend werden die Informationen ebenfalls auf dem Multimediagerät wiedergegeben. Die Aktivität ist damit beendet.
zu Aufgabe S4: Matrikelnummer:
Aufgabe S5: Sequenzdiagramm / 19 Punkten Der Ablauf des Einschaltvorgangs des Multimediagerätes soll modelliert werden. Sie bieten an ein Diagramm zu erstellen und bekommen vom Team einen textuellen Vorschlag für den Ablauf unterbreitet. Modellieren Sie in dem untenstehenden, unvollständigen Sequenzdiagramm den Einschaltvorgang. Behandeln Sie jeden Aufruf als synchronen Aufruf und geben sie alle reply-pfeile an. Beachten Sie insbesondere Schleifen und Bedingungen! Denken Sie daran die Lebenslinien abhängig von Aktivität oder Inaktivität der Objekte entsprechend zu kennzeichnen. 1. Der Anwender a1 schaltet das Multimediasystem m1 ein, indem er auf m1 die Methode einschalten() aufruft. 1.1. m1 ruft daraufhin die Methode gibniveau() seines Energiemoduls e1 auf. Der Rückgabewert wird in der Variable niveau gespeichert. 1.2. Ist die Bedingung [niveau.equals("kritisch")] erfüllt, gibt m1 einen Warnhinweis aus, indem m1 auf sich selbst die Methode zeigenachrichtan(nachricht:string) mit dem Parameterwert "Energieniveau kritisch" aufruft. 1.3. Jetzt fordert m1 vom Fingerscanner f1 einen Fingerabdruck an (Methode holefingerscan()). Der Fingerabdruck wird in der Variablen abdruck gespeichert. 1.4. Nun überprüft m1, ob der Fingerabdruck einem der Benutzer zugeordnet werden kann, die einen Account im Multimediasystem haben. Dazu iteriert m1 über alle seine Benutzer. Diese sind im Attribut benutzer gespeichert. In jedem Schleifendurchlauf wird der aktuelle Benutzer b1 mit Hilfe der Methode istvalide(vergleich:sicherheitsmerkmal) gefragt, ob der übergebene Wert abdruck für den Benutzer b1 gültig ist. Das Ergebnis dieses Aufrufs wird in der Variablen b1valide gespeichert. Die Schleife wird ausgeführt, solange die Bedingung [b1valide = false] erfüllt ist. 1.5. Nachdem die Schleife abgearbeitet ist, wird überprüft, ob die Bedingung [b1valide = true] erfüllt ist. Ist dies der Fall, ruft m1 auf sich selbst die Methode setzeangemeldeterbenutzer(benutzer:benutzer) auf und übergibt der Methode den Benutzer b1. Der Einschaltvorgang ist damit abgeschlossen.
zu Aufgabe S5 Matrikelnummer:
Aufgabe S6: Statechart / 22 Punkten Die Firma MultiKom besitzt einen Codegenerator für Statecharts. Jedoch funktioniert der Generator nur mit Statecharts, die keine parallelen Unterzustände haben. Ein Softwaretechniker hat bereits ein Statechart mit parallelen Unterzuständen erzeugt. Wandeln Sie dieses oben gezeigte Statechart mit parallelen Unterzuständen in ein äquivalentes Statechart ohne parallele Unterzustände um, damit die Firma MultiKom daraus Code generieren kann. Nehmen Sie dabei keinerlei Vereinfachungen vor! Kürzen Sie die Zustandsnamen wie folgt ab: Abgemeldet, Angemeldet, Idle, Play, Stop, Inaktiv und Aktiv. Die Beschriftung der Transitionen 10 sec vergangen können Sie mit 10 sec abkürzen. Die Beschriftung der Transitionen 1 min vergangen [in Idle] können Sie mit 1 min [in Idle] abkürzen.
zu Aufgabe S6 Matrikelnummer: