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