Различия между концептуальной диаграммой классов UML и ERD? - PullRequest
16 голосов
/ 13 января 2011

Если я создаю концептуальную диаграмму классов, в которой каждый класс фиксирует «имя» и «атрибуты», а не «операции», разве я не создал в принципе то, что в противном случае считалось бы ERD?Я пытаюсь понять, в чем различия между созданием концептуальной диаграммы классов, которую я описал, и называнием ее ERD?Если это все еще два разных животного, кто-нибудь может объяснить, в чем разница?

Ответы [ 6 ]

18 голосов
/ 13 января 2011

Диаграмма классов содержит только классы в вашей объектной модели с возможными связями / связями, связывающими элементы диаграммы. Однако эти ссылки не обязательно соответствуют физическим отношениям, как на диаграмме ERD, но вместо этого они представляют логические связи.

Диаграмма классов - это просто объектная модель вашего приложения, и она не содержит никакой информации о постоянстве. Когда вы думаете о диаграмме классов, забудьте о базе данных или любом другом хранилище, которое вы можете использовать.

Диаграмма ERD с другой стороны - это диаграмма, специфичная для персистентности, которая отображает сущности (таблицы), существующие в (чаще всего) реляционной базе данных. Он также отображает физические отношения (и количество элементов) между этими таблицами и всей другой специфичной для базы данных информацией. Диаграмма ERD может иногда выглядеть аналогично диаграмме классов, но это не значит, что она похожа на диаграмму классов.

7 голосов
/ 16 января 2011

Существует небольшая разница в выразительности обоих (если мы просто сосредоточимся на части атрибутов, классов и ассоциаций), если вы используете диаграммы расширенных отношений сущностей (самый распространенный в настоящее время случай)

Правда, онивыглядят очень по-разному на графическом уровне, так как они используют разные символы для элементов, но «семантика» очень похожа.Они оба допускают наследование (опять же, я говорю об EER), n-арные ассоциации, классы ассоциаций, ...

1 голос
/ 30 сентября 2014

Диаграммы ER, которые я видел (чаще всего ERWin IE), были сфокусированы на дизайне базы данных. Они касаются первичных ключей, внешних ключей, имеют неназванные отношения и обычно не имеют обобщения / специализации.

Хорошая концептуальная диаграмма классов UML, с другой стороны, не связана с ключами, отражает проблемную область и имеет свойства конца ассоциации, которые по крайней мере намекают на семантику того, почему вещи связаны , Это помогает донести домен до более младших разработчиков, чтобы им не приходилось догадываться.

1 голос
/ 13 июня 2012

Диаграммы классов дизайна сделаны из концептуальной модели и диаграмм сотрудничества.Диаграммы классов проектирования включают:

  1. Классы, ассоциации и атрибуты
  2. Методы
  3. Типы атрибутов
  4. Навигация
  5. Зависимости
1 голос
/ 21 сентября 2011

Это зависит от ситуации, когда вам может не понравиться ER-D. Но представьте, если у вас есть отдельный слой данных, где обрабатывается логика данных. В этом случае многие детали данных не должны передаваться прикладному уровню. И ваша диаграмма классов не должна выходить за пределы прикладного уровня. Я должен подчеркнуть, что обе диаграммы не равны. И есть ситуации, когда вам нужно сделать оба, в основном в многоуровневой архитектуре, и есть ситуации, когда вы можете просто использовать диаграмму классов; например одноуровневое приложение.

Я настоятельно поддерживаю мнение, что диаграмма классов не отменяет диаграмму E-R.

0 голосов
/ 31 мая 2019

IMO в простых терминах

Диаграмма классов отображает детали того, как будет работать система.

Диаграмма ER отображает, как система сохраняет «состояние»как выделенный шрифт.

Цель: Подробно описать состояние и поведение компонентов (классов) системы.Разработайте «эффективную», гибкую систему (меньшее сцепление и большую сплоченность), используя принципы Solid.

Цель: Разработать план «эффективного» сохранения состояния системы.Подумайте, какие запросы будут сделаны (читай против записи), требуются ли какие-либо объединения, и, следовательно, определите столбцы для индексации. Используйте Нормализацию, свойства ACID.

PS: обратите внимание, что обе схемы пытаются эффективно выполнять свою работув их отношении.

...