В чем разница между диаграммой класса домена и диаграммой классов проектирования?

Может кто-нибудь кратко объяснить разницу между диаграммой класса домена и диаграммой классов проектирования?

Я нашел объяснение ответы Yahoo, но я нахожу это довольно запутанным.

Ответы

Ответ 1

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

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

  • (не зависящие от решения) модели доменов, возникающие в результате разработки требований к доменам/требованиям в системном анализе или в начальной фазе проекта разработки
  • (не зависящие от платформы) модели дизайна, полученные в результате разработки системы на этапе разработки
  • (для платформы) модели реализации, которые получены из дизайнерской модели

В то время как системное моделирование включает в себя как информацию, так и моделирование процессов, вы, похоже, озабочены только информационным моделированием. Здесь мы можем использовать термины "диаграмма классов домена" и "диаграмма классов проектирования" для модели концептуальной информации и модели дизайна информации, сделанной в виде диаграмм классов UML.

[Следующий текст/диаграммы были добавлены позже, в сентябре 2016 года)

Отношения "один ко многим" между концептуальными моделями и проектными моделями, а также между проектными моделями и моделями реализации проиллюстрированы на следующем рисунке:

Отношения

В качестве примера, иллюстрирующего, как работает цепочка деривации от концепции до проектирования до реализации, рассмотрим следующую модель концепции/класса people/Person:

От концепции с помощью дизайна до реализации

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

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

См. также http://web-engineering.info/book/WebApp1/ch05s03.html

Ответ 2

Если вы сосредоточены на самой диаграмме, есть две большие различия между диаграммами о модели домена и диаграммами о модели дизайна: (По крайней мере, это говорит книга Larman, использующая UML и Patterns)

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

  • В модели дизайна вам необходимо указать тип свойств и методов и т.д., в то время как в модели домена вам нужно написать их без каких-либо дополнительных (как в реальном мире). Например, value: int в модели проекта будет записана как value в модели домена.

Ссылка: применение UML и шаблонов 3-е издание Глава 9 и 16.

Ответ 3

UML не имеет таких диаграмм

Enterprise Architect имеет модель домена - посмотрите wiki.

Что касается "диаграммы проектирования классов", то это просто неизвестно ни EA, ни VP UML, ни UML. Я думаю, что подразумевается обычная диаграмма классов, обозначающая UML.