🎯 AP1 UML-Prüfungstraining

Abschlussprüfung Teil 1 – UML-Modellierung

⏱️ Prüfungszeit
45:00

Abschlussprüfung Teil 1 – UML-Aufgaben

Softwaremodellierung mit UML 2.5.1

4 Handlungsschritte mit Teilaufgaben
45 Minuten Bearbeitungszeit
50 Punkte Gesamtpunktzahl
UML 2.5.1 Standardnotation

📋 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 Punkte

Die Anforderungen an das Bibliothekssystem wurden in einem Gespräch mit dem Kunden ermittelt.

a) Use-Case-Diagramm erstellen (10 Punkte)

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
💡 UML 2.5.1 Hinweis: «include» zeigt zum eingebundenen UC, «extend» zeigt zum Basis-UC. Bei «extend» muss der Basis-UC einen Extension Point (EP) enthalten und/oder eine Condition angegeben werden!

📝 Ihre Lösung:

b) Theoriefrage (4 Punkte)

Was ist der Unterschied zwischen «include» und «extend»?

Musterlösung – Handlungsschritt 1

a) Use-Case-Diagramm:

Bibliotheksverwaltung Kunde Bibliothekar Medium ausleihen Kundenkonto prüfen Ausleihe verlängern Medium zurückgeben EP: Fristüberschreitung Mahnung erstellen «include» «extend» [Frist überschritten]
UML 2.5.1 Hinweis: «extend» benötigt einen Extension Point (EP) im Basis-UC und/oder eine Condition in eckigen Klammern, die angibt, wann die Erweiterung greift.

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 Punkte

Für das Bibliothekssystem soll ein Klassendiagramm erstellt werden.

a) Klassendiagramm-Analyse (6 Punkte)

Analysieren Sie das folgende Klassendiagramm:

Medium - medienNr: String - titel: String - verfuegbar: boolean Buch - autor: String - isbn: String - seiten: int DVD - regisseur: String - laufzeit: int - fsk: int Zeitschrift - ausgabe: int - erscheinungsdatum: Date

Ordnen Sie die Begriffe den Nummern zu:

Diagrammelement

Medium
Buch, DVD, Zeitschrift
Pfeil mit Dreieck
- titel: String
b) Beziehungen ergänzen (8 Punkte)

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:

Kunde - kundennr: String - name: String - email: String Ausleihe - ausleihDatum: Date - rueckgabeDatum: Date Medium 1 * * 1
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 Punkte

Der Ausleihvorgang soll als Aktivitätsdiagramm modelliert werden.

a) Aktivitätsdiagramm erstellen (8 Punkte)

Erstellen Sie ein Aktivitätsdiagramm für den Ausleihvorgang:

  1. Start → Kundenkarte einlesen
  2. Entscheidung: Konto gültig?
    • [nein] → Fehlermeldung → Ende
    • [ja] → weiter
  3. Medium scannen
  4. Entscheidung: Medium verfügbar?
    • [nein] → Vormerkung anbieten → Ende
    • [ja] → Ausleihe buchen → Quittung drucken → Ende

📝 Ihre Lösung:

b) Notation (4 Punkte)

Welches Symbol wird für eine Entscheidung (Decision) im Aktivitätsdiagramm verwendet?

Musterlösung – Handlungsschritt 3

a) Aktivitätsdiagramm:

Kundenkarte einlesen Konto gültig? [nein] Fehlermeldung [ja] Medium scannen Medium verfügbar? [nein] Vormerkung anbieten [ja] Ausleihe buchen Quittung drucken
UML 2.5.1 Hinweis: 2 Entscheidungen → 2 Merge-Rauten! Jede Entscheidung braucht ihre eigene Merge-Raute zur Zusammenführung der alternativen Pfade.

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 Punkte

Der Ablauf einer Medienausleihe soll als Sequenzdiagramm dargestellt werden.

a) Sequenzdiagramm analysieren (6 Punkte)

Betrachten Sie das folgende Sequenzdiagramm:

:Terminal :AusleihService :Medienkatalog ausleihen(kundeId, mediumId) pruefeVerfuegbarkeit(mediumId) verfuegbar: boolean erfolg: boolean

Welche Aussage zum Diagramm ist korrekt?

b) Notation ergänzen (4 Punkte)

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)
🖨️ Tipp: Sie können diese Seite drucken (Strg+P) um die Aufgaben auf Papier zu bearbeiten. Die Lösungen werden beim Drucken automatisch eingeblendet.