MINT lernen

Klassendiagramm entwerfen

Sechs Sätze Auftragstext, vier Klassen, fünf Beziehungen — wie kommt man vom einen zum anderen, ohne etwas zu übersehen?

1

Vom Text zum Diagramm

  • Substantive:Kandidaten für Klassen — aber nur, wenn sie eigene Eigenschaften oder eigenes Verhalten haben.
  • Einfache Werte:Farbe, Name, Grad werden Attribute mit Datentyp.
  • Verben:Tätigkeiten werden Methoden der Klasse, die sie ausführt.
  • „hat“, „kennt“:Assoziation; Mengenwörter liefern die Kardinalität — „genau ein“ 1, „höchstens ein“ 0..1, „beliebig viele“, „alle“ *.
  • „ist ein“:Vererbung — die speziellere Klasse erbt von der allgemeineren.
  • Streichen:Synonyme, die Software selbst und Personen, die nur bedienen, aber keine Daten haben.

Ziehe die Papierrolle unten nach rechts (oder → auf der Rolle, ▶ spielt ab): Satz für Satz wickelt sich der Auftragstext ab, und das Klassendiagramm wächst mit. Gelb markiert ist, was der aktuelle Satz neu beiträgt.

Den Auftrag abwickeln

  1. Die Kletterhalle verwaltet beliebig viele Routen und Mitglieder.
  2. Jede Route hat eine und einen .
  3. Ein Mitglied hat einen und kann eine Route als geschafft eintragen.
  4. Jedes Mitglied kennt alle Routen, die es geschafft hat.
  5. Ein Trainer ist ein Mitglied, das zusätzlich eine hat.
  6. Jede Route wird von genau einem Trainer geschraubt.

Halte fest: Jeder Satz liefert ein Stück Diagramm — Substantive mit Eigenschaften werden Klassen, Werte werden Attribute, Verben Methoden, „kennt“ wird Assoziation und „ist ein“ Vererbung. Kein Satz darf ohne Spur im Diagramm bleiben.

2

Den Entwurf prüfen

  • Attribut oder Klasse?Hat das Ding eigene Daten, wird es eine Klasse mit Assoziation; ist es nur ein Wert, bleibt es Attribut.
  • Referenz statt Name:nicht - trainerName: Zeichenkette, sondern - schrauber: Trainer — das Objekt selbst kennen.
  • Doppeltes:gleiche Attribute in mehreren Klassen → Oberklasse prüfen (ist-ein-Test).
  • Richtung:nur so viele Pfeile, wie die Methoden zum Navigieren brauchen.
  • Probelauf:jede Anforderung als kleines Objektdiagramm durchspielen — geht alles, ist der Entwurf vollständig.

Herleitung:

„Jede Route wird von genau einem Trainer geschraubt.“
| Wer kennt wen?
Die Route muss ihren Trainer kennen — der Pfeil zeigt von Route zu Trainer.
Route ——schrauber——> 1 Trainer
| „genau einem“
Das Mengenwort wird zur Kardinalität 1 an der Trainer-Seite; die Rolle heißt schrauber.
- schrauber: Trainer
| nach Java
Kardinalität 1: eine Referenz, die nie null sein darf.
private Trainer schrauber; + Parameter im Konstruktor
Ergebnis
Weil jede Route vom ersten Moment an einen Trainer hat, gehört er in den Konstruktor.
public class Route {
    private String farbe;
    private int grad;
    private Trainer schrauber;               // Kardinalität 1

    public Route(String farbe, int grad, Trainer schrauber) {
        this.farbe = farbe;
        this.grad = grad;
        this.schrauber = schrauber;          // nie null
    }
    public Trainer getSchrauber() {
        return schrauber;
    }
}
Trainer t = new Trainer("Mo", "DAV-4711");
Route gelb = new Route("gelb", 5, t);
t.eintragen(gelb);                            // ein Trainer ist auch ein Mitglied
System.out.println(t.getAnzahlGeschafft());   // 1
System.out.println(gelb.getSchrauber() == t); // true
Merke

Entwurf in vier Schritten: Klassen finden → Attribute und Methoden zuordnen → Beziehungen festlegen („kennt“ → Assoziation mit Kardinalität, „ist ein“ → Vererbung) → mit den Anforderungen prüfen.

3

Allgemeine Hinweise

Nicht jedes Substantiv ist eine Klasse

„Farbe“ und „Schwierigkeitsgrad“ sind Werte, „Software“ oder „App“ ist das System selbst. Wer alles zur Klasse macht, bekommt Klassen ohne Methoden.

Keine Schlüssel wie in der Datenbank

Eine Nummer als Verweis (- trainerNr: Ganzzahl) ist Datenbank-Denken. Im Klassendiagramm kennt ein Objekt das andere direkt über eine Referenz.

Jeden Satz abhaken

Nummeriere die Sätze des Auftrags und notiere am Diagramm, woher jedes Element stammt. So fällt sofort auf, welcher Satz noch keine Spur hinterlassen hat.

Videos