Моделирований онтик в ArchiMate 3
Моделирование — это представление знания в переносимых конструкциях. Существенная часть знания о мире — это не только обобщения. Это понимание текущего конкретного положения дел, карта конкретного мира: вчера, сегодня, завтра, в возможном, невозможном и запрещённом завтра. А «конкретное положение дел» — это конкретные объекты и их группы — онтики, отмаркированные модальностями. Простые модальности я указал выше, но это только половина дела.
И здесь мы сразу видим как минимум две большие дыры в подходе Архимейта: моделирование объектов и моделирование модальностей. Пройду по первому, тут попроще. С модальностями вообще больно, никто работать не умеет.
*
Стандарт явно отказывается от поддержки моделирования онтик: «The ArchiMate language intentionally does not support a difference between types and instances. At the Enterprise Architecture abstraction level, it is more common to model types and/or exemplars rather than instances.» (Archimate 3.0.1 Specification, 3.6) Я могу вникнуть логику создателей стандарта, но она представляется мне ограничивающей. Мне нужны онтические объекты.
Я не говорю про «экземпляры» (instances), чтобы избежать аллюзий с ООД, где моделирование начинается с типов и классов, которые потом инстацируются. В Архимейте есть несколько Objects (Business O., Data O., Technology O.), но это имя не для онтик, а для классов «пассивных структур».
В моей практике, при разборе проблемной ситуации, экспликация картины мира некоторой рабочей группы в виде карты конкретных объектов — это как раз начало, которое задаёт основание для понимания мира и взаимопонимания между моделером и владельцем проблемы. Моделирование онтик, понимание границы между онтикой и онтологией и осторожные движения между ними — это очень важно. Тут масса путаницы рождается.
Если сразу начинать с обобщений, люди начинают засыпать и путаться — не видят близкой конкретики. Модель и так не всегда то, что кто-то может понять. Классификаторы я держу при себе, на данном этапе — они существуют не как часть модели на столе, а как инструментальные powertypes/метаклассы у меня в голове. Обобщение в рамках модели начинается позже, если вообще нужно продвигаться в эту сторону.
Архимейт создан для Enterprise Architects, архитекторов предприятий. Они слишком высоки для конкретики? Таки это мешает, ЕВПОЧЯ.
Archi 4 не даёт вариантов обхода этой проблемы. Поэтому я для рисования пользуюсь Sparx Enterprise Architect, там UML-ное наследство позволяет орудовать с конструктами из Archimate-профайла с нарушением стандарта, и это хорошо. Там среди powertypes есть и онтические и онтологические классификаторы, и есть поддержка моделирования с ними.
И на этой механике можно реализовать несколько полезных сценариев моделирования.
На рисунке: кусочек модельки с отмоделированной энумерацией: переменная Inclusiveness из некоего бизнес-объекта и её возможные значение в виде взаимоисключающих именованных экземпляров. Потом каждый экземпляр, например, маркирует ветки в бизнес-процессе.