Inhaltsverzeichnis
Modellierungstechniken
In diesem Abschnitt wiederholen wir alle uns bisher bekannten Modellierungstechniken.
Datenflussdiagramm
Zur besseren Veranschaulichung werden Datenverarbeitungsvorgänge in Datenflussdiagrammen dargestellt.
Datenflussdiagramme enthalten:
- Rechtecke für Ein- und Ausgaben
- Ellipsen für Verarbeitungsvorgänge (Funktionen)
- Pfeile, die die Richtung des Datenflusses beschreiben
Beispiel:
Struktogramm
Struktogramme (auch: Nassi-Shneiderman-Diagramme) dienen der graphischen Darstellung von Algorithmen. Struktogramme beinhalten Wiederholungen, bedingte Anweisungen und Einzelne Anweisungen.
Beispiel: Summe der geraden Zahlen von 2 bis 100
Bausteine in Struktogrammen
Sequenz
Anweisungen werden durch Rechtecke dargestellt, eine Sequenz (d.h. eine Abfolge mehrerer Anweisungen) durch übereinandergestapelte Rechtecke.
Bedingung
Wiederholung
Wiederholungen werde durch ein "L" dargestellt, das den zu wiederholenden Block umschließt: Eine For-Wiederholung kann so dargestellt werden: Die Diagramme habe ich mit dem Online-Tool Structorizer.com von Janis Huser erstellt.
Klassendiagramm
Im Klassendiagramm werden Klassen und ihre Beziehungen zueinander dargestellt.
Klasse
Als Datentypen können die Datentypen von Java verwendet werden. Die Zugriffsmodifikatoren bedeuten folgendes:
- + (public): Das Attribut/die Methode ist überall sichtbar.
- - (private): Das Attribut/die Methode ist nur innerhalb dieser Klasse sichtbar.
- # (protected): Das Attribut/die Methode ist nur innerhalb dieser Klasse und aller Unterklassen davon sichtbar.
Im Abitur dürfen - falls in der Aufgabenstellung nicht ausdrücklich gefordert („erweitertes Klassendiagramm“) - Zugriffsmodifikatoren und Datentypen weggelassen werden (nicht aber Parameter).
Abstrakte Klasse
Interface
Spezialisierung/Generalisierung
Implementierung eines Interface
Aggregation
Objekte der Klasse „Übergeordnet“ können Objekte der Klasse „Enthalten“ enthalten (als Referenzattribute). Die Objekte der Klasse Enthalten können aber auch dann weiter existieren, wenn es das übergeordnete Objekt nicht mehr gibt. Es können auch Kardinalitäten angegeben werden: Bedeutung: Ein Objekt der Klasse „Übergeordnet“ enthält immer genau ein Objekt der Klasse „Enthalten“. Ein Objekt der Klasse „Enthalten“ kann in beliebig vielen (n), aber auch in keinem (0) Objekt der Klasse „Übergeordnet“ enthalten sein. Bei Angabe der Aggregation muss kein entsprechendes Attribut in der übergeordneten Klasse aufgeführt werden (Wenn in Abituraufgaben ein „erweitertes Klassendiagramm“ gefordert ist, sollten diese jedoch als Attribut immer vorhanden sein). Zur Angabe des Attributnamens kann die Aggregation mit dem Namen beschriftet werden:
Komposition
Unterschied zur Aggregation: Wird das Objekt aus der Klasse „Übergeordnet“ zerstört, dann wird auch das Objekt aus der Klasse „Enthalten“ zerstört. Ein Objekt aus „Enthalten“ kann daher auch nur in einem einzigen übergeordneten Objekt enthalten sein. Die weiteren Angaben bei der Aggregation treffen auch auf die Komposition zu.
Allgemeine Assoziation
Der Pfeil gibt die Richtung der in der Beschreibung angegebenen Beziehung an (z.B. zur Klarstellung, dass der Lehrer den Schüler unterrichtet und nicht der Schüler den Lehrer). Für die Kardinalitäten siehe Aggregation. Diese Art der Beziehung wird in der 9. Klasse bei der Modellierung von Datenbanken verwendet (die Klassen entsprechen den Entitätstypen). In Abituraufgaben können sie auch im Sinne von Aggregation/Komposition eingesetzt werden:
Objektdiagramm
Ein Objektdiagramm stellt einen "Schnappschuss" (d.h. einen Zustand) eines/mehrerer Objekte zu einem bestimmten Zeitpunkt dar. Das Objektdiagramm enthält keine Methoden (diese sind ja bereits im Klassendiagramm der zugehörigen Klasse vorhanden), keine Datentypen und keine Zugriffsmodifikatoren. Es besteht daher nur aus zwei Abschnitten: Der erste Abschnitt enthält den Objektnamen, gefolgt von einem Doppelpunkt und dem Klassennamen und ist vollständig unterstrichen. Im zweiten Abschnitt kommen die Attributnamen und die Attributwerte, durch ein „=“-Zeichen getrennt. Wenn Attribute und Methoden unwichtig sind, kann man auch zur Vereinfachung nur den ersten Abschnitt beim Objekt- oder beim Klassendiagramm zeichnen. Ist bei einem Objekt der Objektname unbekannt, so schreibt man nur :Klassenname.
Beispiel: einfach verkettete Liste
Beispiel für ein dazugehöriges Objektdiagramm:
Die Farben sind nur zur Verdeutlichung da. Im Abitur sind sie nicht gefordert.
Variante
Oft werden die Beziehungen der Objekte zueinander durch Verbindungslinien dargestellt, an die der Name des entsprechenden Referenzattributs geschrieben wird, z.B.
Zustandsdiagramm
Ein Zustandsdiagramm („state machine“) modelliert ein System anhand der verschiedenen Zustände, die es annehmen kann. Zwei Zustände sind dann unterscheidbar, wenn sich mindestens ein Attributwert der beteiligten Objekte ändert. Zustände werden in Rechtecken mit abgerundeten Ecken dargestellt, Zustandsübergänge mit Pfeilen. An den Pfeilen steht ein Auslöser für den Zustandsübergang (meist ein Methodenaufruf), zusätzlich ggf. noch eine Aktion, die dann ausgeführt wird und/oder eine Bedingung für den Zustandsübergang (in eckigen Klammern). Der Anfangszustand wird mit einem dicken schwarzen Punkt und einem Pfeil markiert. Im folgenden Beispiel ist eine Schranke standardmäßig geschlossen. Steckt jemand ein Ticket ein (Auslöser), so wird (falls das Ticket gültig ist - Bedingung) die Schranke geöffnet (Aktion) und ist dann im Zustand „offen“. Fährt man bei offener Schranke ein (Auslöser), so geht die Schranke wieder in den Zustand „geschlossen“ über.