Probeprüfungen Klassendiagramme
Aufgabe: Übungen Klassendiagramm
Auftrag 1: Klasse mit Attributen
Lernziele
Aus einem Dokument Klassen und Attribute erkennen.
Klassen und Attribute korrekt in UML Klassendiagramm modellieren.
Ausgangslage
Sie erhalten das nachfolgende Dokument für eine Dokumentenanalyse:
Seminaranmeldung
Ich melde mich für folgendes Seminar an:
Seminar-Nr.: 101
Seminarbezeichnung: Fit in UML
Durchführung am: 22.6.2012 08:00 - 17:00
Preis: CHF 720.--
Teilnehmerdaten:
Vorname, Name: Hans, Muster
Adresse: Hauptstrasse 22, 9000 St. Gallen
Geburtsdatum: 22.9.1987
Aufgabenstellung
Analysieren Sie obiges Dokument und leiten Sie Klassen mit deren Attribute davon ab. Modellieren Sie diese in einem Klassendiagramm.
Ordnen Sie den Attributen einen korrekten Java-Datentyp zu. Setzen Sie alle Attribute auf Privat.
Auftrag 2: Klassenattribute, Konstanten, Aufzählungen
Lernziele
Erweiterte Möglichkeiten der Attribute einsetzen.
Aufzählungsklassen verwenden.
Ausgangslage
Mit einem Interview mit dem Seminarverantwortlichen können Sie zu obigem Dokument (siehe Auftrag 1) folgende Zusatzinformationen gewinnen:
«Jedes Seminar ist ein eine der folgenden Kategorien zugeordnet: Objektorientierte Analyse, Softwarearchitektur oder Programmierung. Das Durchschnittsalter aller Seminarteilnehmer möchte ich gerne an einer prominenten Stelle angezeigt haben. Beim Anlegen jedes Seminarteilnehmers möchte ich gerne das Datum des ersten Seminarbesuchs fix gespeichert haben. Bei der Seminardurchführung ist der Default-Wert für die Zeit von - bis immer 08:00 - 17:00.»
Aufgabenstellung
Ergänzen Sie das Klassendiagramm aus Auftrag 1, damit die gewünschten Anforderungen des Seminarverantwortlichen korrekt abgebildet sind.
Auftrag 3: Einfache Assoziation, Multiplizitäten
Lernziele
Assoziationen mit deren Multiplikationen erkennen.
Assoziationen korrekt im Klassendiagramm modellieren.
Ausgangslage
Auf Ihre Rückfrage zum Seminarverantwortlichen erhalten Sie folgende Zusatzinformation:
«Eine Seminardurchführung wird immer für ein bestimmtes Seminar durchgeführt. Eine Durchführung findet nur statt, wenn mindestens 4 Teilnehmer da sind. Die Seminarräume fassen maximal 24 Teilnehmer. Ein Seminarteilnehmer wird erst aufgenommen, wenn er mindestens an einem Seminar teilnimmt.»
Aufgabenstellung
Ergänzen Sie das Klassendiagramm aus Aufgabe 2 mit den korrekten Assoziationen, damit die gewünschten Anforderungen des Seminarverantwortlichen korrekt abgebildet sind.
Auftrag 4: Statisches Szenario als Objektdiagramm abbilden
Lernziele
Zweck des Objektdiagramms erkennen.
Objektdiagramm korrekt in UML abbilden.
Ausgangslage
Zu obigem Seminar (gemäss Dokument Auftrag 1) haben sich noch folgende 3 Personen angemeldet: Franz Bauer, Zürich; Fridolin Wegmann, Glarus; Vreni Meier, Winterthur.
Aufgabenstellung
Erstellen Sie aus dem ob genannten Szenario ein Objektdiagramm. Zeigen als Attribut nur den Ort in den Objekten der Seminarteilnehmer an.
Auftrag 5: Mehrere Assoziationen, Rollenbezeichnungen, Einschränkungen
Lernziele
Erkennen von mehrfachen Beziehungen zwischen zwei Klassen und deren korrekte Modellierung im Klassendiagramm.
Verwendung von Rollenbezeichnungen bei den Assoziationen.
Verwendung von Einschränkungen in Assoziationen.
Ausgangslage
Die Referenten werden in unserem obigen Seminarverwaltungssystem auch als Seminarteilnehmer verwaltet. Ein Seminar muss einen Referenten und kann einen Co-Referenten haben. Die Anzahl Studierende bleibt pro Seminardurchführung wie oben beschrieben bei min. 4 und max. 24.
Aufgabenstellung
Passen Sie das Klassendiagramm aus Aufgabe 4 entsprechend an.
Auftrag 6: Reflexive Assoziation
Lernziele
Modellierung einer reflexiven Assoziation.
Ausgangslage
In einem weiteren Gespräch erfahren Sie, dass gewisse Seminare auf anderen (eines oder mehrere) aufbauen können.
Aufgabenstellung
Bilden Sie diesen Sachverhalt korrekt im bestehenden (siehe Auftrag 5) Klassendiagramm ab.
Auftrag 7: Aggregation/Komposition
Lernziele
Aggregationen bzw. Kompositionen erkennen und korrekt im UML-Klassendiagramm modellieren.
Ausgangslage
Bezüglich der Räumlichkeiten informiert Sie die Seminarplanung wie folgt:
«In unserem Gebäude haben wir 5 Etagen und wir verteilen die Seminare möglichst auf alle Etagen. In jeder Etage gibt es eine Reihe von Seminarräumen. Jeder Raum hat eine Raum-Nummer und einen Raum-Namen. Für ein Seminar ordnen wir immer 1 Seminarraum zu. Nicht jeder Seminarraum hat genau die gleiche Ausstattung. Die Ausstattungsgegenstände bilden Teil des Seminarraums.»
Aufgabenstellung
Erweitern Sie das Klassendiagramm aus der vorherigen Aufgabe, damit der beschriebene Sachverhalt korrekt abgebildet ist.
Auftrag 8: Assoziationsklasse
Lernziele
Den Einsatz von Assoziationsklassen erkennen.
Assoziationsklassen korrekt im Klassendiagramm modellieren.
Ausgangslage
Sie analysieren die Anforderungen zu einem Hotelreservationssystem. Ihr Interview-Partner sagt unter anderem folgendes aus:
«Eine Hotelreservation (enthält die Zeitdauer) bezieht sich auf eins oder mehrerer Reservationsobjekte (z.B. Hotelzimmer, Gruppenarbeitszimmer, …). Dabei kann bei einer solchen Belegung die Belegungsart (z.B. Hotelzimmer mit einer Person oder mit 2 Personen belegen) variieren. Ein Objekt kann in einer bestimmten Zeitperiode selbstverständlich nur einmal belegt werden.»
Aufgabenstellung
Modellieren Sie den Ausschnitt gemäss den oben abgegebenen Informationen.
Auftrag 9: Generalisierung
Lernziele
Möglichkeiten für eine Generalisierung erkennen.
Die Generalisierung korrekt mit Ober-/Unterklassen im Klassendiagramm modellieren.
Ausgangslage
Sie führen das Interview aus Aufgabe 8 weiter und erfahren dabei über das Reservationsobjekt folgendes:
«Ein Kunde kann folgendes reservieren:
einen Plenumsraum
einen Gruppenraum
ein Hotelzimmer (je nach Anzahl Betten mit Einzel- oder Doppelbelegung)
eine Utensilie (wie z.B. Kinderbett, Beamer etc.)
eine Verpflegung (z.B. Morgen-/Mittag- oder Abendessen) sein.
Alle Räume haben eine Etagen- und Raum-Nr. Bei den Hotelzimmer ist noch zusätzlich die Zimmerkategorie vermerkt.»
Aufgabenstellung
Modellieren Sie den angegeben Sachverhalt, indem Sie das Klassendiagramm aus Auftrag 8 ergänzen.
Auftrag 10: Abstrakte Klassen
Lernziele
Bedeutung der abstrakten Klasse verstehen.
Abstrakte Klassen korrekt modellieren.
Ausgangslage
Die Grundlage bildet die Aufgabenstellung aus Auftrag 9.
Aufgabenstellung
Welche Klassen benötigen keine eigene Instanz? Oder anders gefragt: zu welchen Klasse braucht es keine Objekte? Nochmals anders gefragt: welche Klassen werden nur zur Vererbung verwendet? Kennzeichnen Sie diese Klassen als abstrakt im Klassendiagramm.
Auftrag 11: Generalisierungsmenge
Lernziele
Bedeutung von Generalisierungsmengen erkennen.
Generalisierungsmengen korrekt im UML-Klassendiagramm modellieren.
Ausgangslage
Sie analysieren ein Informationssystem für Ihre politische Gemeinde. Der Gemeindeschreiber gibt Ihnen folgende Informationen:
»Zu den Personen haben wir folgendes Erfassungsformular»:
unselbstständig erwerbend
männlich weiblich
Aufgabenstellung
Modellieren Sie diesen Sachverhalt mit passenden Generalisierungsmengen.
Auftrag 12: Boundary – Control – Entity (BCE) Analysemuster
Lernziele
Den Zweck des BCE Analysemusters erkennen.
Das BCE Analysemuster anwenden.
Ausgangslage
Sie Analysieren die Software für einen Kaffeeautomaten. Der Techniker gibt Ihnen folgende Hinweise:
«Der Kaffeeautomat besteht aus folgenden Teilen:
Touchscreen für die Informationsausgabe und die Eingabe des Kaffeewunsches.
Zahleinheit für die Abbuchung via Mitarbeiterbatch.
Zentrale Steuerungssoftware.
Interner Speicher mit den Produktinformationen sowie der Ablage aller Transaktionen.
Ethernet-Schnittstelle für den Datenaustausch und die Remotesteuerung.»
Aufgabenstellung
Erstellen Sie ein Klassendiagramm mittels des BCE Analysemusters.
Auftrag 13: Einsatz von Operationen
Lernziele
Operationssignaturen korrekt erstellen.
Ausgangslage
Für die Klasse Kunde haben Sie folgende Funktionalität entworfen:
Nehmen Sie als Attribute KundenID, Name, Ort und Geburtsdatum auf. Erstellen Sie zu Name und Ort je einen Setter und Getter.
Der Konstruktor nimmt die KundenID entgegen.
Mit getKunde erhält man für eine bestimmte KundenID ein String mit dem Kundennamen und Ort
Mit getKunden erhält man eine Liste von Kundenobjekten. Als Input-Parameter ist ein Suchstring mitzugeben.
Mit getAnzahlKunden erhalten Sie die Anzahl gespeicherten Kunden.
Die Klasse soll eine öffentlich zugängige Operation (getAlter) aufweisen, mit welcher das Alter in ganzen Jahren errechnet werden kann (Übergabeparameter ist das Geburtsdatum).
Mit CheckSecurity soll folgende Funktionalität gegeben werden:
Es wird ein String by reference übergeben, in welchem die Berechtigungsflags (CRUD1) nachgeführt werden.
CheckSecurity gibt false zurück, wenn der eingeloggte Benutzer nicht gefunden wird, die Berechtigungsflags werden in diesem Falle nicht geändert.
Wird der Benutzer gefunden, dann gibt CheckSecurity true zurück und die Berechtigungsflags sind entsprechend gesetzt.
Aufgabenstellung
Erstellen Sie die Klasse mit den Attributen und Operationen in UML gemäss obigen Angaben.
Auftrag 14: Fallstudie «Prüfungsverwaltung»
Lernziele
Aggregationen bzw. Kompositionen erkennen und korrekt im UML-Klassendiagramm modellieren.
Ausgangslage
Die Informatik-Schule Informatica möchte Ihr Prüfungswesen neu mit dem Computer unterstützten. Bei der ersten Besprechung haben Sie als Systemanalytiker folgende Anforderungen aufgenommen:
Die Daten zu den Modulen sowie Studierenden sind täglich aus dem operativen Schulverwaltungssystem zu importieren:
Modul | Modul-ID |
|
| Modul-Bezeichnung |
|
| Modul-Beschreibung |
|
Moduldurchführung | Modul-ID |
|
| Jahr - Semester | Semester: Sommer oder Winter |
| Klassen-ID |
|
| Dozenten-ID |
|
Dozent | Dozenten-ID |
|
| Titel |
|
| Vorname |
|
| Nachname |
|
Klasse | Klassen-ID |
|
| Klassen-Bezeichnung |
|
Student | Studenten-ID |
|
| Klassen-ID |
|
| Vorname |
|
| Nachname |
|
| Foto |
|
Im neu zu konzipierenden System sind folgende Anforderungen zu erfüllen:
Erfassen von Räumen (diese stehen während der Prüfungszeit exklusiv zur Verfügung, jeder Raum hat ein Stockwerk, Raum-Nr und eine Raumbezeichnung)
Erfassen von Prüfungen zu den Moduldurchführungen mit folgenden Angaben: Raum, Datum, Zeit von bis. Es gibt nur eine Prüfung pro Moduldurchführung.
Das System muss sicherstellen, dass kein Raum doppelt belegt wird.
Jeder Student kann seinen Prüfungsplan über das Schulintranet einsehen und als PDF ausgeben.
Jeder Dozent kann seine Prüfungen über das schulische Intranet einsehen und als PDF ausgeben.
Jeder Dozent kann nach der Korrektur die Noten je Student im System erfassen und eine Klassenliste mit den erzielten Noten ausgeben.
Die Noten werden zu einem bestimmten Stichtag ins zentrale Schulsystem exportiert (dies wird vom Scheduler ausgelöst).
Jeder Student kann seinen Notenausweis aller geprüften Module für das aktuelle Semester ausgeben
Für die User-Verwaltung und Autorisierung zu den Funktionen stehen die zentralen Objekte des Security-Systems mittels Web-Service zur Verfügung:
UserLogin | Funktion mit GUI | gibt User-Id zurück, wenn das Login erfolgreich war |
UserAccess | Modul mit folgenden Parameter: - Programm-Id - User-ID | gibt True oder False zurück, je nachdem, ob der User Zugriff auf das entsprechende Programm hat. |
Die Erfassung der neuen Funktionen sowie der Zuordnung zu den Rollen kann im zentralen Security-System während der Einführungsphase des Systems vorgenommen werden.
Aufgabenstellung
Führen Sie eine Informationsanalyse durch und erstellen Sie ein Klassendiagramm (ohne Operationen).
1 CRUD = Create, Read, Update, Delete