A. ben Fadhel, M. Kessentini, P. Langer, M. Wimmer: Search-based Detection of High-level Model Changes, in Proceedings of the 28 IEEE International Conference on Software Maintenance (ICSM'12), IEEE Computer Society; IEEE, Washington, DC, USA, 2012, ISBN: 978-1-4673-2313-0, pages 212 - 221. Doi: 10.1109/ICSM.2012.6405274
Software models are iteratively refined, restructured and evolved. The detection and analysis of changes applied between two versions of a model are one of the most important tasks during evolution and maintenance activities. In this paper, we propose an approach to detect high-level model changes in terms of refactorings. Our approach takes as input an exhaustive list of possible refactorings, the initial model and revised model, and generates as output a list of detected changes representing a sequence of refactorings. A solution is defined as a combination of refactorings that should maximize as much as possible the similarity between the expected revised model and the generated model after applying the refactoring sequence on the initial model. Due to the huge number of possible refactoring combinations, a heuristic method is used to explore the space of possible solutions. To this end, we used and adapted genetic algorithm as global heuristic search. The validation results on various versions of real-world models taken from an open source project confirm the effectiveness of our approach.