Abschlussprüfung Teil 2 – Übungsaufgaben
Fachinformatiker Anwendungsentwicklung
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 PunkteFü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
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
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 PunkteFü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
Ihre Lösung:
Erstellen Sie das Klassendiagramm mit allen Klassen, Attributen, Methoden und Beziehungen.
Musterlösung – Klassendiagramm Warenwirtschaft
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 PunkteErstellen 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)
Ihre Lösung:
Erstellen Sie das Use-Case-Diagramm mit korrekter Platzierung der Akteure und Beziehungen.
Musterlösung – Use-Case-Diagramm Bestellsystem
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 PunkteErstellen Sie ein Aktivitätsdiagramm für den Bestellprozess mit folgenden Schritten:
- Der Prozess startet
- Kunde legt Artikel in den Warenkorb
- Entscheidung: Warenkorb leer?
- [ja]: Zurück zu Schritt 2
- [nein]: Weiter
- Kunde gibt Lieferadresse ein
- Parallele Aktivitäten (Fork):
- Verfügbarkeit prüfen
- Bonität prüfen
- Synchronisation (Join): Beide Prüfungen müssen abgeschlossen sein
- Entscheidung: Alle Prüfungen OK?
- [ja]: Bestellung bestätigen → Ende
- [nein]: Fehlermeldung anzeigen → Ende
Ihre Lösung:
Erstellen Sie das Aktivitätsdiagramm mit korrekten Symbolen und Kontrollflüssen.
Musterlösung – Aktivitätsdiagramm Bestellprozess
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)