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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
M. Fowler, Refactoring: Improving the Design of Existing Code. New York: Pearson Education, 1999.
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.
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.
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.
L. Belady, and M.A. Lehman, Model of Large Program Development. IBM Sys. Jour., vol. 15, pp. 225–252, 1976.
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.
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.
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.
W. Li, and S. Henry, “Object oriented metrics that predict maintainability,” Journal of Systems and Software, vol. 23, pp. 112–122, 1993.
S.R. Chidamber, C.F. Kemerer, “A metrics suite for object oriented design,” IEEE Transactions on Software Engineering, vol. 20, pp.476–493, 1994.
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.
C.F. Kemerer, and S. Slaughter, “An empirical approach to studying software evolution,” IEEE Transactions on Software Engineering, vol. 25, pp. 493–509, 1999.
N. Fenton, and S. Pfleeger, Software Metrics: A Rigorous and Practical Approach, 2nd ed. Boston: Mass, 1997.
JHawk tool: (http://www.virtualmachinery.com/jhawkprod.htm).
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.
S. Counsell, “Do student developers differ from industrial developers?” in Proceedings Information Technology Interfaces (ITI) Conference, Dubrovnik, Croatia, June 2008.
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.
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.
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.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights 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)