скрипты, представления данных и т.п.). С одной стороны, применение
такого подхода освобождает разработчиков от работы по написанию
шаблонов и заготовок кода [1]. С другой стороны, это порождает
ряд дополнительных задач, связанных с сопровождением созданных
моделей, которые зачастую так или иначе связаны друг с другом, по-
скольку описывают с разных сторон один и тот же объект (например,
схема реляционного хранилища данных и соответствующая ей струк-
тура классов, используемая приложением, которое работает с этим
хранилищем).
Одна из таких задач — синхронизация моделей, заключающаяся в
необходимости внесения адекватных изменений во все взаимосвязан-
ные модели при изменении хотя бы одной из них.
Вследствие большого разнообразия моделей задача синхрониза-
ции, как правило, ставится в терминах метамоделей, определяющих
структуру моделей, которые в свою очередь являются их экземпляра-
ми. Более строго этот факт будет рассмотрен ниже.
На практике синхронизация осуществляется путем последователь-
ных трансформаций, выполняющихся по определенным правилам над
частями моделей и переводящих эти модели к адекватному (конси-
стентному) с позиции метамоделей виду [2]. Актуальной, но все еще
полностью нерешенной задачей является создание для конкретных
классов метамоделей наборов правил трансформации, обладающих
полнотой (возможностью внесения всего необходимого перечня изме-
нений) и гарантирующих корректность трансформаций (адекватность
внесения изменений с позиции метамоделей).
В настоящее время вследствие того, что модели представляются
в виде графов (графовых моделей), широкое применение для их син-
хронизации получили подходы, основанные на графовых грамматиках
[3–5]. Правила вывода в графовых грамматиках в отличие от правил
вывода в текстовых грамматиках, в левой и правой частях которых фи-
гурируют символьные представления, используют правила, в левую и
правую части которых помещаются фрагменты графовых моделей. В
простейшем случае каждое правило графовой грамматики порождает
трансформацию графового фрагмента модели, находящегося в левой
части правила, в графовый фрагмент. Вид этого фрагмента зависит от
того, что находится в правой части правила. Именно поэтому правила
графовой грамматики также называются правилами трансформации.
Популярность таких подходов объясняется, прежде всего, удоб-
ством практического применения, которое выражается в наглядности,
возможности использования графических редакторов при проектиро-
вании правил трансформации, более прозрачных и эффективных мето-
дах контроля, верификации и отладки разработанных трансформаций.
Функциональные критерии корректности, характеризующие про-
цессы преобразования моделей, рассмотрены в работах [4, 6–9], где
80 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2015. № 3