Бизнес-Моделирование
ПО для моделирования архитектуры систем, процессов, данных, интеграций
Метамоделирование
Сущность метамоделирования
Метамоделирование - создание и изменение шаблона, с помощью которого будет создаваться модель [реальности]. Более сложными словами - выбор языка (DSL - Domain Specific Language), с помощью которого мы будем моделировать выбранный фрагмент реальности. Такой язык или такой шаблон в ИТ-индустрии часто называют "онтология" или метамодель. Почему это называют онтологией? Потому что метамодель - это совокупность взаимосвязанных классов, а каждый класс - это цифровая спецификация - способ описания понятия, за которым стоит определенный набор объектов реальности и их связи друг с другом. Таким образом каждый класс - это одна онтологическая единица.
Для создания шаблона моделирования СиММА обладает встроенным конструктуром мета-модели. Внешне это выглядит как создание схемы мета-данных, согласно которой будут заноситься собственно [модельные] данные. Пример метамодели для проактивного обеспечения кибербезопасности см. по ссылке >>>
Строго говоря, в СиММА (или любом другом программном продукте класса Enterprise Architect) мы создаем не онтологии, а онтики - перечисление объектов внимания для описания какой-то предметной области.
В знаковой форме шаблон метамодели выглядит как диаграмма классов UML - см рисунок.
На основании одной мета-модели можно построить множество моделей. Точно также СУБД с одной и той же схемой данных можно развернуть на различных предприятиях для решения [например] учетных задач каждого конкретного предприятия. Учитываемые товары и услуги на каждом предприятии будут разными, но состав учитываемых атрибутов и взаимосвязей будет одинаковым.
Популярно о метамоделировании.
В популярной литературе, к сожалению, не разъясняется понятие метамодели, как чуждое российскому научному дискурсу. Но в целом российские инженеры и конструкторы прекрасно понимают, о чем здесь речь. Поясним на примерах, что есть модель и мета-модель. В обычной жизни весьма много примеров, где метамодели существуют и успешно используются. Вот простейший пример: линейка-трафарет.
Пример мета-модели в виде трафаретной линейки.
С помощью такой линейки офицер может описать (нанести на карту) расположение войск и направление их действия. Схема войск на карте будет моделью. А линейка - метамоделью. Так как все офицеры пользуются одними и теми же линейками, то они легко понимают схемы друг друга. Здесь очевидно, что мета-модель зачастую предназначена для построения моделей определенной тематической направленности (или иными словами для построения моделей определенного типа явлений реальности). В случае с офицерской линейкой такой темой, таким типом реальности будут боевые действия или учения.
Возьмем в качестве второго примера два фрагмента бизнес-реальности:
Реальность, фрагмент №1: сотрудник склада Белкин Сергей на основании ведомости отгрузки товаров №34 раздает упаковки с товарами курьерам для доставки заказанных товаров клиентам.
Реальность, фрагмент №2: В ЦОДе компании "ABC" установлено 3 стойки с оборудованием компании ASUS, на которых развернуто программное обеспечение "HR-Кадры+" на базе PostgreSQL, где учтены все курьеры компании и выполненные ими заказы.
На словах более-менее понятно. И слова - это уже один из примеров на тему, как может выглядеть модель реальности. Но слова - это самые неточные модели, особенно слова сумбурного непоследовательного рассказа. Поэтому хочется прибегнуть к более строгому шаблону описания. Где взять такой шаблон, что он может вообще представлять? Метамодель как раз и является таким шаблоном.
Для описания фрагмента реальности №1 можно использовать линейку (набор лекал) для описания алгоритмов. Сегодня такую уже не найти, но можно найти ее эквивалент в виде нотации flowchart. Или взять в качестве шаблона более современную нотацию - BPMN. Для описания фрагмента реальности №2 стоит использовать шаблоны, основанные на нотации Archimate.
Таким образом мы видим, что существует проблема выбора нужной метамодели (нужного шаблона или линейки) под определенные ситуации или классы задач, наблюдаемые в реальности. Проблема становится в разы сложнее, если:
- если требуется не описать реальность, а спроектировать ее;
- если нет подходящего шаблона и нужно придумать сам шаблон.
Создать платье по готовой выкройке может каждая швея и даже домохозяйка. Но создание выкройки на порядок сложнее. Согласитесь, что знание на тему, что такое шлиц, ластовица, кокетка, баска и борт не позволяет любому человеку (и даже любой швее) создать выкройку. Создать выкройку или придумать нотацию крайне сложно. Здесь нет инструкций, здесь надо погружаться в моду, дизайн, онтологию, философию, традиции, научное рассуждение.
В цифровом мире дела обстоят сильно сложнее, чем "создать платье по готовой выкройке". Если создать платье по выкройке может каждая швея, то в в мире ИТ и бизнеса только каждый 5-й аналитик может с использованием BPMN-шаблона описать процесс. Почему только каждый 5-й? Потому что линейка (или там нотация) не дает готовый шаблон процесса, а лишь набор абстрактных компонентов (можно сказать - лекал) для описания процесса: задача, событие, объект данных, сообщение, участник, шлюз. То есть нотация предоставляет конструктору процесса неограниченную степень свободы. В этом ее сила, в этом же и ее слабость.
Метамоделирование в СиММА
Однако вернемся в мир цифровых двойников и основ их конструирования.
Метамодель (ММ) в СиММА создаётся из компонентов трех типов: классы, мета-атрибуты классов, мета-связи классов. Комбинация (композиция) этих компонентов за счет подбора нужных классов, мета-связей и мета-атрибутов обеспечивает решение любых модельных задач. Наиболее частно в качестве ММ выбирают готовые наборы классов известные как нотации широкого спектра применения: Архимейт, ARIS, семейство IDEFx. Но для узких задач, как например, моделирование процессов или данных, выбирают BPMN, ERD, UML. Базовые типы ММ - класс, мета-связь, мета-атрибут - это мета-мета-модель, соответствующая базовым понятиям языка OWL или MOF (М3 и M2).
Модель (MOF M1), построенная на базе ММ, образует совокупность триплетов (см. OWL), эти триплеты вы можете "скармливать" на вход GPT-движку для формирования нужного вам контекста (см. встраивание векторов или embedding). Или триплеты подают на вход "машины логического вывода". Пока это еще не очень востребовано в наблюдаемом нами сегменте российского рынка, но один из 10 клиентов, как правило, этой темой уже интересуется. К концу 2023 года нами проведены испытания на базе таких LLM, как LLaMA и GigaChat Сбербанка, см. на эту тему заметку в разделе НОВОСТИ.
Особенности метамоделей СиММА:
- Возможность менять ММ "на лету", то есть изменение метамоделей в СиММА не влияет на схему данных СиММА. Таким образом: добавление или удаление мета-атрибутов, добавление-удаление классов, добавление-удаление мета-связей - может выполняться параллельно со штатной работой пользователей со своими модельными данными
- Автоматическое построение диаграммы метамодели (ММ)
- Поддержка связей, позволяющих создавать графы типа дерево, лес, сеть, конечный автомат. Указанные типы связей лежат в основе иерархий, агрегаций, композиций, потоковых процессных диаграмм и схем сетевого типа
- Копирование ММ для создания на её базе новых моделей
- Перенос/копирование каталогов между моделями вместе с их метаданными
- Опция (по запросу): возможна поддержка отката к предыдущей метамодели без потери данных.
СиММА (Система Многослойного Моделирования Архитектуры) в первую очередь поддерживает цифровую онтологию предметной области или ее концептуальную модель в стиле DDD. От построения онтологии к учету информации и ее взаимосвязей переход осуществляется мгновенно и бесшовно.
Направления развития СиММА в области метамоделирования:
- копирование фрагментов ММ между моделями
- слияние мета-моделей
- создание формализованных межмодельных связей: мета-связи между классами различных моделей
- расширение возможностей мета-моделирования в сторону более полной поддержки языка OWL.
Возможности настройки ММ в СиММА, а также возможности репозитория СиММА по управлению моделями, позволяют отнести СиММА к системам класса Smart-Инвентори и NoCode DataBase.
Метамоделирование - это суть философия
Мета-моделирование не является тривиальным процессом. Если есть время поломать мозг - можно обратиться к ЛФТ Витгенштейна. Прокачивает. Для понимания подхода, заложенного в СиММА, следует рассмотреть картинку ниже.

