Skip to main content
Log in

Mining the impact of evolution categories on object-oriented metrics

  • Published:
Software Quality Journal Aims and scope Submit manuscript

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).

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

Notes

  1. 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.

  2. 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.

  3. http://www.moosetechnology.org.

  4. 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.

    Article  Google Scholar 

  • Briand, L. C., Morasca, S., & Basili, V. R. (1996). Property-based software engineering measurement. IEEE Transactions on Software Engineering, 22(1), 68–86.

    Article  Google Scholar 

  • Chidamber, S. R., & Kemerer, C. F. (1994). A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6), 476–493.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Ledyard Stebbins, G. (1950). Variation and evolution in plants. New York: Columbia University Press.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Marco Tulio Valente.

Rights and permissions

Reprints 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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-012-9186-7

Keywords

Navigation