18
unbedingt vollständig und lesbar ausfüllen! FG Datenbank- und Informationssysteme Dr. Christian Gerth Klausur Softwareentwurf 13. März 2013 Bearbeitungszeit: 120 Minuten Name: ____________________________ Vorname:_____________________ Matrikelnummer:_____________________ [ ] Informatik Bachelor [ ] Wirtschaftsinformatik [ ] sonstiges:________________ Bitte beachten Sie: o Lassen Sie die Klausur zusammengeheftet! Sollten Sie die Klausur trennen, einzelne Seiten entnehmen bzw. zusätzliche Seiten als Lösung mit abgeben wollen, so muss jeder einzelne Teil deutlich mit Name und Matrikelnummer gekennzeichnet sein. o Sie dürfen kein eigenes Papier benutzen! Bei Bedarf erhalten Sie zusätzliches Papier bei der Klausuraufsicht. o Mit Bleistift geschriebene Lösungen werden nicht gewertet. o Kennzeichnen Sie Ihre Lösung eindeutig! Bei mehreren Lösungen zu einer (Teil-) Aufgabe wird keine davon gewertet. o Bei Multiple-Choice Fragen können falsche Antworten zu Punktabzügen führen. o Benutzen von unerlaubten Hilfsmitteln (z.B. Mobiltelefone), Abschreiben sowie Abschreiben lassen und andere Täuschungen führen zur Bewertung „nicht ausreichend“ (5,0). o Zugelassene Hilfsmittel: 1 einseitig handbeschriebenes Blatt DIN A4, beschriftet mit Name und Matrikelnummer. o Diese Klausur hat 18 und die Referenz 4 Seiten. Bitte prüfen Sie Ihre Exemplare auf Vollständigkeit. Aufgabe 1 2 3 4 5 6 7 8 Summe Erwartete Bearbeitungszeit = maximale Punktzahl 12 20 15 14 12 20 15 12 120 Erreichte Punkte

AG Datenbank- und Informationssysteme · Sequenzdiagramme beschreiben Struktur und ... Erläutern Sie den Bezug der Anforderungen Transperancy und Safety zu dem ... (auch Zustandsautomat

Embed Size (px)

Citation preview

unbedingt vollständig und lesbar ausfüllen!

FG Datenbank- und Informationssysteme Dr. Christian Gerth

Klausur

Softwareentwurf

13. März 2013

Bearbeitungszeit: 120 Minuten

Name: ____________________________ Vorname:_____________________

Matrikelnummer:_____________________ [ ] Informatik Bachelor

[ ] Wirtschaftsinformatik

[ ] sonstiges:________________

Bitte beachten Sie:

o Lassen Sie die Klausur zusammengeheftet! Sollten Sie die Klausur trennen, einzelne Seiten

entnehmen bzw. zusätzliche Seiten als Lösung mit abgeben wollen, so muss jeder einzelne

Teil deutlich mit Name und Matrikelnummer gekennzeichnet sein.

o Sie dürfen kein eigenes Papier benutzen! Bei Bedarf erhalten Sie zusätzliches Papier bei

der Klausuraufsicht.

o Mit Bleistift geschriebene Lösungen werden nicht gewertet.

o Kennzeichnen Sie Ihre Lösung eindeutig! Bei mehreren Lösungen zu einer (Teil-) Aufgabe

wird keine davon gewertet.

o Bei Multiple-Choice Fragen können falsche Antworten zu Punktabzügen führen.

o Benutzen von unerlaubten Hilfsmitteln (z.B. Mobiltelefone), Abschreiben sowie Abschreiben

lassen und andere Täuschungen führen zur Bewertung „nicht ausreichend“ (5,0).

o Zugelassene Hilfsmittel: 1 einseitig handbeschriebenes Blatt DIN A4, beschriftet mit Name

und Matrikelnummer.

o Diese Klausur hat 18 und die Referenz 4 Seiten. Bitte prüfen Sie Ihre Exemplare auf

Vollständigkeit.

Aufgabe 1 2 3 4 5 6 7 8 Summe

Erwartete Bearbeitungszeit = maximale Punktzahl

12 20 15 14 12 20 15 12 120

Erreichte Punkte

Softwareentwurf – 13.03.2013 Seite 2

Name: Matrikel-Nr.:

Aufgabe 1: Vermischtes (12 Punkte)

a) Erläutern Sie kurz das Einsatzgebiet und den Zusammenhang von Klassendiagrammen,

