18.8. Operation

Eine Operation ist eine Dienstleistung, die von einem Objekt angefordert werden kann, um ein Verhalten auszulösen. Im UML- Metamodell ist sie eine Subklasse von BehavioralFeature , die widerum selbst eine Subklasse von Feature ist.

Im Diagramm wird eine Operation innerhalb des Operationen-Bereiches der Klasse durch eine Zeile dargestellt. Die Syntax ist wie folgt:

Sichtbarkeit Name (Parameterliste) : Rückgabetyp {Eigenschafts-String}

Sie können diese Zeile im Diagramm direkt editieren, indem Sie einen Doppelklick darauf ausführen. Alle Elemente sind optional und, wenn sie unspezifiziert bleiben, bleiben die alten Werte erhalten.

Ein Stereotyp kann zwischen zwei Elementen einer Zeile im Format: <<stereotype>> eingegeben werden.

Die folgenden Eigenschaften werden in ihrer speziellen Bedeutung erkannt: abstract, concurrency, concurrent, guarded, leaf, query, root und sequential.

Die Sichtbarkeit ist +, #, - oder ~ und entspricht der public, protected, private Sichtbarkeit, oder der Sichtbarkeit package.

static und final erscheinen zusätzlich, wenn die Operation diese Modifizierer aufweist. Bei jeder static deklarierten Operation wird deren ganzer Eintrag im Diagramm unterstrichen.

Es können Null oder mehr Einträge in der Parameterliste durch Kommata getrennt vorhanden sein. Jeder Eintrag besteht aus einem Paar in der Form:

Name : Typ

Der Rückgabetyp ist der Typ des zurückgegebenen Ergebnisses (UML-Datentyp, Klasse oder Schnittstelle).

Schließlich wird der gesamte Eintrag kursiv dargestellt, wenn die Operation als abstract deklariert wurde.

18.8.1. Detail-Register Operation

Die aktiven Detail-Register für Operationen sind die folgenden.

Zu-Bearbeiten-Element

Standard-Register.

Eigenschaften

Siehe Abschnitt 18.8.2, „ Eigenschaftssymbolleiste Operation und Abschnitt 18.8.3, „ Eigenschaftsfelder für Operation unten.

Dokumentation

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

Darstellung

Standard-Register. Das Feld Begrenzung erlaubt das Editieren, aber die Änderungen haben keine Auswirkungen.

Quellcode

Standard-Register. Dieses enthält die Deklaration für die Operation.

Randbedingungen

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

Eigenschaftswerte

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

  • semantics. Der Wert ist eine Spezifikation der Semantik der Operation.

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

    [Anmerkung]Anmerkung

    Abgeleitete Operationen können Ihren Wert in der Analyse besitzen, um nützliche Namen oder Konzepte einzuführen. Im Design, um die wiederholte Verarbeitung zu verhindern.

[Anmerkung]Anmerkung

Die UML-Metaklasse Element, von der alle anderen Modellelemente abgeleitet werden, beinhaltet den Eigenschaftswert documentation, der in ArgoUML im Register Dokumentation verwaltet wird.

Checkliste

Standard-Register für eine Operation.

18.8.2. Eigenschaftssymbolleiste Operation

Nach oben

Navigiert in der Paketstruktur nach oben.

Neue Operation

Erzeugt eine neue Operation in der Klasse und navigiert sofort in das Register Eigenschaften dieser Operation.

[Tipp]Tipp

Dies ist ein sehr bequemer Weg, eine Anzahl von Operationen, eine nach der anderen, eine Klasse hinzuzufügen.

Neuer Parameter

Erzeugt einen neuen Parameter für die Operation und navigiert sofort in das Register Eigenschaften dieses Parameters.

Neues Signal

Erzeugt ein neues Signal für die Operation und navigiert sofort in das Register Eigenschaften dieses Signals.

Neuer Datentyp

Erzeugt im Namensraum des Eigentümers dieser Operation einen neuen Datentyp (siehe Abschnitt 16.3, „ Datatyp) und springt sofort in das Register Eigenschaften dieses Datentyps.

Neuer Stereotyp

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

Löschen

Löscht die Operation aus dem Modell.

[Warnung]Warnung

Dies ist eine Löschung aus dem Modell und nicht nur aus dem Diagramm. Wenn gewünscht, kann der ganze Operationen-Bereich der Klasse im Diagramm mit Hilfe des Registers Darstellung (siehe Abschnitt 18.8.2, „ Eigenschaftssymbolleiste Operation) oder dem Taste 2-Popup-Menü versteckt werden.

18.8.3. Eigenschaftsfelder für Operation

Name

Textfeld. Der Name der Operation. Der Name einer Operation beginnt mit einem Kleinbuchstaben und besteht aus Wörtern, die durch Groß-/Kleinschreibung getrennt sind.

[Anmerkung]Anmerkung

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

[Tipp]Tipp

Wenn Sie der Java-Konvention folgen wollen, dass Konstruktoren den gleichen Namen wie die Klasse haben, werden Sie diese Regel brechen. Bringen Sie diese Kritik zum Schweigen, indem Sie den Stereotypen create für die Konstruktor-Operation vergeben.

