Symbol diagramu klasy UML dla funkcji najwyższego poziomu

13

Jak w notacji diagramów klas UML mam określić funkcję najwyższego poziomu, która nie ma żadnej klasy enkapsulacji ani innej struktury?

np. mam funkcję służącą do pobierania danych z adresu URL. Ponieważ jest to funkcja (w sensie matematycznym) tylko jej parametrów i wspólnego stanu globalnego, funkcja ta nie jest umieszczana w klasie, lecz pozostawiana jako metoda najwyższego poziomu.

Teraz jednak muszę utworzyć diagram UML dla używającego go programu i nie mogę znaleźć niczego, co oznaczałoby funkcję najwyższego poziomu. Jak mam to zrobic?

AJMansfield
źródło
Możesz to wymodelować jako staticmetodę specjalnej klasy o nazwie np.global
xmojmr
1
Odpowiedzi poniżej są dobre. Jednak zamiast nazywać klasę lub stereotyp „globalnym”, myślę, że „StandaloneFunction” jest lepsze, ponieważ jest bardzo wyraźne dla twoich intencji. Mając to na uwadze, IMO jeszcze lepiej byłoby umieścić funkcje „najwyższego poziomu” w dobrze nazwanej przestrzeni nazw, co pozwala na organizację funkcji, a następnie daje klasę do ich umieszczenia. Zatem umieszczenie funkcji w przestrzeni nazw o nazwie UrlUtilities jest znacznie lepszy od tego, że jest to funkcja „najwyższego poziomu”. Ale z drugiej strony, w tym momencie równie dobrze możesz umieścić go w klasie UrlUtilities jako metodę statyczną, która jest najlepszą opcją.
Dunk

Odpowiedzi:

10

Język UML nie obsługuje pojęcia samodzielnych funkcji. W ramach UML wszystkie funkcje muszą być częścią klasy.

Aby obejść ten problem, możesz modelować swoje autonomiczne funkcje jako statyczne elementy klasy, z którą są ściśle powiązane. Jeśli nie ma takiej klasy, możesz modelować te funkcje jako część obojętnej klasy, jak globalklasa wspomniana przez @xmojmr w komentarzach.

Bart van Ingen Schenau
źródło
7

Stwórz stereotyp, który możesz dołączyć do klasyfikatora „klasowego”, np <<global function>>. Następnie możesz utworzyć jedną stereotypową „klasę” dla każdej funkcji globalnej zawierającej jedną w pełni określoną operację statyczną.

Proponowany przeze mnie stereotyp mówi osobie czytającej diagram o interpretacji klasyfikatora jako funkcji. Prostokąt (ze stereotypem) na danym diagramie reprezentowałby pojedynczą funkcję, podczas gdy jej zależności reprezentowałyby zależności tej pojedynczej funkcji.

Doug Knesek
źródło
Trudno mi zrozumieć, jak twoja odpowiedź różni się od odpowiedzi Barta ...
Adam Zuckerman,
3
@AdamZuckerman - Bart tworzy pojedynczą klasę o nazwie „globalna”, która agreguje wszystkie funkcje globalne, co utrudnia ustalenie, która funkcja globalna i zależności mają zastosowanie w danym kontekście. Proponowany przeze mnie stereotyp mówi osobie czytającej diagram, aby zamiast tego interpretował klasę jako funkcję. Prostokąt klasy (ze stereotypem) reprezentowałby pojedynczą funkcję, podczas gdy jej zależności reprezentowałyby zależności tej pojedynczej funkcji.
Doug Knesek