2009-01-05 183 views
115

Estoy modelando un diagrama de clases. Un atributo de una clase es una enumeración. ¿Cómo modelo esto? Normalmente haces algo como esto:UML class diagram enum

- name : string 

Pero, ¿cómo se puede hacer esto con una enumeración?

Respuesta

144

Ellos simplemente se mostraron como esto:

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

Y a continuación, sólo tienen una asociación entre eso y su clase.

+13

enumeraciones trabajan realmente más como tipos de datos que las clases en UML, por lo general Asociaciones no se muestran más de lo que serían si usted declaró un atributo a ser del tipo Entero. Si su herramienta de modelado tiene soporte explícito para enumeraciones, debe usar eso y solo usar la notación de estereotipo Class + <> como alternativa si es necesario. –

+0

¿Podría decir dónde puedo encontrar <> estereotipo para ArgoUML? – Tim

+0

@Tim ArgoUML tiene soporte de primera clase para Enumeraciones, por lo que no es necesario utilizar el estereotipo –

1

Normalmente modelar la enumeración como una clase con el estereotipo enum

56

Si su herramienta de modelado UML tiene soporte para especificar una enumeración, debe usar eso. 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 estereotipo <<enumeration>>, pero en el metamodelo UML, una enumeración es en realidad un tipo separado (meta).

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

Una vez que se ha definido, se puede usar como el tipo de un atributo como lo haría con un tipo de datos o el nombre de una de sus propias clases.

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

Si está utilizando ArgoEclipse o ArgoUML, hay un menú desplegable en la barra de herramientas que selecciona entre los tipos de datos, enumeración, señal, etc, que le permitirá crear su propia enumeraciones. El compartimento que normalmente contiene Atributos puede llenarse con EnumerationLiterals para los valores de su enumeración.

Aquí hay una foto de un ejemplo un poco diferente en ArgoUML: enter image description here

+6

Gracias por la captura de pantalla ArgoUML. –

Cuestiones relacionadas