Трансформация модели

редактировать

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

Содержание

  • 1 Обзор
  • 2 Классификация модельных преобразований
    • 2.1 Количество и тип входов и выходов
    • 2.2 Эндогенные в сравнении с экзогенными
    • 2.3 Сравнение однонаправленного и двунаправленного
  • 3 языка для преобразования моделей
  • 4 См. Также
  • 5 ссылки
  • 6 Дальнейшее чтение

Обзор

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Основная статья: Язык преобразования модели

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

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

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

Ссылки

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

  • Программная инженерия на основе моделей на практике, Марко Брамбилла, Хорди Кэбот, Мануэль Виммер, предисловие Ричарда Соли ( председателя OMG ), Morgan amp; Claypool, США, 2012 г., Лекции по синтезу программной инженерии №1. 182 страницы. ISBN   9781608458820 (мягкая обложка), ISBN   9781608458837 (электронная книга) http://www.mdse-book.com
Последняя правка сделана 2024-01-08 08:34:41
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте