Моделирование объектов, функций и операций. Мереологические отношения между объектами данного типа
В прошлых статьях я разобирал моделирование объектов, типов и атрибутов.
Вкратце мы затронули жизненный цикл объекта с точки зрения его трансформации и трансформации наших представлений о нем.
Далее я начал рассмотрение моделирования операций, функций и объектов с единой точки зрения.
Все это выходит за рамки моделирования при создании информационных систем, но для решения задач интеграции различных информационных систем через создание адаптера между ними это крайне необходимо.
Для создания адаптера нам надо научиться моделировать одно и то же разными способами: как объект и как действие. Для философской мысли это не ново, потому что объекты не существуют вне времени, и действия не могут быть совершены без объектов. Фактически, нам предстоит посмотреть на мир так, как смотрят на него буддисты: объект и действие – одно и то же. Необходимость такого мировоззрения проистекает из необходимости объединения разных точек зрения на одно и то же происходящее. в данной статье я рассмотрю возможные представления реальности и мереологические отношения (отношения часть-целое) между ними.
Эксперимент по описанию часовПусть есть часы. Приведем трех человек и попросим их описать увиденное.
- Первый скажет, что это объект под названием часы.
- Второй скажет, что это функция под названием демонстрация текущего времени.
- Третий скажет, что это набор операций под общим названием «поворот минутной стрелки на одно деление».
- В первом случае мы получим модель объекта,
- во втором – модель функции,
- в третьем – модель операции.
Объект, операция или функция присутствуют в сознании человека, но не существуют в реальности. Не в смысле солипсизма, как может подумать читатель (реальный мир существует), а в смысле интерпретации этого мира, потому что объект, операция и функция – это различные интерпретации одного и того же пространственно-временного объема.
Моделируя реальность, мы легко справляемся с представлением реальности в виде объектов, однако, почти не умеем работать с представлениями реальности в виде функций и операций. И существующие стандарты не помогают нам в этом разобраться. В этой статье я рассмотрю связи между представлением реальности в виде объекта, функции и операции.
Моделирование начинается с описания четырехмерного пространственно-временного объема, трактовкой которого потом занимается аналитик. Для этого строится модель границ этого объема – локация в пространстве и во времени. Например, для описания временных границ используются атрибуты «дата начала» и «дата завершения». После описания объема аналитик производит трактовку этого объема.
Представление реальности в виде объектаКогда мы трактуем объем пространства-времени в виде объекта, мы концентрируем свое внимание на статике. Это может быть статика формы, статика конструкции или статика свойств. Например, стул имеет статичную форму и конструкцию, река – берега и поверхность воды, часы – конструкцию (форма меняется), шахматная партия – игроков и стол.
Чтобы описать конструкцию объекта строится модель в виде множества связанных друг с другом объектов – частей моделируемого объекта. Объем, трактуемый как объект, делится на части, каждая из которых трактуется как объект.
Представление реальности в виде функцииКогда мы трактуем четырехмерный объем пространства-времени в виде функции, мы концентрируем свое внимание на динамике, которая обладает свойством повторяемости. Например, функция демонстрации времени динамична, но события, которые сопутствуют этой динамике, принадлежат одному классу – поворот стрелки на заданный угол (статика). То есть, инвариантом функции является класс наблюдаемых событий.
Часто можно слышать, как говорят, что функция часов – показывать время. Этот тезис разделяет объект и функцию. На самом деле и объект, и функция – это разные трактовки одного объема. Поэтому с точки зрения моделирования правильно сказать: объем, трактуемый как часы, также может трактоваться как функция демонстрации текущего времени, которая происходит в данном участке пространства. Такой тезис приводит к построению довольно объемной модели, поэтому аналитики часто ее сокращают до двух объектов – функции (демонстрация времени), объекта (часы) и связи между ними «исполняет». Это сокращает объем моделирования, но мешает корректно мыслить. В предлагаемой мной трактовке модель симметрична относительно любого из объектов учета – будь то объект, функция, или что-либо еще. Симметричность модели позволяет строить адаптер.
Функции моделируются при помощи нотации IDEF0. Эта же нотация позволяет моделировать конструктивное деление функции на части – функциональные структуры. Это когда функция делится на части, каждая из которых трактуется как функция. Часто эту модель ошибочно называют моделью процесса.
В этой же нотации можно увидеть зачатки моделирования конструкции функции в виде объектов. Это – так называемые, «стрелки снизу». Но в этом месте нотация неполна, потому что не ясно, что означают эти стрелки – темпоральные ли части участников, трактовку ли этих частей (роли), самих ли участников. Поэтому можно сказать, что зачатки моделирования есть, но нотация неполна. Об этом я расскажу позже чуть подробнее.
Представление реальности в виде операцииКогда мы трактуем четырехмерный объем пространства-времени в виде операции, мы концентрируем свое внимание на динамике, в которой в общем случае нет инвариантов относительно времени, но есть инвариант относительно пространства, в котором происходит операция. То есть, операции происходят в определенном объеме, в котором с точки зрения субъекта должны соблюдаться причинно-следственные связи.
Динамика в операции связана с возникновением и уничтожением четырехмерных объемов. Это могут быть объемы, трактуемые как состояния объектов, объекты и проч. Поэтому модель операции – множество дат начал и дат завершений каких-то четырехмерных объемов.
Операцию надо отличать от конструкции операции. Обычно под моделью операции понимают специфичную модель ее конструкции. Встречающиеся конструкции операции делятся на два типа. Первый тип конструкции – описание ее участников, а второй – конструкция в виде под-операций, связанных темпоральными связями (процесс). Так вот часто под моделью операции понимают перечисление ее участников, то есть ее конструкцию в виде участников. Причиной такого рода заблуждения стала цель моделирования. Всем интересны причинно-следственные связи, приведшие к совершению операции, или объяснение изменений. Причинно-следственные связи можно объяснить, сославшись либо на очевидный состав ролей, либо на очевидную последовательность под-операций. Делается это в два шага.
- На первом шаге необходимо смоделировать темпоральные части операции. Если мы делим операцию по времени, то это будут части, разделенные во времени, которые в дальнейшем мы будем трактовать как операции. Если мы делим операцию в пространстве, то это будут части, существующие одновременно на протяжении всей операции. Эти части в дальнейшем будут трактоваться как роли.
- На втором шаге надо, апеллируя к эмпирическому опыту субъекта, объяснить ему происшедшие в операции изменения.
Рассмотрим модель конструкции операции в виде последовательности под-операций. Для объяснения причинно-следственных связей подобным способом необходимо перечислить очевидные под-операции, которые объяснят происходящее. Например, для объяснения причины, как заявка от клиента была обработана, надо рассмотреть последовательность операций от приема заявки до ее архивирования. Глядя на такую последовательность, легко можно понять, почему все заинтересованные в этой операции стороны, были удовлетворены. Для этого строится последовательность под-операций и связей между ними. И тут снова два уровня – на первом уровне темпоральные объемы и их положение в пространстве-времени, на втором – трактовка этих объемов в виде операций и объяснение причинно-следственных связей между ними.
Пока я не видел стандартов, в которых эти уровни были бы явно разделены. Сейчас и моделирование объемов и их трактовки свалены в одну кучу. Например, часто говорят, что процесс должен иметь результат. Но результат – это второй уровень модели. Что тогда есть первый уровень, в котором есть последовательность, но нет ни результата, ни объяснения причинно-следственных связей? Поскольку аналитики пропускают этот уровень моделирования, то им не нужно придумывать название для такого рода объектов. Но, строя полноценные модели, мы вынуждены эти названия искать. Или недавно я услышал, что роль бизнес-аналитика заключается в помощи бизнесу. Но это опять второй уровень модели, на первом уровне которого есть только активность по моделированию, но нет никаких целей и причинно-следственных связей. И как тогда назвать первый уровень, — не понятно.
Смешению этих уровней также способствует язык и наследуемое нами от предков мифическое сознание. Когда я читаю, что лошадь скачет, я могу трактовать этот тезис тремя разными способами. Я могу представить себе движущийся объект в форме лошади, совершающий специфические движения, могу представить себе механическую систему, способную к производству такого рода движений, а могу рассмотреть психические функции лошади. Все три способа представления имеют один глагол – скакать и никакого намека на дифференциацию. Именно поэтому аналитики в одной модели часто путают все три уровня: факты, причины и следствия, а также намерения субъектов. К сожалению, в языке нет способа разделить эти три разных модели.
Разные субъекты могут сойтись в том, что видят одних и тех же участников операции, но разойтись в трактовке их ролей. Например, в войне противоборствующие стороны часто сильно расходятся во мнении насчет своей и чужой роли в военных действиях. Может быть иначе – субъекты признают одинаковый состав ролей, но называют разных участников. Например, в гравитационном взаимодействии участвуют две массы, но претенденты на эти массы могут быть разными, как часто бывает в астрономии.
Исходя из этого, если мы хотим строить адаптер, мы должны уметь сшивать разные точки зрения на реальность, будь тот физическую (объемы) или ментальную (причинно-следственные связи). Как строить такие модели, я рассказывал ранее, — это отдельная и очень большая тема, на первом этапе которой рассматривается построение независимых физических и ментальных моделей.
Мереологические отношения между объектами разного типаМы увидели, что один и тот же объем может быть представлен в виде объектов разного типа, мы увидели, что объект может быть представлен в виде конструкции объектов, функция – в виде конструкции, состоящей из функций, или объектов, операция – в виде конструкции, состоящей из объектов, или операций. Можно задаться вопросом: можно ли построить конструкцию объекта из функций и операций? Можно ли построить конструкцию функции из операций, или конструкцию операции из функций? Это довольно специфичные модели, но они также имеют место быть.
- Объект – предприятие может быть представлен в виде конструкции, элементы которой являются функции: «производство оборудования» и «продажа оборудования».
- Объект – часы может быть представлен в виде конструкции, состоящей из операций «поворот стрелки часов» (их очень много, но в принципе, это возможно).
- Функция – демонстрация текущего времени по аналогии с часами может быть представлена в виде конструкции, состоящей из операций «поворот стрелки часов».
- Представление операции в виде набора функций также возможно. Операция «загнать кол в землю» может быть представлена в виде конструкции, состоящей из функций «держать кол в заданном положении» и «колотить кувалдой в торец кола».
На этом я завершил рассказ про типы объектов и связи между ними. Теперь вы сами можете поэкспериментировать и найти конструкции там, где раньше вам виделись семантические связи. Вы также можете разделить мереологические (объективные) отношения между объектами и воображаемые отношения типа «причина-следствие», или намерение субъекта.
Как моделирование выглядит в реальностиПока кажется, что все логично и просто. Однако, давайте добавим немного сложности. Вспомним, что будущее моделируется при помощи пространства вероятных исходов, а моделирование прошлого ограничено точностью нашего знания. Таким образом, когда мы говорим о дате начала существования некоторого объекта, например, фотонной ракеты, мы говорим, что эта дата лежит в будущем где-то после 2100 года. Когда наступит 2050-ый год мы уточним эту дату и скажем, что дата начала существования такой ракеты где-то после 2150-го года. Таким образом, значение атрибута «дата начала» будет иметь разброс и этот разброс будет меняться с течением времени. Поэтому значение атрибута «дата начала» не просто значение, а скорее, область значений и, поскольку эта область меняется во времени, она должна быть привязана к дате актуальности этой области.
В системной инженерии считается, что жизненный цикл объекта начинается от момента его проектирования и заканчивается моментом его утилизации. Про момент утилизации поспорить нельзя, но с моментом начала проектирования я бы поспорил. В процессе проектирования обсуждается планируемая дата начала существования объекта. И эта дата не равна дате начала проектирования объекта. Планируемая дата начала существования объекта уточняется вместе с уточнением проектной документации. Если же принять, что датой начала существования объекта является дата начала его проектирования, то мы получим аналог парадокса брадобрея, то есть, бессмыслицу. В проекте указываются даты создания объекта и его утилизации. Если же в проекте будет сказано, что дата создания объекта — это дата начала его проектирования, то получится коллизия.