18.6. Klasse

Die Klasse ist das dominante Modellelement in einem Klassendiagramm. im UML-Metamodell ist sie eine Subklasse von Classifier und GeneralizableElement.

Eine Klasse wird in einem Klassendiagramm als Rechteck mit drei Bereichen dargestellt. Der oberste Bereich zeigt den Klassennamen (und Stereotypen) an, der zweite Bereich alle Attribute und der Dritte alle Operationen. Diese letzten zwei Bereich können optional versteckt werden.

18.6.1. Detail-Register Klasse

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

Zu-Bearbeiten-Element

Standard-Register.

Eigenschaften

Siehe Abschnitt 18.6.2, „ Eigenschaftssymbolleiste Klasse und Abschnitt 18.6.3, „ Eigenschaftsfelder für eine Klasse unten.

Dokumentation

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

Darstellung

Standard-Register. Die Markierfelder Attribute und Operationen erlauben es, die Attribut- und Operations-Bereiche anzuzeigen (der Standard) oder auszublenden. Dies ist eine Einstellung, die nur für das aktuelle Diagramm gültig ist, das die Klasse darstellt. Die editierbaren Felder Begrenzung definieren die Größe des Paketrahmens im Diagramm.

Quellcode

Standard-Register. Enthält ein Template für die Klassendeklaration und Deklarationen der verküpften Klassen.

Randbedingungen

Standard-Register. Es sind keine Standard-Randbedingungen für Klassen innerhalb des UML-Metamodelles definiert.

Stereotypen

Standard-Register.

Eigenschaftswerte

Standard-Register. Im UML-Metamodell hat die Klasse die folgenden Standard-Eigenschaftswerte definiert.

  • persistence (von der Superklasse sClassifier). Die Werte transitory, gibt an, dass der Zustand gelöscht wurde, nachdem die Instanz gelöscht oder persistent wurde, mit der Kennzeichnung, dass der Zustand erhalten bleibt, wenn die Instanz gelöscht wurde.

  • semantics (von der Superklasse Classifier). Der Wert ist eine Spezifikation der Semantik der Klasse.

  • derived (von der Superklasse ModelElement). Der Wert true bedeutet, dass die Klasse redundant ist - sie kann formal von anderen Elemente abgeleitet werden. Oder false, wenn sie nicht abgeleitet werden kann.

    [Anmerkung]Anmerkung

    Abgeleitete Klassen haben ihren Wert bei der Analyse, um nützliche Namen oder Konzepte einzubinden und in der Analyse, um die wiederholte Verarbeitung zu verhindern.

[Anmerkung]Anmerkung

Die UML Element Metaklasse, aus der alle anderen Modellelemente abgeleitet werden, enthält das Eigenschaftselement documentation, das durch das Register Dokumentation in ArgoUML bearbeitet wird.

Checkliste

Standard-Register für einen Klassifizierer.

18.6.2. Eigenschaftssymbolleiste Klasse

Nach oben

Navigiert in der Paketstruktur nach oben.

Neues Attribut

Erzeugt ein neues Attribut (siehe Abschnitt 18.7, „ Attribute) in der Klasse und navigiert sofort in das Register Eigenschaften dieses Attributes.

Neue Operation

Erzeugt eine neue Operation (siehe Abschnitt 18.8, „ Operation) in der Klasse und navigiert sofort in das Register Eigenschaften dieser Operation.

Neues Empfangssignal

Erzeugt ein neues Empfangssignal und navigiert sofort in das Register Eigenschaften dieses Empfangssignales.

Neue innere Klasse

Erzeugt innerhalb der Klasse eine neue innere Klasse (die in keinem Diagramm erscheint). Sie gehört zur Klasse und ist auf den Namensraum dieser Klasse beschränkt. Sie modelliert exakt das Java-Konzept einer inneren Klasse. Als innere Klasse benötigt sie keine Attribute oder Operationen, weil sie diese mit ihrem Eigentümer teilt.

[Anmerkung]Anmerkung

Die innere Klasse ist kein separates Konzept in der UML. Sie ist eine praktische Abkürzung für eine Klasse, die auf den Namensraum seiner Eigentümerklasse beschränkt ist.

Neue Klasse

Erzeugt im gleichen Namensraum der aktuellen Klasse eine neue Klasse (die in keinem Diagramm erscheint).

Neuer Stereotyp

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

Löschen

Löscht die Klasse aus dem Modell.

[Warnung]Warnung

Dies ist ein Entfernen aus dem Modell und nicht nur aus dem Diagramm. Um eine Klasse aus einem Diagramm zu entfernen, diese aber im Modell zu erhalten, verwenden Sie Aus Diagramm entferen im Hauptmenü (oder drücken die Tasten Entf).

18.6.3. Eigenschaftsfelder für eine Klasse

Name

Textfeld. Der Name der Klasse. Der Name der Klasse beginnt mit einem Großbuchstaben und mit Wörtern, die durch „ wechselnde Groß-/Kleinschreibung“ getrennt werden.

[Anmerkung]Anmerkung

Die ArgoUML-Kritik wird sich über Klassennamen beschweren, die nicht mit einem Großbuchstaben beginnen.

Namensraum

Kombinationsfeld. Gibt den Namensraum einer Klasse wieder und erlaubt dessen Erstellung. Die ist die Pakethierarchie.