Stereotyp

Kombinationsfeld. Es gibt zwei UML-Standard-Stereotypen für eine Operation (von der Eltern-Metaklasse BehavioralFeature) create und destroy.

[Tipp]Tipp

Sie sollten create als Stereotyp für Konstruktoren und destroy für Destruktoren (die über die „finalize“ -Methoden in Java aufgerufen werden).

Stereotype navigieren

Symbol. Wenn ein Stereotyp markiert wurde, navigiert das Klicken auf die Taste 1 in das Eigenschaftsfenster des Stereotypen (siehe Abschnitt 18.5, „ Stereotyp).

Eigentümer

Textfeld. Gibt die Klasse wieder, die diese Operation enthält.

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

Sichtbarkeit

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

  • public. Die Operation ist für jedes Modellelement verfügbar, dass die zugehörige Klasse sehen kann.

  • private. Die Operation ist nur innerhalb der zugehörgien Klasse (und jeder inneren Klasse) verfügbar.

  • protected. Die Operation ist nur in der zugehörigen Klasse oder den Modellelementen, die Subklassen der zugehörigen Klasse sind, verfügbar.

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

Modifizierer

Markierfelder mit den Einträgen abstract, leaf, root, query, und static.

  • abstract. Diese Operation wird in dieser Klasse nicht implementiert. Die Implementierung muss in einer Subklasse enthalten sein.

    [Wichtig]Wichtig

    Jede Klasse mit einer abstrakten Operation muss selbst als abstract deklariert werden.

  • leaf (Blatt). Die Implementierung dieser Operation darf nicht durch eine Subklasse überschrieben werden.

  • root (Wurzel). Die Deklaration dieser Operation darf nicht durch eine Deklaration einer Operation einer Subklasse überschrieben werden.

  • query (Abfrage). Dies gibt an, dass die Operation keine Seiteneffekte haben darf (z.B. sie darf den Zustand des Systems nicht verändern). Sie kann nur einen Wert zurückgeben.

    [Achtung]Achtung

    Operationen benutzerdefinierter Datentypen müssen diesen Modifizierer immer prüfen.

  • static. Es gibt nur eine Instanz von dieser, mit der Klasse verknüpften Operation (im Gegensatz zu einer Operation für jede Instanz einer Klasse). Dies ist das Attribut OwnerScope der Metaklasse Feature in UML. Jede static deklarierte Operation wird im Klassendiagramm unterstrichen dargestellt.

Gleichzeitigkeit

Auswahlfelder mit den Einträgen guarded, sequential und concurrent.

  • guarded. Mehrere Aufrufe konkurrierender Threads können für eine Instanz gleichzeitig auftreten (bei jeder geschützten Operation), aber nur eine darf beginnen. Die anderen werden so lange geblockt, bis die erste Operation abgeschlossen ist.

    [Achtung]Achtung

    Der Systemdesigner muss sicherstellen, dass kein Deadlock auftreten kann. Es liegt in der Verantwortung der Operation, das blockierende Verhalten zu implementieren (im Gegensatz zum System).

  • sequential. Nur ein Aufruf auf die Instanz (der Klasse mit der Operation) darf zu einer bestimmten Zeit anstehen. Es gibt keinen Schutz und keine Garantie des Verhaltens, wenn das System diese Regel verletzt.

  • concurrent. Mehrer Aufrufe auf eine Instanz können gleichzeitig ausgeführt werden. Die Operation ist in der Lage, korrektes Verhalten sicherzustellen. Dies muss verwaltet werden, wenn es andere sequenzielle oder synchronisierte (geschützte) Operationen gibt, die zur gleichen Zeit ausgeführt werden.

Parameter

Textbereich, mit Einträgen für alle Parameter der Operation (siehe Abschnitt 18.9, „ Parameter). Eine neue Operation wird immer mit einem neuen Parameter return erzeugt, um den Rückgabetyp der Operation zu definieren.

Ein Taste 1-Doppelklick auf einen dieser Parameter navigiert zu diesem Parameter. Ein Taste 2-Klick öffnet ein Popup-Menü mit zwei Einträgen.

  • Nach oben. Nur verfügbar, wenn es mehr als zwei Parameter gibt und sich der markierte Parameter nicht ganz oben befindet. Er wird um eine Position nach oben bewegt.

  • Nach unten. Nur verfügbar, wenn es mehr als zwei Parameter gibt und sich der markierte Parameter nicht ganz unten befindet. Er wird um eine Position nach unten bewegt.

Ausgelöste Signale

Textbereich mit Einträgen für alle Signale (siehe Abschnitt 18.10, „ Signal), die durch diese Operation ausgelöst werden.

[Achtung]Achtung

Das aktuelle ArgoUML (V0.18) enthält nur einen eingeschränkten Support für Signale. Sie sind insbesondere nicht mit Signalereignissen verknüpft, die Zustandsautomaten aktivieren könnten.

Ein Taste 1-Doppelklick auf jedes der Signale navigiert zu diesem Signal.