Skip to main content

Does Refactoring Improve Reusability?

  • Conference paper
Reuse of Off-the-Shelf Components (ICSR 2006)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4039))

Included in the following conference series:

Abstract

The improvement of the software development process through the development and utilization of high quality and reusable software components has been advocated for a long time. Agile Methods promote some interesting practices, in particular the practice of refactoring, which are supposed to improve understandability and maintainability of source code. In this research we analyze if refactoring promotes ad-hoc reuse of object-oriented classes by improving internal quality metrics. We conduct a case study in a close-to industrial, agile environment in order to analyze the impact of refactoring on internal quality metrics of source code. Our findings sustain the hypothesis that refactoring enhances quality and reusability of – otherwise hard to reuse – classes in an agile development environment. Given such promising results, additional experimentation is required to validate and generalize the results of this work.

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. Abrahamsson, P., Hanhineva, A., Hulkko, H., Ihme, T., Jäälinoja, J., Korkala, M., Koskela, J., Kyllönen, P., Salo, O.: Mobile-D: An Agile Approach for Mobile Application Development. In: Proceedings of the 19th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, Vancouver, British Columbia, Canada (2004)

    Google Scholar 

  2. Basili, V., Briand, L., Melo, W.L.: A Validation of Object-Oriented Design Metrics as Quality Indicators. IEEE Transactions on Software Engineering 22(10), 267–271 (1996)

    Article  Google Scholar 

  3. Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)

    Google Scholar 

  4. Benlarbi, S., El Emam, K., Goel, N., Rai, S.: Thresholds for Object-Oriented Measures. In: Proceedings of 11th International Symposium on Software Reliability Engineering (ISSRE 2000), p. 24 (2000)

    Google Scholar 

  5. Bois, B.D., Demeyer, S., Verelst, J.: Refactoring – Improving Coupling and Cohesion of Existing Code. In: Belgian Symposium on Software Restructuring, Gent, Belgium (2005)

    Google Scholar 

  6. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M.: Pattern oriented software architecture. A System of Patterns, vol. 1. John Wiley & Sons, Chichester (1996)

    Google Scholar 

  7. Caballero, R., Demurjian, S.A.: Towards the Formalization of a Reusability Frame-work for Refactoring. In: Gacek, C. (ed.) ICSR 2002. LNCS, vol. 2319, p. 293. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  8. Chidamber, S., Kemerer, C.F.: A metrics suite for object-oriented design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)

    Article  Google Scholar 

  9. Counsell, S., Mendes, E., Swift, S.: Comprehension of object-oriented software cohesion: the empirical quagmire. In: Proceedings of the 10th International Workshop on in Program Comprehension, Paris, France, pp. 33–42 (2002)

    Google Scholar 

  10. Curry, W.E., Succi, G., Smith, M.R., Liu, E., Wong, R.W.: Empirical Analysis of the Correlation between Amount of Reuse Metrics in the C Programming Language. In: Proceedings of the 1999 Symposium on Software Reusability (SSR 1999), Los Angeles, CA, USA (1999)

    Google Scholar 

  11. Dandashi, F., Rine, D.C.: A Method for Assessing the Reusability of Object-Oriented Code Using a Validated Set of Automated Measurements. In: Proceedings of 17th ACM Symposium on Applied Computing (SAC 2002), Madrid (2002)

    Google Scholar 

  12. Demeyer, S., Ducasse, S., Nierstrasz, O.: Finding Refactorings via Change Metrics. In: Proceedings of the 15th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2000, Minneapolis, USA (2000)

    Google Scholar 

  13. Devanbu, P., Karstu, S., Melo, W., Thomas, W.: Analytical and Empirical Evaluation of Software Reuse Metrics. In: Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany (1996)

    Google Scholar 

  14. van Emden, E., Moonen, L.: Java Quality Assurance by Detecting Code Smells. In: Proceedings of the 9th Working Conference on Reverse Engineering. IEEE Computer Society Press, Los Alamitos (2002)

    Google Scholar 

  15. Fenton, N., Pfleeger, S.L.: Software Metrics A Rigorous & Practical Approach, p. 408. PWS Publishing Company, Boston (1997)

    Google Scholar 

  16. Fowler, M.: Refactoring Improving the Design of Existing Code. Addison-Wesley, Reading (2000)

    Google Scholar 

  17. Frakes, W., Terry, C.: Reuse Level Metrics. In: Proceedings of the 3rd International Conference on Software Reuse, Rio de Janeiro, Brazil (1994)

    Google Scholar 

  18. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  19. Johnson, P.M., Disney, A.M.: Investigating Data Quality Problems in the PSP. In: Proceedings of the Sixth International Symposium on the Foundations of Software Engineering (SIGSOFT 1998) (1998)

    Google Scholar 

  20. Hollander, M., Wolfe, D.A.: Nonparametric statistical inference, pp. 27–33. John Wiley & Sons, New York (1973)

    Google Scholar 

  21. Layman, L., Williams, L., Cunningham, L.: Exploring Extreme Programming in Context: An Industrial Case Study. In: Agile Development Conference, pp. 32–41 (2004)

    Google Scholar 

  22. Li, W., Henry, S.: Maintenance Metrics for the Object Oriented Paradigm. In: Proceedings of the First International Software Metrics Symposium, Baltimore, MD, pp. 52–60 (1993)

    Google Scholar 

  23. McCabe, T.: Complexity Measure. IEEE Transactions on Software Engineering 2(4), 308–320 (1976)

    Article  MathSciNet  Google Scholar 

  24. Poulin, J.S.: Measuring Software Reusability. In: Proceedings of the Third Conference on Software Reuse, Rio de Janeiro, Brazil (1994)

    Google Scholar 

  25. Ratzinger, J., Fischer, M., Gall, H.: Improving Evolvability through Refactoring. In: Proceedings of the 2nd International Workshop on Mining Software Repositories (MSR 2005), Saint Louis, Missouri, USA (2005)

    Google Scholar 

  26. Sillitti, A., Janes, A., Succi, G., Vernazza, T.: Collecting, Integrating and Analyzing Software Metrics and Personal Software Process Data. In: Proceedings of the EUROMICRO 2003 (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Moser, R., Sillitti, A., Abrahamsson, P., Succi, G. (2006). Does Refactoring Improve Reusability?. In: Morisio, M. (eds) Reuse of Off-the-Shelf Components. ICSR 2006. Lecture Notes in Computer Science, vol 4039. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11763864_21

Download citation

  • DOI: https://doi.org/10.1007/11763864_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-34606-7

  • Online ISBN: 978-3-540-34607-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics