Jump to content

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

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

Обзор [ править ]

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

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

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

Преобразования моделей и языки для них классифицируются по многим признакам. [1] [2] [3] Некоторые из наиболее распространенных различий:

Количество и тип входов и выходов [ править ]

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

Эндогенные и экзогенные [ править ]

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

Однонаправленный и двунаправленный [ править ]

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

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

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

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

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

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

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

См. также [ править ]

Ссылки [ править ]

  1. ^ Чарнецкий; Хелсен (2006). «Функциональный обзор подходов к преобразованию моделей». Системный журнал IBM . 45 (3): 621–645. CiteSeerX   10.1.1.124.9674 . дои : 10.1147/sj.453.0621 .
  2. ^ Стивенс, Пердита (2008). «Пейзаж двунаправленных преобразований моделей» . Генеративные и трансформационные методы в программной инженерии II . Конспекты лекций по информатике. Том. 5235. Спрингер . стр. 408–424. дои : 10.1007/978-3-540-88643-3_10 . ISBN  978-3-540-88642-6 .
  3. ^ Джакумейт; Бухвальд; Вагелаар; Дэн; Хегедуш; Хермансдёрфер; Рог; Калнина; Лано; Леппер; Ренсинк; Роза; Ветцольдт; Мазанек (2014). «Обзор и сравнение инструментов трансформации на основе конкурса инструментов трансформации» . Наука компьютерного программирования . 85 : 41–99. дои : 10.1016/j.scico.2013.10.009 .
  4. ^ Том Менс, Питер Ван Горп: Таксономия трансформации модели. Электр. Примечания Теор. Вычислить. наук. 152: 125-142 (2006)
  5. ^ Стивенс, Пердита (2010). «Преобразования двунаправленной модели в QVT: семантические проблемы и открытые вопросы» (PDF) . Программное обеспечение и моделирование систем . 9 :7–20. дои : 10.1007/s10270-008-0109-9 . S2CID   371579 .
  6. ^ Тиси, Массимо (2009). «Об использовании преобразований моделей высшего порядка». Архитектура, управляемая моделями: основы и приложения . ЛНКС. Том. 5562. Спрингер . стр. 18–33. дои : 10.1007/978-3-642-02674-4_3 . ISBN  978-3-642-02673-7 . {{cite book}}: |journal= игнорируется ( помогите )

Дальнейшее чтение [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bde5eb16617f3d01a50159cf01a8d3bb__1692806280
URL1:https://arc.ask3.ru/arc/aa/bd/bb/bde5eb16617f3d01a50159cf01a8d3bb.html
Заголовок, (Title) документа по адресу, URL1:
Model transformation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)