Классификация конструкций: примеры и заблуждения

в 3:57, , рубрики: IT-стандарты, Анализ и проектирование систем, бизнес-операция, бизнес-процесс; онтология, бизнес-функция, классификация, конструкция, построение информационных моделей, Проектирование и рефакторинг, Семантика, метки:

Это завершающая статья из цикла классификации моделей. В данной статье я классифицирую конструкции. Должен извиниться за отсутствие иллюстраций, но так получилось. Поэтому сегодня просто текст.

Термины

Начнем с термина «есть часть». В быту мы встречаем следующие высказывания: слоны – есть часть млекопитающих. Речь идет о том, что множество слонов есть подмножество множества млекопитающих. В этой статье термин «есть часть» будет употребляться в другом смысле. Мы будем употреблять этот термин только в отношении конкретных объектов. Например, конкретная ветка дерева – есть часть конкретного дерева. При этом не надо думать, что речь идет о любой ветке дерева, как тогда, когда мы даем определение понятию: ветка дерева – есть часть дерева. В терминах матлогики это утверждение читается так: для любой ветки дерева найдется такое дерево, что данная ветка есть часть этого дерева. Такое утверждение относится уже не к конкретному объекту, а к понятию, определяющему объекты. Если в статье понадобиться сказать так, я скажу явно. В противном случае я буду говорить о конкретных объектах.

Следующий термин «включает в себя». Если я говорю, что дерево включает в себя ветку, то это значит, что конкретная ветка – это часть конкретного дерева. И речь по-прежнему идет о конкретных объектах, а не о множествах или понятиях.

Еще один термин, разобраться с которым будет немного сложнее. Это термин «состоит из» Кажется, что он близок к термину «включает в себя», но мы будем их различать. Мы говорим, что дерево состоит из веток, ствола и корней. При этом подразумеваем, что части дерева перечислены полностью, чтобы дать нам полное представление о строении дерева. То есть, термин «состоит из» употребляется в отношении строений (конструкций) объектов. Если взять часть из этих объектов, то сказать, что над-объект состоит из этих под-объектов уже не получится (что-то упущено). Поэтому правильна такая иерархия: над-объект, конструкция над-объекта, элементами которой являются под-объекты и из которых она состоит, под-объект, являющийся частью над-объекта и являющийся элементом конструкции над-объекта.

Парадигмы конструкций

Один над-объект может быть представлен в виде разных конструкций. Над-объект может быть поделен на части в соответствии с разными принципами деления (разными основаниями). Есть принцип деления, сохраняющий компактность пространственных частей — пространственное деление. Пример: здание состоит из помещений. Напомню, что тезис «здание состоит из помещений» равносилен утверждению: есть здание, есть конструкция здания, выполненная в рамках пространственной парадигмы, элементами которой (конструкции) являются помещения. Другое основание – функциональное. Пример: здание состоит из ограждающих конструкций, кровли и инженерных подсистем. Другими словами, можно сказать, что основание для деления над-объекта – это парадигма конструкции.

Конструкции человеческого тела часто рассматривается в двух парадигмах: одна называется внешнее строение человека, вторая — внутреннее строение. Внешнее строение описывает части человеческого тела: руки, ноги, голову, туловище. Внутреннее строение описывает подсистемы человека: кровеносную, пищеварительную, нервную и проч. Внешнее строение равносильно пространственному делению здания на помещения. Внутреннее строение равносильно функциональному делению здания по подсистемы.

Классификация конструкций

Обычно мы рассматриваем конструкцию просто: вот над-объект, вот под-объекты, вот связи между под-объектами, которые объясняют нам свойства над-объекта. Мы будем классифицировать конструкции через классификацию элементов конструкции.

Элементы конструкции принадлежат тому же классу, что и объект

