18.7. Attribute

Ein Attribut ist ein benanntes Element innerhalb einer Klasse (oder ein anderer Klassifizierer), das den Wertebereich beschreibt, den eine Klasseninstanz aufweisen kann. Im UML-Metamodell ist dies eine Subklasse von StructuralFeature, die widerum selbst ein Subklasse von Feature ist.

Ein Attribut wird in einem Diagramm innerhalb des Attributbereiches der Klasse als separate Zeile dargestellt. Seine Syntax ist wie folgt:

Sichtbarkeit Attributname : Typ [= Anfangswert]

Die Sichtbarkeit ist +, #, - oder ~ entsprechend den Werten public, protected, private, oder package.

Attributname ist der aktuelle Name des deklarierten Attributes.

Typ ist der für das Attribut deklarierte Typ (UML-Datentyp, Klasse oder Schnittstelle).

Anfangswert ist der Anfangswert, der dem Attribut zugewiesen wird, wenn die Klasseninstanz erzeugt wird. Dieser kann von einer Konstruktoroperation überschrieben werden.

Desweiteren wird der ganze Eintrag eines als static deklarierten Attributes im Diagramm unterstrichen.

18.7.1. Detail-Register Attribut

Die für Attribute aktiven Detail-Register sind folgende.

Zu-Bearbeiten-Element

Standard-Register.

Eigenschaften

Siehe Abschnitt 18.7.2, „ Eigenschaftssymbolleiste Attribut und Abschnitt 18.7.3, „ Eigenschaftsfelder für Attribute unten.

Dokumentation

Standard-Register. Siehe Abschnitt 13.4, „ Das Register Dokumentation.

Randbedingungen

Standard-Register. Es sind im UML-Metamodell keine Standard-Randbedingungen für Attribute definiert.

Stereotyp

Standard-Register.

Eigenschaftswerte

Standard-Register. Im UML-Metamodell sind die folgenden Eigenschaftswerte für Attribute definiert.

  • transient.

  • volatile. Dies ist eine ArgoUML- Erweiterung des UML 1.4-Standards, um anzuzeigen, dass dieses Attribut in flüchtiger Form realisiert wurde (z. B. könnte es ein dem Speicher zugeordnetes Steuerregister sein).

[Anmerkung]Anmerkung

Die UML-Metaklasse Element, von der alle anderen Modellelemente abgeleitet sind, enthält den Eigenschaftswert documentation, der in ArgoUML über das Register Dokumentation verwaltet wird.

Checkliste

Standard-Register für ein Attribut.

18.7.2. Eigenschaftssymbolleiste Attribut

Nach oben

Navigiert in der Paketstruktur nach oben.

Vorheriges

Navigiert zum vorherigen Attribut der Klasse. Diese Schaltfläche ist deaktiviert, wenn das aktuelle Attribut das Erste ist.

Nächstes

Navigiert zum nächsten Attribut der Klasse. Diese Schaltfläche ist deaktiviert, wenn das aktuelle Attribut das Erste ist.

Neues Attribut

Erzeugt ein neues Attribut innerhalb der Klasse und springt sofort in das Register Eigenschaften dieses Attributes.

[Tipp]Tipp

Dies ist ein sehr bequemer Weg, mehrere Attribute, eines nach dem anderen, zu der Klasse hinzuzufügen.

Neuer Datentyp

Erzeugt einen neuen Datentyp (siehe Abschnitt 16.3, „ Datatyp) für das markierte Attribut und springt sofort in das Register Eigenschaften dieses Datentyps.

Neue Enumeration (Aufzählung)

Erzeugt eine neue Enumeration (Aufzählung; siehe Abschnitt 16.4, „ Enumeration (Aufzählung)) für das Paket, welches die Klasse enthält und springt sofort in das Register Eigenschaften dieser Enumeration (Aufzählung).

Neuer Stereotyp

Erzeugt einen neuen Stereotypen (siehe Abschnitt 16.6, „ Stereotyp) für das markierte Attribut und springt sofort in das Register Eigenschaften dieses Stereotypen.

Löschen

Löscht das Attribut aus dem Modell.

[Warnung]Warnung

Dies ist ein Löschen aus dem Modell, nicht nur aus dem Diagramm. Wenn gewünscht, kann der ganze Attributbereich im Diagramm mit Hilfe des Registers Darstellung (siehe Abschnitt 18.7.2, „ Eigenschaftssymbolleiste Attribut), oder mit Hilfe des Taste 2-Popup-Menüs für Klassen ausgeblendet werden.

18.7.3. Eigenschaftsfelder für Attribute

Name

Textfeld. Der Name des Attributes. Der Name eines Attributes beginnt mit einem Kleinbuchstaben und mit Worten die durch Groß-/Kleinschreibung getrennt sind.

