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

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

Метамоделирование - создание и изменение шаблона, с помощью которого будет создаваться модель [реальности]. Более сложными словами -  выбор языка (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-х и более множеств при наличии у них межклассовой связи Множество (слой) 
    Мульти-граф Часть множества при наличии более одной метасвязи может образовывать Мульти-граф Часть множества
    Однодольный граф Часть множества при наличии одной метасвязи может образовывать Однодольный граф Множество (слой) 


Модель есть отражение реальности согласно структуре и смыслам, заданным в Метамодели
  Модель Модель состоит из Элементов Элемент модели
  Модель Модель содается по структуре, заданной метамоделью Метамодель
    Элемент модели Элемент порождается от Класса Класс (прототип элемента)
    Элемент модели Элементы одного класса образуют Каталог Каталог
    Каталог Каталог есть репрезентация Множества (слоя)  Множество (слой) 


Пользователи моделей (получающие пользу)
  Компания (бизнес) Компания участвует в принятии решения о моделировании на Арх.комитете Архитектурый комитет
  Компания (бизнес) Компания понимает Метамодель Метамодель
  Компания (бизнес) Компания/Бизнес репрезентируется и познается через Модель Модель
  Архитектор Архитектор вводит Элементы модели Элемент модели
  Аналитик Аналитик вводит Элементы модели Элемент модели


Нотация - частный случай метамодели, задающий также и графический способ репрезентации модельных данных
  Нотация У нотации есть Метамодель нотации Метамодель нотации
  Нотация У нотации есть ее Графическое выражение
(визуальные шаблоны или стенсилы нотации)
Графическое выражение нотации
  Метамодель нотации Метамодель нотации есть часть общей Метамодели Метамодель
  Метамодель нотации Метамодель нотации отражает Язык Язык описания (мета-язык)
  Схема Схема может быть составлена с учетом одной и более Нотаций Нотация
  Схема Схема состоит из Графинов Графин на схеме
(графический инстанс элемента) 
    Графин на схеме
    (графический инстанс элемента) 
Графин - Графическая репрезентация элемента модели на Схеме Элемент модели [на схеме]
    Стенсил графина Стенсил определяет графический вид Графина Графин (графический инстанс элемента)
    Стенсил графина Стенсил может быть частью Нотации Графическое выражение нотации

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

Контакты

Адрес офиса:
105082, г. Москва, Спартаковский пер., 2, стр. 1, БЦ "Платформа"
Эл. почта:
Заказать звонок
×
Я согласен на обработку персональных данных и анализ пользовательской активности с помощью сервиса «Яндекс Метрика». Продолжая использовать сайт, вы соглашаетесь с нашей политикой использования cookie.

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах
Принять
Настроить
Отклонить