Software Quality Journal

, Volume 21, Issue 4, pp 529–549 | Cite as

Mining the impact of evolution categories on object-oriented metrics

  • Henrique Rocha
  • Cesar Couto
  • Cristiano Maffort
  • Rogel Garcia
  • Clarisse Simoes
  • Leonardo Passos
  • Marco Tulio Valente
Article

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

Keywords

Software evolution categories Patterns of evolution Object-oriented metrics CK metrics Evolution matrix 

Notes

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.

References

  1. 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.CrossRefGoogle Scholar
  2. Briand, L. C., Morasca, S., & Basili, V. R. (1996). Property-based software engineering measurement. IEEE Transactions on Software Engineering, 22(1), 68–86.CrossRefGoogle Scholar
  3. 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
  4. 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).Google Scholar
  5. 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.Google Scholar
  6. 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.Google Scholar
  7. 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.CrossRefGoogle Scholar
  8. Godfrey, M. W., & Tu, Q. (2000). Evolution in open source software: A case study. In International conference on software maintenance (ICSM), pp. 131–142.Google Scholar
  9. 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.CrossRefGoogle Scholar
  10. 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.Google Scholar
  11. 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.Google Scholar
  12. 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.Google Scholar
  13. 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.CrossRefGoogle Scholar
  14. 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.Google Scholar
  15. Lanza, M., & Ducasse, S. (2003). Polymetric views—A lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering, 29, 782–795.CrossRefGoogle Scholar
  16. Ledyard Stebbins, G. (1950). Variation and evolution in plants. New York: Columbia University Press.Google Scholar
  17. 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.Google Scholar
  18. 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.Google Scholar
  19. 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.CrossRefGoogle Scholar
  20. Mens, T., Fernandez-Ramil, J., & Degrandsart, S. (2008). The evolution of eclipse. In International conference on software maintenance (ICSM), pp. 386–395.Google Scholar
  21. Pagel, M. (1999). Inferring the historical patterns of biological evolution. Nature, 401(6756), 877–884.CrossRefGoogle Scholar
  22. 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.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Henrique Rocha
    • 1
  • Cesar Couto
    • 1
    • 2
  • Cristiano Maffort
    • 1
    • 2
  • Rogel Garcia
    • 1
  • Clarisse Simoes
    • 1
  • Leonardo Passos
    • 3
  • Marco Tulio Valente
    • 1
  1. 1.Department of Computer ScienceUFMGBelo HorizonteBrazil
  2. 2.Department of ComputingCEFET-MGMinas GeraisBrazil
  3. 3.Department of Electrical and Computer EngineeringUniversity of WaterlooWaterlooCanada

Personalised recommendations