Acceleo - Acceleo

Acceleo
Логотип Acceleo
Разработчики)Фонд Затмения
Стабильный выпуск
3.7.8 / 20 марта 2019 г.; 20 месяцев назад (2019-03-20)[1]
Репозиторий Отредактируйте это в Викиданных
Написано вЯва
ПлатформаLinux, Mac OS X, Майкрософт Виндоус
ТипГенератор кода
ЛицензияОбщественная лицензия Eclipse
Интернет сайтhttp://www.eclipse.org/acceleo

Acceleo это генератор кода с открытым исходным кодом из Фонд Затмения что позволяет людям использовать управляемый моделью подход к созданию приложений. Это реализация "MOFM2T "стандарт, от Группа управления объектами (OMG) для преобразования модели в текст.

История и развитие

Ранние версии

Проект Acceleo родился в 2006 году с веб-сайтом Acceleo.org. Acceleo 1.0 был под лицензией GNU Public License (GPL), и он был совместим с Eclipse 3.0, 3.1 и несколькими разработчиками моделей на основе ЭДС и UML 1.2. Несколько недель спустя Acceleo 1.1[2] принесла совместимость с Eclipse 3.2 и UML 1.3. Acceleo изменила свою лицензию с выпуском Acceleo 1.2, чтобы принять общественную лицензию Eclipse (EPL), используемую проектами Eclipse Foundation. Acceleo 2[3] был доступен 5 июня 2007 г. после запуска веб-сайта planet.acceleo.org, на котором размещены статьи, созданные членами сообщества Acceleo, и репозиторий модулей Acceleo, содержащий генераторы кода на основе Acceleo 2.

Вход в Eclipse Foundation

В 2009 году при переходе на Acceleo 3 проект был принят в Eclipse Foundation. Во время этого перехода язык, используемый Acceleo для определения генератора кода, был изменен для использования нового стандарта из OMG для преобразования модели в текст, MOFM2T. С выпуском Eclipse 3.6 Helios Acceleo включен в серию одновременных выпусков Eclipse в качестве официального проекта Eclipse Foundation. Acceleo - это плагин Eclipse, который интегрирован в Eclipse IDE. Acceleo построен на основе нескольких ключевых технологий Eclipse, таких как ЭДС а после выпуска Acceleo 3 - реализация OCL в Eclipse. OCL - это стандартный язык от OMG для навигации по моделям и определения ограничений для элементов модели.

Торговая марка

Хотя исходный код Acceleo является открытым, торговая марка Acceleo и ее логотип, интегрированные в Acceleo, не являются открытым исходным кодом. Они были товарным знаком компании Obeo, создателя Acceleo, и были переданы Фонд Затмения когда Acceleo был принят как официальный проект.[4]

Исходный код

Acceleo - это проект Eclipse, в основном разработанный в Ява[5] и доступен по лицензии Eclipse Public License (EPL). Исходный код Acceleo 1.x и 2.x доступен в SVN на веб-сайте Консорциума OW2.[6] С входом в Eclipse Foundation в 2009 году исходный код Acceleo 3 был перенесен из SVN в репозиторий на основе CVS на серверах Eclipse Foundation.[7] После выпуска Eclipse 3.7 Indigo в 2011 году проект Acceleo перешел на Git.[8] после миграции, начатой ​​несколькими официальными проектами Eclipse Foundation, и с июля 2011 года исходный код Acceleo доступен на Github.[9]

Релизы

  • Первый стабильный выпуск: Acceleo 1.0.0 доступен с 1 апреля 2006 г.
  • Последний стабильный выпуск: Acceleo 3.7.8 доступен с 20 марта 2019 г.[1]
