Моделиране на UML домейн

Каква е разликата между модел на домейн и модел на данни?


person RoR    schedule 30.09.2010    source източник


Отговори (4)


Моделът на данни е модел на дизайн, който описва само данните и техните връзки. Моделът съдържа обекти, но те са описани по отношение на това какви данни притежават, а не как действат с тези данни или какви са техните отговорности.

От друга страна, модел на домейн е концептуален модел, използван при анализ на проблемна област. Той описва домейна от гледна точка на обекти, които имат връзки, данни и поведение. Той описва отговорностите на тези субекти като подходящи за разбиране на проблемната област.

BTW отлично и много кратко въведение в UML е:

UML Destilled: Кратко ръководство за стандартния език за моделиране на обекти

person Kdeveloper    schedule 30.09.2010
comment
Модел на данни може да съществува на концептуално, логическо и физическо ниво. Смятам, че концептуалният модел на данни е подмножество на модела на домейна и може да е едно и също нещо (изоморфно?) в някои методологии. - person MikeAinOz; 01.10.2010
comment
+1 @MikeAinOz. По същия начин моделът на домейн не трябва да бъде просто концептуален. Основният принцип в управлявания от домейн дизайн е, че истинският, жив, напълно изпълняващ се домейн модел е централната част на решението. - person sfinnie; 01.10.2010
comment
+1 Това щях да кажа. Винаги свързвам модела на данни с физически и домейн, за да опиша проблемната област на видимо ниво (т.е. как потребителят вижда приложението по отношение на елементите, с които взаимодейства и т.н.). - person Bryce Fischer; 01.10.2010

Моделът на данни е фокусиран върху дефиницията на схемата на DB, включително таблици, колони и връзки.

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

И в двата случая кардиналността се използва за връзки (напр. 1:1, 1:Много, 0:Много, ...).

Въпреки това в идеалния случай бихте искали моделът на данни и моделът на домейна да са тясно свързани, т.е. лице с име, ... и MailingAddress, ... се отнася до таблица PERSON с колона NAME и FK към таблица MAILING_ADDR влизане. Трябва да решите къде се хоства логиката - в обектите в софтуерната система срещу в DB чрез процедури, тригери и други подобни.

person Mark    schedule 01.10.2010
comment
Напълно съм съгласен с този пост. Моят отговор беше да се занимавам с трик за внедряване, който използвам в моята компания. Ние също използваме този подход, защото имаме специалисти по хибернация. Ако нямахме този експертен опит, не съм сигурен, че ще направим същия подход за моделиране отгоре надолу към база данни. - person UML GURU; 03.10.2010

Мисля, че този модел на домейн и модел на данни вече са почти еднакви с новите технологии за моделиране отгоре надолу. Имам предвид, че можете да моделирате в диаграма на клас и да добавяте само стереотипи на базата данни във вашата диаграма. Ако използвате инструмента, който използвам аз, тогава вашата ejb3 анотация ще бъде незабавно синхронизирана с вашия код. Следващата стъпка е само да използвате картограф, за да създадете вашата база данни. Тази технология работи само с Java

person UML GURU    schedule 01.10.2010

Мисля, че е важно тук да се даде известна яснота за потомците.

Моделът на данни е дизайн за това как да се структурира и представя информация. Под структура имам предвид проблеми като "пета нормална форма". Под представяне имам предвид избор на компютърна сериализация, като цяло число, плаваща запетая или низ.

Терминът модел на домейн всъщност има две съчетани значения.

  • Модел на основни характеристики на реални или въображаеми неща в света. В този вид модел класовете представляват човешки концептуализации, а инстанциите са нещата в света. Например, клас "Човек" ще има екземпляри, включително ти и аз, и съществена характеристика може да бъде, че всяко лице има майка. Този тип модел често се нарича концептуална онтология или концептуален модел и има за цел да осигури смисъл.
  • Модел на необходима информация за нещата в света, обикновено с предвид някаква система. В този вид модел класовете представляват информация, която трябва да се съхранява за нещата в света. Например клас „Човек“ ще има екземпляри, представящи необходимата информация за вас и мен, като собствено име, фамилия, дата на раждане, текуща височина и текущо тегло. Тази информация често не включва всички съществени характеристики, като нашите майки, тъй като за целите на конкретна система тази информация не се изисква. Този вид модел често се нарича информационен модел, концептуален данни модел или оперативна онтология.

Както UML, така и OWL езиците могат да се използват за представяне на двата вида модел на домейн. И двата могат да се считат за модели на анализ, тъй като се използват за анализ на домейн. Единият се използва за разбиране на нещата в домейн, другият се използва за събиране на изисквания за изграждане на определен софтуер или система от бази данни за неща в домейн. И двете са необходими и, за съжаление, те обикновено се обединяват така, че хората, които изграждат модел за анализ, сами са объркани какво моделират!

person Jim L.    schedule 19.03.2016