Подробные разъяснения по слайду, приведенному выше, даются в ходе обучения партнеров СиММА, а также в ходе тренингов "Марк Аврелий" по теме моделирования данных.
Подражая Витгенштейну
Основываясь на способе подачи материала в стиле ЛФТ Витгеншейна, можно изложить сущность архитектурного подхода (ОНТОЛОГИЮ КОРПОРАТИВНОГО МОДЕЛИРОВАНИЯ) следующим набором высказываний и иллюстрирующим эти высказывания схемой:

Детальная таблица высказываний, отраженных на схеме
(примечание: схема и таблица построены по данным СиММА)
Концепт | Связь концептов (предикат) | Связанный концепт |
|---|---|---|
Язык есть отражение наших представлений о реальности |
||
| Философия | Философия развивает способности к построению Онтологий | Онтология |
| Концепт | Концепт является частью Онтологии | Онтология |
| Концепт | Концепт отражает сущность или определение Множества | Множество (слой) |
| Язык описания (мета-язык) | Язык является подвидом Онтологии | Онтология |
| Архимейт | Архимейт является видом Мета-языка | Язык описания (мета-язык) |
| BizBok | Bozbok является видом Мета-языка | Язык описания (мета-язык) |
| C4 | C4 является видом Мета-языка | Язык описания (мета-язык) |
| IDEFx | IDEFx является видом Мета-языка | Язык описания (мета-язык) |
| UML | UML является видом Мета-языка | Язык описания (мета-язык) |
| BPMN 2.0 | BPMN 2.0 является видом Мета-языка | Язык описания (мета-язык) |
| BPMN 2.0 | BPMN 2.0 имеет аналическое подмножество | BPMN аналитический |
| BPMN 2.0 | BPMN 2.0 имеет описательное подмножество | BPMN описательный |
| BPMN 2.0 | BPMN 2.0 имеет исполняемое подмножество | BPMN Исполняемый |
| BPMN исполняемый | BPMN исполняемый отражает BPEL | BPEL |
| BPEL | BPEL является видом мета-языком | Язык описания (мета-язык) |
Пользователи языка |
||
| Архитектурный комитет | Арх.комитет выбирает или определяет Онтологию | Онтология |
| Архитектор | Архитектор входит в Архитектурный комитет | Архитектурный комитет |
| Архитектор | Архитектор настраивает Метамодель | Метамодель |
Метамодель задает синтаксис и семантику в рамках выбранного языка |
||
| Метамодель | Метамодель задает структуру Модели | Модель |
| Метамодель | Метамодель включает в себя Метамодель нотации | Метамодель нотации |
| Метамодель | Метамодель состоит из Классов | Класс (прототип элемента) |
| Класс (прототип элемента) | Класс является способом задать Множество | Множество (слой) |
| Множество (слой) | Множество и связи его элементов могут быть представлены в виде Графа | Граф |
| Внутриклассовая связь (мета-связь) | Метасвязь задает отношения внутри Класса | Класс (прототип элемента) |
| Внутриклассовая связь (мета-связь) | Внутриклассовая связь определяет отношения внутри Множества | Множество (слой) |
| Межклассовая связь (мета-связь) | Метасвязь задает отношения между Классами | Класс (прототип элемента) |
| К-дольный граф | К-дольный граф строится на базе 2-х и более множеств при наличии у них межклассовой связи | Множество (слой) |
| Мульти-граф | Часть множества при наличии более одной метасвязи может образовывать Мульти-граф | Часть множества |
| Однодольный граф | Часть множества при наличии одной метасвязи может образовывать Однодольный граф | Множество (слой) |
Модель есть отражение реальности согласно структуре и смыслам, заданным в Метамодели |
||
| Модель | Модель состоит из Элементов | Элемент модели |
| Модель | Модель содается по структуре, заданной метамоделью | Метамодель |
| Элемент модели | Элемент порождается от Класса | Класс (прототип элемента) |
| Элемент модели | Элементы одного класса образуют Каталог | Каталог |
| Каталог | Каталог есть репрезентация Множества (слоя) | Множество (слой) |
Пользователи моделей (получающие пользу) |
||
| Компания (бизнес) | Компания участвует в принятии решения о моделировании на Арх.комитете | Архитектурый комитет |
| Компания (бизнес) | Компания понимает Метамодель | Метамодель |
| Компания (бизнес) | Компания/Бизнес репрезентируется и познается через Модель | Модель |
| Архитектор | Архитектор вводит Элементы модели | Элемент модели |
| Аналитик | Аналитик вводит Элементы модели | Элемент модели |
Нотация - частный случай метамодели, задающий также и графический способ репрезентации модельных данных |
||
| Нотация | У нотации есть Метамодель нотации | Метамодель нотации |
| Нотация | У нотации есть ее Графическое выражение (визуальные шаблоны или стенсилы нотации) |
Графическое выражение нотации |
| Метамодель нотации | Метамодель нотации есть часть общей Метамодели | Метамодель |
| Метамодель нотации | Метамодель нотации отражает Язык | Язык описания (мета-язык) |
| Схема | Схема может быть составлена с учетом одной и более Нотаций | Нотация |
| Схема | Схема состоит из Графинов | Графин на схеме (графический инстанс элемента) |
| Графин на схеме (графический инстанс элемента) |
Графин - Графическая репрезентация элемента модели на Схеме | Элемент модели [на схеме] |
| Стенсил графина | Стенсил определяет графический вид Графина | Графин (графический инстанс элемента) |
| Стенсил графина | Стенсил может быть частью Нотации | Графическое выражение нотации |
