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.
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
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)
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)
Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (2000)
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)
Bois, B.D., Demeyer, S., Verelst, J.: Refactoring – Improving Coupling and Cohesion of Existing Code. In: Belgian Symposium on Software Restructuring, Gent, Belgium (2005)
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)
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)
Chidamber, S., Kemerer, C.F.: A metrics suite for object-oriented design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)
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)
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)
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)
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)
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)
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)
Fenton, N., Pfleeger, S.L.: Software Metrics A Rigorous & Practical Approach, p. 408. PWS Publishing Company, Boston (1997)
Fowler, M.: Refactoring Improving the Design of Existing Code. Addison-Wesley, Reading (2000)
Frakes, W., Terry, C.: Reuse Level Metrics. In: Proceedings of the 3rd International Conference on Software Reuse, Rio de Janeiro, Brazil (1994)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
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)
Hollander, M., Wolfe, D.A.: Nonparametric statistical inference, pp. 27–33. John Wiley & Sons, New York (1973)
Layman, L., Williams, L., Cunningham, L.: Exploring Extreme Programming in Context: An Industrial Case Study. In: Agile Development Conference, pp. 32–41 (2004)
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)
McCabe, T.: Complexity Measure. IEEE Transactions on Software Engineering 2(4), 308–320 (1976)
Poulin, J.S.: Measuring Software Reusability. In: Proceedings of the Third Conference on Software Reuse, Rio de Janeiro, Brazil (1994)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)