Продолжение статьи.
В данной статье я рассматриваю понятие функционального объекта и объясняю как можно трактовать модели функциональных объектов. Для торопящихся советую заглянуть сразу в конец статьи — в главу «Эксперименты и сотрудники», где дана готовая интерпретация модели, исходя из описанных здесь постулатов.
Понимание и познание
Когда мы описываем предметную область, мы думаем, что пытаемся ПОЗНАТЬ ее, а на самом деле занимаемся ПОНИМАНИЕМ предметной области и описанием своего понимания. Разницу между знанием и пониманием стоит подчеркнуть. Дело в том, что те модели, которые мы строим, являются субъективными, и потому являются отражением нашего понимания предмета, но не знания о предмете. Причина, по которой знание недостижимо, – это противоречивость того способа, который мы выбрали в качестве инструмента познания – расчленение объекта на части (анализ) и сборка их вместе (синтез) Моделирование объекта как целого и как композиции. Поэтому можно сказать, что мы нацелены прежде всего на понимание, но не на познание. Вопросами понимания занимается герменевтика. Понимание у каждого свое. Нет смысла спорить о том, у кого оно лучше или хуже. Можно спорить лишь о том, какое понимание способно объяснить более широкий круг практических задач, или является непротиворечивым в рамках определенных аксиом. Требовать от понимания большего нельзя. Например, я могу утверждать, что та модель, которую я предлагаю к рассмотрению, более полно описывает наше представление о реальности, чем модель, построенная на принципах реляционных данных. Но не могу сказать, что предлагаемая мной модель верно описывает наше представление о мире. Те же, кто не видят разницы между пониманием и знанием, часто претендуют в своих спорах на знание истины. Если рассуждать логически, и предположить, что истина постижима, то результатом ее постижения стало бы невозможность выразить ее словами.
Как сердцу высказать себя?
Другому как понять тебя?
Поймет ли он, чем ты живешь?
Мысль изреченная есть ложь… Автор: Ф. И. Тютчев
Поэтому я утверждаю, что мои соображения не более чем попытка описать мое понимание того, как мы строим модели сущего, и это понимание субъективно. Это я еще раз подчеркиваю.
Чего мы не понимаем
Мы привыкли к тому, что мир состоит из объектов, но
Мы не понимаем, что наше восприятие объектов не трехмерно, а четырехмерно, если под четвертым измерением понимать время. Если я попрошу вас нарисовать яблоню, то вы должны будете спросить меня: в какой ее период существования? Семечко, росток, молодое деревце, раскидистое дерево, пенек с последним ростком на нем? Все это и есть одна единственная яблоня. Если для описания пространственных частей объекта мы используем существительные, то для описания четвертого измерения у нас есть глаголы. Например, яблоня растет описывает четвертое измерение объекта яблоня в виде положительной производной ее размера по времени.
Мы не понимаем, что наше восприятие мира основано на отношении к миру как к функциональному объекту. Это значит, что наше описание чего бы то ни было обязательно будет опираться на функциональность этого чего-то. Даже размеры объекта — это признак его функциональности. Мы потребители до основ своего разума. Чтобы уметь видеть нечто большее, чем просто функциональные объекты, необходимо глубоко познать свое мышление и научиться его контролировать. Этим занимается Дзен-Буддизм, например.
Мы не понимаем, что выбираем сами, что считать объектом и что считать границами объекта. Например, надутый шарик – это объект, или пространство, заполненное газом? Все зависит от того, что мы решим на этот счет. Может объект, а может пространство. А после того, как выяснилось, что и внутри атома пустое пространство, стало очевидно, что нас окружает пространство, а объект – это один из способов говорить о пространстве.
Мы не понимаем, что само пространство, в котором мы потом находим объекты, – есть плод нашего восприятия мира, а не реальность. Что есть реальность мы не узнаем никогда. Но зато мы можем изучать результат нашего восприятия реальности и пытаться его описать в виде модели.
Основа для построения конструкций
Чтобы описать результаты нашего восприятия, математикам понадобилось создать теорию множеств, физикам — объединить пространство и время в одно общее пространство, а философам — понять, как мы делим это пространство-время на части. Так получилась следующая картина:
Пространство не существуют вне времени. Время не существует отдельно от пространства. То есть, мы представляем реальность как 4-Д пространство-время.
Пространство-время принято считать существующим только в нашем сознании. Пространство и время не существует без субъекта, его наблюдающего. Оно существует лишь как отражение нашего восприятия мира. То есть, мы конструируем наше 4-Д пространство-время сами.
Объект – есть произвольно выделенная часть пространства–времени. Мы привыкли к тому, что объекты существуют независимо от нашего сознания. Но это не так. Деление пространства-времени на части с целью выделения объектов мы производим субъективно. Мы своей волей выделяем объемы из пространства-времени и наделяем их свойством быть объектом. Все предметы придуманы нами исключительно исходя из удобства их использования (функциональности). Нет ни одного другого критерия, с помощью которого гарантированно можно было бы сказать: это объект, а это – нет.
Объект и активность – одно и то же. То есть, нельзя сказать, что есть отдельно объект, а есть отдельно его активность. Объект и есть активность. А активность и есть объект. Этот тезис надо пережить, а потом снова пережить.
Объект всегда функционален. Например, мы точно знаем, что данная лопата есть данная лопата. Даже после того, как мы заменим у нее черенок, она остается той же самой лопатой. То есть, атомы объекта могут меняться, а при этом сам объект с точки зрения наблюдателя — нет. Вы сами почти полностью меняете свой набор атомов каждые сколько-то лет. Однако, это не мешает Вам чувствовать себя одним и тем же существом. Даже когда мы выделяем объект на основе, как нам кажется, других принципов, все равно нами движет желание классифицировать мир на основе функциональных признаков.
Понятие функциональных объектов
В полученной картине надо научиться как-то выстраивать структуры. Я не смогу рассказать про все конструкции, которые были созданы на сегодняшний день, потому что их достаточно много. В этой статье я расскажу только про одну — класс функциональных объектов. В следующей статье я расскажу про информационные объекты. Множество подобных конструкций и пояснения к ним можно найти в книгах: Matthew West “Developing High Quality Data Models” Chris Partridge Business Objects: Re-Engineering for Re-Use , стандарте ГОСТ Р ИСО 15926-2-2010 , а также на сайте . В этой статье лишь продемонстрирую как строятся рассуждения на примере функциональных объектов.
Первый способ деления сущего на части основан на предположении (довольно сильном) о том, что материя непрерывна. То есть, если мы заметили атом здесь, то через мгновение он, скорее всего, будет тоже где-то рядом. Из этого предположения строится вывод о том, что одним из способов определения объектов является физическая целостность объекта. Считается, что там, где атомный состав вещества в целом неизменен, там мы наблюдаем физический объект. Для дотошных повторяю, что ни самого пространства ни объектов в нем не существует. существует способ говорить о нашем восприятии мира, не более. Но на полученные выводы это не повлияет.
Второй способ деления диктуется функциями, которые мы выделяем. Например, функция «Управляющий филиалом». – это функциональный объект, который существует в головах у некоторого количества людей и который в разное время исполняется разными физическими объектами. Например, если предположить, что черенок от лопаты сменная деталь, то функциональный объект «лопата» в разное время наполнен разными атомами разных черенков.
Примеры функциональных объектов
Пример функционального объекта — должность. Как и другие функциональные объекты, должность наполнена разными атомами, которые принадлежат Марии Ивановне, Сергею Петровичу, и, не дай бог, Геннадию Николаевичу. Функциональный объект должность меняет атомы всякий раз, когда происходит смена руководителя. Прерывается ли он на время сна руководителя? Нет, потому что функциональный объект — это объект в головах людей, которые проектировали производственную систему. И у них в мыслях не было, что объект пропадает на время сна его исполнителя. Таким образом, одни объекты реальности могут пересекаться с другими объектами реальности. Такие пересечения, или общие части объектов называются пространственно-временные части.
(Замечу, что любое пересечение — есть пространственно временная часть, но не любая пространственно-временная часть есть пересечение).
Это значит, что некая часть Марии Ивановны совпадает с некоторой частью Управляющего филиалом. Для этого мы поделили Марию Ивановну не на пространственные части, а на временные. А, если Мария Ивановна, помимо этого, работает еще и программистом, то теоретически она может одновременно исполнять роль заведующего филиалом и программиста. Это значит, что есть такая часть управляющего филиалом, которая одновременно есть программист и которая одновременно есть Мария Ивановна. Ничего сложного, но над этим стоит поразмыслить.
Еще пример: пусть есть запорный механизм, который одновременно работает как предохранительный клапан. Тогда у нас есть физический объект — прибор, произведенный на заводе, клапан и запорный механизм. При этом сроки жизни этих трех объектов могут не совпадать. Но в какой-то период времени у всех этих трех предметов есть общие атомы.
Одни и те же атомы в нашей модели мира одновременно могут исполнять разные функции, то есть быть частями разных функциональных объектов. Такое множество представлений Анатолий Левенчук назвал в одном из своих докладов так: ИНЬ ЯНЬ и ХРЕНЬ, В этом докладе автор в том числе дал ответ на вопрос, для чего понадобилось аналитикам столь глубоко копать? Вот такие сложные структуры мы создаем в нашем сознании, и нам надо научиться их моделировать. На что это похоже? это похоже на касающиеся плоскости. Если есть разные поверхности, которые касаются в определенных местах, то эти места будут общими для этих поверхностей.
Первый шаг на пути к такого рода моделированию сделал стандарт ИСО 15926. Рекомендую познакомиться с ним. Тезисы, приведенные в нем – очень интересны и полезны.
Далее, прежде чем перейти к моделированию экспериментов и сотрудников. я отвечу на вопрос, оставленный мной на самостоятельное исследование в прошлой статье:
Ответы на вопросы
Приведу ответы на вопросы, которые я задал читателям в предыдущей публикации: Что моделирует приведенная мной таблица?
Дадим две трактовки:
Аристотель не владел языком SQL и потому не умел писать ограничения на область значений параметров. Поэтому он считал, что тип – это просто перечень параметров. Но сейчас мы можем добавить к этому определению еще и область значений параметров экземпляров данного типа. То есть, приведенная таблица – есть описание области допустимых значений параметров. При этом в ней пропущены умолчания. Например, максимальная скорость транспортного средства указана 75 км/ ч. Никто не будет возражать, если она будет выше? То есть, помимо того, что мы видим, мы должны знать отраслевые нормы, которые говорят о том, что чем выше максимальная скорость транспорта, тем лучше. Из таблицы это не следует. Эта трактовка дана в интенсиональном контексте.
Вторая трактовка приведенных значений параметров гласит: все объекты класса БТР должны иметь максимальную скорость передвижения, равную 75 км/ ч. А. если мы знаем отраслевые стандарты, то все объекты класса БТР должны иметь максимальную скорость передвижения, равную, или большую 75 км/ ч. Эта трактовка дана в экстенсиональном контексте.
Эксперименты и сотрудники
Попробуем применить построенную парадигму к моделированию экспериментов и сотрудников, которое я начал в предыдущей публикации. У нас есть эксперименты. Что такое эксперимент? Эксперимент – это некий 4-Д объект, который должен ответить на поставленный наблюдателем вопрос. Тот, кто создал эксперимент, задает вопрос, а эксперимент должен на него ответить. Функция эксперимента ответить на вопрос.
Границы объекта под названием эксперимент произвольны и зависят от соглашений между участниками эксперимента. Например, пусть сотрудник поставил для эксперимента только свои волосы. Считать ли этого сотрудника целиком участвующим в эксперименте, или считать, что в эксперименте участвуют только его волосы? Ответ зависит только от принятой всеми договоренности. Если целиком — то эксперимент включает в себя сотрудника, если только волосы, то только волосы.
Эксперимент, как и любой другой объект, можно поделить на части: пространственные и временные бесконечным количеством способов. Так мы поступали раньше с лопатой и с управляющим филиала. Но теперь для нас будет важно следующее деление: мы выделяем те части эксперимента, атомы которых принадлежат мыслящим существам. А также все остальные части, которые в данном контексте нас не интересуют. Сотрудник – это человек. Набор тех частей 4-Д пространства-времени, которые принадлежат и сотруднику и эксперименту – есть участие данного сотрудника в эксперименте. Таким образом, у нас есть класс объектов, которые есть 4-Д объекты, состоящие из атомов, принадлежащих и эксперименту и человеку. То есть участие сотрудника в эксперименте – это класс объектов. Каждый такой объект – это 4-Д часть сотрудника и 4-Д часть эксперимента, представленная одними и теми же атомами.
Неожиданно, но связь между сотрудником и экспериментом превратилась в набор объектов. Объектов довольно непривычных. Как можно назвать объектом меня с 8-00 по 16-00? Но мы всегда выделяем объекты именно так. Например, мы легко представляем деление объекта на пространственные части. Что нам мешает поступить точно также с временными частями? Ничего. Поэтому есть не только пространственные части меня, но и временные.
Итак еще раз. У нас есть эксперимент, есть класс объектов, которые есть пространственно-временные части эксперимента. Есть человек и есть его пространственно-временные части. Классы имеют пересечение. Пересечение этих классов – и есть класс общих частей, которые значат на нашем языке: сотрудник участвует в эксперименте. Графический язык моделирования этих отношений описан в стандарте ИСО 15926-2.
Теперь мы можем дать следующую трактовку таблице связей между сотрудником и экспериментом, которую я нарисовал в прошлой статье.
Связь между сотрудником и экспериментом обозначает общие части, которые есть у сотрудника и эксперимента. Зная это, мы можем добавить новые параметры в таблицу связей, чтобы конкретизировать степень участия сотрудника и детальнее описать место сотрудника в эксперименте. Для этого в таблице связей можно добавить два поля: часть сотрудника и часть эксперимента. Это позволит указать, что в эксперименте участвует не сотрудник, а его часть в виде волос. Параметры дата начала и дата конца участия сотрудника в эксперименте завершат нарисованную картину, подчеркивая тот факт, что части, которые мы рассматриваем, имеют пространственно-временную природу.
Для тех, кто дочитал до конца, предлагаю подумать над задачей: что есть должность? Описать должность в терминах пространственно-временных частей.
В следующей статье я расскажу про природу информационных объектов. (Продолжение следует).