The high cost of software maintenance requires a focus on software maintainability. Although it emerges from the structure of the source code, its evaluation is subjective, as it depends on developers and the context.
Current maintainability models tend to reduce maintainability to a one-dimensional score based on metrics, often poorly defined, which inadequately represent the structure of the code.
Our work is based on the static analysis of code graphs to evaluate maintainability.
It led to the development of Javanalyser, an open-source tool that automatically generates the code graph of a Java program.
These graphs enabled the formalization of 33 static metrics as declarative queries, and allowed the successful replication of a study by Schnappinger (2021).
Our extension of the study confirmed the importance of size as a factor influencing maintainability, while also recognizing the impact of other metrics.
This work opens the way to a deeper understanding of maintainability through a multidimensional representation that takes into account the variability between developers.