recall |
---|
header |
Die vereinfachte Beschreibung / Spezifikation eines realen Objekts, die einige Eigeschaften auslässt und andere betont
Es werden nur die im Kontext entscheidenden Eigenschaften eines Objekts betrachtet, darüber hinaus gibt es keine überraschenden Eigenschaften
Rechteck mit unterstrichenem Namen des Objekts
Die Kombination seiner Attribute
Einfache Attribute sind atomare Basis-Datentypen und nicht-einfache sind verweise auf andere Objekte
- Modifikatoren
- Selektoren
Modifikatoren
Selektoren
Das Verhalten gibt zu jedem Zustand an welche Operationen möglich ist und in welche Zustände sie führen können
Ein Objekt, das anderen Objekten Operationen bereitstellt
Ein Objekt, das die Operationen anderer Objekte nutzt
Senden einer Nachricht bestehend aus Operationsname + Parameter
Wie werden Verbindungen genannt, bei denen ein Objekt A ein anderes Objekt B kennt, aber nicht umgekehrt?
unidirektional
Verbindungskante: Durchgezogene Linie und offene Pfeilspitzen (oder keine Pfeilspitzen bei bidirektioner Verbindung)
groß geschriebenes (unterstrichenes) Substantiv in der Mitte der Verbindungslinie
Die Bezeichnung der Funktion, die ein Objekt in einer Verbindung einnimmt
klein geschriebenes Substantiv am Ende der Verbindungslinie
Eine Eigenschaft eines Objekts, das sich nicht in den Attributwerten niederschlägt. Im Grunde die Speicheradresse.
benannte Variablen, die auf ein Objekt verweisen
indirekte Namen
Ein Objekt, das nur über Referenzen identifiziert und angesprochen werden kann, nicht durch eine Teilmenge seiner Attribute
Referenzen auf das selbe Objekt mit ggf. unterschiedlichen (indirekten) Namen
- Zustandsgleichheit / Wertegleichheit: Alle Attrigute sind gleich
- referentielle Gleichheit / gleiche Identität: Das selbe Objekt (Speicheradresse)
Unterschiedliche Objekte, alle Attrigute sind gleich
gleiche Identität, dasselbe Objekt (Speicheradresse)
Grafische Darstellung von Objektgeflechten, die die existierenden Objekte und deren Verbindungen untereinander darstellen
Eine Menge von Objekten mit denselben Attributen und identischem Verhalten
Verbindungen bestehen zwischen Objekten, Assoziationen zwischen Klassen
durch den Abtraktionsgrad
Objekte sind Instanzen einer Klasse. Eine Klasse ist ein Bauplan für ein Objekt.
PascalCase
horizontal dreigeteiltes Rechteck mit nicht unterstrichenem Namen der Klasse oben, Attributen in der Mitte und Operationen unten
Rechteck mit Text Objektname : Klassenname
Rechteck mit Text : Klassenname
Der Namen und der zulässige Wertebereits eines Attributs
Angabe von {frozen}
hinter dem Namen
Das Kreuzprodukt aller Wertebereiche der Attribute
- in: Eingabeparameter, wird von der Funktion nicht modifiziert
- out: Ausgabeparameter, höchstens einer
- inout: Ein- und Ausgabeparameter, die als Input dienen, aber auch modifiziert werden
Operationsname, Wertebereich der Eingabeparameter und Ausgabeparameter
Angabe von {isQuery}
hinter der Signatur
Klassenname |
---|
attribute |
operationen |
Assoziationen von einer Klasse mit sich selbst
durchgezogene Linie zwischen Klassen, Assoziationsname mittig über der Linie
Beschreibt wie viel Instanzen von Objekten der verbundenen Klassen an der Assoziation beteiligt sind.
Eine Assoziation mit Multiplizität 1 oder 0..1 an beiden Enden
Eine Assoziation mit Multiplizität 1 oder 0..1 an einem und einer 0..x Multiplizität am anderen Ende
alles was weder 1:n noch 1:1 Assoziation ist
Assoziationen, die an mindestens einem Ende eine Multiplizität >1 haben
Aggregation ist eine spezielle Assoziation, bei der es eine Ganzes-Instanz und verknüfte Teil-Instanzen gibt. Bei Zerstörung des Ganzen muss festgelegt werden, wie mit den Teilen verfahren wird. Teile können teil von mehreren Ganzen sein.
Eine nicht ausgefüllte Raute am "Ganzes"-Ende der Assoziationslinie
eine spezielle Assoziation, bei der es eine Ganzes-Instanz und verknüfte Teil-Instanzen gibt. Anders als bei der Aggregation, darf jedes Teil nur Teil einer Ganzes-Instanz sein. Wird das Ganze zerstört, müssen auch die Teile zerstört werden. Verknüpfungen dürfen nur von der Ganzes-Klasse erstellt oder gelöst werden.
- Eine ausgefüllte Raute am "Ganzes"-Ende der Assoziationslinie
- Die Teil-Klasse wird im Inneren der Ganzes-Klasse gezeichnet. Die Multiplizität oben rechts in der Teil-Klasse vermerkt
Spezielle Klassen, die Attribute einer Assoziation zwischen Objekten halten
Mittels gestrichelter Linie wird die Assoziationsklasse mit der Assoziationslinie zwischen Klassen verbunden
solche, die aus anderen Attributen berechnet werden
durch einen /
vor dem Namen des Attributs
solche, die aus bestehenden Assoziationen geschlossen werden können (bei gleichen Eltern sind die Kinder automatisch Geschwister)
durch einen /
vor dem Namen der Assoziation
- setter- und getter-Operationen (setze / gib)
- Verknüpfungsoperationen (verbinde / gib / loese)
- Selektionsoperationen (selektiere)
- Destruktor (zerstoere)
Eine Operation, die eine Klasse ohne Existenz einer Instanz bereitstellt
Konstruktor erzeuge()
Die Zusammenfassung gemeinsamer Operationen und Attribute von Klassen in eine gemeinsame Oberklasse unter Beibehaltung der Konformität
Die entgegengesetzte Sichtweise der Generalisierung
Objekte der Unterklasse können Objekte der Oberklasse vertreten
Durch eine durchgezogene Linie mit einem nicht ausgefüllten Dreieick als Spitze von der Unterklasse zur Oberklasse
Vorangestelltes Sonderzeichen:
\+
: public\-
: private\#
: protected\~
: package
Verhalten sich wie private Operationen und Attribute, sind aber von Unterklassen sicht- und modifizierbar
Rechtecke mit umgefalteter Ecke, die mit gestrichelten Linien mit dem beschriebenen Element eines Diagramms verbunden werden
Die Menge aller public Operationen und Attribute
Die Realisierung der öffentlichen Schnittstelle
Ein Satz spezieller, textuell spezifizierter Charakteristika und/oder Zusicherungen
- Entity (Entitätsklasse), repräsentiert die Abtraktion eines Domänenobjekts
- Boundary (Schnittstellenklasse)
- Control (Kontrollklasse), implementiert überprüfende Business-Logik innerhalb von Workflows
- Angabe des Namens des Stereotypen in «» vor dem Klassennamen
- Symbol oben rechts im Rechteck der Klasse
- großes Symbol mit Namen der Klasse unterhalb
Kreis auf einem horizontalen Strich
Kreis mit einem vertikalen Strich auf der linken Seite, der mit einem kurzen horizontalen Strich mit dem Kreis verbunden ist
Ein Kreis mit einer linksdrehenden Pfeilspitze auf 12 Uhr
schwache, nicht näher definierte Verbindungen von Klassen, die keine Assoziation sind. Beispiel: «use» Abhängigkeit wenn Objekt der Klasse als Parameter einer Methode übergeben wird
Gestrichelter Pfeil mit offener Spitze von der abhängigen zur unabhängigen Klasse
- reguläre Klassen
- abstrakte Klassen
- Interfaces
- können nicht instanziiert werden
- können Methoden implementieren
- können Attribute haben
- können nicht instanziiert werden
- deklarieren nur eine Schnittstelle, haben keine Implementierung
- haben keine Attribute
- «realizes» Abhängigkeit (gestrichelte Linie mit unausgefüllter Dreieckspitze)
- Lollipop
kursiv geschriebene Namen
- Stereotyp «Interface»
- kleiner Kreis mit Interface-Name darunter, mit Linie zur Klasse (Lollipop)
Bekommt die Operation einer Klasse ein Objekt eines Interface Typen übergeben, besteht eine «use» Abhängigkeit von der Interface Klasse
Durch die Verwendung von Objekten als einer ihrer Interface Supertypen lassen sich die Schnittstellen auf den situativ benötigten Umfang einschränken, obwohl die konkrete Klasse, eigentlich mehr Operation anbieten könnte.
Interfaces können höchstens einseitig navigierbare Assoziationen (zum Interface) aufweisen.
«enumeration»
wie Instanzattribute/-operationen aber unterstrichen
Bedingungen, die an Modellierungselemente gestellt werden
in geschweiften Klammern am betreffenden Element. Freitext / Pseudocode / OCL (Object Contraint Language)
{oder} Zusicherung an den Assoziationen
Wie kann die Zusicherung einer Ordnung von mehrwertigen Assoziationen einer Klasse dargestellt werden?
{geordnet} an die Assoziation
{hierarchisch} / {Hierarchie}
Auflisten ihrer Verantwortlichkeiten. Semantik einer Operation wird durch Vor- und Nachbedingungen und die Klasseninvariante gezeigt
Vorbedingungen sind Bedingungen, die beim Aufruf einer Operation gelten müssen, damit die Nachbedingung garantiert ist. Beziehen sich auf Eingabeparameter (in/inout) und den Objektzustand
Nachbedingungen beschreiben das Ergebnis einer Operation, sei es ein Rückgabewert oder ein neuer Zustand
Bedingungen an die Attribute und damit den Zustand einer Klasse, der vor und nach jedem Aufruf einer öffentlichen Operation eingehalten werden muss (Beispiel: Attribut darf nicht negativ werden)
- responsibilities - Verantwortlichkeiten
- inv - Klasseninvariante
- features - Operationen
- attributes
- operations
Sichtbarkeit AttributName : Typ = Defaultwert {Eigenschaften}
Sichtbarkeit OperationsName (Parameterliste) : Rückgabewert {Eigenschaften}
pre / post nach Signatur
Adressiert ein Attribut vor Ausführung der Operation
Attributname@pre
Eine Gruppierung von Modellierungselementen (inklusive Paketen). Pakete sind disjunkt, bilden Namensraum
- Import (Namensräume werden gemergt) «import»
- Access (Objekte werden voll qualifiziert angesprochen) «access»
gestrichelte Pfeile mit offener Spitze mit «import» oder «access» Vermerk