UE Software mining and re-engineering

Diplômes intégrant cet élément pédagogique :

Descriptif

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. 

 

Content:

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

Informations complémentaires

Méthode d'enseignement : En présence
Lieu(x) : Grenoble - Domaine universitaire
Langue(s) : Anglais