Formal and Relational Concept Analysis approaches in Software Engineering: an overview and an application to learn model transformation patterns in examples

Formal Concept Analysis (FCA) is a data analysis framework which extracts a lattice structure from the analyzed data. It has shown its efficiency to solve many data analysis problems, including data mining problems, clustering, information retrieval and machine learning tasks. It has been also successfully used in the domain of software engineer-ing, for source code or design analysis, reengineering and artifact classi-fication. More recently Relational Concept Analysis (RCA) has been designed for dealing with multi-relational data. We will define FCA and RCA and outline a survey of their use in software engineering. Then we will develop an application of RCA in the specific domain of Model Driven Engineering (MDE) for learning model transformation patterns. Our approach is based on the use of transformation examples. We start by aligning a source model example and a target model exam-ple using an extension of the AnchorPROMPT algorithm. This align-ment is improved by an expert to obtain a transformation trace example. Then, using RCA, we extract the transformation patterns from the structure of the resulting lattices. Those patterns can be used by an expert to develop more rapidly the model transformation.