Skip to main content

Part of the book series: Lecture Notes in Business Information Processing ((LNBIP,volume 199))

Included in the following conference series:

  • 2742 Accesses

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.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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. Fowler, M.: Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston (1999)

    Google Scholar 

  2. RefFinder, https://webspace.utexas.edu/kp9746/www/reffinder/

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

    Chapter  Google Scholar 

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

    Google Scholar 

  5. Kohring, G.A.: Complex dependencies in large software systems. Advances in Complex Systems (ACS) 12(06), 565–581 (2009)

    Article  MATH  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

  8. Myers, C.R.: Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs. Phys. Rev. E 68(4), 46116 (2003)

    Article  Google Scholar 

  9. Valverde, S., Cancho, R., Sole, V.: Scale free networks from optimal design. Europhysics Letters 60 (2002)

    Google Scholar 

  10. Opdyke, W.F.: Refactoring object-oriented frameworks. Technical report (1992)

    Google Scholar 

  11. Wake, W.C.: Refactoring Workbook, 1st edn. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)

    Google Scholar 

  12. Simon, F., SteinbrĂ¼ckner, F., Lewerentz, C.: Metrics based refactoring. In: Proc. 5th European Conference on Software Maintenance and Reengineering, pp. 30–38 (2001)

    Google Scholar 

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

    Article  Google Scholar 

  14. Šubelj, L., Bajec, M.: Community structure of complex software systems: Analysis and applications. Physica A Statistical Mechanics and its Applications 390, 2968–2975 (2011)

    Article  Google Scholar 

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

    Google Scholar 

  16. Geppert, B., Mockus, A., RĂ¶ĂŸler, F.: Refactoring for changeability: A way to go? In: IEEE METRICS, p. 13. IEEE Computer Society (2005)

    Google Scholar 

  17. Wilking, D., Kahn, U.F., Kowalewski, S.: An empirical evaluation of refactoring. e-Informatica 1(1), 27–42 (2007)

    Google Scholar 

  18. Chidamber, S., Kemerer, C.: A metrics suite for object-oriented design. IEEE Trans. Software Eng. 20(6), 476–493 (1994)

    Article  Google Scholar 

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

    Article  Google Scholar 

  20. Bois, B.D., Mens, T.: Describing the impact of refactoring on internal program quality, pp. 37–48. Vrije Universiteit Brussel (2003)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

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

    Google Scholar 

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

    Chapter  Google Scholar 

  27. Java Qualitas Corpus, http://qualitascorpus.com/

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

    Google Scholar 

  29. Kyle Prete, N.R., Kim, M.: Catalogue of template refactoring rules. Technical Report (August 15, 2010)

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

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

Publish with us

Policies and ethics