Бизнес-Моделирование
Разработка ПО для моделирования систем, процессов, данных, интеграций
Метамоделирование
Сущность метамоделирования
Метамоделирование - создание и изменение шаблона, с помощью которого будет создаваться модель [реальности]. Более сложными словами - выбор языка (DSL - Domain Specific Language), с помощью которого мы будем моделировать выбранный фрагмент реальности. Такой язык или такой шаблон в ИТ-индустрии часто называют "онтология" или метамодель. Почему это называют онтологией? Потому что метамодель - это совокупность взаимосвязанных классов, а каждый класс - это цифровая спецификация - способ описания понятия, за которым стоит определенный набор объектов реальности и их связи друг с другом.
Для создания шаблона моделирования СиММА обладает встроенным конструктуром мета-модели. Внешне это выглядит как создание схемы мета-данных, согласно которой будут заноситься собственно [модельные] данные. Пример метамодели для проактивного обеспечения кибербезопасности см. по ссылке >>>
В знаковой форме шаблон метамодели выглядит как диаграмма классов 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.
Метамоделирование - это суть философия
Мета-моделирование не является тривиальным процессом. Если есть время поломать мозг - можно обратиться к ЛФТ Витгенштейна. Прокачивает. Для понимания подхода, заложенного в СиММА, следует рассмотреть картинку ниже.
Подробные разъяснения по слайду, приведенному выше, даются в ходе обучения партнеров СиММА, а также в ходе тренингов "Марк Аврелий" по теме моделирования данных.