Différences entre un diagramme de classe UML conceptuel et une ERD?
si je crée un diagramme de classe conceptuel de telle sorte que chaque classe capture " nom " et "attributs" mais pas "opérations", n'ai-je pas fondamentalement créé ce qui serait autrement considéré comme une DRE? J'essaie de comprendre quelles sont les différences entre la création d'un diagramme de classe conceptuel tel que je l'ai décrit et le fait de l'appeler ERD? Si ces derniers sont toujours deux animaux différents, quelqu'un peut-il expliquer quelles sont les différences?
5 réponses
il y a peu de différence dans l'expressivité des deux (si nous nous concentrons uniquement sur la partie attributs, classes et associations) si vous utilisez des diagrammes de relation D'Entity étendus (le cas le plus courant aujourd'hui)
C'est vrai, ils sont très différents au niveau graphique car ils utilisent des symboles différents pour les éléments mais la "sémantique" est assez similaire. Ils permettent tous les deux l'héritage (encore une fois, je parle D'EER), les associations n-ary, les classes d'association, ...
le diagramme de classe contient juste les classes dans votre modèle d'objet avec des liens/relations éventuelles reliant les éléments du diagramme. Toutefois, ces liens ne correspondent pas nécessairement à des relations physiques comme dans un diagramme de la Dre, mais ils représentent plutôt des liens logiques.
le diagramme de classe est juste le modèle d'objet de votre application et ne contient aucune information spécifique à la persistance. Quand vous pensez au diagramme de classe oubliez la base de données ou n'importe quel autre stockage que vous pouvez utiliser.
le diagramme ERD de l'autre côté, est un diagramme spécifique à la persistance qui affiche les entités (tableaux) existant dans une base de données relationnelle (le plus souvent). Il affiche également les relations physiques (et les cardinalités) entre ces tableaux et toutes les autres informations spécifiques à la base de données. Le diagramme de la Dre peut parfois ressembler au diagramme de classe, mais cela ne signifie pas que c'est la même chose qu'un diagramme de classe.
cela dépend de la situation où vous pouvez ne pas aimer faire le re-D. mais imaginez si vous avez une couche de données séparée où la logique des données est traitée. Dans ce cas, de nombreux détails des données ne seront pas partagés avec la couche application. Et votre diagramme de classe ne doit pas aller au-delà de la couche d'application. Je dois souligner que les deux schémas ne sont pas égaux. Et il y a des situations où vous devez faire les deux, principalement dans l'architecture multi-niveaux, et il y a des situations où vous pouvez être en mesure de juste utiliser le diagramme de classe; p. ex., application à palier unique.
je suis fortement en faveur de l'idée que le diagramme de classe n'abroge pas le diagramme E-R.
les diagrammes de classe de conception sont faits à partir de diagrammes de modèle conceptuel et de collaboration. Les diagrammes des classes de conception comprennent:
- Classes, associations et attributs
- méthodes
- Types d'attributs
- Navigabilité
- Dépendances
les diagrammes D'ER que j'ai vus (le plus souvent la notation D'ERWin IE) se sont concentrés sur la conception d'une base de données. Ils sont concernés par les clés primaires, les clés étrangères, ont des relations sans nom, et n'ont généralement pas de généralisation / spécialisation.
un bon diagramme de classe conceptuel UML, d'un autre côté, n'est pas concerné par les clés, reflète le domaine de problème, et a des propriétés de fin d'association qui au moins indice à la sémantique de pourquoi les choses sont liées. Ce aide à communiquer le domaine vers le bas pour les développeurs plus jeunes afin qu'ils n'ont pas à deviner.