Research

Research Interests

  • Software Maintenance, Quality and Evolution
  • Analysis, Specification, and Detection of Patterns and Antipatterns
  • Refactoring
  • Metamodelling
  • Object, Service and Cloud Oriented Systems

Research Projects

  • DECOR project: Defect dEtection for CORrection : is a tool that allows the specification and the detection of defects such as code smells and antipatterns using a unified vocabulary and a dedicated language.
    • Ptidej: Ptidej is the front-end to the tool suite for evaluating and improving the quality of object-oriented programs, reverse-engineering object-oriented programs (AOL, C/C++, Java), and promoting patterns. Ptidej integrates DECOR as well as visualisations algorithms to ease the understanding of detected defects.
  • MOVER Industrial project with the DSIV (Délégation au Système d’Information Voyageurs) of SNCF (Société Nationale des Chemins de Fer français) (FRANCE) and GEODES, University of Montreal (CANADA). In that project, I am working on the detection of defects in industrial programs.

Ph.D. Subject

Design defects come from “poor” design choices and have the effect of degrading the quality of object-oriented designs. Therefore, they present opportunities for improvements. However, design defects have not been precisely specified and there are few appropriate tools that allow their detection as well as their correction. Our goal is to provide a systematic method to specify design defects precisely and to generate detection and correction algorithms from their specifications. The detection algorithms are based not only on metrics but also on semantical and structural properties whereas the correction algorithms are based on refactorings. We apply and validate these algorithms on open-source object-oriented programs to show that our method allows a systematic specification, a precise detection, and a suitable correction of design defects.

Keywords: design defects, antipatterns, code smells, specification, meta-model, detection, correction, refactorings, Java.