Продолжаю серию статей, посвященных особенностям концептуального моделирования предметных областей.
В прошлом статья Я показал.
как можно связать объект с классом объектов смысловой связью.
В статья Я говорил о том, что подразумевается под термином класс в ООП.
Сегодня я расскажу вам, почему я предпочитаю строить концептуальные модели в виде ER-диаграмм.
Предположим, нам нужно смоделировать тезис о том, что у каждой машины 4 колеса.
Не группа из четырех колес, а именно 4 колеса.
В рамках модели ER принято говорить, что есть машина, есть колесо и есть связь между автомобилем и колесом.
Такое соединение называется «колесо-автомобиль» и имеет соотношение один к четырем.
Соединение, считываемое с колес, называется: «стоит», соединение, считываемое с автомобиля, называется: «имеет».
В терминах ООП говорят так: есть класс ООП автомобилей и есть класс ООП колес.
Между этими классами ООП существует связь один к четырем.
Соединение так и называется: «машина-колесо».
Соединение, считываемое с колес, называется: «стоит», соединение, считываемое с автомобиля, называется: «имеет».
Давайте внимательно посмотрим на предметную область и напишем, как будет выглядеть представление модели предметной области с точки зрения логической парадигмы.
В логической парадигме существует термин ТМ-класс, который совпадает с определением класса в математике.
Это определение очень похоже на определение множества, а множество, в свою очередь, представляет собой группу объектов.
Итак, у нас много машин и много колес.
Каждый автомобиль связан с 4-мя колесами смысловыми связями «автомобиль-колесо».
Таким образом, для каждого автомобиля имеется 4 колеса и 4 смысловых связи.
Смысловая связь в логической парадигме записывается кортежем: (Вагон №123; колесо №234).
Все кортежи принадлежат классу или набору кортежей.
Этот набор объединяет семантика: «На машине есть колесо».
Между конкретным колесом и автомобилем, на котором это колесо установлено, существует только одна смысловая связь.
Эта связь имеет отношение один к одному.
Как же тогда мы можем сказать, что у одной машины 4 колеса? В логической парадигме это произносится так: для каждого автомобиля имеется 4 связи с колесами в классе смысловых связей, называемом «У автомобиля есть колесо»; для каждого колеса в этом классе имеется только одно такое соединение.
Таким образом, для моделирования одной машины нам понадобилось 4 связи между машиной и колесом, а не одна, как в случае с моделью ER, и не одна, как в случае с диаграммой классов.
Это логично: у одной машины 4 колеса.
На схеме стрелками обозначена связь «классификация».
Есть ли смысловая связь между классом автомобилей ТМ и классом колес ТМ? В такой постановке задачи – нет. Существует класс связей между автомобилями и колесами, но нет связи между классом автомобилей ТМ и классом колес ТМ.
Давайте теперь рассмотрим другую проблему.
Смоделируем тот факт, что у автомобилей есть группа колес.
Не колеса, а группа.
В математике набор терминов отвечает за определение группы.
На математическом языке надо сказать: автомобиль имеет набор (группу) колес.
Это означает, что мы постулировали возможность связи объекта и класса объектов смысловой связью.
Как смоделировать этот тезис в логической парадигме? Для этого из класса колес ТМ выделим такие классы колес, каждый из которых относится к одному автомобилю.
Вот так мы соединяем автомобиль и группу колес, относящуюся к этому автомобилю.
В модели это будет выглядеть так:
Стрелки по-прежнему обозначают классификационные отношения, но круг обозначает отношения специализации или отношения «множество-подмножество».
На этой диаграмме мы видим, что объект автомобиля связан с классом колеса семантическим отношением «имеет».
Такую модель больше нельзя представить в виде диаграммы классов или модели ER. Более того, ни один современный онтологический стандарт не способен моделировать такие отношения.
Причина проста: сложность реализации таких отношений в языках ООП-программирования.
Обратите внимание, что диаграммы классов не моделируют классы объектов: прямоугольники на диаграммах классов моделируют типы объектов.
А вот с ER-диаграммами интереснее.
То, что обозначено прямоугольником на диаграмме ER, является классом объектов TM. Поэтому неправильно называть прямоугольник существительным в единственном числе в модели ER. Правильно называть его существительным во множественном числе.
Тогда модель будет такой:
И эта модель приближает нас к модели класса ТМ.
Однако связи между классами ТМ на самом деле не существует, а связи между объектами класса ТМ есть, и читаются они так: для каждого автомобиля имеется 4 связи с колесами в классе смысловых связей, называемом «У автомобиля есть колесо», на каждое колесо в этом классе приходится только одно такое соединение.
Вывод: Концептуальное моделирование в форме ER гораздо ближе к логической парадигме, чем моделирование в форме диаграммы классов.
Но ни тот, ни другой метод моделирования не позволяет моделировать смысловые отношения между объектами и классами объектов.
Это существенное ограничение современных моделистов, которое необходимо устранить.
Теги: #ООП #эр-диаграммы.
классификация #Логическая парадигма #онтология #аналитика #моделирование предметной области #Семантика #Анализ и проектирование систем #ООП #математика
-
Пожертвования На Разработку Freebsd
19 Oct, 24 -
Как Я Пришел В Тестирование
19 Oct, 24 -
Если Бы Марио Был Создан В 2010 Году...
19 Oct, 24 -
5 Правил Работы С Билетами
19 Oct, 24