🎯 IHK-Prüfungstraining

UML-Aufgaben im Prüfungsformat

⏱️ Prüfungszeit
90:00

Abschlussprüfung Teil 2 – Übungsaufgaben

Fachinformatiker Anwendungsentwicklung

4 Aufgaben mit Belegsatz
90 Minuten Bearbeitungszeit
100 Punkte Gesamtpunktzahl
UML 2.5.1 Standard

📋 Die Aufgaben 1 bis 4 beziehen sich auf folgende Ausgangssituation:

Die TechStore GmbH hat sich auf den Online-Vertrieb von Elektronikartikeln spezialisiert. Sie entwickeln als Fachinformatiker für Anwendungsentwicklung verschiedene Softwarekomponenten für das neue Warenwirtschaftssystem.

Das System soll folgende Kernfunktionen bieten: Kundenverwaltung, Bestellabwicklung, Lagerverwaltung und Rechnungserstellung. Kunden können sich registrieren, Produkte in den Warenkorb legen und Bestellungen aufgeben. Nach erfolgreicher Zahlung wird die Bestellung versandt und eine Rechnung erstellt.

1. Aufgabe – Sequenzdiagramm

25 Punkte

Für den Bestellprozess soll eine Anwendung entwickelt werden, die den Ablauf einer Bestellung darstellt.

Der Ablauf ist wie folgt beschrieben:

Nach dem Aufruf der Anwendung kann der Kunde über die Klasse GUI den Warenkorb anzeigen lassen (Methode zeigeWarenkorb()).

Der Kunde kann dann eine Bestellung aufgeben. Dabei ruft die GUI die Methode bestellungAufgeben(kundenId, warenkorb) der Klasse BestellService auf.

Der BestellService prüft zunächst die Verfügbarkeit der Artikel durch Aufruf der Methode pruefeVerfuegbarkeit(warenkorb) der Klasse LagerService. Diese gibt einen Boolean-Wert zurück.

Falls alle Artikel verfügbar sind (Bedingung: [verfügbar == true]):

  • Der BestellService erstellt eine neue Bestellung durch Aufruf von erstelleBestellung(kundenId, warenkorb) der Klasse Bestellung
  • Der BestellService gibt die Bestellbestätigung an die GUI zurück

Falls nicht alle Artikel verfügbar sind (Bedingung: [verfügbar == false]):

  • Der BestellService gibt eine Fehlermeldung "Artikel nicht verfügbar" an die GUI zurück
💡 Hinweis: Verwenden Sie die UML 2.5.1 Notation. Synchrone Nachrichten haben gefüllte Pfeilspitzen (▶), Rückgaben gestrichelte Linien mit offener Pfeilspitze. Verwenden Sie ein alt-Fragment für die Verzweigung.

Vorgegebene Klassen:

GUI, BestellService, LagerService, Bestellung

📝 Ihre Lösung:

Erstellen Sie das Sequenzdiagramm auf einem separaten Blatt oder nutzen Sie den Platz unten.

Musterlösung – Sequenzdiagramm Bestellprozess

:GUI :BestellService :LagerService :Bestellung zeigeWarenkorb() bestellungAufgeben(kundenId, warenkorb) pruefeVerfuegbarkeit(warenkorb) verfügbar: Boolean alt [verfügbar == true] erstelleBestellung(kundenId, warenkorb) bestellung bestellbestätigung [verfügbar == false] "Artikel nicht verfügbar"
Bewertungskriterien (25 Punkte):
  • Korrekte Lebenslinien mit Objektnamen (4 P)
  • Synchrone Nachrichten mit gefüllter Pfeilspitze (4 P)
  • Rückgaben gestrichelt mit offener Pfeilspitze (4 P)
  • Korrektes alt-Fragment mit Guards (5 P)
  • Aktivierungsbalken korrekt platziert (4 P)
  • Methodennamen und Parameter vollständig (4 P)

2. Aufgabe – Klassendiagramm

25 Punkte

Für das Warenwirtschaftssystem soll ein Klassendiagramm erstellt werden. Folgende Anforderungen sind gegeben:

Klasse Kunde:

  • Private Attribute: kundenNr (int), name (String), email (String), adresse (String)
  • Öffentliche Methoden: bestellen(), getKundenDaten()

Klasse Bestellung:

  • Private Attribute: bestellNr (int), datum (Date), status (String)
  • Öffentliche Methoden: berechneGesamtpreis(), getStatus()
  • Ein Kunde kann mehrere Bestellungen haben, eine Bestellung gehört zu genau einem Kunden

Klasse Bestellposition:

  • Private Attribute: menge (int), einzelpreis (double)
  • Öffentliche Methoden: berechneSumme()
  • Eine Bestellung enthält mindestens eine Bestellposition. Bestellpositionen existieren nicht ohne Bestellung.

Klasse Produkt:

  • Private Attribute: produktNr (int), bezeichnung (String), preis (double), lagerbestand (int)
  • Öffentliche Methoden: getDetails(), aktualisiereBestand(menge: int)
  • Eine Bestellposition verweist auf genau ein Produkt
