Zum Inhalt springen

Aufgabe 21 - Eine Problemstellung modellieren

Zu Zen-Modus wechseln

Statik und Dynamik: Sie analysieren eine gegebene Problemstellung und stellen Struktur und Abläufe mit den grafischen Notationen der UML dar, bevor eine einzige Zeile Code entsteht (siehe Kapitel Statik-Modellierung und Dynamik-Modellierung). Das Modell ist hier das Produkt; implementiert wird nichts. Genau diese Kompetenz, Struktur und Ablauf einer Problemstellung zu analysieren und grafisch darzustellen, verlangt der Lehrplan wörtlich.

  • Kapitel Statik-Modellierung (Klassendiagramm, Sichtbarkeiten, Multiplizitäten, abstrakte Klassen) und Dynamik-Modellierung (Sequenz- und Zustandsdiagramm).
  • Ein Diagrammwerkzeug: Mermaid, PlantUML oder diagrams.net; Papier ist für Entwürfe ausdrücklich erlaubt.
  • Für Teil D eine Partnerin oder einen Partner für die Kreuzprüfung.
  • Sie überführen einen Anforderungstext systematisch in ein Klassendiagramm.
  • Sie modellieren Abläufe als Sequenzdiagramm und Lebenszyklen als Zustandsdiagramm.
  • Sie prüfen Modelle auf innere Widersprüche und kritisieren fremde Modelle begründet.
  • Reproduktion: Modellelemente im Text identifizieren und benennen (Teil A).
  • Reorganisation und Transfer: den Text in die drei Diagrammarten übersetzen (Teile B und C).
  • Reflexion, Problemlösung und Urteilsbildung: Diagramme gegeneinander prüfen, Widersprüche aufdecken und Modellentscheidungen verteidigen (Teil D).

Der Automat verkauft Getränke (Wasser, Saft, Kakao, jeweils mit Preis und Füllstand). Ein Kauf läuft so ab: Der Nutzer wirft Münzen ein und wählt ein Getränk; der Automat prüft Guthaben und Füllstand, gibt das Getränk und das Wechselgeld aus. Reicht das Guthaben nicht, zeigt er den Fehlbetrag an; ist das Getränk leer, bietet er die Rückgabe des Guthabens an. Der Hausmeister kann den Automaten befüllen und die Tageseinnahmen auslesen; dafür versetzt ihn ein Schlüsselschalter in den Wartungsmodus.

Die Übung ist auf etwa zwei Stunden ausgelegt. Teil D ist der Expertenteil und wird zu zweit bearbeitet.

  1. Markieren Sie im Szenario alle Substantive und sortieren Sie sie in drei Spalten: Klassenkandidat, Attribut, weder noch (mit kurzer Begründung je Eintrag).
  2. Markieren Sie alle Verben und ordnen Sie jedes einem Klassenkandidaten als mögliche Methode zu.
  3. Listen Sie alle Zahlen- und Zustandsangaben des Textes (Preis, Füllstand, Guthaben, Wartungsmodus) und notieren Sie je einen sinnvollen Datentyp.
  1. Erstellen Sie das Klassendiagramm. Erwartet werden: sinnvolle Klassen (Kandidaten sind unter anderem VendingMachine, Beverage, CoinBox, Sale), Sichtbarkeiten, Attribute mit Typen, Methoden und Multiplizitäten an allen Assoziationen.
  2. Mindestens eine Stelle des Modells verwendet Vererbung oder eine abstrakte Klasse sinnvoll (etwa Benutzerrollen oder Getränkearten). Begründen Sie die Stelle in einem Satz; falls Sie bewusst keine Vererbung einsetzen, begründen Sie das ebenso.
  3. Begründen Sie für zwei Multiplizitäten Ihrer Wahl in je einem Satz, warum sie so und nicht anders lauten.
  1. Zeichnen Sie das Sequenzdiagramm für den erfolgreichen Kauf (Nutzer, Automat, Getränkespeicher, Münzspeicher): Nachrichten in korrekter Reihenfolge, Antworten gestrichelt, mindestens ein alt-Fragment für “Guthaben reicht / reicht nicht”.
  2. Zeichnen Sie das Zustandsdiagramm des Automaten mit mindestens den Zuständen Ready, CoinsInserted, Dispensing und Maintenance, mit beschrifteten Ereignissen an allen Übergängen. Kontrollfrage an das eigene Diagramm: Kommt der Automat aus jedem Zustand wieder heraus?
  3. Begründen Sie in zwei Sätzen, warum der Kaufablauf ins Sequenzdiagramm gehört, der Wartungsmodus aber ins Zustandsdiagramm.

Teil D - Expertenteil: Kreuzprüfung und Verteidigung

Abschnitt betitelt „Teil D - Expertenteil: Kreuzprüfung und Verteidigung“
  1. Tauschen Sie Ihre drei Diagramme mit einem anderen Team. Prüfen Sie das fremde Modell systematisch: Kommt jede Nachricht des Sequenzdiagramms als Methode im Klassendiagramm vor? Ist jeder Zustandsübergang durch das Szenario gedeckt? Sind die Multiplizitäten begründbar?
  2. Notieren Sie mindestens zwei konkrete Unstimmigkeiten im fremden Modell, jeweils mit Fundstelle und Verbesserungsvorschlag. “Gefällt mir nicht” zählt nicht; jede Kritik nennt das verletzte Kriterium.
  3. Nehmen Sie die Kritik am eigenen Modell entgegen, entscheiden Sie pro Punkt: annehmen und korrigieren, oder mit Begründung ablehnen. Beides ist legitim; unbegründetes Ignorieren nicht.
  4. Erweiterungsfrage, nur durchdenken: Der Automat soll künftig Kartenzahlung unterstützen. Welche Klassen und welche Diagramme ändern sich, welche bleiben unberührt? Was sagt die Antwort über die Qualität Ihres Modells?
  1. Woran erkennen Sie im Anforderungstext Klassenkandidaten, woran Attribute, woran Methoden?
  2. Was bedeutet die Multiplizität 1 gegenüber 0..*, und wo steht sie am Diagramm?
  3. Welche Frage beantwortet das Sequenzdiagramm, welche das Zustandsdiagramm?
  4. Warum wird die Regel “ein Getränk kann nur ausgegeben werden, wenn der Füllstand über 0 liegt” nicht durch eine Multiplizität abgebildet, und wo gehört sie hin?
  5. Nennen Sie drei Kriterien aus der Review-Checkliste für Klassendiagramme.

Die drei Diagramme (Export oder Quelltext), die Zerlegungstabellen aus Teil A und das Protokoll der Kreuzprüfung mit den Entscheidungen zu jeder Kritik. Keine Implementierung; das Modell ist das Produkt.