Abstract
Despite the relevance of the software evolution phase, there are few characterization studies on recurrent evolution growth patterns and on their impact on software properties, such as coupling and cohesion. In this paper, we report a study designed to investigate whether the software evolution categories proposed by Lanza can be used to explain not only the growth of a system in terms of lines of code (LOC), but also in terms of metrics from the Chidamber and Kemerer (CK) object-oriented metrics suite. Our results show that high levels of recall (ranging on average from 52 to 72 %) are achieved when using LOC to predict the evolution of coupling and size. For cohesion, we have achieved smaller recall rates (<27 % on average).
Similar content being viewed by others
Notes
The representation of the evolution categories in this figure follows a linear model just for illustrative purposes. As can be checked, the definitions presented in the section do not assume a linear growth or contraction.
The original dataset includes a fifth system (Mylyn). However, we have not considered this system because the dataset includes information for only 47 biweeks of its evolution.
For Eclipse JDT and Eclipse PDE, we only considered the original time frame of the series available in the D’Ambros dataset.
References
Araujo, J. E., Souza, S., & Valente, M. T. (2011). Study on the relevance of the warnings reported by java bug-finding tools. IET Software, 5(4), 366–374.
Briand, L. C., Morasca, S., & Basili, V. R. (1996). Property-based software engineering measurement. IEEE Transactions on Software Engineering, 22(1), 68–86.
Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493.
Couto, C., Araujo, J. E., Silva, C., & Valente, M. T. Static correspondence and correlation between field defects and warnings reported by a bug finding tool. Software Quality Journal (to appear).
Couto, C., Silva, C., Valente, M. T., Bigonha, R., & Anquetil, N. (2012). Uncovering causal relationships between software metrics and bugs. In 16th European conference on software maintenance and reengineering (CSMR), pp. 223–232.
D’Ambros, M., Lanza, M., & Robbes, R. (2010). An extensive comparison of bug prediction approaches. In 7th working conference on mining software repositories (MSR), pp. 31–41.
El Emam, K., Benlarbi, S., Goel, N., & Rai, S. N. (2001). The confounding effect of class size on the validity of object-oriented metrics. IEEE Transactions on Software Engineering, 27, 630–650.
Godfrey, M. W., & Tu, Q. (2000). Evolution in open source software: A case study. In International conference on software maintenance (ICSM), pp. 131–142.
Gonzalez-Barahona, J. M., Robles, G, Michlmayr, M., Amor Juan, J., & German, D. M. (2009) Macro-level software evolution: A case study of a large software compilation. Empirical Software Engineering, 14, 262–285.
Herraiz, I., González-Barahona, J. M., & Robles, G. (2007). Towards a theoretical model for software growth. In International workshop on mining software repositories, p. 21.
Herraiz, I., & Hassan, A. E. (2010). Making software: What really works, and why we believe it? In I. Herraiz (Ed.), Beyond lines of code: Do we need more complexity metrics? (pp. 435–451). Sebastopol, CA: O’Reilly Media.
Hora, A., Anquetil, N., Ducasse, S., Bhatti, M. U., Couto, C., Valente, M. T., & Martins, J. (2012). BugMaps: A tool for the visual exploration and analysis of bugs. In 16th European conference on software maintenance and reengineering (CSMR), pp. 523–526.
Israeli, A., & Feitelson, D. G. (2010). The linux kernel as a case study in software evolution. Journal of Systems and Software, 83(3), 485–501.
Lanza, M. (2001). The evolution matrix: Recovering software evolution using software visualization techniques. In 4th international workshop on principles of software evolution (IWPSE), pp. 37–42.
Lanza, M., & Ducasse, S. (2003). Polymetric views—A lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering, 29, 782–795.
Ledyard Stebbins, G. (1950). Variation and evolution in plants. New York: Columbia University Press.
Lehman, M. M., Perry, D. E., & Ramil, J. F. (1998). Implications of evolution metrics on software maintenance. In International conference on software maintenance (ICSM), pp. 208–217.
Lehman, M. M., Ramil, J. F., Wernick, P. D., Perry, D. E., & Turski, W. M. (1997). Metrics and laws of software evolution-the nineties view. In 4th international software metrics symposium, pp. 20–32.
Lo, A. W., Mamaysky, H., & Wang, J. (2000). Foundations of technical analysis: Computational algorithms, statistical inference, and empirical implementation. Journal of Finance, 40, 1705–1765.
Mens, T., Fernandez-Ramil, J., & Degrandsart, S. (2008). The evolution of eclipse. In International conference on software maintenance (ICSM), pp. 386–395.
Pagel, M. (1999). Inferring the historical patterns of biological evolution. Nature, 401(6756), 877–884.
Subramanyam, R., & Krishnan, M. S. (2003). Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. IEEE Transactions on Software Engineering, 29, 297–310.
Acknowledgments
This research has been supported by the grants from FUNDEP/Santander, CAPES, FAPEMIG, and CNPq. We thank Marco D’Ambros for making the dataset with the historical values of the OO metrics publicly available and Andre Hora and Nicolas Anquetil for helping us with the Moose platform.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Rocha, H., Couto, C., Maffort, C. et al. Mining the impact of evolution categories on object-oriented metrics. Software Qual J 21, 529–549 (2013). https://doi.org/10.1007/s11219-012-9186-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-012-9186-7