Después de de esta larga recopilación de información dimos con la respuesta esta inconveniente que tienen ciertos los usuarios. Te dejamos la solución y nuestro objetivo es serte de gran ayuda.
Solución:
Parece haber cierta ambigüedad en la especificación de multiplicidades en asociaciones ternarias. Véase también este documento
Pero yo lo entiendo así:
La multiplicidad dice algo sobre cuántas veces puede estar presente una instancia en estas asociaciones para cualquier tupla dada de instancias vinculadas.
Como ejemplo, considere la siguiente familia (tradicional)
entendería que como
En cualquier familia dada debe haber un padre, una madre y cero o más hijos.
Si aplicamos eso a su caso, llego a algo como esto:
entiendo que como
Para cualquier Oferta dada debe haber exactamente un mercado, un departamento y uno o más productos
Eso parece satisfacer más o menos todas sus limitaciones
- Un producto solo puede ser ofrecido a un mercado por un departamento
- Un departamento puede ofrecer múltiples productos, pero un producto solo puede ofrecerse a un mercado
Sin embargo, no creo que sea resistente al agua, pero como ya se indicó en el documento, UML no tiene suficientes herramientas para hacer un diseño resistente al agua con las multiplicidades solo en los extremos. Entonces, en buena medida, sus restricciones también deben modelarse como restricciones UML.
Descargo de responsabilidad: las asociaciones ternarias son muy buenas para las discusiones académicas, pero no se usan realmente en la industria (de TI), probablemente porque son muy difíciles de entender.
Esta asociación ternaria inespecífica solo dice que tienes relaciones donde
Market
control SDepartment
–Product
,Department
control SMarket
–Product
yProduct
control SDepartment
–Market
.
No hay ninguna declaración sobre cómo las clases individuales controlan a las otras dos.
Las especificaciones de UML no definen el operador ternario en detalle. Así que usar ese elemento parece ser bajo tu propio riesgo. Podrías culpar a OMG por usarlo pero no definirlo más de
Cualquier Asociación se puede sortear como un rombo (más grande que un terminador en una línea) con una línea continua para cada Final miembro de la Asociación que conecta el rombo con el Clasificador que es el tipo del extremo. Una Asociación con más de dos extremos solo se puede dibujar de esta manera.
y un solo ejemplo en una imagen en la p. 202.
La clase de asociación simple
te dice que el Product
está en el medio Department
y Market
donde la multiplicidad 1
dice que solo hay uno Market
para Department
. Eso es más de lo que suena su requisito.
NB No tiene mucho sentido andarse con rodeos con respecto a los requisitos, por lo que “¿hay algún Product
sin un Market
“. Esos son detalles que deben discutirse con especialistas del dominio antes de fijarlos en un modelo.
El modelo en la respuesta de Geert Bellekens es correcto, pero su explicación es confusa. La asociación ternaria “Oferta” con sus multiplicidades (restricciones de cardinalidad) no puede explicarse mediante la declaración
Para cualquier Oferta dada debe haber exactamente un mercado, un departamento y uno o más productos
sino más bien afirmando que
una combinación de departamento y producto está vinculada exactamente a un mercado una combinación de mercado y producto está vinculada exactamente a un departamento
Si te animas, tienes el poder dejar una división acerca de qué te ha impresionado de esta división.