Simbolo del diagramma di classe UML per una funzione di livello superiore


13

Nella notazione del diagramma di classe UML, come posso indicare una funzione di livello superiore che non ha alcuna classe incapsulante o altra struttura?

ad es. ho una funzione usata per recuperare dati da un URL. Poiché è una funzione (nel senso matematico) solo dei suoi parametri e uno stato globale condiviso, la funzione non viene inserita in una classe ma lasciata come metodo di livello superiore.

Ora, però, devo creare un diagramma UML per un programma che lo utilizza e non riesco a trovare nulla su come indicare una funzione di livello superiore. Come faccio a fare questo?


Puoi modellarlo come staticmetodo di una classe speciale chiamata egglobal
xmojmr

1
Le risposte di seguito sono buone. Tuttavia, piuttosto che chiamare la classe o lo stereotipo "globale", penso che "StandaloneFunction" sia migliore in quanto è molto esplicito per le tue intenzioni. Detto questo, IMO sarebbe ancora meglio mettere le funzioni di "livello superiore" in uno spazio dei nomi ben noto che consente l'organizzazione delle funzioni e quindi ti dà una classe per inserirle. Quindi, inserendo la funzione in uno spazio dei nomi chiamato UrlUtilities è di gran lunga superiore al solo fatto che questa sia una funzione "di alto livello". Ma poi di nuovo, a questo punto puoi anche inserirlo in una classe UrlUtilities come metodo statico che è l'opzione migliore.
Dunk

Risposte:


10

Il linguaggio UML non supporta la nozione di funzioni autonome. All'interno di UML, tutte le funzioni devono far parte di una classe.

Come soluzione alternativa, è possibile modellare le funzioni autonome come membri statici di una classe a cui sono strettamente correlati. Se non esiste una tale classe, è possibile modellare tali funzioni come parte di una classe fittizia, come la globalclasse menzionata da @xmojmr nei commenti.


7

Crea uno stereotipo che puoi collegare al classificatore "class", ad es <<global function>>. È quindi possibile creare una singola "classe" stereotipata per ciascuna funzione globale contenente un'operazione statica completamente specificata.

Lo stereotipo che propongo dice alla persona che legge il diagramma di interpretare il classificatore come una funzione. Il rettangolo (con lo stereotipo) su un dato diagramma rappresenterebbe una singola funzione, mentre le sue dipendenze rappresentano le dipendenze di quella singola funzione.


Sto attraversando un momento difficile vedere come la tua risposta è diversa da quella di Bart ...
Adam Zuckerman,

3
@AdamZuckerman - Bart crea una singola classe chiamata "globale" che aggrega tutte le funzioni globali, rendendo difficile sapere quale funzione globale e dipendenze si applicano nel contesto di dare. Lo stereotipo che propongo dice alla persona che legge il diagramma di interpretare la classe come una funzione. Un rettangolo di classe (con lo stereotipo) rappresenterebbe una singola funzione, mentre le sue dipendenze rappresentano le dipendenze di quella singola funzione.
Doug Knesek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.