Ein Taste 1-Klick auf den Eintrag verschiebt die Klasse in den markierten Namensraum.

Modifizierer

Markierfelder mit den Einträgen Abstract, Leaf, Root und Active.

  • Abstract wird verwendet, um zu deklarieren, dass diese Klasse nicht instanziiert werden kann, aber immer Spezialisiert werden muss. Der Name einer abstrakten Klasse wird im Diagramm kursiv dargestellt.

    [Achtung]Achtung

    Wenn eine Klasse eine abstrakte Operation aufweist, dann sollte sie als abstrakt deklariert werden. ArgoUML erzwingt dies allerdings nicht.

  • Leaf(Blatt) gibt an, dass diese Klasse nicht weiter spezialisiert werden kann, während Root (Wurzel) angibt, dass sie keine weitere Subklasse haben kann. Es ist bei einer Klasse möglich, dass Sie abstrakt und Leaf (Blatt) ist, weil seine statischen Operationen referenziert werden können.

  • Active gibt an, dass diese Klasse ein dynamisches Verhalten aufweist (und ist daher mit einem Zustands- oder Aktivitätsdiagramm verknüpft).

Sichtbarkeit

Auswahlfelder mit vier Einträgen public, private, protected und package. Gibt an, ob die Klasser außerhalb des Namensraumes sichtbar ist.

Abhängig von

Textbereich. Listet alle „abhängigen“ Enden der Beziehung auf. Z.B. das Ende, welches Gebrauch vom anderen Ende macht.

Ein Taste 1-Doppelklick navigiert zu der Abhängigkeit und öffnet dessen Register Eigenschaften.

Ein Taste 2-Klick zeigt ein Popup-Menü mit einem Eintrag Hinzufügen.... Dieser Eintrag öffnet ein Dialogfenster, in dem Sie abhängige Modellelemente hinzufügen oder entfernen können.

Notwendig für

Textbereich. Listet alle Enden der Beziehung auf, die von dieser Klasse abhängen. Z.B. das Ende, welches notwendig für das andere Ende ist.

Ein Taste 1-Doppelklick navigiert zu der abhängigen Klasse und öffnet dessen Register Eigenschaften.

Ein Taste 2-Klick zeigt ein Popup-Menü mit dem Eintrag Hinzufügen.... Dieser Eintrag öffnet ein Dialogfenster in dem Sie abhängige Modellelemente hinzufügen oder entfernen können.

Generalisierungen

Textbereich. Listet jede Klasse auf, die diese Klasse generalisiert.

Ein Taste 1-Doppelklick navigiert zur Generalisierung und öffnet dessen Register Eigenschaften.

Spezialisierungen

Textfeld. Listet jede spezialisierte Klasse auf (z.B. für die diese Klasse eine Generalisierung ist).

Ein Taste 1-Doppelklick navigiert zu der Spezialisierung und öffnet dessen Register Eigenschaften.

Attribute

Textbereich. Listet alle Attribute auf (siehe Abschnitt 18.7, „ Attribute), die für diese Klasse definiert sind. Ein Taste 1-Doppelklick navigiert zu dem markierten Attribut. Ein Taste 2-Klick öffnet ein Popup-Menü mit zwei Einträgen, die eine Neuanordnung der Attribute erlauben.

  • Nach oben. Nur verfügbar, wenn mehr als zwei Attribute gelistet sind und sich das markierte Attribut nicht ganz oben befindet. Bewegt das Attribut um eine Position nach oben.

  • Nach unten. Nur verfügbar, wenn mehr als zwei Attribute gelistet sind und sich das markierte Attribut nicht ganz unten befindet. Bewegt das Attribut um eine Position nach unten.

Endpunkte (Assoziation)

Textfeld. Listet jeden Endpunkt der Assoziationen auf (siehe Abschnitt 18.12, „ Assoziation), die mit dieser Klasse verbunden sind.

Ein Taste 1-Doppelklick navigiert zu dem markierten Eintrag.

Operationen

Textbereich. Listet alle Operationen auf (siehe Abschnitt 18.8, „ Operation), die für diese Klasse definiert sind. Ein Taste 1-Klick navigiert zu der markierten Operation. Ein Taste 2-Klick öffnet ein Popup-Menü mit zwei Einträgen, die eine Neuanordnung der Operationen erlauben.

  • Nach oben. Nur verfügbar, wenn mehr als zwei Operationen gelistet sind und sich die markierte Operation nicht ganz oben befindet. Bewegt die Operation um eine Position nach oben.

  • Nach unten. Nur verfügbar, wenn mehr als zwei Operationen gelistet sind und sich die markierte Operation nicht ganz unten befindet. Bewegt die Operation um eine Position nach unten.

Eigene Elemente

Textbereich. Eine Liste von Modellelementen, die sich im Namensraum der Klasse befinden. Hier wird jede innere Klasse (siehe Abschnitt 18.6.2, „ Eigenschaftssymbolleiste Klasse) erscheinen.

Ein Taste 1-Doppelklick auf eines der Modellelemente navigiert zu diesem Modellelement.

[Tipp]Tipp

Die meisten Namensraumhierarchien sollten über den Paketmechanismus verwaltet werden. Namensraumhierarchien über Klassen sind am besten auf innere Klassen zu beschränken. Denkbare Datentypen, Signale und Schnittstellen können hier auch erscheinen, aber Akteure und Anwendungsfälle scheinen hier wertlos.