В этой статье разберем ArchiMate с самых основ. Сначала рассмотрим историю нотации: как она создавалась и что послужило причиной ее появления. Затем посмотрим, как базовые элементы ArchiMate формируются в сетку координат, где размещаются объекты. После теоретической части рассмотрим несколько примеров.
История нотации ArchiMate
История переносит нас в начало 2000-х годов, в Нидерланды, где группа организаций решила разобраться с проблемой, которая возникает, когда бизнес и IT не понимают друг друга.
Например, бизнес говорит: «Мы хотим увеличить продажи», а IT отвечает: «Сейчас сервак вам докинем, все будет ОК». Бизнес решительно не понимает, что это означает, а у IT недостаточно лексикона, чтобы донести это до бизнеса.
Для решения этой проблемы был создан исследовательский проект, который возглавил Telematica Instituut. Его участники начали исследовать вопрос и разрабатывать решение. В итоге родилась нотация ArchiMate, которую передали заказчикам. Они успешно ее протестировали и внедрили в работу – она действительно стала им помогать.
Затем пришел консорциум The Open Group, который решил купить ArchiMate, развивать и поддерживать его, чем занимается и по сей день.
Можно выделить две основные характеристики ArchiMate того времени.
Первая: ArchiMate рассматривается как инструмент, позволяющий увидеть бизнес в целом, со всеми взаимосвязями между его направлениями.
Вторая: ArchiMate не является заменой другим нотациям, а лишь дополняет их.
Слои и аспекты
База ArchiMate основана на слоях и аспектах.
Слои – это контекст, в рамках которого мы рассматриваем объекты. Поскольку ArchiMate – достаточно абстрактный язык с большим количеством объектов, причем одни и те же объекты используются на разных слоях, нам нужно понимать, на какой объект и в каком контексте мы смотрим.
Например, есть объект «функция», который используется и для приложения, и для технологий, то есть для железа, а также может использоваться на бизнес-уровне. Чтобы было понятно, что мы рассматриваем объект «функция» именно на бизнес-слое, применяется цветовая индикация.
Аспект – это дополнительная характеристика контекста. Существует три аспекта:
-
активный аспект отвечает на вопрос «кто делает?»;
-
поведенческий аспект отвечает на вопрос «что делает?»;
-
пассивный аспект отвечает на вопрос «с чем работает?».
Слои и аспекты формируют сетку координат, в которой мы условно размещаем объекты и рассматриваем их.
Full & Core Framework

Основная сетка собирается в Core Framework. Он состоит из трех слоев и трех аспектов. В него входят бизнес-слой, слой приложения и технологический слой. У каждого из них есть своя цветовая индикация. Также в Core Framework входят три аспекта, которые мы уже разобрали.
Core Framework подходит примерно для 80% задач. С его помощью можно описывать схемы и решать множество практических задач.

Full Framework – это профессиональный набор, который позволяет создавать более объемные модели. В нем добавляются слой стратегии, слой реализации и миграции, а также мотивация.
И здесь начинается немного неожиданной квантовой физики: мотивация является объектом в суперпозиции, потому что она не только аспект, но еще и слой.
Почему аспект? Потому что мотивация логично отвечает на вопрос: «Зачем нам это нужно?» Что побуждает нас совершить то или иное действие – например, начать проект, закупить дополнительное программное обеспечение или внести изменения в систему? Все это отображается в мотивации.
Почему слой? Каждый слой является отдельной условной экосистемой, которая может быть замкнута сама на себе. Необязательно создавать взаимосвязи между слоями. Схема, описанная на каком-то одном слое, может быть самостоятельной и не требовать дополнительных разъяснений. Кроме того, в мотивации есть много собственных объектов, с помощью которых можно все объяснить в рамках целой схемы.
Когда стоит применять ArchiMate
ArchiMate нужно и можно применять, когда требуется описать бизнес в целом: его процессы, приложения и железо, на котором эти приложения работают, – но сделать это верхнеуровнево, без углубления в детализацию.
Также ArchiMate подходит, когда нужно показать связи между направлениями бизнеса. Например, продемонстрировать, что сервер влияет на приложение, которым пользуется бизнес. Это позволяет дать дополнительную аргументацию: конкретный сервер действительно нужен, как и определенная функция приложения, потому что иначе приложение не сможет обслуживать потребности бизнеса.
Еще одна задача ArchiMate – помочь разным специалистам говорить на одном языке. Это достигается за счет того, что объекты, которые одинаково используются на разных слоях, одинаково понимаются. Связи между ними тоже используются одни и те же. Поэтому мы понимаем, о чем идет речь, даже если общаются бизнес-аналитик и системный аналитик.
ArchiMate не стоит применять, когда нужна глубокая детализация, требуется описать конкретные шаги или очень подробно представить процессы. Для этого лучше воспользоваться другими нотациями.
Также ArchiMate не нужен, если проект достаточно простой и локальный.
Разберем пример