Рассмотрим конструкцию, в которой элементы принадлежат тому же классу, что и над-объект. Например, вода состоит из частей, каждая из которых – тоже вода. Или куча песка, элементы которой – тоже кучи песка. Если объект делится подобным образом, то для него зачастую можно ввести меру. Это — особенность такого рода конструкций. Например, масса объекта равна сумме масс ее частей, площадь фигуры равна сумме площадей ее частей, объем материи равен сумме объемов ее частей и тд. Рассмотрим пример менее очевидный. Пусть есть операция и ее части – под-операции. Тогда мерой может стать ее четырехмерный объем. Пример: человек выполнял операцию 4 часа. Объем операции– 4 человеко-часа. Пусть мы разделили операцию на 4 под-операции. Каждая под-операция пусть имеет объем – 1 человеко-час. Таким образом, сумма объемов под-операций равна объему над-операции.

Заблуждение

Замечу, что многие здесь сделают ошибку и подумают, что я говорил о понятии операции. Нет, в данном контексте речь шла о конкретной операции, совершенной Васильевым с 12-00 по 16-00 12-го апреля 2016 года. Если же говорить о понятии операции, то нельзя сказать, что понятие длится 4 часа. Можно сказать, что операции подобного типа длятся в среднем 4 часа. Я же часто (даже от ведущих аналитиков) слышу ошибочные высказывания на эту тему. Они говорят, что операция, которую они обозначили в нотации BPMN в виде прямоугольника длится 4 часа. Но нотация BPMN не моделирует операции, она моделирует понятие операции. Поэтому в этой нотации нельзя сказать, сколько длится конкретная операция. В свойствах объекта, созданного в нотации BPMN может быть атрибут: средняя длительность операций данного типа, но не может быть атрибута длительность операции. В продукте Businessstudio именно так и сделано. В свойствах объекта, созданного в нотации EPC или в нотации можно указать распределение длительностей операций определенного типа. И это верно.

Примеры конструкций первого типа

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

Ошибочный пример: некоторые могут подумать, что на диаграмме BPMN подпроцесс – это конструкция операции, но это не так. На диаграмме BPMN нет моделей операций. Там есть концептуальные модели операций. Очень похоже на определение понятия, и так оно и есть. Квадратик в BPMN моделирует не операцию, а понятие об операции. Диаграмма в нотации BPMN – концептуальная модель, а не модель объекта.

Класс конструкций, в котором элементы принадлежат одному классу

Конструкция такого рода состоит из элементов, относящихся к одному классу в то время, как над-объект относится к другому классу.

Например, конкретная будка состоит из конкретных четырех досок. Понятно, что объем будки не равен сумме объемов досок, поэтому ввести меру не удастся. Пример из описания активности: операция состоит из участников. Мы воспринимаем участников как материальные, либо как функциональные объекты, но не воспринимаем их как операции. В данном случае я опять хочу подчеркнуть, что мы говорим не о концептах операций, модель которых можно найти в нотациях BPMN, а об операциях, модели которых можно найти на диаграммах Ганта. Например, участниками операции «забить гвоздь», которая состоялась в 9-00 13-го мая 2011 года были: Сидоров, молоток, гвоздь, две доски, табуретка, лампа, стол, помещение.

Если кто-то попытается сказать что-то подобное об объектах, созданных в нотации BPMN, то это должно звучать так: каждая операция данного типа, модель которого (типа) мы видим в нотации BPMN, имеет участников перечисленных далее типов:… Например, в каждой операции типа «забить гвоздь» будут участвовать объекты следующих типов: «исполнитель», «гвоздь» и «молоток». Правда, есть исключения. Например, иногда в определении типа операции можно встретить ссылку не на тип участника, а на модель конкретного ресурса. Тогда речь идет о том, что в любой операции данного типа участником будет конкретный объект, а не объект какого-то типа, например, в каждой операции класса «получить согласование на постройку здания» указан участник: администрация города Москвы (объект).

Все объекты конструкции принадлежат разным классам

