During the development of long lifespan software systems, specification documents can become outdated or can even disappear due to the turnover of software developers. Implementing new software releases or checking whether some user requirements are still valid thus becomes challenging. The only reliable development artifact in this context is source code but understanding source code of large projects is a time- and effort- consuming activity. This challenging problem can be addressed by extracting high-level (observable) capabilities of software systems. By automatically mining the source code and the available source-level documentation, it becomes possible to provide a significant help to the software developer in his/her program comprehension task.
Thisthesis proposes a new method and a tool, called FEAT (FEature As Topoi), to address this problem. Our approach automatically extracts program topoi from source code analysis by using a three steps process: First, FEAT creates a model of a software system capturing both structural and semantic elements of the source code, augmented with code-level comments; Second, it creates groups of closely related functions through hierarchical agglomerative clustering; Third, within the context of every cluster, functions are ranked and selected, according to some structural properties, in order to form program topoi.
Our results show that FEAT can handle projects of size up to 4,000 functions and several hundreds of files, which opens the door for its large-scale adoption for program comprehension.
The thesis is written within the field of Software Engineering. The work has been conducted at Simula Research Laboratory and University of Montpellier.
The adjudication committee
- Professor, Yves le Traon, University of Luxembourg
- Professor, Lakhdar Sais, CRIL, Artois University
- Associate Professor, Samir Loudni, GREYC, University of Caen-Normandie
- Professor, Roberto Di Cosmo, INRIA, Paris Diderot University
- Professor, Jérôme Azé, LIRMM, University of Montpellier
- Associate Professor, Clémentine Nebut, LIRMM, University of Montpellier
Chair of the disputation
- Professor, Michel Rueher, I3S, Côte d'Azur University
- Professor Souhila Kaci, LIRMM, University of Montpellier
- Chief Research Scientist, Arnaud Gotlieb, Simula Research Laboratory
- Associate Professor, Nadjib Lazaar, LIRMM, University of Montpellier