Darstellungsformen: Struktogramm und Entwurfsdiagramm
Lernziele
Nach diesem Kapitel kannst du:
ein Struktogramm lesen und die Bausteine Sequenz, Verzweigung und Schleife identifizieren,
ein Struktogramm in Java-Code übersetzen und umgekehrt,
den Unterschied zwischen Entwurfs- und Implementationsdiagramm erklären,
ein Objektdiagramm zu Code mit Referenzen zeichnen,
ein Implementationsdiagramm in ein Entwurfsdiagramm überführen.
Leitfrage: Warum planen wir zuerst die Struktur (Struktogramm, Entwurfsdiagramm), bevor wir Code schreiben?
Voraussetzungen
Hinweis
Dieses Kapitel baut auf Kapitel 01–03 auf. Du solltest Referenzen, Aliasing, null-Checks und Arrays von Referenzen sicher beherrschen. Zusätzlich: Grundlegende UML-Klassendiagramme aus der EF.
Zwischenstopp: Strukturen sichtbar machen
Wir haben jetzt mehrere Dinge kennengelernt, die man im Code nicht direkt sieht: Referenzen, Aliasing, null, Speicheradressen und Arrays von Referenzen.
Wenn man diese Dinge nur im Kopf behält, wird es schnell unübersichtlich. Dieses Kapitel ist deshalb eine bewusste Pause vom reinen Implementieren: Wir lernen, Strukturen so darzustellen, dass man sie planen, erklären und überprüfen kann.
Phase 1: Einstieg
Hinweis
Retrieval-Check:
Was ist ein Klassendiagramm und wofür nutzt du es?
Nenne die drei Grundbausteine eines Algorithmus.
Phase 2: Konzeptaufbau
2.1 Struktogramm — Algorithmus vor Syntax
Ein Struktogramm zeigt die logische Form eines Programms, bevor du dich mit Java-Syntax beschäftigst:
Was passiert nacheinander? (Sequenz)
Wo wird entschieden? (Verzweigung)
Was wird wiederholt? (Schleife)
Worked Example: Prüfprogramm
StruktoLab lädt…
Übersetzung in Java:
Für den ersten Test ersetzt der Java-Code die Eingabe durch den festen Wert 67. Prüfe anschließend auch 49 und 50: Welche Ausgabe erwartest du jeweils?
IDE lädt…
Schleifen-Beispiel:
StruktoLab lädt…
2.2 Entwurfsdiagramm vs. Implementationsdiagramm
Im bisherigen Kurs hast du vollständige Klassendiagramme gesehen (mit allen Datentypen, allen Methoden). Das ist ein Implementationsdiagramm. Ein Entwurfsdiagramm ist bewusst abstrakter.
Entwurfsdiagramm — Was + Warum (für Fachexperten):
Mermaid-Diagramm
Mermaid-Diagramm wird geladen…
Implementationsdiagramm — Wie (für Programmierer):
Mermaid-Diagramm
Mermaid-Diagramm wird geladen…
Hinweis
Unterschied: Das Entwurfsdiagramm zeigt Klassen und ihre Verantwortungen — ohne Datentypen, ohne Getter/Setter, ohne Implementierungsdetails. Das Implementationsdiagramm zeigt alles.
Achtung
Häufiger Fehler (F10): Viele Schüler denken, das Entwurfsdiagramm sei „unvollständig" oder „falsch". Es ist bewusst abstrakt — ein Fachexperte braucht keine Datentypen, sondern will verstehen, welche Klassen es gibt und wie sie zusammenarbeiten.
Sicherung: Drei Bausteine
Struktogramm-Bausteine
Baustein
Im Struktogramm
In Java
Sequenz
Blöcke untereinander
Anweisungen nacheinander
Verzweigung
Geteilter Block (links/rechts)
if ... else
Schleife
Block mit Rahmen (Bedingung oben)
while / for
Entwurf vs. Implementierung
Entwurfsdiagramm
Implementationsdiagramm
Zeigt
Klassen + Verantwortungen
Alles (Datentypen, Getter/Setter, ...)
Zielgruppe
Fachexperte
Programmierer
Detailgrad
Abstrakt (WAS + WARUM)
Konkret (WIE)
Ruhige Sicherung: Welche Darstellung beantwortet welche Frage?
Tipp
Nutze Darstellungen nicht als Schmuck, sondern als Werkzeug:
Wenn du wissen willst ...
Nutze ...
Welche Klassen und Beziehungen es gibt
Klassendiagramm
Was ein Algorithmus Schritt für Schritt macht
Struktogramm
Welche konkreten Objekte gerade existieren
Objektdiagramm
Welche Verantwortung eine Klasse im System hat
Entwurfsdiagramm
Wie der konkrete Code später aussehen soll
Implementationsdiagramm
Die Entlastung in diesem Kapitel besteht darin, nicht alles gleichzeitig im Kopf behalten zu müssen.
2.3 Objektdiagramm — Konkreter Schnappschuss
Ein Objektdiagramm zeigt konkrete Objekte mit ihren aktuellen Attributwerten zu einem bestimmten Zeitpunkt. Es ist ein „Foto" des Speichers.
Pilot p1 = new Pilot("Kirk");Raumschiff rs1 = new Raumschiff();rs1.setPilot(p1);
Mermaid-Diagramm
Mermaid-Diagramm wird geladen…
Im Gegensatz zum Klassendiagramm (das die Struktur zeigt) zeigt das Objektdiagramm den Zustand — mit konkreten Werten und Referenzpfeilen.
2.4 Mermaid — Diagramme als Code
In diesem Kurs kannst du Klassendiagramme und Objektdiagramme direkt als Mermaid-Code schreiben. Mermaid ist eine Text-Notation, die automatisch in Diagramme umgewandelt wird — wie eine Programmiersprache für Diagramme.
Phase 3: Üben
Hinweis
Retrieval-Check:
Was ist der Unterschied zwischen Entwurfs- und Implementationsdiagramm?
Was passiert bei flotte[0].setGroesse(100) nach new Raumschiff[3]? (Rückbezug Kap. 03)
A1: Struktogramm → Java (Pflicht)
Übersetze das folgende Struktogramm in Java-Code:
StruktoLab lädt…
IDE lädt…
A2: Java → Struktogramm (Pflicht)
Erstelle ein Struktogramm für den folgenden Code:
int max = arr[0];for (int i = 1; i < arr.length; i++){ if (arr[i] > max) { max = arr[i]; }}System.out.println("Maximum: " + max);
StruktoLab lädt…
A3: Objektdiagramm zeichnen (Pflicht)
Zeichne ein Objektdiagramm zum folgenden Code. Zeige alle Objekte und Referenzen.
Pilot p1 = new Pilot("Kirk");Raumschiff rs1 = new Raumschiff();rs1.setPilot(p1);Pilot p2 = rs1.getPilot();
Wie viele Objekte? Wie viele Referenzen zeigen auf den Piloten?
Erstelle daraus ein Entwurfsdiagramm: Streiche alles, was ein Fachexperte (nicht Programmierer) nicht braucht. Behalte nur Klassen, zentrale Verantwortungen und Beziehungen.
Textabgabe
A5: Eigener Entwurf (Vertiefung)
Erstelle ein Entwurfsdiagramm für eine Bibliothek, die Bücher verwaltet. Überlege:
Welche Klassen brauchst du?
Welche Klasse hat welche Verantwortung?
Wo sind Referenz-Beziehungen?
Schreibe nur die Klassen, zentralen Methoden und Beziehungen auf — keine Datentypen.
Textabgabe
Durchgängiges Projekt: Online-Shop
Diese Aufgabe ist Teil des Online-Shop-Projekts, das sich durch den Kurs Lineare Datenstrukturen 1 zieht. In den bisherigen Kapiteln hast du Produkt, Kunde, Warenkorb und Lager implementiert. Jetzt stellst du den bisherigen Shop als Entwurfsdiagramm dar.
Projektstand Online-Shop
Der Shop bekommt jetzt Übersicht. Produkt, Kunde, Warenkorb und Lager werden als Struktur sichtbar, sodass du Beziehungen planen und prüfen kannst.
Die Grenze bleibt: Sichtbarkeit löst noch nicht das Problem, dass das Lager feste Plätze hat.
A6: Online-Shop — Entwurfsdiagramm (Vertiefung)
In den bisherigen Kapiteln hast du folgende Klassen für den Online-Shop entwickelt:
Produkt — hat einen Namen und einen Preis
Kunde — hat einen Namen und ein Lieblingsprodukt
Warenkorb — hat ein aktuelles Produkt, kann es wechseln
Lager — verwaltet ein Array von Produkten (feste Größe 10), kann ein-/auslagern
Erstelle ein Entwurfsdiagramm für den bisherigen Online-Shop. Zeige:
Alle vier Klassen mit ihren zentralen Verantwortungen (keine Datentypen, keine Getter/Setter)
Die Referenz-Beziehungen zwischen den Klassen (Pfeile)
Textabgabe
Phase 4: Vernetzung
Heute gelöst: Du hast nicht einfach neue Diagrammarten gelernt. Du hast Werkzeuge bekommen, um unsichtbare Strukturen sichtbar zu machen: Algorithmen, Objektzustände, Klassenbeziehungen und Verantwortlichkeiten.
Noch offen: Sichtbarkeit löst noch nicht das Grundproblem von Arrays. Arrays haben feste Plätze. Wenn Daten ständig wachsen, schrumpfen oder in eine bestimmte Reihenfolge gebracht werden müssen, wird das starr.
Nächster Schritt: Jetzt wechseln wir von festen Plätzen zu verketteten Objekten. Die erste dynamische Datenstruktur ist die Queue: hinten einfügen, vorne entnehmen, keine Verschieberei.
Alle Darstellungsformen im Überblick:
Form
Zeigt
Wann nutzen
Klassendiagramm
Klassen, Attribute, Methoden, Beziehungen
Programmstruktur planen
Objektdiagramm
Konkrete Objekte mit Attributwerten zu einem Zeitpunkt