Следующий кейс наиболее распространен: объекты над- и под- относятся к разным классам. Например, трансформатор состоит из сердечника и двух обмоток. В применении к описанию активности можно рассмотреть предыдущий пример в разрезе того, что исполнители относятся к разным классам. Сидоров – к людям, молоток – к инструментам, а гвоздь – к материалам. Все зависит от того, как мы классифицируем объекты.

Описание конструкции без перечисления ее элементов

Следующий кейс посложнее. Мы говорим о конструкции, в которой нет перечисления ее элементов, но есть упоминание о типах объектов, из которых состоит конструкция. Например, здание состоит из кирпичей. Конкретное здание состоит из объектов типа «кирпич». Нет перечисления конкретных кирпичей, но есть указание типа, к которому относятся эти объекты. Моделирование таких конструкций довольно затруднено в современных языках моделирования. Дело в том, что для моделирования таких утверждений нужны предикаты второго порядка. Но языков, которые были бы заточены для моделирования предикатов второго порядка, нет. Причина этого в том, что, если модель, созданная в предикатах первого порядка вычислима, то модель в предикатах второго порядка — нет. То есть, на основе фактов, записанных в предикатах первого порядка, можно строить однозначные выводы. Если же модель построена в предикатах второго порядка, то выводы могут быть только с некоторой долей вероятности. Например, если мы говорим, что лес состоит из осин на 60 процентов и из берез на 30 процентов (остальные деревья относятся к другим породам), то сказать наверняка о породе произвольно взятого дерева в этом лесу можно будет только с некоторой долей вероятности.

Создание ИС ставит перед собой задачу автоматизации некоторых операций. Чаще всего, это детерминированные операции, в которых нет места вероятностным исходам. Программисты в большинстве своем решают именно такие задачи. Поэтому все их инструменты заточены под моделирование предикатов первого порядка, ООП в частности. Поэтому там, где надо моделировать предикаты второго порядка, ООП не справляется.

Примеры

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

Конструкция их ячеек с объектами разных типов

Пусть есть кристалл. До сего момента мы не рассматривали связи между элементами конструкции как часть конструкции. С этого момента связи нам понадобятся. Понятно, что разделение объекта на части требует описания связей между элементами. При делении на перечисляемые элементы мы можем перечислить и все связи между элементами. Однако, при делении на объекты одного типа без перечисления всех элементов возникает вопрос о том, как описать связи между элементами конструкции? Например, в здании большинство кирпичей имеют связи с другими кирпичами через кладочный раствор. Тогда мы говорим, что здание состоит из кирпичей, каждый кирпич имеет связи с соседними кирпичами. При этом 60 процентов кирпичей имеют 5 соседей, 30 процентов – 4 соседа, 5 процентов – 3 соседа и 5 процентов- 2 соседа. Таким образом, для любого выбранного кирпича из первой группы найдется пять, которые тоже являются частью здания и которые связаны с выбранным кирпичом через кладочный раствор. Теперь напишем то же утверждение относительно бизнес-функции. Функция по продаже состоит из операций по продаже. Предположим, что операции следуют одна за другой. Тогда мы можем сказать, что для любой операции существует предшествующая ей операция того же типа и существует последующая ей операция того же типа. Так мы смоделировали тип связи в конструкции, которая описана типами объектов, но не объектами. Теперь представим себе кристалл более сложного строения, в котором участвуют атомы разных элементов и расположены в сложной кристаллической решетке. Как описать строение такого кристалла? Те, кто занимается описанием и классификацией кристаллов, знают, что способов описания такого рода решетки – бесконечно много. Например, пусть есть одномерная цепочка атомов двух разных типов А и В, чередующихся друг с другом с шагом в один ангстрем. Можно сказать, что кристалл состоит из ячеек, каждая из которых состоит из атомов типа А и В, расположенных через 1 ангстрем, сдвиг между ячейками — 2 ангстрема. (Также верным будет утверждение о том, что кристалл состоит из ячеек, каждая из которых состоит из атомов типа А и В, расположенных через 3 ангстрема. Сдвиг между ячейками – 2 ангстрема и ячейки пересекаются в пространстве. Каждая такая регулярная структура видна на ренгенограмме кристалла. Чтобы ограничить количество вариантов обычно берут наиболее близко расположенные атомы). С другой стороны, можно сказать, что кристалл состоит из атомов двух типов: А и В. Это утверждение похоже на предыдущее, но отличается от него тем, что в первом случае конструкция кристалла состоит из ячеек, а конструкция ячеек, в свою очередь, — из атомов. Во втором случае конструкция кристалла напрямую состоит из атомов. Другой пример: пусть в функции продаж выполняются два типа операций: согласование условий и отгрузка товара. Можно сказать, что функция состоит из ячеек, в каждой из которых есть операция по согласованию условий и операция по отгрузке товара. А можно сказать: функция состоит из операций по согласованию условий и операций по отгрузке товаров. Это два разных утверждения.

