Model transformations play an essential role in the Model-Driven Engineering paradigm. Writing a correct transformation program requires to be proficient with the source and target modeling languages, to have a clear understanding of the mapping between the elements of the two, as well as to master the transformation language to properly describe the transformation. Transformation programs are thus complex and error-prone, and finding and fixing errors in such programs typically involve a tedious and time-consuming effort by developers. In this paper, we propose a novel search-based approach to automatically repair transformation programs containing many semantic errors. To prevent the fitness plateaus and the single fitness peak limitations, we leverage the notion of social diversity to promote repair patches tackling errors that are less covered by the other patches of the population. We evaluate our approach on 71 semantically incorrect transformation programs written in ATL, and containing up to five semantic errors simultaneously. The evaluation shows that integrating social diversity when searching for repair patches allows to improve the quality of those patches and to speed up the convergence even when up to five semantic errors are involved.
翻译:模型转换在模型驱动工程范式中起着不可或缺的作用。 写入正确的转换程序需要精通源和目标模型语言,清楚理解两个元素之间的映射,并掌握转换语言以正确描述转型。 因此, 转换程序复杂且容易出错, 在这种程序中发现和修正错误通常需要开发者花很多时间努力。 在本文中, 我们提议了一种基于搜索的新方法, 自动修复包含许多语义错误的转换程序。 为了防止健康高原和单一健康峰值限制, 我们利用社会多样性的概念来推动修补被人口其他部分覆盖较少的错误。 我们评估了我们对在 ATL 中写成的71个语义不正确的转换方案的方法, 并同时包含多达5个语义错误。 评估显示, 在寻找修补补时将社会多样性整合起来, 能够提高这些补补补质量, 并加快聚合速度, 即使涉及到5个语义错误 。