Statecharts und Sequenzdiagrammen.

b) Wann sind Klassendiagramme, Statecharts und Sequenzdiagramme konsistent zueinander?

Softwareentwurf – 13.03.2013 Seite 3

Name: Matrikel-Nr.:

c) Beurteilen Sie, ob die nachfolgenden Aussagen richtig oder falsch sind. Beachten Sie, dass

falsche Kreuze Punktabzug geben! Sie können in dieser Aufgabe nicht weniger als 0 Punkte

erreichen.

Diese Aussage ist …

richtig falsch

Im Wasserfallmodell ist das Pflichtenheft das Ergebnis der Analyse-Phase.

OCL steht für „OMG Constraint Language“.

Sequenzdiagramme beschreiben Struktur und Verhalten.

Primäre Aktoren sind nicht-menschliche Aktoren, auf die das zu erstellende Softwaresystem direkt zugreift.

Es kann sinnvoll sein, eine Klasse zu modellieren, die keine Attribute und Assoziationen hat.

Komponentenorientierte Entwicklung wirkt sich positiv auf das Entwickeln in mehreren Teams aus.

Sobald ein Zustand mit Epsilon-Transition in einem Statechart erreicht wird, wird die Epsilon-Transition geschaltet.

Das „Law of Demeter“ stellt eine maximale Entkopplung der Klassen eines Softwaresystems sicher.

Ein Vorteil der Implementierung von Vererbung durch Abwärtsdelegation ist, dass Typfehler bereits beim Kompilieren des Softwaresystems auffallen.

Der fundamentale Testprozess ist wie das Wasserfallmodell ein Vorgehensmodell zur Softwareentwicklung, legt aber stärkeres Gewicht auf die Testphase.

Softwareentwurf – 13.03.2013 Seite 4

Name: Matrikel-Nr.:

Aufgabe 2: Modell des Problembereichs (20 Punkte)

Geben Sie ein Modell des Problembereichs an, das den in der Referenz enthaltenen Text so präzise

und vollständig wie möglich modelliert.

Softwareentwurf – 13.03.2013 Seite 5

Name: Matrikel-Nr.:

Achtung: Platz für einen zweiten Versuch. Nicht doppelt bearbeiten! Lösung eindeutig markieren!

Softwareentwurf – 13.03.2013 Seite 6

Name: Matrikel-Nr.:

Aufgabe 3: Konsistenz (15 Punkte)

a) Prüfen Sie die folgenden Objektdiagramme auf Konsistenz mit dem Klassendiagramm in der

Referenz. Wenn ein Objektdiagramm nicht konsistent ist, geben Sie alle Stellen an, an

denen die Konsistenz verletzt ist, und erläutern Sie die jeweilige Verletzung kurz.

Objektdiagramm 1:

Objektdiagramm 2:

:A :C

:B :B

n

n

m

:C

:C

:C

:D

:D

m

m

m

m

m

n

s

n

n

n

n

n

s

Softwareentwurf – 13.03.2013 Seite 7

Name: Matrikel-Nr.:

b) Erstellen Sie zu dem unten angegebenen Klassendiagramm ein konsistentes

Objektdiagramm, welches mindestens ein Objekt der Klasse D besitzt und minimal ist.

A B

C D

{XOR}

0..*

y

1

0..1

m

0..2

1..2

n

0,4

2

Softwareentwurf – 13.03.2013 Seite 8

Name: Matrikel-Nr.:

Achtung: Platz für 2. Versuch. Nicht doppelt bearbeiten! Lösung eindeutig markieren!

Softwareentwurf – 13.03.2013 Seite 9

Name: Matrikel-Nr.:

Aufgabe 4: Aktivitätsdiagramme (14 Punkte)

a) Gegeben ist das aus der Vorlesung bekannte Metamodell für Aktivitätendiagramme (siehe

Referenz). Geben Sie in abstrakter Syntax (also als Instanz des Metamodells) ein

Aktivitätendiagramm an, welches genau zwei Actions A und B enthält und die

Ausführungsreihenfolgen AB und BA unterstützt.

Hinweis: Sie brauchen die Instanz der Klasse Activity sowie die an ihr anliegenden

Assoziationen nicht anzugeben. Geben Sie außerdem nur Attribute an, die Sie neu belegen.

Hinweis 2: Wenn nötig können Sie die Namen abkürzen. Falls Sie Abkürzungen nutzen,

machen Sie deutlich, was die einzelnen Abkürzungen bedeuten.