Легенда:
Предыдущие версииПоследний стабильный выпускСледующий выпуск
ВерсияДата выходаЖурнал выпуска
1.01 апреля 2006 г.Первая версия Acceleo доступна по лицензии GPL, генерация кода от ЭДС на основе моделей.
1.120 октября 2006 г.Совместимость с Eclipse 3.2, поддержка моделей, созданных с помощью GMF, ArgoUML, Poseidon, Umbrello и Rational Rose.[2]
1.25 января 2007 г.Переключитесь на общественную лицензию Eclipse (EPL), новую службу отступов, параметризованную программу запуска, совместимость с Ant.[10]
2.05 июня 2007 г.Улучшения языка, совместимость с XML, экспорт генераторов в виде плагина Eclipse.[11]
2.112 июля 2007 г.Совместимость с Eclipse 3.3, отладчиком генератора кода.[12]
2.27 января 2008 г.Поддержка локализации, поддержка различной кодировки шаблонов, выпуск следующих генераторов: JEE, PHP, Python и WISS.[13]
2.325 июля 2008 г.Совместимость с Eclipse 3.4, возможность вызова стандартных EOperations, определенных в модели, поиск ссылок.[14]
2.425 сентября 2008 г.Возможность экспортировать генератор как автономный модуль или как приложение RCP.[15]
2.53 декабря 2008 г.Генерация профайлера, действия по контуру.[16]
2.626 июня 2009 г.Совместимость с Eclipse 3.5 Galileo.[17]
2.76 апреля 2010 г.Улучшение профилировщика, совместимость с Архитектор предприятия.[18]
3.015 июня 2010 г.[19]Новый язык для определения генераторов кода на основе MOFM2T, поддержка запросов на основе OCL, компиляция в реальном времени с обнаружением ошибок.[20]
3.17 июня 2011 г.[19]Поддержка документации для генераторов, обнаружение потенциальных ошибок с предупреждением, поддержка Maven, бинарная компиляция генератора.[21]
3.227 октября 2011 г.[19]Следующий крупный выпуск Acceleo с новым представлением «Интерпретатор» для оценки выражения Acceleo для заданного набора элементов модели.[22]
3.329 мая 2012 г.[19]Следующий крупный выпуск Acceleo.[23]
3.410 июня 2013 г.[19]Следующий крупный выпуск Acceleo.[24]
3.510 июня 2014 г.[19]Следующий крупный выпуск Acceleo.[25]
3.68 июня 2015 г.[19]Следующий крупный выпуск Acceleo.[26]
3.715 октября 2016 г.[19]Следующий крупный выпуск Acceleo.[27]

Поддерживаемые платформы

Acceleo написан на Ява и развертывается как плагин в Eclipse IDE. Acceleo поддерживается в средах на основе Java 5+ на следующих платформах:

Язык

Начиная с Acceleo 3, язык, используемый для определения генератора кода Acceleo, является реализацией стандарта MOFM2T. Этот язык генерации кода использует подход на основе шаблонов. При таком подходе шаблон - это текст, содержащий выделенную часть, где текст будет вычисляться из элементов, предоставленных моделями входных данных. Эти выделенные части представляют собой большую часть временных выражений, указанных в сущности входных моделей, используемых для выбора и извлечения информации из этих моделей. В Acceleo эти выражения основаны на реализации Eclipse языка OCL.

особенности

Acceleo предоставляет инструменты для генерации кода из ЭДС на основе моделей. Благодаря этим инструментам Acceleo позволяет, например, инкрементную генерацию. Инкрементальная генерация дает людям возможность сгенерировать фрагмент кода, а затем изменить сгенерированный код и, наконец, восстановить код еще раз без потери предыдущих изменений.

Acceleo также позволяет:

  • генерация кода из любой метамодели, совместимой с ЭДС любить UML 1, UML 2 и даже кастомные метамодели (DSL )
  • настройка генерации с помощью пользовательских шаблонов
  • генерация любого текстового языка (C, Ява, Python, так далее.)

редактор

Acceleo содержит редактор модулей генерации кода с подсветкой синтаксиса, автозавершением, обнаружением ошибок в реальном времени и рефакторингом.

Редактор Acceleo

Отладчик

Отладчик Acceleo дает возможность следить за развитием поколения. Это позволяет пользователю приостанавливать генерацию с помощью точки останова, проверять состояние переменных и шаг за шагом перемещаться во время генерации для выявления проблем.

Отладчик

Профайлер

Профилировщик позволяет пользователю выяснить все инструкции, выполненные во время генерации, количество раз, когда эти инструкции были выполнены, и время, затраченное на каждую из этих инструкций. Данные профилирования доступны в ЭДС модели после поколения, запущенного с профайлером. Это дает пользователю возможность найти узкое место в созданном генераторе кода.

Данные профилирования Acceleo

Прослеживаемость

Механизм Acceleo может вычислять информацию о прослеживаемости всех элементов, участвующих в создании файла. Эта система позволяет, например, определять элементы из входных моделей, которые использовались для генерации определенного фрагмента текста, и задействованную часть генератора кода.

Прослеживаемость в Acceleo

Автономное использование

Синтаксический анализатор и механизм генерации, критические компоненты Acceleo, также могут использоваться «автономно», без развертывания в Eclipse. Acceleo генерирует класс Java для запуска генерации программно, что позволяет интегрировать генератор Acceleo в любое приложение Java. Эту программу запуска Java также можно вызвать из Ant или Maven.

Совместимость

Последняя версия Acceleo совместима с:[28]

  • Автономная среда выполнения Java 6
  • Затмение 3.7 Индиго
  • Затмение 3.8 Юнона
  • Затмение 4.3 Кеплер
  • Затмение 4.4 Луна
  • Затмение 4.5 Марс
  • Затмение 4.6 Неон

Acceleo основан на фреймворке моделирования ЭДС. Таким образом, он совместим с любым инструментом, который может производить модели, совместимые с EMF.

пример

Acceleo может использовать любые модели, совместимые с EMF, определенные из любой метамодели, например UML или даже обычай DSL. Из этой метамодели пользователь может определить генератор кода, который будет создавать любой текстовый язык из модели с использованием метамодели.

Простая модель ЭДС
Простая модель ЭДС
Простой модуль Acceleo
Простой модуль Acceleo
Сгенерированный код
Сгенерированный код

Здесь мы используем следующие элементы: EClass, EAttribute и EOperation из ЭДС. Благодаря простому модулю и этой модели ввода Acceleo может сгенерировать прежний код. Модуль, определенный в этом примере, параметризован для генерации Java, но стандарт MOFM2T не зависит от сгенерированного кода. Когда генератор создан, пользователь может использовать другую модель для создания фрагмента кода с похожим внешним видом, но с другим содержанием. Acceleo объединяет несколько примеров генерации кода для генерации Java и Python.

Награды

Награды, полученные Acceleo
заглавиеАвторДатаСсылка на сайт
Лучший инструмент разработчика на основе Eclipse с открытым исходным кодом 2009 г.Фонд Затмения1 марта 2009 г.(по-английски) Объявлены победители конкурса Eclipse Community Awards
Награда за открытые инновации 2010 г.Форум открытого мира1 ноября 2010 г.(по-английски) Награды Форума "Открытый мир"

Сообщество и общение

Сообщество Acceleo собрано вокруг части Acceleo веб-сайта Eclipse Foundation. Документация Acceleo[29] доступен в Интернете в Справочном центре Eclipse[30] и в вики проекта Acceleo.[31]

Конференции

Разработчики Acceleo также общаются с сообществом благодаря презентации, реализованной на конференциях MDA или Eclipse.

имяДатаРасположениеНазвание презентации
Конференция по подходу MDA23 ноября 2006 г.Женева
SOA / MDA2006-30-11Люксембург
EclipseCon 20076 марта 2007 г.Лос-Анджелес
Европейский саммит Eclipse 200810 октября 2008 г.Ludwisburg
EclipseCon 200925 марта 2009 г.Лос-АнджелесEclipse MTL: реальная стандартная альтернатива для генерации кода[32]
Европейский саммит Eclipse 200928 августа 2009 г.LudwisburgОт Acceleo.org к моделированию Eclipse
Eclipse Con 201022 марта 2010 г.Лос-АнджелесГенерация кода Acceleo: начнем с примера Android
Европейский Саммит Затмения 20103 ноября 2010 г.LudwisburgСоздание языка для приложений Android с помощью моделирования Eclipse[33]
Лучшие дни 20114 февраля 2011 г.ТулузаAcceleo[34]
Генерация кода 201126 мая 2011КембриджА вы думали, что знаете генератор кода на основе шаблонов?[35]

