Abstract
We present a study on the refactoring activities performed during the evolution of 7 popular Java open source software systems, using a complex network approach. We find that classes affected by refactorings are more likely to be interlinked than others, forming connected subgraphs. Our results show that in a software network, classes linked to refactored classes are likely to be refactored themselves. This result is meaningful because knowing how refactored classes are arranged inside a network could be useful to support developers in maintenance and refactoring activities.
Keywords
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
Fowler, M.: Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston (1999)
RefFinder, https://webspace.utexas.edu/kp9746/www/reffinder/
Prete, K., Rachatasumrit, N., Sudan, N., Kim, M.: Template-based reconstruction of complex refactorings. In: Proceedings of the 2010 IEEE International Conference on Software Maintenance, ICSM 2010, pp. 1–10. IEEE Computer Society, Washington, DC (2010)
Kim, M., Gee, M., Loh, A., Rachatasumrit, N.: Ref-finder: A refactoring reconstruction tool based on logic query templates. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2010, pp. 371–372. ACM, New York (2010)
Kohring, G.A.: Complex dependencies in large software systems. Advances in Complex Systems (ACS) 12(06), 565–581 (2009)
Wen, L., Kirk, D., Dromey, R.G.: Software systems as complex networks. In: Proceedings of the 6th IEEE International Conference on Cognitive Informatics, COGINF 2007, pp. 106–115. IEEE Computer Society, Washington, DC (2007)
Li, D., Han, Y., Hu, J.: Complex network thinking in software engineering. In: Proceedings of the 2008 International Conference on Computer Science and Software Engineering, CSSE 2008, vol. 01, pp. 264–268. IEEE Computer Society, Washington, DC (2008)
Myers, C.R.: Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs. Phys. Rev. E 68(4), 46116 (2003)
Valverde, S., Cancho, R., Sole, V.: Scale free networks from optimal design. Europhysics Letters 60 (2002)
Opdyke, W.F.: Refactoring object-oriented frameworks. Technical report (1992)
Wake, W.C.: Refactoring Workbook, 1st edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)
Simon, F., Steinbrückner, F., Lewerentz, C.: Metrics based refactoring. In: Proc. 5th European Conference on Software Maintenance and Reengineering, pp. 30–38 (2001)
Murphy-Hill, E., Parnin, C., Black, A.P.: How we refactor, and how we know it. IEEE Transactions on Software Engineering 38(1), 5–18 (2012)
Šubelj, L., Bajec, M.: Community structure of complex software systems: Analysis and applications. Physica A Statistical Mechanics and its Applications 390, 2968–2975 (2011)
Turnu, I., Marchesi, M., Tonelli, R.: Entropy of the degree distribution and object-oriented software quality. In: Proceedings of the 2012 ICSE Workshop on Emerging Trends in Software Metrics, WETSoM 2012, pp. 77–82 (2012)
Geppert, B., Mockus, A., Rößler, F.: Refactoring for changeability: A way to go? In: IEEE METRICS, p. 13. IEEE Computer Society (2005)
Wilking, D., Kahn, U.F., Kowalewski, S.: An empirical evaluation of refactoring. e-Informatica 1(1), 27–42 (2007)
Chidamber, S., Kemerer, C.: A metrics suite for object-oriented design. IEEE Trans. Software Eng. 20(6), 476–493 (1994)
Gyimothy, T., Ferenc, R., Siket, I.: Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Transactions on Software Engineering 31(10), 897–910 (2005)
Bois, B.D., Mens, T.: Describing the impact of refactoring on internal program quality, pp. 37–48. Vrije Universiteit Brussel (2003)
Stroggylos, K., Spinellis, D.: Refactoring–does it improve software quality? In: Proceedings of the 5th International Workshop on Software Quality, WoSQ 2007, p. 10. IEEE Computer Society, Washington, DC (2007)
Kataoka, Y., Imai, T., Andou, H., Fukaya, T.: A quantitative evaluation of maintainability enhancement by refactoring. In: Proceedings of the International Conference on Software Maintenance, pp. 576–585 (2002)
Moser, R., Sillitti, A., Abrahamsson, P., Succi, G.: Does refactoring improve reusability? In: Morisio, M. (ed.) ICSR 2006. LNCS, vol. 4039, pp. 287–297. Springer, Heidelberg (2006)
Murgia, A., Marchesi, M., Concas, G., Tonelli, R., Counsell, S.: Parameter-based refactoring and the relationship with fan-in/fan-out coupling. In: Proceedings of the 2011 IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2011, pp. 430–436. IEEE Computer Society, Washington, DC (2011)
Murgia, A., Tonelli, R., Marchesi, M., Concas, G., Counsell, S., McFall, J., Swift, S.: Refactoring and its relationship with fan-in and fan-out: An empirical study. In: 2012 16th European Conference on Proceedings of Software Maintenance and Reengineering, CSMR 2012, pp. 63–72 (2012)
Concas, G., Monni, C., Orrù, M., Tonelli, R.: Are refactoring practices related to clusters in java software? In: Cantone, G., Marchesi, M. (eds.) XP 2014. LNBIP, vol. 179, pp. 269–276. Springer, Heidelberg (2014)
Java Qualitas Corpus, http://qualitascorpus.com/
Tempero, E., Anslow, C., Dietrich, J., Han, T., Li, J., Lumpe, M., Melton, H., Noble, J.: Qualitas corpus: A curated collection of java code for empirical studies. In: 2010 Asia Pacific Software Engineering Conference (APSEC 2010), pp. 336–345 (December 2010)
Kyle Prete, N.R., Kim, M.: Catalogue of template refactoring rules. Technical Report (August 15, 2010)
Hamza, H., Counsell, S., Hall, T., Loizou, G.: Code smell eradication and associated refactoring. In: Proceedings of the 2nd Conference on European Computing Conference, ECC 2008, pp. 102–107. World Scientific and Engineering Academy and Society (WSEAS), Stevens Point (2008)
Moha, N., Gueheneuc, Y.G., Duchien, L., Le Meur, A.F.: Decor: A method for the specification and detection of code and design smells. IEEE Trans. Softw. Eng. 36(1), 20–36 (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Concas, G., Monni, C., Orrù, M., Ortu, M., Tonelli, R. (2014). Refactoring Clustering in Java Software Networks. In: Dingsøyr, T., Moe, N.B., Tonelli, R., Counsell, S., Gencel, C., Petersen, K. (eds) Agile Methods. Large-Scale Development, Refactoring, Testing, and Estimation. XP 2014. Lecture Notes in Business Information Processing, vol 199. Springer, Cham. https://doi.org/10.1007/978-3-319-14358-3_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-14358-3_11
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14357-6
Online ISBN: 978-3-319-14358-3
eBook Packages: Computer ScienceComputer Science (R0)