Hinweis 3: Falls Sie nicht in der Lage sind, das Aktivitätendiagramm in abstrakter Syntax

anzugeben, nutzen Sie konkrete Syntax. Hierfür gibt es allerdings maximal 3 Punkte.

Softwareentwurf – 13.03.2013 Seite 10

Name: Matrikel-Nr.:

b) Beschreiben Sie kurz die Ausführung des folgenden Aktivitätendiagramms.

c) Geben Sie zwei weitere in der Vorlesung genannte Prozessmodellierungssprachen an.

A

B

Softwareentwurf – 13.03.2013 Seite 11

Name: Matrikel-Nr.:

Aufgabe 5: Pattern (12 Punkte)

a) Sie sind nun in der Situation, dass Sie eine Baumstruktur realisieren müssen. Es gibt innere

Knoten und Blatt-Knoten. Auf jeder Art von Knoten soll es möglich sein, die Methode

depth() auszuführen, welche die Tiefe des Teilbaums berechnet. Innere Knoten besitzen

zusätzlich eine Methode addChild(), um untergeordnete Knoten hinzuzufügen. Ein Client,

der mit der Baumstruktur arbeitet, will alle Arten von Knoten gleich behandeln. Erstellen

Sie ein Klassendiagramm, welches das Composite Pattern nutzt, um die gesuchte

Baumstruktur zu realisieren. Erläutern Sie kurz die einzelnen Bestandteile.

b) Erläutern Sie den Bezug der Anforderungen Transperancy und Safety zu dem Composite

Pattern. Welche der Anforderungen haben Sie in Aufgabenteil a) umgesetzt?

Softwareentwurf – 13.03.2013 Seite 12

Name: Matrikel-Nr.:

Achtung: Platz für 2. Versuch. Nicht doppelt bearbeiten! Lösung eindeutig markieren!

Softwareentwurf – 13.03.2013 Seite 13

Name: Matrikel-Nr.:

Aufgabe 6: Analyse-Tabelle (20 Punkte)

Erstellen Sie zu den zwei Analysesequenzdiagrammen aus der Referenz eine Analysetabelle, die die

Eigenschaften der genutzten Klassen zusammenführt. Geben Sie zusätzlich zum Klassennamen

immer auch das Stereotyp-Symbol an.

Klassen Aufgaben Attribute kennt (dauerhaft)

Softwareentwurf – 13.03.2013 Seite 14

Name: Matrikel-Nr.:

Achtung: Platz für 2. Versuch. Nicht doppelt bearbeiten! Lösung eindeutig markieren!

Klassen Aufgaben Attribute kennt (dauerhaft)

Softwareentwurf – 13.03.2013 Seite 15

Name: Matrikel-Nr.:

Aufgabe 7: Statecharts (15 Punkte)

Gegeben ist das in der Referenz abgebildete Statechart. Geben Sie das zu diesem Statechart

äquivalente Zustandsdiagramm (auch Zustandsautomat genannt) an.

Softwareentwurf – 13.03.2013 Seite 16

Name: Matrikel-Nr.:

Achtung: Platz für 2. Versuch. Nicht doppelt bearbeiten! Lösung eindeutig markieren!

Softwareentwurf – 13.03.2013 Seite 17

Name: Matrikel-Nr.:

Aufgabe 8: Implementierung (12 Punkte)

Ein Entwickler sollte das unten angegebene Klassendiagramm in Java-Code übersetzen. Der

Entwickler merkte jedoch an, dass Java keine Mehrfachvererbung unterstütze, woraufhin der

Modelldesigner drei Vorschläge ausgearbeitet hat, die auch in Java realisierbar sind. Benennen und

erläutern Sie stichwortartig die Konzepte, die der Modelldesigner für seine Vorschläge genutzt hat.

Nennen Sie Vor- und Nachteile der einzelnen Vorschläge und begründen Sie mit 1-2 Sätzen, welchen

Vorschlag Sie empfehlen würden.

Vorschlag 1:

C

+ c() :void

B

+ b() :void

A

+ a() :void

A/B/C

- isA :boolean

- isC :boolean

+ a() :void

+ b() :void

+ c() :void

Softwareentwurf – 13.03.2013 Seite 18

Name: Matrikel-Nr.:

Vorschlag 2:

Vorschlag 3:

C_Impl«interface»

C

+ c() :void

B

+ b() :void

A

+ a() :void

1

B

+ b() :void

A

+ a() :void

+ b() :void

C

+ b() :void

+ c() :void0..10..1