Рассмотрим пример. Он достаточно простой, но в нем много объектов и связей между ними, чтобы можно было подробнее их разобрать, а затем использовать эти знания на практике.

Начнем с бизнес-слоя. Его цветовая индикация – желтая.
Первый объект – Business Actor, или бизнес-актор. Это конкретный человек, но под бизнес-актором также может пониматься целый отдел. В нашем случае указаны Иванов Иван и Петров Петр – конкретные люди, назначенные на роль продавца.
Связь назначения обозначает, что есть объект, назначенный на выполнение какого-либо действия. Поскольку продавец – это совокупность разных действий, здесь указывается связь назначения, например от Петрова Петра к продавцу.
Бизнес-роль – это должность. Также это может быть функция, выделенная из должности и выполняемая сотрудниками на разных должностях.
Продавец назначен на выполнение бизнес-процесса. Бизнес-процесс – это пошаговые действия, разворачивающиеся во времени.
Бизнес-процессы связаны между собой связью потока. Поток обозначает передачу каких-либо данных, информации, материалов или физических документов – вплоть до бумажного договора, который передается от одного сотрудника другому. Все это подразумевается под потоком.
Далее шаги бизнес-процесса переходят в бизнес-взаимодействие – «Передать информацию о доставке». Бизнес-взаимодействие обозначает точку соприкосновения двух объектов. Передача информации от продавца к кладовщику как раз является таким бизнес-взаимодействием.
Бизнес-взаимодействие, связанное с передачей заказа, обогащенного информацией о доставке, переходит в бизнес-событие «Поступление новой доставки».
Бизнес-событие – это короткое действие, происходящее за короткий промежуток времени и запускающее какой-либо бизнес-процесс. Стрелка, направленная от бизнес-события к бизнес-процессу, является триггером. Она обозначает, что событие запускает бизнес-процесс.
Оставшийся объект – бизнес-интерфейс, обозначенный почтой. Под бизнес-интерфейсом понимается любая точка доступа из внешнего мира к бизнесу. Заказ должен каким-то образом поступить. Это может быть почта, телефон или даже стойка продавца в магазине – она тоже будет являться бизнес-интерфейсом.
В данном случае используется связь ассоциации. Сам бизнес-интерфейс практически не влияет на другие объекты. Существует логическая связь: мы используем определенный бизнес-интерфейс, чтобы получить заказ, но другой связи между объектами нет.
Теперь рассмотрим взаимодействие и влияние нижних слоев на более верхние.
Здесь представлены две функции приложения: Оформление документа «Заказ» и Оформление документа «Доставка». Они связаны с бизнес-процессами связью реализации. Это означает, что без функции приложения бизнес-процесс невозможен.
Если по какой-то причине функция или само приложение перестает работать, бизнес-процесс тоже становится невозможен. Такая связь позволяет показать степень влияния приложения на бизнес.

