Per mostrare i metodi statici e attributi che li evidenzi in un diagramma delle classi UML: vedi UML Distilled p.66 o sezione 7.3.19 (funzionalità) del UML Superstructure specification:
caratteristiche statiche sono sottolineate.
Per mostrare la relazione tra le classi B e A (dove B utilizza solo metodi statici in A), si utilizza una dipendenza, non un'associazione. Le associazioni sono sempre tra le istanze delle classi a ciascuna estremità, come nella sezione 7.3.3 (Association) delle specifiche UML sovrastruttura:
Un'associazione specifica una relazione semantica che può verificarsi tra le istanze digitati.
Ma classe B è dipende in classe A, come nella sezione 7.3.12 della specifica:
Una dipendenza è un rapporto che indica che un singolo o un insieme di elementi del modello richiede altri elementi del modello per la loro specifica o implementazione .
Probabilmente vale la pena chiarire la natura della dipendenza con uno stereotipo. È possibile utilizzare uno stereotipo use
, ma questo è molto generale e in realtà comprende associazioni standard tra le istanze (anche se ovviamente si utilizzano normalmente le associazioni per mostrarle esplicitamente).Come dice Fowler in UML Distilled,
Molte relazioni UML implicano una dipendenza. L'associazione navigabile dall'ordine al cliente [in uno dei suoi esempi ...] indica che l'ordine è dipendente dal cliente.
Sembra non esserci uno standard su quale stereotipo utilizzare. Ho usato usesStatically
per essere chiaro sulla natura della dipendenza; che è
B --usesStatically--> A
(Se, in alternativa, di classe B aveva un'istanza di A come un campo statico, mi piacerebbe usare qualcosa come B--containsStatically--> A
se sto rappresentando B esplicitamente nel diagramma delle classi, altrimenti basta un attributo statico sottolineato di tipo A in B.)
fonte
2015-03-12 11:12:46
Sei sicuro che sia una relazione di dipendenza e non un'associazione? – Nicolas
Un'associazione è una relazione tra due (o più) tipi che sono collegati da un'istanza (o). Quindi per ClassB avere un'associazione con ClassA è necessario avere un riferimento ad esso, magari tramite una proprietà o un campo. Ma dal momento che non è il caso del tuo esempio, direi che hai una dipendenza e non un'associazione. Penso che la definizione in questo [collegamento] (http://www.uml-diagrams.org/dependency.html) mostri che hai una dipendenza. – RobertMS