UE Software mining and re-engineering

User information

Please note that you are curently looking at the ongoing Academic Programs. Applications are now closed for this academic year (2020-2021) for licences, professional licences, masters, DUT and regulated health training. If you are interested for an application in 2021-2022, please click on this link for the appropriate Academic Programs.

Degrees incorporating this pedagocial element :


Software mining is a recent trend in software engineering aiming to learn and discover knowledge from existing software. There are several applications of software mining like reverse engineering and data mining. Usually the knowledge obtained from existing software is exhibited in the form of models to which specific reasoning can be done, such as refactoring, code generation or model transformation.  Knowledge discovery from software systems addresses structure, behavior as well as the data processed by the software system. The intention of this course is to provide an overview of techniques allowing, on the one hand, to address software mining like pattern matching and on the other hand to achieve re-engineering such as model-to-model transformation and model-to-code techniques. 



1) Practical tool support for software mining - Coccinelle: a program matching and transformation engine which provides DSL for specifying desired matches and transformations in C code - Web crawlers and model inference: application to security policy mining in web applications 

2) Model-to-Model transformation - Concepts, foundations, and application - QVT (Query/View/Transformation) 

3) Re-engineering - Model-to-code techniques - Acceleo : an OCL-based language for code generation. - source-to-source transformations