Метамоделирование

Сущность метамоделирования

Метамоделирование - создание и изменение шаблона, с помощью которого будет создаваться модель [реальности]. Более сложными словами -  выбор языка (DSL - Domain Specific Language), с помощью которого мы будем моделировать выбранный фрагмент реальности. Такой язык или такой шаблон в ИТ-индустрии часто называют "онтология" или метамодель. Почему это называют онтологией? Потому что метамодель - это совокупность взаимосвязанных классов, а каждый класс - это цифровая спецификация - способ описания понятия, за которым стоит определенный класс (набор) объектов реальности и их связи друг с другом.

Для создания шаблона моделирования СиММА обладает встроенным конструктуром мета-модели. Внешне это выглядит как создание схемы мета-данных, согласно которой будут заноситься собственно [модельные] данные.

В знаковой форме шаблон метамодели выглядит как диаграмма классов UML.

Поясним на примерах, что есть модель и мета-модель. Для начала приведем два фрагмента реальности:

Реальность, фрагмент №1: сотрудик склада Белкин Сергей на основании ведомости отгрузки товаров №34 раздает упаковки с товарами курьерам для доставки заказанных товаров клиентам.

Реальность, фрагмент №2: В ЦОДе компании "ABC" установлено 3 стойки с оборудованием компании ASUS, на которых развернуто программное обеспечение "HR-Кадры+" на базе PostgreSQL, где учтены все курьеры компании и выполненные ими заказы.

На словах более-менее понятно. И слова - это уже один из примеров на тему, как может выглядеть модель реальности. Но слова - это самые неточные модели, особенно слова сумбурного непоследовательного рассказа. Поэтому хочется прибегнуть к более строгому языку описания. Где взять такой язык, что он может вообще представлять? Метамодель как раз и является таким языком.

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

метамодель для описания реальности в виде линейки 

Попробуйте, используя данную линейку, описать два приведенных выше примера реальности. Ваши описания будут моделями, а линейка - метамоделью. Есть и другие линейки, например линейка для описания алгоритмов. Сегодня такую уже не найти, но можно найти ее эквивалент в виде нотации flowchart.

В цифровом мире дела обстоят не сильно сложнее, чем "создать платье по готовой выкройке". Создать платье по выкройке может каждая швея. Однако в мире ИТ и бизнеса только каждый 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.

Остались вопросы?
Оставьте свои данные и мы свяжемся с Вами в ближайшее время

Контакты

Адрес офиса:
105082, г. Москва, Спартаковский пер., 2, стр. 1, БЦ "Платформа"
Эл. почта:
Заказать звонок