Преобразование модели - Model transformation

А преобразование модели, в модельно-ориентированная инженерия, это автоматизированный способ изменения и создания моделей. Пример использования преобразования модели - обеспечение того, чтобы семейство модели последовательна в точном смысле, который может определить инженер-программист. Цель использования преобразования модели - сэкономить усилия и уменьшить количество ошибок за счет автоматизации построения и модификации моделей, где это возможно.

Обзор

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

Преобразование модели обычно указывает, какие модели приемлемы в качестве входных данных и, если необходимо, какие модели оно может создавать в качестве выходных данных, путем указания метамодель которому должна соответствовать модель.

Классификация модельных преобразований

Модельные преобразования и языки для них были классифицированы по-разному.[1][2][3]Вот некоторые из наиболее общих различий:

Количество и тип входов и выходов

В принципе, преобразование модели может иметь множество входов и выходов различных типов; единственное абсолютное ограничение заключается в том, что преобразование модели будет принимать как минимум одну модель в качестве входных данных. Однако преобразование модели, которое не привело к созданию какой-либо модели в качестве выходных данных, чаще называется анализом модели или запросом модели.

Эндогенный против экзогенного

Эндогенные преобразования - это преобразования между моделями, выраженными на одном языке. Экзогенные преобразования - это преобразования между моделями, выраженными на разных языках.[4] Например, в процессе, соответствующем мой Бог Архитектура, управляемая моделями, а платформо-независимая модель может быть преобразован в платформенно-зависимая модель путем экзогенной трансформации модели.

Однонаправленный против двунаправленного

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

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

  • биективные преобразования, в которых есть ровно одна модель, совместимая с любой данной моделью; то есть отношение согласованности биективно. Пара моделей непротиворечива тогда и только тогда, когда она связана взаимно однозначным соответствием согласованности. Обе модели содержат одинаковую информацию, но представлены по-разному.
  • преобразования представления, в которых конкретная модель определяет одну модель представления, но одна и та же модель представления может быть получена из множества различных конкретных моделей. Модель представления - это абстракция конкретной модели. Если представление может быть обновлено, необходимо двунаправленное преобразование. Эта ситуация известна в области базы данных как просмотр-обновление. Любая конкретная модель соответствует своей точке зрения.

Особенно важно, чтобы преобразование двунаправленной модели имело соответствующие свойства, позволяющие вести себя разумно: например, не вносить изменения без необходимости или отменить намеренно сделанные изменения.[5]

Языки для преобразования моделей

Преобразование модели может быть написано на языке программирования общего назначения, но также доступны специализированные языки преобразования модели. В частности, двунаправленные преобразования лучше всего записывать на языке, который обеспечивает надлежащее соответствие направлений. В мой Бог -стандартизированные языки преобразования моделей вместе известны как QVT.

В некоторых языках преобразования моделей, например QVT языков, преобразование модели само по себе является моделью, то есть соответствует метамодели, которая является частью определения языка преобразования модели. Это облегчает определение Преобразование высшего порядкаs (HOTs),[6] то есть преобразования, которые имеют другие преобразования в качестве входных и / или выходных.

Смотрите также

Рекомендации

  1. ^ Чарнецкий; Helsen (2006). «Обзор подходов к преобразованию моделей». Журнал IBM Systems. 45 (3): 621–645. CiteSeerX  10.1.1.124.9674. Дои:10.1147 / sj.453.0621.
  2. ^ Стивенс, Пердита (2008). Пейзаж двунаправленных преобразований моделей (PDF). Генеративные и трансформационные методы в программной инженерии II. Конспект лекций по информатике. 5235. Springer. С. 408–424. Дои:10.1007/978-3-540-88643-3_10. ISBN  978-3-540-88642-6.
  3. ^ Jakumeit; Бухвальд; Вагелаар; Дэн; Hegedüs; Херрманнсдёрфер; Рог; Калнина; Лано; Леппер; Ренсинк; Роза; Wätzoldt; Мазанек (2014). «Обзор и сравнение инструментов трансформации на основе конкурса инструментов трансформации». Наука компьютерного программирования. 85: 41–99. Дои:10.1016 / j.scico.2013.10.009.
  4. ^ Том Менс, Питер Ван Горп: Таксономия трансформации модели. Электр. Примечания Теор. Comput. Sci. 152: 125-142 (2006).
  5. ^ Стивенс, Пердита (2010). «Преобразования двунаправленных моделей в QVT: семантические проблемы и открытые вопросы». Программное и системное моделирование. 9: 7–20. Дои:10.1007 / s10270-008-0109-9.
  6. ^ Тиси, Массимо (2009). Об использовании преобразований моделей более высокого порядка. Ecmda-Fa '09. LNCS. 5562. Springer. С. 18–33. Дои:10.1007/978-3-642-02674-4_3. ISBN  978-3-642-02673-7.

дальнейшее чтение

  • Разработка программного обеспечения на основе моделей на практике, Марко Брамбилла, Хорди Кабот, Мануэль Виммер, предисловие Ричард Соли (мой Бог Председатель), Morgan & Claypool, США, 2012 г., Синтез лекций по программной инженерии # 1. 182 страницы. ISBN  9781608458820 (мягкая обложка), ISBN  9781608458837 (электронная книга) http://www.mdse-book.com