Estou modelando um diagrama de classes. Um atributo de uma classe é uma enumeração. Como eu modelo isso? Normalmente você faz algo assim:
- name : string
Mas como alguém faz isso com um enum?
Eles são simplesmente mostrados assim:
_______________________
| <<enumeration>> |
| DaysOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
|_____________________|
E então apenas tenha uma associação entre isso e sua classe.
<<enumeration>>
na verdade, não é um estereótipo, mas uma palavra-chave. Infelizmente, os autores da UML não fizeram nenhuma diferenciação visual.Se sua ferramenta de modelagem UML tiver suporte para especificar uma enumeração, você deve usá-la. Provavelmente será mais fácil de fazer e dará ao seu modelo uma semântica mais forte. Visualmente, o resultado será muito semelhante a uma Classe com um
<<enumeration>>
Estereótipo, mas no metamodelo UML, uma Enumeração é realmente um tipo (meta) separado.Uma vez definido, você pode usá-lo como o tipo de um Atributo, da mesma forma que faria com um Tipo de dados ou com o nome de uma de suas próprias Classes.
Se você estiver usando o ArgoEclipse ou o ArgoUML, há um menu suspenso na barra de ferramentas que seleciona entre Tipo de dados, Enumeração, Sinal, etc., que permitirá criar suas próprias Enumerações. O compartimento que normalmente contém atributos pode ser preenchido com EnumerationLiterals para os valores de sua enumeração.
Aqui está uma figura de um exemplo um pouco diferente no ArgoUML:
fonte
Normalmente, você modela o enum como uma classe com o
enum
estereótipofonte