2009-08-20 17 views
11

He leído varios tutoriales sobre qué debe contener un modelo UML y qué no. Como desarrollador, siempre pienso en términos de un modelo de datos relacionales donde nunca podrías tener una relación de muchos a muchos entre tablas. Ahora, con un modelo de clase UML, he leído que si no proporcionan un valor agregado, puedes omitir las tablas de enlaces.modelo de clase UML cómo modelar la relación de muchos a muchos

Sin embargo, también he leído un tutorial donde se dieron ejemplos usando datos dentro de las tablas y sugería fuertemente representar cada clase como una tabla simple mientras modelaba su modelo de clase.

Estoy confundido, ¿qué es ahora?

+0

¿Qué contexto es el modelo de clase que está considerando; ¿Modelo comercial, modelo de análisis o modelo de diseño? –

Respuesta

12

Represéntelo como una relación M: N. Igual que en un modelo de relación, habrá una clase asociada (o clase de enlace) de algún tipo en el código. No es necesario poner eso en el diagrama a menos que tenga atributos en la parte superior de los atributos de combinación (muy parecido a como generalmente se omite una entidad de unión de un ERD a menos que tenga atributos que no sean claves externas en las entidades relacionadas). La clase de enlace normalmente se dibuja como una clase conectada a la relación por una línea punteada.

La entidad de unión de inscripción es un buen ejemplo de esto en UML 2 Class Diagrams.

29

La "tabla de enlaces relacionales" es una técnica de implementación para una relación de Muchos a Muchos.

La relación existe independientemente de cómo se implemente.

En un modelo de objetos, tiene muchas opciones para implementar many-to-many, que pueden (o no) involucrar una tabla persistente adicional. Se podría hacer de muchas maneras diferentes.

El objetivo de UML es poder describir las características esenciales de lo que realmente es el modelo.

Puede también describir la implementación. Son diagramas separados con propósitos separados. Puede mostrar fácilmente la implementación relacional con la tabla de enlaces. También puede mostrar el modelo esencial sin la tabla de enlaces.

Aquí está la relación esencial

Essential http://i28.tinypic.com/x3tnhk.jpg

Aquí está la aplicación de la relación

Implemntation http://i32.tinypic.com/mmws2h.jpg

Ambos son válidos UML. La verdadera pregunta es "¿qué necesitas para mostrarle a otras personas?" ¿Verdad esencial o una implementación particular?

Cuestiones relacionadas