Статьи

Как легко создавать генераторы кода для проекта для Enterprise Architect

Вы когда-нибудь хотели сгенерировать код из моделей UML или SysML вашего корпоративного архитектора? Вы пытались настроить структуру шаблона кода корпоративного архитектора? Не отказывайтесь от мечты о конкретных генераторах кода и читайте, как легко они могут быть реализованы.

Необходимость в генераторе кода

Хорошая архитектура программного обеспечения или системы находится на более высоком уровне абстракции по сравнению с реализацией. Это должна быть последовательная модель, которая документирует решения и игнорирует ненужные, часто технические детали. Рассмотрим, например, диаграмму классов на рисунке 1. Она показывает модель домена, которая определяет структуру данных, необходимую для магазина, чтобы позволить клиентам заказывать товары. Свойства каждого класса смоделированы подробно, но другие ненужные аспекты, такие как операции доступа к свойствам, не учитываются.

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

Шаблон рамка кода Enterprise Architect может быть адаптирована в соответствии с проектом специфических потребностей. Но это требует некоторой начальной подготовки. И часто трудно достичь ожидаемого результата, как описано в разделе Создание кода на основе Eclipse для моделей Enterprise Architect .

Простой проектный генератор кода

Я предпочитаю язык программирования общего назначения, такой как Java или Xtend, для реализации генераторов кода. В частности, Xtend хорошо подходит для реализации шаблонов благодаря своим шаблонным выражениям . Они позволяют встраивать исполняемый код в текст, который будет сгенерирован. Это похоже на программирование на PHP , JSP или JSX . Код в листинге 1 показывает шаблон генерации кода, написанный на Xtend. Он генерирует Java-классы для классов, объявленных на диаграмме классов на рисунке 1.


Джава