Перечитал книгу Криса Партриджа «Business Objects: Re-Engineering for Re-Use». Как и первый раз получил большое удовольствие. Эту книгу иногда называют библией для тех, кто занимается моделированием бизнес-деятельности, построением онтологий какой-либо предметной области. Заслуженно. Рекомендую. Но страниц много (больше 400) и темы не самые простые для понимания. Книга есть в сети. Русского перевода нет.
О чем книга:
-
Партридж приводит примеры способов мышления людей - примеры различных парадигм в осмыслении человеческих видов деятельности из физики, химии, микробиологии и медицины. В моделировании данных он выделяет четыре парадигмы субстанциальную (аристотелевскую), сущностную, логическую (Буль, Венн, Кантор, Фреге, Пирс) и объектную. Наше мышление выросло из философии Аристотеля, который, моделируя и описывая объекты окружающего мира, выделял первичные субстанции и признаки (вещи и явления) и вторичные субстанции и признаки (типы). Субстанциальное моделирование трансформировалось в сущностное – это связано с тем, что людям описывать окружающий приходилось на бумаге, с помощью списков и таблиц. Отсюда привычная нам форма описания: понятие (сущность), атрибуты. Однако, для точного моделирования данный способ часто не подходит. Почему – автор подробно разбирает на многочисленных примерах. Вся дальнейшая книга посвящена объяснению как правильно заниматься объектным моделированием и как заниматься компактным описанием моделей и их оптимизацией для удобного использования – реинжинирингом. Парадигмы настолько глубоко встроены в мышление, что люди обычно не осознают их, просто думают привычным образом. Осознать в какой парадигме ты мыслишь, понять ее ограничения и, при необходимости, переключиться на другую парадигму – не самая простая задача.
-
Автор выделяет универсальную метамодель для бизнес-объектов: вещи, типы, отношения, изменения. Рассказывает про типовые проблемы с моделированием изменений (процессов), почему это часто становится проблемой в модели данных информационных систем. Также рассматривает привычную людям семантику сущностной парадигмы и ее ограничения для моделирования.
-
Логическая парадигма – это логика и теория множеств: классы, кортежи, индивидуальные логические объекты, а также философский анализ Фреге проблем референции – как смысл соотносится с обозначением.
-
Логическая парадигма более совершенна чем сущностная. Однако происходит неизбежный переход от логической к объектной парадигме, когда возникает проблема четырехмерного моделирования реальности – необходимо учитывать мгновенные и продолжительные изменения физических объектов во времени. Кроме наличия объекта и его отношений нужно построить модель его состояний и событий. Т.е. для объектов необходимо строить 4D-модель. Этот подход позже (или раньше?) назвали «4D-экстенсионализм».
-
Рассказав о преимуществе парадигмы, которую автор называет объектной, он глубокомысленно замечает, что одной теории мало, и далее половину книги посвящает примерам как данную парадигму можно использовать на практике для моделирования. В частности, он предлагает собственную нотацию для построения онтологий, приводит различные примеры сложного моделирования (составных иерархических пространственно-временных объектов) и показывает как можно оптимизировать модели с использованием его нотации с учетом потребности их многократного использования.
-
Под конец автор замечает, что объектное моделирование актуально не только для моделирования данных в информационных системах. Человеческая деятельность (приводит пример бухучета, банковского и страхового дела) и вне сферы цифровизации часто построена на ограничениях нашего мышления, проистекающего из привычки к бумаге, спискам и таблицам. Переход к новой объектной парадигме моделирования в будущем изменит и усовершенствует многие сферы человеческой деятельности. Наверное это так.
И, кстати, в ООП моделируют, как правило, в сущностной парадигме, а могли бы и более эффективно. Объекты ООП не равно бизнес-объекты - это понятия из разных сфер.