128 votos

Diagrama de clase UML enum

Estoy modelando un diagrama de clase. Un atributo de una clase es una enumeración. ¿Cómo modelo esto? Normalmente se hace algo así:

- name : string

Pero, ¿cómo se hace esto con un enum?

161voto

James Burgess Puntos 4616

Simplemente se muestran así:

_______________________
|   <>   |
|    DaysOfTheWeek    |
|_____________________|
| Domingo             |
| Lunes               |
| Martes              |
| ...                 |
|_____________________|

Luego solo tienes que asociarlo con tu clase.

58voto

Tom Morris Puntos 6022

Si tu herramienta de modelado UML tiene soporte para especificar una Enumeración, deberías usar esa opción. Es probable que sea más fácil de hacer y le dará a tu modelo una semántica más sólida. Visualmente, el resultado será muy similar a una Clase con un Estereotipo <>, pero en el metamodelo UML, una Enumeración es en realidad un (meta)tipo separado.

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

Una vez que esté definida, puedes usarla como tipo de un Atributo al igual que lo harías con un Datatype o el nombre de una de tus propias Clases.

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

Si estás usando ArgoEclipse o ArgoUML, hay un menú desplegable en la barra de herramientas que selecciona entre Datatype, Enumeration, Signal, etc, lo que te permitirá crear tus propias Enumeraciones. El compartimiento que normalmente contiene Atributos puede entonces poblarse con EnumerationLiterals para los valores de tu enumeración.

Aquí tienes una imagen de un ejemplo ligeramente diferente en ArgoUML: ingresa una descripción de la imagen aquí

9voto

adilei Puntos 275

Puedes usar literales. Según la especificación de UML, son especificaciones de valores conocidos.

A continuación se muestra un ejemplo de un literal de enumeración tomado de IBM Rational Rose.

texto alternativo

Aquí tienes un enlace a la especificación de UML si realmente te apetece un poco de lectura adicional :)

1voto

annakata Puntos 42676

Normalmente se modela el enumerado en sí como una clase con el estereotipo enum

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X