Assessing legacy software architecture with the autonomy ratio metric

Dugerdil, Philippe

In: Software engineering an international journal (SEIJ)

Among the software quality metrics, coupling and cohesion play an important role since they provide a clue about the structuring of the classes of the system. They are, therefore, computed at the level of the classes. However, when analyzing the architecture of a system, we are not only interested in the class level, but also in the higher levels of the system structure, for example the packages... More

Add to personal list
    Summary
    Among the software quality metrics, coupling and cohesion play an important role since they provide a clue about the structuring of the classes of the system. They are, therefore, computed at the level of the classes. However, when analyzing the architecture of a system, we are not only interested in the class level, but also in the higher levels of the system structure, for example the packages and components. This is especially true when we need to assess the quality of this structuring on the viewpoint of system understanding. In this paper, we first present the motivation for the definition of two new coupling and cohesion metrics that are applicable to higher structuring levels than classes. We then present our main metric: the autonomy ratio that measures the “functional structuring” of a system that we believe is essential to system understanding. Although, traditionally, the coupling and cohesion metrics are computed based on static analysis (i.e. source code analysis to find the potential calls among the elements), we rely on dynamic analysis and present the way the metrics are computed. Finally, we present a case study of the assessment of a large industrial system based on our metrics and the findings we drew from this experiment. We conclude the paper with a discussion of the results and present the future work. The key contribution of the paper is the definition of the autonomy ratio metrics for software architecture assessment on the viewpoint of system understanding.