Assessing the Quality of Evolving Haskell Systems by Measuring Structural Inequality
Sander Kamps, Bastiaan Heeren, and Johan Jeuring
Software metrics are used to measure the quality of a software
system, and to understand the evolution of the system's
quality over time. In this paper we report on an empirical
study that investigates whether structural degradation in
Haskell systems is related to decreasing software quality.
For our study we use three metrics that measure internal
attributes at the level of Haskell modules: intra-modular
complexity (cohesion), inter-modular complexity (coupling),
and module size. For these metrics, we calculate the Gini
coeicient, which is a measure of the inequality in a distribution
of values within a certain population, and the deviation
of the population’s central tendency from an empirically
established ideal value. We develop a method to track the
evolution, and measure the correlation between the calculated
system-level information and post-release defects.
The results show that: (1) post-release defects are signiicantly
correlated with the degree of inequality between the
size of modules, (2) the inequality measure is able to indicate
signiicant structural shifts in Haskell source code, and (3)
the deviation of a population’s central tendency from an ideal
value can serve as a benchmark to evaluate the structural
characteristics of a Haskell system. The results, however, do
not show that a combined measure for inequality and ideal
value deviation increases the ability to indicate the defect
proneness of Haskell source code.
In Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell, Haskell 2020, pages 67-79, 2020.