Различия между концептуальной диаграммой классов UML и ERD?
Если я создам концептуальную диаграмму классов, такую, что каждый класс захватывает " имя " и "атрибуты", но не "операции", разве я в основном не создал то, что иначе считалось бы ERD? Я пытаюсь понять, в чем разница между созданием концептуальной диаграммы классов, как я описал, и называнием ее ERD? Если это все еще два разных животных, может кто-нибудь объяснить, в чем разница?
5 ответов
существует небольшая разница в выразительности обоих (если мы просто сосредоточимся на атрибутах, классах и ассоциациях) , если вы используете расширенные диаграммы отношений сущностей (самый распространенный случай в настоящее время)
правда, они выглядят очень разными, на графическом уровне, так как они используют разные символы для элементов, но "семантика" очень похожи. Они оба допускают наследование (опять же, я говорю об EER), N-арные ассоциации, классы ассоциаций,...
диаграмма классов содержит только классы в вашей объектной модели с возможными связями / отношениями, соединяющими элементы диаграммы. Однако эти ссылки не обязательно соответствуют физическим отношениям, как на диаграмме ERD, но вместо этого они представляют логические связи.
диаграмма классов - это просто объектная модель вашего приложения и не содержит никакой информации о персистентности. Когда вы думаете о диаграмме классов, забудьте о базе данных или любой другой другое хранилище вы можете использовать.
диаграмма ERD с другой стороны, является диаграммой персистентности, которая отображает сущности (таблицы), существующие в (чаще всего) реляционной базе данных. Он также отображает физические отношения (и мощности) между этими таблицами и всей другой информацией, относящейся к базе данных. Диаграмма ERD иногда может выглядеть аналогично диаграмме классов, но это не означает, что она совпадает с диаграммой классов.
Это зависит от ситуации, когда вам может не понравиться делать ER-D. Но представьте, что у вас есть отдельный слой данных, где обрабатывается логика данных. В этом случае многие детали данных не должны совместно использоваться с прикладным уровнем. И диаграмма классов не должна выходить за пределы уровня приложения. Я должен подчеркнуть, что обе диаграммы не равны. И есть ситуации, когда вам нужно сделать оба, в основном в многоуровневой архитектуре, и есть ситуации, когда вы можете просто используйте диаграмму классов; например, одноуровневое приложение.
Я решительно поддерживаю мнение, что диаграмма классов не отменяет диаграмму E-R.
диаграммы классов дизайна сделаны из концептуальных моделей и диаграмм совместной работы. Диаграммы классов дизайна включают:
- классы, ассоциации и атрибуты
- методы
- типы атрибутов
- мореходности
- зависимости
диаграммы ER, которые я видел (чаще всего Erwin IE notation), были сосредоточены на дизайне базы данных. Они связаны с первичными ключами, внешними ключами, имеют неназванные отношения и обычно не имеют обобщения / специализации.
хорошая концептуальная диаграмма классов UML, с другой стороны, не связана с ключами, отражает проблемную область и имеет свойства конца ассоциации, которые по крайней мере подсказка в семантике того, почему вещи связаны. Этот помогает передавать домен более младшим разработчикам, чтобы им не приходилось догадываться.