UML-Klassendiagrammsymbol für eine Funktion der obersten Ebene

13

Wie bezeichne ich in der UML-Klassendiagrammnotation eine Funktion der obersten Ebene, die keine Kapselungsklasse oder andere Struktur aufweist?

zB habe ich eine Funktion zum Abrufen von Daten von einer URL. Da es sich um eine Funktion (im mathematischen Sinne) nur ihrer Parameter und eines gemeinsamen globalen Zustands handelt, wird die Funktion nicht in eine Klasse eingeordnet, sondern als Methode der obersten Ebene belassen.

Jetzt muss ich jedoch ein UML-Diagramm für ein Programm erstellen, das es verwendet, und ich kann nichts darüber finden, wie eine Funktion der obersten Ebene bezeichnet werden kann. Wie mache ich das?

AJMansfield
quelle
Sie können es als staticMethode einer speziellen Klasse global
modellieren,
1
Die Antworten unten sind gut. Anstatt die Klasse oder das Stereotyp "global" zu nennen, denke ich, dass "StandaloneFunction" besser ist, da es sehr explizit für Ihre Absicht ist. Vor diesem Hintergrund wäre es für IMO noch besser, die Funktionen der "obersten Ebene" in einen gut benannten Namespace zu stellen, der die Organisation der Funktionen ermöglicht, und Ihnen dann eine Klasse zum Einfügen zu geben. So können Sie die Funktion in einen aufgerufenen Namespace einfügen UrlUtilities ist der Funktion "Top-Level" weit überlegen. An dieser Stelle können Sie es aber auch als statische Methode in eine UrlUtilities-Klasse einfügen, was die beste Option ist.
Dunk

Antworten:

10

Die UML-Sprache unterstützt den Begriff der eigenständigen Funktionen nicht. Innerhalb von UML müssen alle Funktionen Teil einer Klasse sein.

Als Workaround können Sie Ihre eigenständigen Funktionen als statische Elemente einer Klasse modellieren, mit der sie eng verwandt sind. Wenn es keine solche Klasse gibt, können Sie diese Funktionen als Teil einer Dummy-Klasse globalmodellieren , wie die von @xmojmr in den Kommentaren erwähnte Klasse.

Bart van Ingen Schenau
quelle
7

Erstellen Sie ein Stereotyp, das Sie dem Klassifikator "class" hinzufügen können, z <<global function>>. Sie können dann für jede globale Funktion, die eine vollständig spezifizierte statische Operation enthält , eine einzelne stereotype "Klasse" erstellen .

Das von mir vorgeschlagene Stereotyp weist die Person, die das Diagramm liest, an, den Klassifikator als Funktion zu interpretieren. Das Rechteck (mit dem Stereotyp) in einem bestimmten Diagramm würde eine einzelne Funktion darstellen, während seine Abhängigkeiten die Abhängigkeiten dieser einzelnen Funktion darstellen.

Doug Knesek
quelle
Es fällt mir schwer zu sehen, wie sich Ihre Antwort von der von Bart unterscheidet ...
Adam Zuckerman
3
@AdamZuckerman - Bart erstellt eine einzelne Klasse namens "global", die alle globalen Funktionen aggregiert, wodurch es schwierig wird zu wissen, welche globalen Funktionen und Abhängigkeiten im angegebenen Kontext gelten. Das von mir vorgeschlagene Stereotyp weist die Person, die das Diagramm liest, an, die Klasse stattdessen als Funktion zu interpretieren. Ein Klassenrechteck (mit dem Stereotyp) würde eine einzelne Funktion darstellen, während seine Abhängigkeiten die Abhängigkeiten dieser einzelnen Funktion darstellen.
Doug Knesek