Property
Eine typisierte Eigenschaft, die einem Classifier oder einer Assoziation zugeordnet ist und Werte beziehungsweise Verknüpfungen repräsentiert.
Modellierungsheft · Struktur sichtbar machen
Ein Merkmal beschreibt eine strukturelle oder verhaltensbezogene Eigenschaft eines Modellelements. Dieses Atelier konzentriert sich auf Properties: Attribute und Assoziationsenden, deren kurze Notation erstaunlich viele Regeln trägt.
In einem Klassendiagramm wirken Merkmale wie unscheinbare Zeilen. Hinter einer Zeile wie „titel: String“ stehen jedoch mehrere Entscheidungen: Wem gehört diese Eigenschaft, welche Werte kann sie aufnehmen, wie oft kommt sie vor, darf sie verändert werden und wird ihr Wert gespeichert oder berechnet? Gute Modelle machen nur die Entscheidungen sichtbar, die für das jeweilige Gespräch wichtig sind.
Die UML verwendet „Feature“ als Oberbegriff für Merkmale eines Classifiers. Ein strukturelles Merkmal beschreibt, welche Werte oder Beziehungen Instanzen tragen können. Eine Property kann als Attribut in einem Klassenkasten erscheinen oder als Ende einer Assoziation. Beide Darstellungen verweisen auf denselben Grundgedanken: Ein typisierter, benannter Platz gehört zum Kontext eines Classifiers.
Die Notation ist kompakt, aber nicht beliebig. Ein Pluszeichen bezeichnet öffentliche Sichtbarkeit, ein Minuszeichen private Sichtbarkeit. Ein Schrägstrich vor dem Namen markiert eine abgeleitete Eigenschaft. Unterstreichung steht in vielen Diagrammen für ein statisches, also classifierbezogenes Merkmal. Multiplizitäten grenzen ein, wie viele Werte zulässig sind.
Eine typisierte Eigenschaft, die einem Classifier oder einer Assoziation zugeordnet ist und Werte beziehungsweise Verknüpfungen repräsentiert.
Die Property steht als Textzeile im Attributfach einer Klasse. Diese Form eignet sich für kompakte, lokal verständliche Aussagen.
Die Property steht am Ende einer Verbindung. Rollenname, Typ und Multiplizität werden dadurch räumlich mit der Beziehung verbunden.
Der Wert entsteht aus anderen Informationen. Der vorangestellte Schrägstrich erinnert daran, dass er nicht unabhängig gepflegt werden sollte.
Interaktion 1 · Notation zusammensetzen
Verändere Name, Typ, Multiplizität und Modifikatoren. Das Atelier setzt daraus eine UML-nahe Zeile zusammen und übersetzt sie anschließend in einen vollständigen deutschen Satz.
Ein Bibliothekskonto besitzt privat beliebig viele eindeutige Reservierungen vom Typ Reservierung.
Die Reihenfolge folgt Sichtbarkeit, Name, Typ, Multiplizität und Eigenschaften.
Nicht gesetzte optionale Bestandteile werden ausgelassen.
Lesereihenfolge
- kontostand: Geldbetrag
Die Sichtbarkeit beantwortet, aus welchem Modellkontext auf das Merkmal zugegriffen werden darf. Sie ist eine Aussage über die entworfene Struktur, nicht bloß typografische Dekoration.
+ autoren: Person [1..*]
Der Typ sagt, welche Art von Wert vorkommt. Die Multiplizität sagt, wie viele Werte zulässig sind. „Person“ und „mindestens eine Person“ sind zwei getrennte Modellentscheidungen.
/ alter: Integer {readOnly}
Ein abgeleitetes Alter wird aus Geburtsdatum und Stichtag berechnet. Schreibschutz verhindert, dass eine unabhängige Eingabe dem Berechnungsergebnis widerspricht.
Interaktion 2 · Gültige Objektzahl prüfen
Wähle eine Grenze und stelle ein, wie viele Werte eine Beispielinstanz gerade besitzt. Der Prüfer entscheidet nur für diesen Schnappschuss; er verändert weder Modell noch Daten.
Modellierungsentscheidung
Beide Darstellungen können eine Property ausdrücken. Die Wahl richtet sich danach, welche Zusammenhänge im Diagramm sichtbar werden sollen, nicht nach einer starren Regel für jeden Datentyp.
| Frage | Attributzeile | Assoziationsende |
|---|---|---|
| Was steht im Vordergrund? | Kompakte Eigenschaft des Classifiers. | Beziehung zwischen zwei Classifiern. |
| Typischer Eindruck | - farbe: Farbcode bleibt lokal im Kasten. |
Eine Linie macht Rollen, Navigierbarkeit und Gegenrichtung sichtbar. |
| Wann wird es unübersichtlich? | Wenn viele fachliche Beziehungen als lange Typnamen verborgen werden. | Wenn jede einfache Werteigenschaft eine zusätzliche Linie erhält. |
| Praktische Leitfrage | Genügt die lokale Aussage für das aktuelle Modellziel? | Muss das Publikum die Beziehung als eigenen Sachverhalt diskutieren? |
Interaktion 3 · Modellierungsfälle
Vier kurze Fälle wechseln in fester Reihenfolge. Formuliere zuerst selbst eine Property und decke dann die kommentierte Lösung auf.
Fall 1 von 4
Eine Rechnung kann noch unbezahlt sein oder genau ein Zahlungsdatum besitzen. Wie lautet eine knappe Property?
- zahlungsdatum: Datum [0..1]
Die Multiplizität 0..1 erlaubt den fehlenden Wert vor der Zahlung und genau ein Datum danach.
Ein Merkmalname sollte im Wortschatz der Domäne verständlich sein. Technische Speicherformen gehören nur dann ins Diagramm, wenn sie Teil des Modellziels sind.
Eine Multiplizität ist eine fachliche Behauptung. „Beliebig viele“ aus Bequemlichkeit kann ebenso falsch sein wie „genau eins“ ohne Umgang mit unvollständigen Fällen.
Gute Diagramme zeigen genug für die aktuelle Entscheidung. Eigenschaften, die keinen Unterschied im Gespräch machen, können in einer anderen Sicht aufgehoben werden.
Ein Sprachkennzeichen aus dem alten Eigenschafteneditor blieb unverändert erhalten.
| Merkmal | Typ | Verwaister Kopf |
|---|---|---|
| sichtbar | Boolean | |
| Name | String |
| Unverbundene Eigenschaft | A | B | C |
|---|---|---|---|
| D | E | F | G |
| H | I | J | K |
| L | M | N | O |
Ziel der importierten Merkmalskarte