Abschlussprüfung Teil 1 – UML-Aufgaben
Softwaremodellierung mit UML 2.5.1
Handlungssituation
Sie arbeiten als Auszubildender bei der SoftDev GmbH, einem Softwareentwicklungsunternehmen. Ihr Team entwickelt eine neue Anwendung zur Bibliotheksverwaltung für die Stadtbibliothek.
Im Rahmen der Anforderungsanalyse und des Softwareentwurfs sollen Sie verschiedene UML-Diagramme erstellen und analysieren. Die Bibliothek verwaltet Bücher, Zeitschriften und DVDs. Kunden können Medien ausleihen, vormerken und ihre Ausleihen verlängern.
Handlungsschritt 1 – Use-Case-Diagramm
14 PunkteDie Anforderungen an das Bibliothekssystem wurden in einem Gespräch mit dem Kunden ermittelt.
Erstellen Sie ein Use-Case-Diagramm mit folgenden Anforderungen:
- Akteure: Kunde (Primärakteur), Bibliothekar (Primärakteur)
- Use Cases:
- Medium ausleihen
- Medium zurückgeben
- Ausleihe verlängern
- Kundenkonto prüfen (wird von "Medium ausleihen" immer benötigt)
- Mahnung erstellen (erweitert "Medium zurückgeben" bei Fristüberschreitung)
- Der Kunde kann nur "Medium ausleihen" und "Ausleihe verlängern" nutzen
- Der Bibliothekar kann alle Use Cases nutzen
Ihre Lösung:
Was ist der Unterschied zwischen «include» und «extend»?
Musterlösung – Handlungsschritt 1
a) Use-Case-Diagramm:
b) Theoriefrage: B) «include» bindet einen Use Case immer ein, «extend» erweitert optional unter bestimmten Bedingungen
Bewertung:
- Systemgrenze mit Namen (2P)
- Akteure korrekt platziert (2P)
- Use Cases als Ellipsen (2P)
- «include» mit Pfeil ZUM eingebundenen UC (2P)
- «extend» mit Pfeil ZUM Basis-UC (2P)
- MC korrekt (4P)
Handlungsschritt 2 – Klassendiagramm
14 PunkteFür das Bibliothekssystem soll ein Klassendiagramm erstellt werden.
Analysieren Sie das folgende Klassendiagramm:
Ordnen Sie die Begriffe den Nummern zu:
Begriffe
Diagrammelement
Ergänzen Sie das Klassendiagramm um folgende Beziehungen:
- Eine Klasse Kunde mit: kundennr, name, email
- Eine Klasse Ausleihe mit: ausleihDatum, rueckgabeDatum
- Beziehungen:
- Ein Kunde kann mehrere Ausleihen haben (1 zu *)
- Eine Ausleihe bezieht sich auf genau ein Medium (gerichtete Assoziation)
Ihre Lösung (nur die neuen Klassen und Beziehungen):
Musterlösung – Handlungsschritt 2
a) Zuordnung:
- Medium: 1 (Oberklasse)
- Buch, DVD, Zeitschrift: 2 (Unterklassen)
- Pfeil mit Dreieck: 3 (Vererbung)
- - titel: String: 4 (Attribut)
b) Ergänzung:
Bewertung:
- a) Je richtige Zuordnung 1,5 Punkte (6P)
- b) Klasse Kunde korrekt (2P)
- b) Klasse Ausleihe korrekt (2P)
- b) Beziehung 1:* (2P)
- b) Gerichtete Assoziation mit Pfeil (2P)
Handlungsschritt 3 – Aktivitätsdiagramm
12 PunkteDer Ausleihvorgang soll als Aktivitätsdiagramm modelliert werden.
Erstellen Sie ein Aktivitätsdiagramm für den Ausleihvorgang:
- Start → Kundenkarte einlesen
- Entscheidung: Konto gültig?
- [nein] → Fehlermeldung → Ende
- [ja] → weiter
- Medium scannen
- Entscheidung: Medium verfügbar?
- [nein] → Vormerkung anbieten → Ende
- [ja] → Ausleihe buchen → Quittung drucken → Ende
Ihre Lösung:
Welches Symbol wird für eine Entscheidung (Decision) im Aktivitätsdiagramm verwendet?
Musterlösung – Handlungsschritt 3
a) Aktivitätsdiagramm:
b) Notation: B) Raute (Rhombus)
Bewertung:
- Start/Endknoten (1P)
- Aktivitäten als abgerundete Rechtecke (2P)
- 2 Entscheidungsrauten + 2 Merge-Rauten (4P)
- Guards [ja]/[nein] (2P)
- Kontrollflüsse korrekt (1P)
- MC korrekt (4P)
Handlungsschritt 4 – Sequenzdiagramm
10 PunkteDer Ablauf einer Medienausleihe soll als Sequenzdiagramm dargestellt werden.
Betrachten Sie das folgende Sequenzdiagramm:
Welche Aussage zum Diagramm ist korrekt?
Nennen Sie den Unterschied zwischen einer synchronen und einer asynchronen Nachricht im Sequenzdiagramm:
Musterlösung – Handlungsschritt 4
a) Analyse: B) Die gestrichelten Pfeile zeigen Rückgabewerte (Return)
b) Unterschied synchron/asynchron:
- Synchrone Nachricht: Gefüllte Pfeilspitze (▶), der Sender wartet auf die Antwort, bevor er fortfährt.
- Asynchrone Nachricht: Offene Pfeilspitze (>), der Sender wartet NICHT und arbeitet sofort weiter.
Bewertung:
- a) MC korrekt (6P)
- b) Synchron erklärt (2P)
- b) Asynchron erklärt (2P)