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?
static
metodę specjalnej klasy o nazwie np.global
Odpowiedzi:
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
global
klasa wspomniana przez @xmojmr w komentarzach.źródło
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.
źródło