[Anmerkung]Anmerkung

Die ArgoUML-Kritiken werden sich über Attributnamen beschweren, die nicht mit einem Kleinbuchstaben beginnen.

Eigentümer

Textfeld. Gibt die Klasse wieder, die dieses Attribut enthält.

Ein Taste 1-Doppelklick auf diesen Eintrag navigiert zu der Klasse.

Kardinalität

Editierbares Auswahlfeld mit Markierfeld. Der Standardwert (1) heißt, dass es eine Attributinstanz für jede Klasseninstanz gibt. Z.B. es handelt sich um ein skalares Attribut. Das Auswahlfeld enthält eine Anzahl häufig verwendeter Spezifikationen für nicht-skalare Attribute.

Wenn das Markierfeld unmarkiert ist, dann bleibt die Kardinalität im Modell undefiniert (und das Auswahlfeld ist deaktiviert).

[Anmerkung]Anmerkung

ArgoUML stellt eine Anzahl vordefinierter Kardinalitätsbereiche für die vereinfachte Auswahl zur Verfügung. Der Anwender kann aber jeden benutzerdefinierten Bereich eingeben, der der UML-Syntax folgt, wie z.B. „1..3,7,10“.

Der Wert 1..1 entspricht dem Standard (exact einer skalaren Instanz). Die Auswahl 0..1 kennzeichnet ein optional skalares Attribut.

Sichtbarkeit

Auswahlfeld mit den vier Einträgen public, private, protected und package.

  • public. Das Attribut ist für jedes Modellelement verfügbar, welches die Klasse sehen kann.

  • private. Das Attribut ist nur innerhalb der Klasse verfügbar (und jeder inneren Klasse).

  • protected. Das Attribut ist nur in der Klasse oder in Modellelementen verfügbar, die Subklassen der Klasse sind.

  • package. Das Attribut ist nur für Modellelemente verfügbar, die sich im gleichen Paket befinden.

Änderbarkeit

Auswahlfeld mit den Einträgen Nur hinzufügen, veränderbar und unveränderlich.

  • Nur hinzufügen. Nur dann von Bedeutung, wenn die Kardinalität nicht auf einen einzigen Wert festgelegt ist. Zusätzliche Werte können dem Satz von Werten hinzugefügt werden. Wenn der Wert einmal erzeugt wurde, darf er nicht entfernt oder geändert werden.

  • veränderlich. Es gibt keine Einschränkungen hinsichtlich der Veränderbarkeit.

  • unveränderlich. Auch „ eingefroren“ genannt. Der Wert des Attributes darf während der Lebensdauer der Klasse nicht geändert werden. Der Wert muss bei der Objekterzeugung gesetzt werden und darf danach niemals geändert werden. Dies hat zur Folge, dass es gewöhnlich ein Argument für diesen Wert in einem Konstruktor gibt und dass es keine Operation gibt, die diesen Wert aktualisiert.

Modifizierer

Markierfeld für static. Ist dies nicht markiert (der Standard), dann hat das Attribut den Fokus „Instanz“. Ist es markiert, dann ist das Attribut static; es hat den Fokus „Klasse“. Statische Attribute werden im Diagramm unterstrichen dargestellt.

Typ

Kombinationsfeld. Der Typ dieses Attributes. Dies kann jeder UML-Klassifizierer sein, obwohl in der Praxis nur Klasse, Datentyp oder Schnittstelle Sinn machen.

Das Drücken der Navigationsschaltfläche navigiert zum Eigenschaftsfenster des aktuell markierten Typs. (Siehe Abschnitt 18.6, „ Klasse, Abschnitt 18.3, „ Datatyp und Abschnitt 18.16, „ Schnittstelle).

[Anmerkung]Anmerkung

Ein Typ muss dekariert werden (er kann void sein). Standardmäßig ist in ArgoUML int als Typ voreingestellt.

Anfangswert

Textfeld mit 2 Bereichen. Dies erlaubt es Ihnen, wenn gewünscht, einen Anfangswert für das Attribut festzulegen (dies ist optional). Das DropDown-Menü erlaubt den Zugriff auf die vordefinierten Werte 0, 1, 2 und null.

Der linke Teil des Feldes enthält den Rumpf des Ausdrucks, der den Anfangswert bildet. Der rechte Teil definiert die Sprache, in der der Ausdruck geschrieben wurde.

Wenn Sie den Mauszeiger über diese Felder bewegen, wird ein Hinweis Rumpf oder Sprache erscheinen, um Ihnen zu helfen, welches Feld für was gedacht ist.

[Achtung]Achtung

Jede Konstruktor-Operation darf diesen Anfangswert ignorieren.