Estoy modelando un diagrama de clase. Un atributo de una clase es una enumeración. ¿Cómo modelo esto? Normalmente haces algo como esto:
- name : string
Pero, ¿cómo se hace esto con una enumeración?
Simplemente se muestran así:
_______________________
| <<enumeration>> |
| DaysOfTheWeek |
|_____________________|
| Sunday |
| Monday |
| Tuesday |
| ... |
|_____________________|
Y luego solo tienen una asociación entre eso y su clase.
<<enumeration>>
en realidad no es un estereotipo sino una palabra clave. Lamentablemente, los autores de UML no hicieron ninguna diferencia visual.Si su herramienta de modelado UML tiene soporte para especificar una enumeración, debe usarla. Es probable que sea más fácil de hacer y le dará a su modelo una semántica más sólida. Visualmente, el resultado será muy similar a una clase con un
<<enumeration>>
estereotipo, pero en el metamodelo UML, una enumeración es en realidad un tipo (meta) separado.Una vez que se define, puede usarlo como el tipo de Atributo tal como lo haría con un Tipo de datos o el nombre de una de sus propias Clases.
Si está utilizando ArgoEclipse o ArgoUML, hay un menú desplegable en la barra de herramientas que selecciona entre Tipo de datos, Enumeración, Señal, etc. que le permitirá crear sus propias Enumeraciones. El compartimento que normalmente contiene Atributos se puede completar con EnumerationLiterals para los valores de su enumeración.
Aquí hay una imagen de un ejemplo ligeramente diferente en ArgoUML:
fuente
Por lo general, modela la enumeración en sí misma como una clase con el
enum
estereotipofuente