¿Cómo definir un diagrama de clase a partir de un diagrama de relación de entidad?

7

Actualmente estoy trabajando en un proyecto en el que debemos definir un Diagrama de relaciones entre entidades y un Diagrama de clases UML a partir de un sistema establecido.

He logrado definir el ERD con éxito. Me requirió que desglosara la información de una especificación y la formara en entidades y luego definiera una relación entre las entidades para representar el sistema.

Ahora que he hecho eso, ahora estoy en el Diagrama de clases UML, pero el único problema es que no tengo idea de cómo incorporar lo que he definido dentro de mi ERD en un Diagrama de clases UML como he estado La estructura entre ambos diagramas es bastante diferente.

  • ¿Las entidades de la ERD en cierto sentido sirven como una clase en el UML?
  • Los atributos de las entidades en el ERD forman los atributos en las clases?
  • ¿Cómo puedes definir fácilmente qué atributos y métodos creas? ¿Público, privado y protegido?

Comprendo muchos de los conceptos básicos de UML y ERD por sí solos, pero tomar un diagrama de relación de entidad e incorporarlo adecuadamente en un UML es algo que no entiendo por dónde empezar.

Cualquier consejo o consejo sería muy apreciado.

    
pregunta Henry Green 21.11.2017 - 22:30

2 respuestas

8

Los diagramas de clases UML se pueden ver, aproximadamente, como un superconjunto de ERD. La notación de diagrama de clase UML es más joven, seguramente hecha con la intención de incorporar o reemplazar notaciones antiguas como ERD, y contiene elementos adicionales como herencia, métodos o atributos privados que no forman parte del modelado de ER. Los ERD se hicieron estrictamente teniendo en cuenta el modelado de datos para bases de datos relacionales, UML se diseñó para un uso más amplio, modelado de clase primaria, pero no exclusivamente para esto.

Por lo tanto, no es sorprendente que pueda tomar cualquier ERD y transformarlo en un diagrama de clase UML mediante la traducción obvia "entidad-> clase", "atributo- > atributo", "relación relación->". La visibilidad de los atributos se debe asignar a "público", ya que los ERD no tienen un concepto de atributos privados (y obviamente no de los protegidos, ya que ERD también carece del concepto de herencia).

En Google para "traducir ERD a UML" me encontré este artículo científico sobre el mapeo entre modelos UML y ER, creo que aquí encontrará mucho más sobre los detalles sangrientos.

Otro aspecto aquí es cuando desea que sus modelos gráficos coincidan exactamente con una implementación en código. Los mapeadores de objetos relacionales (ORM) como MS Entity framework o Hibernate tienen reglas típicamente específicas sobre cómo generar clases en un lenguaje de programación a partir de un esquema de base de datos. Si desea que su modelo de clase coincida exactamente con las clases generadas de un ORM, la mejor manera es probablemente asignar primero el ERD a un esquema de base de datos físico, deje que el generador de código de su ORM favorito genere clases en el código y luego pruebe algunos UML. herramienta de ingeniería inversa para crear un diagrama de clase a partir de ese código.

    
respondido por el Doc Brown 21.11.2017 - 23:06
0

@ Henry-Green Agregando a la respuesta de @ Doc-Brown, las clases centradas en los datos se asignan a los componentes de modelo en un Model View Controller patrón de arquitectura.

Con respecto a su pregunta sobre qué hacer público frente a privado o protegido, una práctica recomendada de programación general es seguir el Principio de menor privilegio .

    
respondido por el Len Greski 24.11.2017 - 15:49

Lea otras preguntas en las etiquetas