Research
Interests
- Software Quality and Evolution
- Object-oriented Software Maintenance
- Metamodelling
- Analysis, Specification, and Detection of Design Defects
- Refactoring
- Service Oriented Architectures
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.
- See the video of DECOR and Ptidej
- 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.