oop - sencillos - ¿Cómo*realmente*escribir cardinalidades UML?
que es y cómo se aplica la cardinalidad y la multiplicidad en los diagramas de clases. (3)
Muchas personas tienen esta pregunta cuando comienzan a usar UML, especialmente cuando vienen de otra notación donde los nombres siempre se leen en el sentido de las agujas del reloj, sin importar en qué extremo de la línea estén. ¡Eso es realmente confuso!
Red Beard es correcta, aunque la especificación UML no establece explícitamente dónde se escribe la información de fin de asociación (es decir, nombre y multiplicidad), lo implica en varios lugares. Por ejemplo, las Figuras 7.11 (que muestran atributos) y 7.12 (que muestran asociaciones unidireccionales con extremos de asociación junto a las puntas de flecha) son notaciones de propiedad equivalentes; por lo tanto, la multiplicidad de hecho va al lado del tipo de propiedad.
Una forma aprendí a recordar qué extremo tiene qué multiplicidad es imaginar un gráfico unidireccional de instancias y escribir el número junto a las puntas de flecha que apuntan al objetivo.
Por cierto, debes usar nombres descriptivos finales de asociación. Estos a menudo se convierten en nombres de atributos en Java, nombres de elementos en XSD, etc. Por ejemplo, en Java, la clase Madre podría tener un atributo "secundario" de tipo "Set <Child>". Si no los nombra, a menudo obtendrá nombres predeterminados no deseados.
Me gustaría saber de una vez por todas cómo escribir cardinalidades UML, ya que muy a menudo tuve que debatir sobre ellas (así que las pruebas y las fuentes son muy bienvenidas :)
Si quiero explicar que una Mother
puede tener varios hijos, pero un Child
tiene una y solo una Mother
, debo escribir:
Mother * ---------- 1 Child
O
Mother 1 ---------- * Child
?
Por supuesto que Red Beard tiene razón, la respuesta correcta es la segunda.
En cuanto a un consejo para recordar esto, le aconsejo que piense en inglés: usted dice "Un niño tiene UNA madre", y en esta oración, como en UML, UNA está escrita al lado de la Madre. Bastante simple.
la segunda Madre 1 ----------------- 1 .. * Niño
Encontrará muchos ejemplos en la especificación UML para todas las cifras relacionadas con la sintaxis abstracta ...