Особенности Концептуального Моделирования Предметной Области

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

В прошлом статья Я показал.

как можно связать объект с классом объектов смысловой связью.

В статья Я говорил о том, что подразумевается под термином класс в ООП.

Сегодня я расскажу вам, почему я предпочитаю строить концептуальные модели в виде ER-диаграмм.

Предположим, нам нужно смоделировать тезис о том, что у каждой машины 4 колеса.

Не группа из четырех колес, а именно 4 колеса.

В рамках модели ER принято говорить, что есть машина, есть колесо и есть связь между автомобилем и колесом.

Такое соединение называется «колесо-автомобиль» и имеет соотношение один к четырем.

Соединение, считываемое с колес, называется: «стоит», соединение, считываемое с автомобиля, называется: «имеет».



Особенности концептуального моделирования предметной области

В терминах ООП говорят так: есть класс ООП автомобилей и есть класс ООП колес.

Между этими классами ООП существует связь один к четырем.

Соединение так и называется: «машина-колесо».

Соединение, считываемое с колес, называется: «стоит», соединение, считываемое с автомобиля, называется: «имеет».



Особенности концептуального моделирования предметной области

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

В логической парадигме существует термин ТМ-класс, который совпадает с определением класса в математике.

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

Итак, у нас много машин и много колес.

Каждый автомобиль связан с 4-мя колесами смысловыми связями «автомобиль-колесо».

Таким образом, для каждого автомобиля имеется 4 колеса и 4 смысловых связи.

Смысловая связь в логической парадигме записывается кортежем: (Вагон №123; колесо №234).

Все кортежи принадлежат классу или набору кортежей.

Этот набор объединяет семантика: «На машине есть колесо».

Между конкретным колесом и автомобилем, на котором это колесо установлено, существует только одна смысловая связь.

Эта связь имеет отношение один к одному.

Как же тогда мы можем сказать, что у одной машины 4 колеса? В логической парадигме это произносится так: для каждого автомобиля имеется 4 связи с колесами в классе смысловых связей, называемом «У автомобиля есть колесо»; для каждого колеса в этом классе имеется только одно такое соединение.



Особенности концептуального моделирования предметной области

Таким образом, для моделирования одной машины нам понадобилось 4 связи между машиной и колесом, а не одна, как в случае с моделью ER, и не одна, как в случае с диаграммой классов.

Это логично: у одной машины 4 колеса.

На схеме стрелками обозначена связь «классификация».

Есть ли смысловая связь между классом автомобилей ТМ и классом колес ТМ? В такой постановке задачи – нет. Существует класс связей между автомобилями и колесами, но нет связи между классом автомобилей ТМ и классом колес ТМ.

Давайте теперь рассмотрим другую проблему.

Смоделируем тот факт, что у автомобилей есть группа колес.

Не колеса, а группа.

В математике набор терминов отвечает за определение группы.

На математическом языке надо сказать: автомобиль имеет набор (группу) колес.

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

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

Вот так мы соединяем автомобиль и группу колес, относящуюся к этому автомобилю.

В модели это будет выглядеть так:

Особенности концептуального моделирования предметной области

Стрелки по-прежнему обозначают классификационные отношения, но круг обозначает отношения специализации или отношения «множество-подмножество».

На этой диаграмме мы видим, что объект автомобиля связан с классом колеса семантическим отношением «имеет».

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

Причина проста: сложность реализации таких отношений в языках ООП-программирования.

Обратите внимание, что диаграммы классов не моделируют классы объектов: прямоугольники на диаграммах классов моделируют типы объектов.

А вот с ER-диаграммами интереснее.

То, что обозначено прямоугольником на диаграмме ER, является классом объектов TM. Поэтому неправильно называть прямоугольник существительным в единственном числе в модели ER. Правильно называть его существительным во множественном числе.

Тогда модель будет такой:

Особенности концептуального моделирования предметной области

И эта модель приближает нас к модели класса ТМ.

Однако связи между классами ТМ на самом деле не существует, а связи между объектами класса ТМ есть, и читаются они так: для каждого автомобиля имеется 4 связи с колесами в классе смысловых связей, называемом «У автомобиля есть колесо», на каждое колесо в этом классе приходится только одно такое соединение.

Вывод: Концептуальное моделирование в форме ER гораздо ближе к логической парадигме, чем моделирование в форме диаграммы классов.

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

Это существенное ограничение современных моделистов, которое необходимо устранить.

Теги: #ООП #эр-диаграммы.

классификация #Логическая парадигма #онтология #аналитика #моделирование предметной области #Семантика #Анализ и проектирование систем #ООП #математика

Вместе с данным постом часто просматривают: