Diagramma classe UML enum


115

Sto modellando uno schema di classe. Un attributo di una classe è un'enumerazione. Come modifico questo? Normalmente fai qualcosa del genere:

- name : string 

Ma come si fa con un enum?

144

Sono semplicemente mostrato come questo:

_______________________ 
| <<enumeration>> | 
| DaysOfTheWeek | 
|_____________________| 
| Sunday    | 
| Monday    | 
| Tuesday    | 
| ...     | 
|_____________________| 

E poi basta avere un'associazione tra questo e la classe.

+13

enumerazioni realmente funzionano più come tipi di dati di classi in UML, così tipicamente Associazioni non sono mostrati più di quanto lo sarebbero se lei ha dichiarato un attributo essere di tipo Integer. Se il tuo strumento di modellazione ha il supporto esplicito per le enumerazioni, dovresti usarlo e usare la notazione stereotipata Class + <<enumeration>> come alternativa, se necessario. 02 feb. 122012-02-02 17:11:03

  0

Puoi dire dove posso trovare lo stereotipo <<enumeration>> per ArgoUML? 22 gen. 162016-01-22 21:42:47

  0

@Tim ArgoUML ha il supporto di prima classe per Enumerations, quindi non è necessario utilizzare lo stereotipo 12 lug. 162016-07-12 05:34:57


1

In genere si modellare l'enum stesso come una classe con lo stereotipo enum


56

Se lo strumento di modellazione UML supporta la specifica di un'enumerazione, è necessario utilizzarlo. Sarà probabilmente più facile da fare e darà al tuo modello una semantica più forte. Visivamente il risultato sarà molto simile a una classe con uno stereotipo <<enumeration>>, ma nel metamodel UML, un'enumerazione è in realtà un tipo separato (meta).

+---------------------+ 
| <<enumeration>> | 
| DayOfTheWeek  | 
|_____________________| 
| Sunday    | 
| Monday    | 
| Tuesday    | 
| ...     | 
+---------------------+ 

Una volta che è definito, è possibile utilizzarlo come il tipo di un attributo proprio come si farebbe con un tipo di dati o il nome una delle proprie classi.

+---------------------+ 
|  Event  | 
|_____________________| 
| day : DayOfTheWeek | 
| ...     | 
+---------------------+ 

Se stai usando ArgoEclipse o ArgoUML, c'è un menu a tendina sulla barra degli strumenti che seleziona tra Tipo di dati, Enumeration, segnale, ecc che vi permetterà di creare il proprio enumerazioni. Il compartimento che normalmente contiene gli attributi può quindi essere popolato con EnumerationLiterals per i valori dell'enumerazione.

Ecco una foto di un esempio un po 'diversa in ArgoUML: enter image description here

+6

Grazie per lo screenshot di ArgoUML. 10 mag. 122012-05-10 07:32:53