В чем разница между моделированием данных и моделированием домена? - PullRequest
27 голосов
/ 18 августа 2010

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

Вопрос возник во время обсуждения на работе;Естественно, я прыгнул в Википедию, чтобы получить некоторые базовые определения - надеясь, что они могли бы прояснить разницу - но они этого не сделали ...

Концептуальная схема или Концептуальная модель данных это карта понятий и их взаимосвязей.

Логические модели данных кажутся очень похожими (из этого определения):

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

Где-как ...

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

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

Один изчто добавляет этой путаницы к тому, что (из того, что я видел) модель домена обычно моделируется с использованием диаграммы классов UML - сущность класса в диаграмме классов UML поддерживает методы - наш коллега утверждает, что модель домена не должна содержать "операции».Я могу понять разработчиков моделей доменов, используя подмножество диаграмм классов UML - но не опасно ли предположить, что люди будут воздерживаться от включения «операций», если используемые ими инструменты поддерживают это?

Ответы [ 4 ]

11 голосов
/ 18 августа 2010

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

5 голосов
/ 18 августа 2010

Моделирование предметной области (в смысле доменно-ориентированного проектирования) - это моделирование поведения концепций предметной области, в то время как моделирование данных фокусируется в основном на ... данных.

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

Я мало что знаю о других методах моделирования доменов, кроме Domain Driven Design, но DDD включает (помимо моделирования данных и поведения) также явное моделирование границ согласованности (агрегатов).

2 голосов
/ 11 сентября 2013

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

Понятие «домен» (и другие виды моделей, такие как концептуальные, логические и физические)является ортогональным к технике, используемой для представления модели (например, ERD, UML и т. д.).Модель предметной области по сути такая же, как концептуальная модель, но разные методологии проектирования могут иметь несколько разные термины и определения.Несмотря на то, что модели доменов обычно используют UML или ERD для описания сущностей и их отношений (или классов / методов в UML), это относится только к моделированию информации, которая должна управляться системой - логически, концепции моделирования доменов (или концептуальноймоделирование, логическое моделирование или физическое моделирование и т. д.) может применяться к любой проблемной ситуации и решению.В зависимости от характера проблемы и подхода к решению проблемы, для достижения той же цели могут использоваться другие методы моделирования.

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

0 голосов
/ 18 августа 2010

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

Однако мы действительно в мутных водах ...

...