Выбор последовательности элементов в типовой ячейке

Посмотрим на последовательность операций: АВАВАВАВ… Мы видим, что цепочка бесконечная и начинать выделение ячеек можно с любого места. Например, сначала птица Феникс родилась из пепла, затем она сгорела, затем родилась из пепла, затем сгорела. Или: сначала птица Феникс сгорела, затем родилась из пепла, затем снова сгорела. Ячейку можно начать в любом месте. Поэтому, чтобы иметь основания для начала, выбирают некоторое условие, которое выполняется для всех операций ячейки. Например, все операции относятся к одной сделке. Условия могут быть любыми, и в общем случае ячейка может начинаться с операции любого типа. Аналитики обычно этого не знают и, чтобы как-то оправдать выбор начальной операции в ячейке, гипнотизируют себя мыслями о том, что цепочка должна иметь мистическую цель. Вместо того, чтобы сказать, что операции в цепочке могут быть объединены в группу по какому-то (в общем случае произвольному) признаку, аналитики придумывают алхимические формулы. Более того, эта алхимия присутствует в определении процесса.

Смешанные конструкции

Вернемся к конструкции дерева и посмотрим на тезис: дерево состоит из ветвей, ствола и корней. Этот тезис говорит о том, что конструкция дерева состоит из объекта – ствола и объектов двух разных типов — ветвей и корней.

Пример псевдоконструкции

Рассмотрим частый случай, когда строится диаграмма в нотации IDEF0. Затем одна из функций на этой диаграмме, как часто говорят, «декомпозируется» на диаграмму в нотации BPMN. Это можно встретить в упомянутой мной ранее программе Businessstudio. Поскольку функция – это объект в предметной области, а диаграмма в нотации BPMN – это модель понятия, то мы видим, что происходит ошибка: функция делится на понятие. Этого быть не может. Функция может делиться на ячейки с операциями. В каждой ячейке несколько операций, связанных между собой темпоральными связями. Для всех ячеек вводится понятие ячейки подобного типа. Это понятие моделируется в нотации BPMN. Так будет правильно.

Корреляция конструкций в двух разных парадигмах

Часто встречающийся способ описания объекта выглядит так: рассмотрим конструкцию объекта в двух разных парадигмах, например в парадигме «внешнего» и «внутреннего» строения. Тогда мы пойдем делить объект на части двумя совершенно разными способами. Например, здание будем делить с одной стороны на помещения, а с другой — на технические подсистемы. И вот тут срабатывает очень важный фактор, который мы, как правило, не замечаем, но он работает на уровне интуиции. Мы делим объект на части в двух разных парадигмах таким способом, что между элементами конструкций в двух разных парадигмах тоже можно установить соответствие. Например, после деления здания на помещения и подсистемы мы можем сказать, что и помещения можно поделить на части — части тех подсистем, которые находятся в этих помещениях. То есть, деление на части в двух разных парадигмах интуитивно делается зависимым друг от друга образом. И это отнюдь не очевидно. Современные стандарты инженерного проектирования основаны именно на таком делении объекта, хотя, я уверен, что в них нет прописанного требования о подобном ограничении на моделирование.

Автор: Марк Мельник

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js