Should We Beware the Inheritance? - An Empirical Study on the Evolution of Seven Open Source Systems

Cristina Marinescu, Mihai Codoban

2014

Abstract

One of the key mechanisms of object-oriented programming is inheritance. Some empirical studies show that classes inheriting behavior from more classes (i.e., ancestors) are more defect prone than the other classes. Since various collaborations are found among the instances of classes, classes are not isolated within the source code of object-oriented systems. In this paper, we investigate if classes using classes inheriting behaviour from other classes are more change and defect prone than the other classes. We analyze at least three releases of every system belonging to a suite of seven open source systems and investigate the relations between classes that use/do not use class hierarchies and study the change and defect proneness of those classes. The results frequently show that the clients of classes which inherit behaviour are more change and defect prone. These findings show a new type of correlation between the clients of class hierarchies and changes/defects, bringing evidence related to an increased likelihood of exhibiting changes and defects for the clients of class hierarchies. We believe that the inferred correlations are due to an improper usage of class hierarchies but further studies are needed for confirmation.

References

  1. Basili, V. R., Briand, L. C., and Melo, W. L. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on Software Engineering.
  2. Boetticher, G., Menzies, T., and Ostrand, T. (2007). PROMISE Repository of empirical software engineering data, http://promisedata.org/repository. West Virginia University, Department of Computer Science.
  3. Booch, G., Maksimchuk, R. A., Engel, M. W., Young, B. J., Conallen, J., and Houston, K. A. (2007). ObjectOriented Analysis and Design with Applications. Addison Wesley.
  4. Chidamber, S. R. and Kemerer, C. F. (1994). A Metric Suite for Object-Oriented Design. IEEE Transactions on Software Engineering, 20(6):476-493.
  5. Codoban, M., Marinescu, C., and Marinescu, R. (2011). iProblems - an integrated instrument for reporting design flaws, vulnerabilities and defects. In Proc. Working Conference on Reverse Engineering (WCRE), Limerick, Ireland. IEEE Computer Society Press.
  6. Girba, T., Lanza, M., and Ducasse, S. (2005). Characterizing the evolution of class hierarchies. In Proceedings of the 9th European Conference on Software Maintenance and Reengineering (CSMR). IEEE Computer Society.
  7. Gyimothy, T., Ferenc, R., and Siket, I. (2005). Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Transactions on Software Engineering.
  8. Khomh, F., Penta, M. D., Guéhéneuc, Y.-G., and Antoniol, G. An exploratory study of the impact of antipatterns on class change- and fault-proneness. Empirical Software Engineering, 2012.
  9. Lanza, M. and Marinescu, R. (2006). Object-Oriented Metrics in Practice. Springer Verlag.
  10. Li, W. and Shatnawi, R. (2007). An empirical study of the bad smells and class error probability in the postrelease object-oriented system evolution. Journal of Systems and Software, 80.
  11. Marinescu, C., Marinescu, R., Mihancea, P., Ra¸tiu, D., and Wettel, R. (2005). iPlasma: An integrated platform for quality assessment of object-oriented design. In Proc. IEEE International Conference on Software Maintenance (ICSM Industrial and Tool Volume), Budapest, Hungary. IEEE Computer Society Press.
  12. Marinescu, R. and Marinescu, C. (2011). Are the clients of flawed classes (also) defect prone? In Proc. IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), Williamsburg, USA. IEEE Computer Society Press.
  13. Martin, R. (1996). The Liskov Substitution Principle. C++ Report.
  14. Mihancea, P. F. (2006). Towards a client driven characterization of class hierarchies. In 16th International Conference on Program Comprehension.
  15. Mihancea, P. F. (2008). Type highlighting: A client-driven visual approach for class hierarchies reengineering. In 8th IEEE International Working Conference on Source Code Analysis and Manipulation.
  16. Moha, N., Guéhéneuc, Y.-G., Duchien, L., and Le Meur, A.-F. (2010). Decor: A method for the specification and detection of code and design smells. IEEE Transactions on Software Engineering.
  17. Oram, A. and Wilson(editors), G. (2010). Making Software. What Really Works, and Why We Believe It. O'Reilly.
  18. R Development Core Team (2010). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Web page: http://www.Rproject.org. ISBN 3-900051-07-0.
  19. Ra¸tiu, D. (2004). Memoria: A Unified Meta-Model for Java and C++. Master Thesis, ”Politehnica” University of Timis¸oara.
  20. Sheskin, D. J. (2007). Handbook of Parametric and Nonparametric Statistical Procedures, 4th edition. Chapman&Hall/CRC.
  21. Singh, Y., Kaur, A., and Malhotra, R. (2010). Empirical validation of object-oriented metrics for predicting fault proneness models. Software Quality Journal.
  22. Yin, R. K. (2002). Case Study Research: Design and Methods., 3rd edition. SAGE Publications.
  23. Zimmermann, T., Premraj, R., and Zeller, A. (2007). Predicting defects for Eclipse. In Third International Workshop on Predictor Models in Software Engineering. IEEE Computer Society.
  24. Zimmermann, T., Weisgerber, P., Diehl, S., and Zeller, A. (2004). Mining version histories to guide software changes. In International Conference on Software Engineering (ICSE).
Download


Paper Citation


in Harvard Style

Marinescu C. and Codoban M. (2014). Should We Beware the Inheritance? - An Empirical Study on the Evolution of Seven Open Source Systems . In Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014) ISBN 978-989-758-036-9, pages 246-253. DOI: 10.5220/0005000702460253


in Bibtex Style

@conference{icsoft-ea14,
author={Cristina Marinescu and Mihai Codoban},
title={Should We Beware the Inheritance? - An Empirical Study on the Evolution of Seven Open Source Systems},
booktitle={Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014)},
year={2014},
pages={246-253},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005000702460253},
isbn={978-989-758-036-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 9th International Conference on Software Engineering and Applications - Volume 1: ICSOFT-EA, (ICSOFT 2014)
TI - Should We Beware the Inheritance? - An Empirical Study on the Evolution of Seven Open Source Systems
SN - 978-989-758-036-9
AU - Marinescu C.
AU - Codoban M.
PY - 2014
SP - 246
EP - 253
DO - 10.5220/0005000702460253