использованная литература

  1. ^ а б (по-английски) «Eclipse Acceleo 3.7.8». Получено 6 июля 2019.
  2. ^ а б (по-английски) «Примечания к выпуску Acceleo 1.1.0». Получено 2011-08-10.
  3. ^ (по-английски) «Примечания к выпуску Acceleo 1.2.0». Получено 2011-08-10.
  4. ^ (по-английски) «Рекомендации по логотипу Eclipse». В архиве из оригинала 29 июня 2011 г.. Получено 2011-08-10.
  5. ^ (по-английски) «Анализ кода Охлоха». Получено 2011-08-10.
  6. ^ (по-английски) "Исходный код Acceleo 1 & 2 на OW2 Forge". Получено 2011-08-10.
  7. ^ (по-английски) "Исходный код Acceleo 3 на CVS (только чтение)". Получено 2011-08-10.
  8. ^ (по-английски) «Acceleo переходит на Git». Получено 2011-08-10.
  9. ^ (по-английски) "Исходный код Acceleo 3 на Github". Получено 2011-08-10.
  10. ^ (по-английски) «Примечания к выпуску Acceleo 1.2.0». Получено 2011-08-10.
  11. ^ (по-английски) «Примечания к выпуску Acceleo 2.0.0». Получено 2011-08-10.
  12. ^ (по-английски) «Примечания к выпуску Acceleo 2.1.0». Получено 2011-08-10.
  13. ^ (по-английски) «Примечания к выпуску Acceleo 2.2.0». Получено 2011-08-10.
  14. ^ (по-английски) «Примечания к выпуску Acceleo 2.3.0». Получено 2011-08-10.
  15. ^ (по-английски) «Примечания к выпуску Acceleo 2.4.0». Получено 2011-08-10.
  16. ^ (по-английски) «Примечания к выпуску Acceleo 2.5.0». Получено 2011-08-10.
  17. ^ (по-английски) «Примечания к выпуску Acceleo 2.6.0». Получено 2011-08-10.
  18. ^ (по-английски) «Примечания к выпуску Acceleo 2.7.0». Получено 2011-08-10.
  19. ^ а б c d е ж г час (по-английски) "Acceleo Download". Получено 2019-07-06.
  20. ^ (по-английски) «Примечания к выпуску Acceleo 3.0.0». Получено 2011-08-10.
  21. ^ (по-английски) «Примечания к выпуску Acceleo 3.1.0». Получено 2011-08-10.
  22. ^ (по-английски) «Примечания к выпуску Acceleo 3.2.0». Получено 2011-10-27.
  23. ^ (по-английски) «Примечания к выпуску Acceleo 3.3.0». Получено 2015-03-05.
  24. ^ (по-английски) «Примечания к выпуску Acceleo 3.4.0». Получено 2015-03-05.
  25. ^ (по-английски) «Примечания к выпуску Acceleo 3.5.0». Получено 2015-03-05.
  26. ^ (по-английски) «Примечания к выпуску Acceleo 3.6.0». 2015-06-10.
  27. ^ (по-английски) «Примечания к выпуску Acceleo 3.7.0». 2016-11-16.
  28. ^ (по-английски) «План выпуска Acceleo 3.7.0». 2016-11-16.
  29. ^ (по-английски) «Документация Acceleo». Получено 2011-08-10.
  30. ^ (по-английски) «Документация по Acceleo в Справочном центре Eclipse». Получено 2011-08-10.
  31. ^ (по-английски) "Acceleo wiki". Получено 2011-08-10.
  32. ^ (по-английски) «EclipseCon 2009 - Eclipse MTL: реальная стандартная альтернатива для генерации кода». Архивировано из оригинал на 2011-07-28. Получено 2011-08-10.
  33. ^ (по-английски) "Eclipse Summit Europe 2010 - Создание языка для приложений Android с помощью моделирования Eclipse". Архивировано из оригинал на 2011-10-01. Получено 2011-08-10.
  34. ^ (по-английски) «Лучшие дни 2011 - Acceleo». Получено 2011-08-10.
  35. ^ (по-английски) «Code Generation 2011 - А вы думали, что знаете генератор кода на основе шаблонов?». Получено 2011-08-10.

внешние ссылки