Моделирование предметной области UML

В чем разница между моделью предметной области и моделью данных?


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


Ответы (4)


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

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

Кстати, отличное и очень короткое введение в UML:

UML Distilled: краткое руководство по стандартному языку объектного моделирования

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

Модель данных ориентирована на определение схемы БД, включая таблицы, столбцы и отношения.

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

В обоих случаях количество элементов используется для отношений (например, 1:1, 1:много, 0:много, ...).

Тем не менее, в идеале вы хотели бы, чтобы модель данных и модель предметной области были тесно связаны, т. е. Person с именем,... и MailingAddress,... относятся к таблице PERSON со столбцом NAME, а FK — к таблице MAILING_ADDR. Вход. Вы должны решить, где размещается логика — в объектах программной системы или в БД через процедуры, триггеры и тому подобное.

person Mark    schedule 01.10.2010
comment
Я полностью согласен с этим постом. Мой ответ касался трюка реализации, который я использую в своей компании. Мы также используем этот подход, потому что у нас есть специалисты по спящему режиму. Если бы у нас не было этого опыта, я не уверен, что мы будем использовать тот же подход моделирования сверху вниз к базе данных. - person UML GURU; 03.10.2010

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

person UML GURU    schedule 01.10.2010

Я думаю, здесь важно внести некоторую ясность для потомков.

Модель данных – это способ структурирования и представления информации. Под структурой я подразумеваю такие понятия, как «пятая нормальная форма». Под представлением я подразумеваю выбор компьютерной сериализации, такой как целое число, число с плавающей запятой или строка.

Термин модель предметной области на самом деле имеет два смешанных значения.

  • Модель основных характеристик реальных или воображаемых вещей в мире. В такой модели классы представляют человеческие концепции, а экземпляры — это вещи в мире. Например, класс "Person" будет иметь экземпляры, включающие вас и меня, и важной характеристикой может быть то, что у каждого Person есть мать. Такую модель часто называют концептуальной онтологией или концептуальной моделью, и она предназначена для предоставления смысла.
  • Модель необходимой информации о вещах в мире, обычно с учетом какой-либо системы. В такой модели классы представляют информацию, которая должна храниться о вещах в мире. Например, класс "Person" будет иметь экземпляры, представляющие необходимую информацию о вас и обо мне, такую ​​как имя, фамилия, дата рождения, текущий рост и текущий вес. Эта информация часто не включает все основные характеристики, такие как наши матери, потому что для целей конкретной системы эта информация не требуется. Такой тип модели часто называют информационной моделью, концептуальной моделью данных или операционной онтологией.

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

person Jim L.    schedule 19.03.2016