Like conventional software projects, projects in model-driven software engineering require adequate management of multiple versions of development artifacts, importantly allowing living with temporary inconsistencies. In previous work, multi-version models for model-driven software engineering have been introduced, which allow checking well-formedness and finding merge conflicts for multiple versions of a model at once. However, also for multi-version models, situations where different artifacts, that is, different models, are linked via automatic model transformations have to be handled. In this paper, we propose a technique for jointly handling the transformation of multiple versions of a source model into corresponding versions of a target model, which enables the use of a more compact representation that may afford improved execution time of both the transformation and further analysis operations. Our approach is based on the well-known formalism of triple graph grammars and the aforementioned encoding of model version histories called multi-version models. In addition to batch transformation of an entire model version history, the technique also covers incremental synchronization of changes in the framework of multi-version models. We show the correctness of our approach with respect to the standard semantics of triple graph grammars and conduct an empirical evaluation to investigate the performance of our technique regarding execution time and memory consumption. Our results indicate that the proposed technique affords lower memory consumption and may improve execution time for batch transformation of large version histories, but can also come with computational overhead in unfavorable cases.
翻译:与常规软件项目类似,模型驱动软件工程中的项目也需要妥善管理开发工件的多个版本,其中关键要求是允许暂时存在不一致性。在先前工作中,已提出面向模型驱动软件工程的多版本模型,该模型支持同时检查多个模型版本的良构性并发现合并冲突。然而,对于多版本模型而言,仍需处理通过自动模型转换关联不同工件(即不同模型)的情形。本文提出一种联合处理源模型多个版本到目标模型对应版本转换的技术,该技术可采用更紧凑的表示形式,从而可能提升转换及后续分析操作的执行效率。我们的方法基于三重图语法这一经典形式化框架,以及上述称为多版本模型的模型版本历史编码方式。该技术不仅支持对整个模型版本历史进行批量转换,还涵盖多版本模型框架下的增量式变更同步。我们验证了该方法相对于三重图语法标准语义的正确性,并通过实证评估研究了其在执行时间和内存消耗方面的性能表现。结果表明,所提出的技术能降低内存消耗,并在处理大规模版本历史的批量转换时可能提升执行效率,但在不利情况下也可能带来计算开销。