Далее приложения представлены более подробно. Здесь появляются дополнительные функции, которые входят в состав упомянутых выше: подбор товара, контроль остатков и резервирование товара являются частью функции оформления документов.
Между ними указана связь агрегации, потому что эти функции могут существовать отдельно от функции оформления документа. Мы можем вынести их вовне, и они не перестанут взаимодействовать друг с другом, но при этом будут существовать отдельно. Это и есть связь агрегации.
Также здесь присутствует объект данных – Регистр «Остатки». Объект данных – это сырые, необработанные данные. Он относится к пассивным аспектам, о которых говорилось ранее.
Регистр взаимодействует с функциями контроля остатков и резервирования товара. Здесь используется связь доступа, которая показывает, что доступно той или иной функции относительно регистра. Контроль остатков может прочитать данные из регистра, а резервирование товара – прочитать и записать данные непосредственно в регистр.
Модуль «Продажи» назначен на функцию оформления документа «Заказ». Это как раз та универсализация, о которой говорилось ранее: объект назначен на выполнение какого-то действия. В данном случае модуль «Продажи» назначен на выполнение функции. Таким образом мы начинаем говорить с бизнесом на одном языке.
Модуль продаж является объектом «компонент». Компонент – это часть целого приложения, но под компонентом может пониматься и приложение целиком.
Модуль продаж связан с системой продаж. Система продаж – это полноценная система, которая состоит из модуля продаж. Кроме него, в нее могут входить другие модули, например модуль финансов.
Система и модуль связаны композитной связью. Она обозначает, что два объекта связаны неразрывно: если система продаж не существует, то и модуля продаж тоже нет.
Можно привести более бытовой пример: дверь состоит из полотна и ручки. Если двери нет, то и ручки как ее части тоже нет.
Аналогичная связь существует между приложением и платформой. Это две составляющие системы продаж, без которых сама система невозможна.
Здесь же появляется связь с технологическим слоем, который является самым базовым. Приложение должно быть на что-то установлено – в данном случае на серверы. Серверы реализуют возможность использования приложения и его работы.
Таким образом, через три слоя можно показать: если один из серверов выходит из строя, приложение перестает работать, а вслед за ним становится невозможен бизнес-процесс и отдельные шаги этого процесса.
Рассмотрим технологический слой подробнее.

Сервер – это объект «узел», представляющий собой вычислительную технику. Это может быть сервер, персональный компьютер или даже кассовый аппарат.
На серверы назначены объекты программного обеспечения: операционная система и базы данных. Программное обеспечение запускается на серверах. Сервер, в свою очередь, назначен на запуск этого программного обеспечения, чтобы затем могло работать приложение.
Также здесь есть назначение на функцию хранения данных. Сервер может понадобиться нам для того, чтобы хранить данные и затем ими пользоваться.
Как и на слое приложения и бизнес-слое, здесь присутствует объект, назначенный на выполнение действия. Это еще один показательный пример того, как ArchiMate помогает универсализировать язык и говорить со всеми специалистами на одном языке.
Чтобы функция хранения данных была возможна, нужен сервис, который будет ее обслуживать. В данном случае сетевое соединение является этим сервисом: оно позволяет создать и использовать функцию хранения данных.
Чтобы сервис был возможен, необходимо физически создать коммуникационную сеть между серверами, по которой будут проходить данные. Локальная сеть реализует возможность использования сервиса «Сетевое соединение».
Также серверы посредством резервного копирования передают данные на резервные серверы, которые находятся в ЦОД. Потоки данных объединяются с помощью юнкции «И» в один поток, а затем распределяются с помощью юнкции «ИЛИ».
Расположение «ЦОД, Москва» – это композитный элемент, который можно использовать на любом слое в любой момент, когда требуется отобразить какое-либо местоположение.

Так выглядит схема при использовании Full Framework, когда задействованы все возможные слои и большое количество доступных объектов.
Это готовый пример из интернета. Его можно найти самостоятельно и подробно разобрать. Чтобы сделать такой разбор было проще, к статье приложен файл, в котором описаны все объекты нотации с определениями, а также все связи, используемые для соединения этих объектов.
*************
Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART TEAM EVENT.
Вступайте в нашу телеграмм-группу Инфостарт

