Model transformations play a fundamental role in model-driven software development. They can be used to solve or support central tasks, such as creating models, handling model co-evolution, and model merging. In the past, various (semi-)automatic approaches have been proposed to derive model transformations from meta-models or from examples. These approaches require time-consuming handcrafting or recording of concrete examples, or they are unable to derive complex transformations. We propose a novel unsupervised approach, called Ockham, which is able to learn edit operations from model histories in model repositories. Ockham is based on the idea that meaningful edit operations will be the ones that compress the model differences. We evaluate our approach in two controlled experiments and one real-world case study of a large-scale industrial model-driven architecture project in the railway domain. We find that our approach is able to discover frequent edit operations that have actually been applied. Furthermore, Ockham is able to extract edit operations in an industrial setting that are meaningful to practitioners.
翻译:模型转换在模式驱动的软件开发中起着根本作用。 它们可以用来解决或支持中心任务, 如创建模型、 处理模型共同进化和模型合并。 过去曾提出过各种( 半) 自动方法, 从元模型或实例中产生模型转换。 这些方法需要花费时间的手工制作或记录具体实例, 或者无法产生复杂的转换。 我们提议了一个新的不受监督的方法, 叫做 Ockham, 它可以从模型存储库的模型历史中学习编辑操作。 Ockham 是基于这样的理念, 即有意义的编辑操作将是压缩模型差异的操作。 我们评估了我们在两个受控实验中的方法, 以及对铁路领域大规模工业模型驱动的建筑项目进行的一个真实世界案例研究。 我们发现, 我们的方法能够发现经常的编辑操作实际上已经应用。 此外, Occkhham 能够在一个对从业者有意义的工业环境中提取编辑操作。