Eleganter Bericht - FHDW / bib Portalseite

Werbung
FACHHOCHSCHULE FÜR DIE WIRTSCHAFT FHDW, HANNOVER
OBJEKT-ORIENTIERTE
SOFTWARETECHNIK 1
NACHKLAUSUR
Studiengang: HFI/W415
Studienquartal: II. Theoriequartal
1
Prüfungsumfang: Literatur und Lösungen aus dem Übungsbetrieb
Dozent: Löwe
Termin: 19. August 2016
Dauer: 110 Minuten
40 Punkte sind zu erreichen: Wissen 16, Anwendung 16, Transfer 8 Punkte. Bestanden ab 16 Punkte.
TEIL I: WISSEN (35 MINUTEN)
Aufgabe 1 (4 Punkte): In der Objekt-orientierten Analyse wird zunächst ein Anwendungsfalldiagramm angefertigt. Erläutern Sie, welche Bestandteile ein solches Diagramm hat und was dadurch spezifiziert wird!
Aufgabe 2 (1 Punkt): Was wird in der Objekt-orientierten Analyse durch Fachklassendiagramme formalisiert, was durch Aktivitätsdiagramme?
Aufgabe 3 (1 Punkt): In Java können Klassen Schnittstellen2 und (andere) Klassen spezialisieren! Schnittstellen können jedoch nur (andere Schnittstellen) spezialisieren. Warum können Schnittstellen keine Klassen spezialisieren?
Aufgabe 4 (2 Punkte): Erläutern Sie die Bedeutung der vier Multiplizitäten *, +, 1 und 0..1 für Assoziationen!
Aufgabe 5 (1 Punkt): Es sei x eine Assoziation auf der Klasse A mit der Multiplizität * an beiden Enden.3
Geben Sie eine Objektwelt bestehend aus A-Objekten und x-Links an, die die Spezifikation, die durch die
beiden Multiplizitäten gegeben ist, nicht erfüllt!
Aufgabe 6 (2 Punkte): Wovon wird durch die Nutzung eines Iterators abstrahiert?
Aufgabe 7 (2 Punkte): Geben Sie die für das Entwurfsmuster Observer notwendigen Klassen und/oder
Interfaces mit den zugehörigen Operationen 4 an! Zu welchem Zweck setzt man das Muster Observer ein?
Aufgabe 8 (2 Punkte): Zu welchem Zweck kombiniert man das Observer- mit einem Adapter-Muster?
Aufgabe 9 (1 Punkt): Welches Problem erkennen Sie bei der Umsetzung der Fachklassen aus Abbildung 1
in Java, wenn jeder Container alle seine parts beobachten will?
TEIL II: ANWENDUNG (45 MINUTEN)
Im Anwendungsteil wollen wir
uns mit der Aufbaustruktur von
Unternehmen beschäftigen. Abbildung 1 zeigt dazu ein Fachklassenmodell. Ein Unternehmen
(Enterprise) besteht aus Abteilungen (Department), Stellen
(Position) und/oder Projekten
Abbildung 1: Aufbauorganisation von Unternehmen
(Project). Abteilungen besitzen
dieselbe Aufbaustruktur wie Unternehmen, sind aber wie Stellen und Projekte direkt oder indirekt immer
Teil (parts) eines Unternehmens. Projekte haben Teilnehmer ( members). Das können Abteilungen, Positionen und/oder (Unter-) Projekte sein.
Gamma et al: Design Patterns, Oesterreich: Objektorientierte Softwareentwicklung - Analyse und Design mit der UML und Balzert:
Lehrbuch der Objektorientierung.
2
Engl.: Interface
3
Eine Assoziation x ist auf einer Klasse A, wenn sie an beide Enden mit A verbunden ist.
4
Methoden sind nicht gefordert!
1
Aufgabe 10 (4 Punkte): Implementieren Sie dieses Modell in Form von Java-Klassen und -Schnittstellen!
(Hinweis: Kommentieren Sie ggf. Stellen, an denen Ihre Implementierung nicht vollständig die Semantik
des Modells wiedergibt!)
Aufgabe 11 (3 Punkte): Geben Sie die naheliegenden Visitoren für Ihre Klassen und Schnittstellen aus
Aufgabe 10 als Java-Kode an! Ergänzen Sie Ihre Klassen/Schnittstellen aus Aufgabe 10 um die Operationen und/oder Methoden, die nötig sind, damit ihre Visitoren richtig funktionieren!
Die Rauten an den Assoziationen parts und members fordern Zyklenfreiheit sämtlicher Objektwelten. 5
Aufgabe 12 (1 Punkt): Welchen Effekt hat die Multiplizität „1“ an der parts-Assoziation?
Zur Sicherstellung der Zyklenfreiheit muss in Java eine Operation „ contains“ realisiert werden, die prüft,
ob ein Objekt von einem anderen Objekt aus über parts- und/oder members-Links erreicht werden kann.
Aufgabe 13 (1 Punkt): Erweitern Sie zunächst das Modell aus Abbildung 1 um diese Operation.
Aufgabe 14 (5 Punkte): Erweitern Sie jetzt Ihre Implementierung aus Aufgabe 10 entsprechend und zwar
inklusive sämtlicher notwendigen Methoden!
Aufgabe 15 (2 Punkte): Stellen können vakant oder besetzt sein. Besetzte Stellen sind mit einem Mitarbei­
ter besetzt. Verändern und/oder erweitern Sie das Modell aus Abbildung 1 entsprechend!
TEIL III: TRANSFER (30 MINUTEN)
Betrachten Sie das kleine Meta-Modell für Objektorientierte Systeme in Abbildung 2! Dabei sollen für alle
Objekte l vom Typ Link folgende Konsistenzbedingungen gelten:
1. Es gibt einen Weg über extends-Links6 von l.from.instanceOf nach l.instanceOf.from.
2. Es gibt einen Weg über extends-Links7 von l.to.instanceOf nach l.instanceOf.to.
Aufgabe 16 (1 Punkt): Die extends-Assoziation muss als Aggregation modelliert
werden. Warum?
Aufgabe 17 (1 Punkt): Welche der in diesem Modell modellierten Assoziationen
sind Abbildungen? Warum?
Aufgabe 18 (1 Punkte): Welche Multiplizitäten werden durch dieses Modell für
alle Assoziationen spezifiziert? Warum?
Aufgabe 19 (3 Punkte): Erweitern Sie das
Abbildung 2: Meta-Modell
Meta-Modell so, dass konkrete Klassen,
abstrakte Klassen und Schnittstellen unterschieden werden können. (Hinweis: Bedenken Sie Aufgabe 3 !)
Aufgabe 20 (2 Punkte): Wie muss man nach der Erweiterung aus Aufgabe 19 die Konsistenzbedingungen
für Link-Objekte oben umformulieren?
Abteilungen sollen sich nicht direkt oder indirekt selbst als Unterabteilung enthalten. Projekte sollen sich nicht direkt
oder indirekt als Unterprojekte enthalten. Bedenken sie die mögliche Interaktion zwischen den beiden Assoziationen
5
parts und members.
6
7
In Leserichtung!
In Leserichtung!
Herunterladen