Skip to main content

An Empirical Study of “Removed” Classes in Java Open-Source Systems

  • Conference paper
  • First Online:
Book cover Advanced Techniques in Computing Sciences and Software Engineering

Abstract

Coupling is an omni-present and necessary feature of OO systems; ideally, classes with excessive coupling should be either refactored and/or removed from the system. However, a problem that immediately arises is the practical difficulty of effecting the removal of such classes due to the many coupling dependencies they have; it is often easier to leave classes where they are and ‘work around’ the problem. In this paper, we describe empirical coupling and size data of classes removed from multiple versions of four open-source systems. We investigated three related, research questions. First, does the amount of coupling influence the choice of removed class? Second, does class size play a role in that choice? Finally, is there a relationship between the frequency with which a class is changed and its point of removal from a system? Results showed a strong tendency for classes with low ‘fan-in’ and ‘fan-out’ to be candidates for removal. Evidence was also found of class types with high imported package and external call functionality being removed; finally, size, in terms of methods and lines of code did not seem to be a contributing factor to class removal. The research addresses an area that is often overlooked in the study of evolving systems, notably the characteristics and features of classes that disappear from a system.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. L. Briand, P. Devanbu, and W. Melo, “An investigation into coupling measures for C++,” in 19th International Conference on Software Engineering (ICSE 97), Boston, USA, 1997, pp. 412–421.

    Google Scholar 

  2. M. Fowler, Refactoring: Improving the Design of Existing Code. New York: Pearson Education, 1999.

    Google Scholar 

  3. K. El Emam, S. Benlarbi, N. Goel, and S. Rai, “The confounding effect of class size on the validity of object-oriented metrics,” IEEE Transactions on Software Engineering, vol. 27 pp. 630–650, 2001.

    Article  Google Scholar 

  4. T. Dinh-Trong, and J. Bieman, “Open source software development: a case study of FreeBSD,” in 10th IEEE International Symposium on Software Metrics, Chicago, USA, 2004, pp. 96–105.

    Google Scholar 

  5. R. Ferenc, I. Siket, T. Gyimothy, “Extracting facts from open source software,” in 20th International Conference on Software Maintenance (ICSM 2004), Chicago, USA, 11–17 September 2004, pp. 60–69.

    Google Scholar 

  6. L. Belady, and M.A. Lehman, Model of Large Program Development. IBM Sys. Jour., vol. 15, pp. 225–252, 1976.

    Article  MATH  Google Scholar 

  7. N. Smith, A. Capiluppi, and J. Fernandez-Ramil, “Agent-based simulation of open source evolution,” Journal of Software Process - Improvement and Practice, vol. 11, pp. 423–434, 2006.

    Article  Google Scholar 

  8. L. Briand, J. Daly, and J. Wust, “A unified framework for coupling measurement in object-oriented systems,” IEEE Transactions on Software Engineering, vol. 25, pp. 91–121, 1999.

    Article  Google Scholar 

  9. M. Bartsch, and R. Harrison, “A coupling framework for AspectJ,” in 10th International Conference on Evaluation and Assessment in Software Engineering (EASE), Keele, UK, 10–11 April 2006.

    Google Scholar 

  10. W. Li, and S. Henry, “Object oriented metrics that predict maintainability,” Journal of Systems and Software, vol. 23, pp. 112–122, 1993.

    Article  Google Scholar 

  11. S.R. Chidamber, C.F. Kemerer, “A metrics suite for object oriented design,” IEEE Transactions on Software Engineering, vol. 20, pp.476–493, 1994.

    Article  Google Scholar 

  12. C.F. Kemerer, and S. Slaughter, “Need for more longitudinal studies of software maintenance,” Empirical Software Engineering: An International Journal, vol. 2, pp. 109–118, 1999.

    Article  Google Scholar 

  13. C.F. Kemerer, and S. Slaughter, “An empirical approach to studying software evolution,” IEEE Transactions on Software Engineering, vol. 25, pp. 493–509, 1999.

    Article  Google Scholar 

  14. N. Fenton, and S. Pfleeger, Software Metrics: A Rigorous and Practical Approach, 2nd ed. Boston: Mass, 1997.

    Google Scholar 

  15. JHawk tool: (http://www.virtualmachinery.com/jhawkprod.htm).

  16. J. Bieman, G. Straw, H. Wang, P. Munger, and R. Alexander, “Design patterns and change proneness: an examination of five evolving systems,” in Ninth International Software Metrics Symposium, 2003, pp. 40–49.

    Google Scholar 

  17. S. Counsell, “Do student developers differ from industrial developers?” in Proceedings Information Technology Interfaces (ITI) Conference, Dubrovnik, Croatia, June 2008.

    Google Scholar 

  18. M. Cartwright, and M. Shepperd, “An empirical investigation of an object-oriented (OO) system,” IEEE Transactions on Software Engineering, vol. 26, pp. 786–796, 2000.

    Article  Google Scholar 

  19. T. Girba, M. Lanza, and S. Ducasse, “Characterizing the evolution of class hierarchies,” in Ninth European Conference on Software Maintenance and Reengineering, Manchester, UK, 2005, pp. 2–11.

    Google Scholar 

  20. A. Mubarak, S. Counsell, R. Hierons, and Y. Hassoun, “Package evolvability and its relationship with refactoring,” in Third International ERCIM Symposium on Software Evolution, Paris, France, 2007.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Asma Mubarak .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer Science+Business Media B.V.

About this paper

Cite this paper

Mubarak, A., Counsell, S., Hierons, R.M. (2010). An Empirical Study of “Removed” Classes in Java Open-Source Systems. In: Elleithy, K. (eds) Advanced Techniques in Computing Sciences and Software Engineering. Springer, Dordrecht. https://doi.org/10.1007/978-90-481-3660-5_17

Download citation

  • DOI: https://doi.org/10.1007/978-90-481-3660-5_17

  • Published:

  • Publisher Name: Springer, Dordrecht

  • Print ISBN: 978-90-481-3659-9

  • Online ISBN: 978-90-481-3660-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics