Язык преобразования модели
Язык преобразования моделей в системной и программной инженерии — это язык, предназначенный специально для преобразования моделей .
Обзор
[ редактировать ]Идея трансформации модели занимает центральное место в разработке, основанной на модели . Преобразование модели, которое по сути представляет собой программу, работающую с моделями, может быть написано на языке программирования общего назначения, таком как Java . Однако языки преобразования моделей специального назначения могут иметь преимущества, такие как синтаксис, упрощающий обращение к элементам модели. Для написания двунаправленных преобразований моделей, которые поддерживают согласованность между двумя или более моделями, особенно важен специальный язык двунаправленных преобразований моделей, поскольку он может помочь избежать дублирования, которое могло бы возникнуть в результате написания каждого направления преобразования отдельно.
В настоящее время большинство языков преобразования моделей разрабатываются в научных кругах. OMG QVT стандартизировало семейство языков преобразования моделей под названием , но эта область все еще незрела. [1]
Продолжаются споры о преимуществах специализированных языков преобразования моделей по сравнению с использованием языков программирования общего назначения (GPL), таких как Java . [2] Хотя лицензии GPL имеют преимущества с точки зрения более широко доступных практических знаний и поддержки инструментов, специализированные языки преобразований предоставляют больше декларативных возможностей и более мощные специализированные функции для поддержки преобразований моделей. [3]
Доступные языки трансформации
[ редактировать ]- ATL : язык трансформации, разработанный INRIA.
- Beanbag (см. [1] ): язык, основанный на операциях, для постепенного установления согласованности данных.
- GReAT : язык трансформации, доступный в GME.
- Семейство Epsilon (см. [2] ): платформа управления моделями, которая предоставляет языки преобразования для преобразований «модель-модель», «модель-текст», «обновление на месте», миграция и слияние моделей.
- F-Alloy [3] : DSL, повторно использующий часть синтаксиса Alloy и обеспечивающий краткую спецификацию эффективно вычислимых преобразований модели.
- Henshin (см. [4] ): язык преобразования моделей для EMF , основанный на концепциях преобразования графов , обеспечивающий возможности исследования пространства состояний.
- JTL : язык двунаправленных преобразований моделей, специально разработанный для поддержки небиективных преобразований и распространения изменений (см. [5] ).
- Kermeta : язык моделирования и программирования общего назначения, также способный выполнять преобразования.
- Семейство Lx (см. [6] ): набор языков преобразования низкого уровня.
- M2M — это в Eclipse. реализация OMG QVT стандарта
- Mia-TL: язык трансформации, разработанный Mia-Software.
- Язык преобразования модели MOF в текст : OMG определил стандарт для выражения преобразований M2T.
- MOLA (см. [7] ): графический язык преобразований высокого уровня, встроенный в Lx.
- MT: язык трансформации, разработанный в Королевском колледже Лондона (Великобритания) (на основе Converge PL ).
- QVT : OMG определил стандарт для выражения преобразований M2M, называемый MOF/QVT или сокращенно QVT.
- SiTra [8] : прагматичный подход к преобразованию, основанный на использовании стандартного языка программирования, например Java, C#.
- Stratego/XT : язык трансформации, основанный на переписывании с помощью программируемых стратегий.
- Tefkat : язык трансформации и механизм трансформации моделей.
- Том : язык, основанный на переписывании исчисления, с сопоставлением шаблонов и стратегиями.
- UML-RSDS [9] : преобразование модели и подход MDD с использованием UML и OCL.
- VIATRA : структура среды верификации и валидации на основе преобразований
- YAMTL (см. [10] ): внутренний DSL для преобразования модели в языках JVM (Java, Groovy, Xtend, Kotlin), обладающий такими ключевыми характеристиками, как производительность во время выполнения, повторное использование логики преобразования, инкрементное выполнение и независимость от IDE.
См. также
[ редактировать ]- Преобразование данных
- Доменно-ориентированный язык (DSL)
- Фильтры (программное обеспечение)
- Модельно-ориентированное проектирование (MDE)
- Модельно-ориентированная архитектура (MDA)
- Процессор шаблонов
- Язык трансформации
- Преобразование графа
- Веб-шаблон
- XSLT — стандартный язык
Ссылки
[ редактировать ]- ^ Франция, Роберт; Румпе, Бернхард (2007). Разработка сложного программного обеспечения на основе моделей: план исследований . Будущее программной инженерии (FOSE '07). arXiv : 1409.6620 . дои : 10.1109/FOSE.2007.14 .
- ^ https://www.jot.fm/issues/issue_2019_03/article7.pdf.
- ^ Хеппнер, Стефан; Хаас, Ив; Тичи, Матиас; Юнке, Катарина (2022). «Преимущества и недостатки (специальных) языков преобразования моделей» . Эмпирическая программная инженерия . 27 (6). arXiv : 2201.13348 . дои : 10.1007/s10664-022-10194-7 . S2CID 251644010 .
Дальнейшее чтение
[ редактировать ]- Журнал MDA: Архитектура, управляемая моделями, прямо от мастеров
- Архитектура, управляемая моделями: применение MDA к корпоративным вычислениям , Дэвид С. Франкель , John Wiley & Sons, ISBN 0-471-31920-1
- Руководство OMG MDA Руководство MDA Версия 1.0.1
- Архитектура, управляемая моделями: видение, стандарты и новые технологии на omg.org
- Введение в архитектуру, управляемую моделями, на сайте ibm.com.
- От композиции объектов к преобразованию модели с помощью MDA на omg.org
- Менс Т. и Ван Горп П.: Таксономия преобразования моделей , Электронные заметки по теоретической информатике, том 152, 27 марта 2006 г., страницы 125–142
- Чарнецкий К. и Хелсен С.: Классификация подходов к преобразованию модели. В: Материалы семинара OOPSLA'03 по генеративным методам в контексте архитектуры, управляемой моделями, Анахайм, Калифорния, США. Опубликовано в Интернете.
- Гронмо Р. и Олдевик Дж. Эмпирическое исследование инструмента преобразования модели UML (UMT). [11]