💡 Hinweis: Achten Sie auf die korrekte UML-Notation für Sichtbarkeiten (-, +, #), Datentypen, Multiplizitäten und die richtige Wahl zwischen Assoziation, Aggregation und Komposition.

📝 Ihre Lösung:

Erstellen Sie das Klassendiagramm mit allen Klassen, Attributen, Methoden und Beziehungen.

Musterlösung – Klassendiagramm Warenwirtschaft

Kunde - kundenNr: int - name: String - email: String - adresse: String + bestellen() + getKundenDaten() Bestellung - bestellNr: int - datum: Date - status: String + berechneGesamtpreis() + getStatus() Bestellposition - menge: int - einzelpreis: double + berechneSumme(): double Produkt - produktNr: int - bezeichnung: String - preis: double - lagerbestand: int + getDetails() + aktualisiereBestand(menge: int) 1 * 1 1..* 1
Bewertungskriterien (25 Punkte):
  • Klassen mit Drei-Kammer-Notation (4 P)
  • Korrekte Sichtbarkeiten (- für private, + für public) (4 P)
  • Attribute mit Datentypen (4 P)
  • Methoden mit Parametern und Rückgabetypen (4 P)
  • Einfache Assoziation Kunde-Bestellung mit Multiplizitäten (3 P)
  • Komposition Bestellung-Position mit gefüllter Raute (3 P)
  • Gerichtete Assoziation Position-Produkt (3 P)

3. Aufgabe – Use-Case-Diagramm

25 Punkte

Erstellen Sie ein Use-Case-Diagramm für das Bestellsystem der TechStore GmbH mit folgenden Anforderungen:

Akteure:

  • Kunde (Primärakteur): Nutzt das System für Bestellungen
  • Zahlungsdienstleister (Sekundärakteur): Externes System für Zahlungsabwicklung

Use Cases:

  • Bestellung aufgeben: Hauptanwendungsfall
  • Artikel suchen: Wird bei jeder Bestellung benötigt (include)
  • Zahlung durchführen: Wird bei jeder Bestellung benötigt (include)
  • Gutschein einlösen: Kann optional bei einer Bestellung erfolgen (extend, Condition: hat Gutschein)
  • Expressversand wählen: Kann optional gewählt werden (extend, Condition: Expressversand gewünscht)
💡 UML 2.5.1 Hinweis: Primärakteure stehen LINKS, Sekundärakteure RECHTS. Bei «include» zeigt der Pfeil ZUM eingebundenen UC. Bei «extend» zeigt der Pfeil ZUM Basis-UC und der Basis-UC benötigt einen Extension Point (EP)!

📝 Ihre Lösung:

Erstellen Sie das Use-Case-Diagramm mit korrekter Platzierung der Akteure und Beziehungen.

Musterlösung – Use-Case-Diagramm Bestellsystem

TechStore Bestellsystem Kunde Zahlungs- dienstleister Bestellung aufgeben extension points nachWarenkorb, vorAbschluss Artikel suchen Zahlung durchführen Gutschein einlösen Expressversand wählen «include» «include» «extend» [hat Gutschein] «extend» [Express gewünscht]
UML 2.5.1: Der Basis-UC enthält "extension points" mit den EP-Namen. Die Conditions in [] geben an, wann die Erweiterung greift.
Bewertungskriterien (25 Punkte):
  • Systemgrenze mit Systemname (3 P)
  • Primärakteur LINKS positioniert (3 P)
  • Sekundärakteur RECHTS positioniert (3 P)
  • Alle Use Cases als Ellipsen im System (4 P)
  • «include» korrekt mit Pfeil ZUM eingebundenen UC (4 P)
  • «extend» mit EP im Basis-UC und Condition (4 P)
  • Assoziationen zwischen Akteuren und Use Cases (4 P)

4. Aufgabe – Aktivitätsdiagramm

25 Punkte

Erstellen Sie ein Aktivitätsdiagramm für den Bestellprozess mit folgenden Schritten:

  1. Der Prozess startet
  2. Kunde legt Artikel in den Warenkorb
  3. Entscheidung: Warenkorb leer?
    • [ja]: Zurück zu Schritt 2
    • [nein]: Weiter
  4. Kunde gibt Lieferadresse ein
  5. Parallele Aktivitäten (Fork):
    • Verfügbarkeit prüfen
    • Bonität prüfen
  6. Synchronisation (Join): Beide Prüfungen müssen abgeschlossen sein
  7. Entscheidung: Alle Prüfungen OK?
    • [ja]: Bestellung bestätigen → Ende
    • [nein]: Fehlermeldung anzeigen → Ende
💡 Hinweis: Beachten Sie: Entscheidung (Raute) → Merge (Raute), Fork (Balken) → Join (Balken). Verwenden Sie Guards in eckigen Klammern [Bedingung].

📝 Ihre Lösung:

Erstellen Sie das Aktivitätsdiagramm mit korrekten Symbolen und Kontrollflüssen.

Musterlösung – Aktivitätsdiagramm Bestellprozess

Artikel in Warenkorb legen Warenkorb leer? [ja] [nein] Lieferadresse eingeben Verfügbarkeit prüfen Bonität prüfen Prüfungen OK? [ja] Bestellung bestätigen [nein] Fehler- meldung
UML 2.5.1: 2 Entscheidungen → 2 Merge-Rauten! Merge 1 führt Start + Schleifenpfad zusammen. Merge 2 führt [ja] + [nein]-Pfad vor dem Ende zusammen.
Bewertungskriterien (25 Punkte):
  • Korrekter Start- und Endknoten (3 P)
  • Aktivitäten als abgerundete Rechtecke (4 P)
  • 2 Entscheidungsrauten + 2 Merge-Rauten (4 P)
  • Fork-Balken für parallele Pfade (4 P)
  • Join-Balken für Synchronisation (4 P)
  • Guards [ja]/[nein] an Entscheidungen (3 P)
  • Kontrollflüsse mit offenen Pfeilspitzen (3 P)
🖨️ Tipp: Sie können diese Seite drucken (Strg+P) um die Aufgaben auf Papier zu bearbeiten. Die Lösungen werden beim Drucken automatisch eingeblendet.