Platform V Architect v1.8 (SberTech)

Редактор кода (IDE)

Редактор кода предоставляет расширенные возможности по редактированию модели и метамодели за счет применения ART DSL языка. Весь синтаксис ART DSL доступен в официальной документации Platform V Architect по ссылке. В рамках текущего раздела мы изучим лишь функции IDE.

Любой код, который открывается в IDE проходит через компилятор Platform V Architect и визуализируется на сцене.

Редактор кода поддерживает редактирование и отображение текстовых файлов с расширением ART, TXT, JSON, Markdown. Файлы ART, JSON и Markdown пропускаются через компилятор и визуализируются на сцене.

Настройки редактора кода (IDE)

Для изменения настроек редактора кода щелкните ЛКМ 1) на иконке с шестеренкой в виджете Редактор кода. Откроется меню настроек. Вы можете изменить 2) шрифты, 3) добавить отображение иконок объектов в редакторе, которые позволяют лучше ориентироваться в коде. В случае, если вы хотите вернуться к исходных настройкам, то нажмите кнопку 4) Сбросить настройки.


🚩 Измените размер шрифта в редакторе кода с 16 на 14.

На анимированном скриншоте показан процесс изменения шрифта в настройках редактора кода.


Подсветка ошибок кода компилятором

Если вы проектируете архитектуру с использованием редактора, то полезно понимать, когда в код закрадываются какие-то ошибки. Компилятор использует для проверки работы встроенные спецификации или разработанную пользователем метамодель. Компилятор не допускает визуализации, если в коде содержится ошибка спецификации (нотации) или метамодели.

🚩 Внесите изменения в код файла archimate.art, чтобы увидеть ошибку.

Откройте файл archimate.art, перетащите на сцену объект Actor, измените в редакторе кода в слове name любую букву на цифру, например, 1.

✘ [ERROR] (DSL_TYPE_ERROR_008): Атрибут name1 не определен в объекте типа archimate.BusinessActor

    test01/simple_view/Simple_View.art:80:2:
      80 |   name1: "BusinessActor"
         ╵   ~~~~~~~~~~~~~~~~~~~~~~

Компилятор покажет ошибку, сообщив, что в спецификации archimate для объекта типа BusinessActor не определен такой атрибут как name1.

🚩 Исправьте ошибку в коде файла archimate.art, чтобы снова увидеть визуализацию на сцене.

Верните значение слова name1 в исходное состояние name. Ошибка исчезнет, а на сцене появится объект.

На анимированном скриншоте показан процесс подсветки изменений данных в редакторе когда.


Подсветка изменений и синтаксиса

Для удобства работы с кодом в редакторе предусмотрена подсветка изменений вносимых через сцену. В момент, когда вы меняете, например, название объекта, тогда редактор подсвечивает это изменение в течение 5 секунд.

🚩 Проверьте функцию подсветки изменений в редакторе кода.

На анимированном скриншоте показан процесс подсветки изменений данных в редакторе когда.


Если вы набираете код вручную в редакторе, то он позволяет показывать доступные элементы на основании метамодели.

🚩 Проверьте функционал автозавершения в редакторе кода.

На анимированном скриншоте показан процесс автоматического заполнения названий объектов из метамодели и внесения значения атрибута через сцену с последующим появлением в коде.


Добавление комментариев в код

Комментарии в коде ART DSL начинаются с двух косых черт //. Весь кода за двумя косыми чертами игнорируется компилятором, но будет сохраняться в коде файла.

// это комментарий кода ART DSL

Одна директория - один файл ART DSL

При открытии файла компилятор считывает всю директорию и воспринимает ее как единый пакет. Если в директории (другими словами в пакете) будут находиться 2 и более файлов с расширением ART, то компилятор считает оба файла одновременно и визуализирует их на сцене.

⚠️ Избегайте наличия двух файлов с расширением ART в одной директории.

Понятия проект и пакет

Проект это вся корневая директория из репозитория.

Пакет это отдельная директория, в которой содержится необходимая информация в виде файла с расширением ART.

В настоящий момент, если посмотреть в приложение, то у нас уровенем проекта является директория test01, а в проекте присутствуют два пакета: 1). simple_view 2). test. Как на скриншоте ниже.


Импорт данных из одного пакета в другой

Импорт метамодели или спецификации

В рамках одного проекта вы можете иметь несколько пакетов в разных поддиректориях и импортировать пакеты между собой.

🚩 Создайте два пакета в проекте и выполните импорт пакета 1 в пакет 2.

Мы не добавляли в файле packet02.art код импорта спецификации, она была импортирована из файла packet01.art. Таким образом может быть импортирована любая метамодель, а не только встроенная спецификация.

⚠️ В строке импорта test01 это название корневой директории проекта. Она у вас может отличаться, если вы изменили название проекта ранее. Для импорта пакета всегда необходимо указывать абсолютный путь до директории импортируемого пакета в проекте.

На анимированном скриншоте показан процесс импорта спецификации BPMN из пакета 1 в пакет 2.


Импорт готовых объектов или модели

Помимо всей спецификации можно импортировать и затем использовать все объекты, разработанной ранее модели.

Существует два метода импорта:

  1. Копирование всех объектов как указателей через символ *.

🚩 Проверьте функционал копирования объектов схем

bpmn.StartEvent StartEvent1 {
  name: "StartEvent",
}

bpmn.UserTask UserTask1 {
  name: "UserTask",
}

bpmn.EndEvent EndEvent1 {
  name: "EndEvent",
}

bpmn.SequenceFlow SequenceFlow1 {
  from: StartEvent1,
  to: UserTask1,
}

bpmn.SequenceFlow SequenceFlow2 {
  from: UserTask1,
  to: EndEvent1,
}

⚠️ ВАЖНО. Сейчас нет задачи разместить все красиво и придать смысловые значения схеме, наша задача освоить инструмент импортирования и копирования.

На анимированном скриншоте показан процесс импорта схемы процесса BPMN из пакета 1 в пакет 2 с переносом объектов в виде указателей.


⚠️ ВАЖНО. При использовании указателей важно помнить, что изменение/удаление указателя изменяет/удаляет родительский объект.

  1. Создание новых объектов с копированием свойств из схемы через оператор <-
import "test01/packet01"
import "spec:bpmn"

bpmn.StartEvent Event1 <- packet01.StartEvent1 {

}

⚠️ ВАЖНО. При использовании оператора копирования мы создаем новый объект с копированием атриубутов из другого объекта, эти атрибуты можно изменить через функцию override, так же можно добавлять новые атрибуты. В отличии от примера с указателями, если мы удалим копию, то с родительским объектом ничего не произойдет, однако если мы удалим родительский объект, то компилятор выдаст ошибку, так как не сможет найти исходные атрибуты для копирования. Если не использовать override, то при обновлении атрибутов в родительском объекте, все атрибуты в копиях также будут обновляться.

На анимированном скриншоте показан процесс создания нового объекта с копированием атриубутов через оператор <- и использование функции override.


Синтаксис ART DSL

Если вы планируете активно применять встроенный функционал языка ART DSL или хотите разобраться в его возможностях, то рекомендуется изучить раздел документации посвященный синтаксису ART DSL.


    Главная    |    Назад    |    Вперед