2011-01-24 12 views
28

Come si indica una classe generica o un'interfaccia in un diagramma di classe?UML Class Diagram and Generics

Sto cercando due cose veramente:

  1. Uno è come faccio a modello di classi Java generici Se fossi farlo con carta e penna.
  2. In secondo luogo, quali strumenti uml supportano le classi/interfacce generiche.

Grazie!

risposta

29

Genericamente i generici sono rappresentati come parametri del modello del classificatore. Ecco l'esempio di come sembra in NetBeans UML Plugin:

enter image description here

+0

Dove si può ottenere il plugin UML di Netbeans? –

+1

@Karthik puoi farlo qui http://netbeans.org/downloads/zip.html, vedi netbeans-6.9.1-201007282301-ml-uml.zip –

2

Uno è come modellare le classi Java generiche se lo facevo con carta e penna.

AFAIK non esiste un supporto specifico per questo in UML, la migliore potrebbe essere quella di utilizzare uno stereotipo come <<generic>>. Ma su carta con la penna, non c'è niente di più semplice che scrivere MYType<T> :-)

In secondo luogo, quali strumenti UML là fuori supporta classi generiche/interfacce.

Gli stereotipi sono supportati da tutti gli strumenti UML che ho visto finora. Naturalmente, il livello di supporto può essere diverso; tuttavia, dal momento che a malapena uso gli strumenti UML oltre ai tovaglioli :-) non ho molte basi per il confronto qui.

+1

pls vedi altre risposte. UML ha un supporto specifico per i generici senza dover ricorrere a stereotipi. hth. – sfinnie

+0

@sfinnie, grazie, buono a sapersi :-) –

+0

éter: nessuna preoccupazione, felice di aiutare :-) – sfinnie

16

UML li chiama i tipi parametrici - si vedano gli esempi here.

Per quanto riguarda gli strumenti, so che MagicDraw li supporta.

0

in NetBeans l'oggetto da utilizzare si chiama "Derivazione Classificatore". Questo è l'oggetto da utilizzare per MyGeneric in risposta da Vitalii Fedorenko

1

Sto cercando due cose davvero: una è come modellino le classi Java generiche se lo facessi con carta e penna.

Il libro di Craig Larman Applicare UML e Pattern 3e ha diapositive di istruttori con le Figure del libro. Il seguente è da Figura 15.5:

enter image description here

secondo luogo, quali uml strumenti là fuori supporto delle classi generiche/interfacce.

mi piace PlantUml, che produce immagine da

skinparam style strictuml 
participant sales as "sales:\nArrayList<Sale>" 

enter image description here

Per diagrammi di classe, si produces

skinparam style strictuml 
hide empty members 
class "ArrayList<Sale>" as S 
class Store { 
Store() 
} 
Store "1" -> "1" S : "   sales " 

enter image description here

0

Uno è come modellare le classi Java generiche se lo facevo con carta e penna.

È generalizzazione freccia, classe di base, se si tratta di astratto, dovrebbe essere scritto in corsivo. Inoltre può essere contrassegnato con stereotipo.

In secondo luogo, quali strumenti uml supportano le classi/interfacce generiche.

Utilizzare http://staruml.io/. Strumento davvero bello, puoi gestire tutti gli schemi di progetto in un unico posto. Nell'angolo in alto a destra, c'è un albero oggetto/diagramma, quindi puoi usare le stesse classi (altri oggetti) in diagrammi diversi.