Informatik

Entwurfsdiagramm

Ein Entwurfsdiagramm (englisch design class diagram) ist ein Klassendiagramm aus der frühen Modellierungsphase. Es beantwortet die Frage Woraus besteht das System? und ist bewusst programmiersprachenunabhängig.

Die Notation folgt den Vorgaben für das Zentralabitur in Nordrhein-Westfalen.

Was hineingehört

  • Klassen mit ihren Beziehungen: gerichtete Assoziation und Vererbung.
  • Multiplizitäten an den Assoziationen.
  • Gegebenenfalls die wesentlichen Attribute und Methoden – nicht zwingend alle.

Was anders ist als im Implementationsdiagramm

Entwurfsdiagramm Implementationsdiagramm
Sichtbarkeit + - # keine ja
Datentypen Zahl, Text, Wahrheitswert, Datensammlung<…> die der Programmiersprache
Multiplizitäten ja nein – stattdessen konkrete Bezeichner
Rückgabetyp ja, hinter dem Doppelpunkt ja

Es gibt nur diese vier Datentypen. Bei der Datensammlung steht in spitzen Klammern der Typ oder die Klasse der Elemente, die dort verwaltet werden.

Multiplizitäten werden so geschrieben:

Bedeutung
1 genau ein assoziiertes Objekt
0..1 kein oder ein assoziiertes Objekt
0..* beliebig viele assoziierte Objekte
1..* mindestens ein, beliebig viele assoziierte Objekte

Zwei gleichwertige Darstellungen

Eine Assoziation darf man entweder als Attribut in den Klassenkasten schreiben oder als Pfeil zeichnen. Beides drückt denselben Sachverhalt aus.

Mit Assoziationspfeilen – der Bezeichner steht am Pfeil, die Multiplizität am Ziel:

classDiagram
    class Wurm {
        vor()
        dreheLinks()
        dreheRechts()
        gibKopfRichtung() Zahl
        gibKopfX() Zahl
        gibKopfY() Zahl
    }
    class Wurmglied {
        xKoordinate: Zahl
        yKoordinate: Zahl
        richtung: Zahl
        Wurmglied(pX: Zahl, pY: Zahl, pRichtung: Zahl)
        rueckeVor()
        setzeRichtung(pRichtung: Zahl)
        gibNaechstesX() Zahl
        gibNaechstesY() Zahl
    }
    class Wurmkopf {
        Wurmkopf(pX: Zahl, pY: Zahl, pRichtung: Zahl)
        dreheLinks()
        dreheRechts()
    }
    Wurm --> "1..*" Wurmglied : glieder
    Wurm --> "1" Wurmkopf : kopf
    Wurmglied <|-- Wurmkopf

Ohne Assoziationspfeile – dieselbe Aussage, die Beziehungen stehen als Attribute in der Klasse Wurm:

classDiagram
    class Wurm {
        glieder: Datensammlung~Wurmglied~
        kopf: Wurmkopf
        vor()
        dreheLinks()
        dreheRechts()
        gibKopfRichtung() Zahl
        gibKopfX() Zahl
        gibKopfY() Zahl
    }
Entwurfsdiagramm

Teilbare URL erstellen

Abschnitte auswählen