Skip to main content

An Exploratory Investigation on Refactoring in Industrial Context

  • Conference paper
Product-Focused Software Process Improvement (PROFES 2009)

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

Abstract

Refactoring, which is an efficient method to improve the quality of the existing code, has been widely used in practical software development and maintenance activities. The current refactoring researches are more focus on the technical aspect of refactoring but pay little attention to its use in real software development environment. However, software development and maintenance, in their nature, are human-centric activities. The lack of systematic empirical studies has resulted in the gap between current refactoring researches and industrial practices. To bridge this research gap, we conduct this exploratory study to learn more about the actual use of refactoring in the industrial context. Using a series of semi-controlled interviews as our major research method, we gathered first-hand information on how the refactoring is used by practitioners. We built a three-stage framework to describe the overall refactoring process. 19 basic factors are identified and categorized. We also identify the most important ones and the factors that may trigger potential conflicts between developers and the managers. Some related issues such as this study’s implications are also discussed.

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. Opdyke, W.F.: Refactoring: A Program Restructuring Aid in Designing Object-Oriented Application Frameworks. Ph.D. thesis, University of Illinois at Urbana-Champaign (1992)

    Google Scholar 

  2. Xing, Z., Stroulia, E.: Refactoring Practice: How it is and how it should be supported - An Eclipse Case Study. In: Proceedings of International Conference on Software Maintenance (ICSM 2006), pp. 458–468 (2006)

    Google Scholar 

  3. Fowler, M.: Refactoring: Improving the Design of Existing Programs. Addison-Wesley, Reading (1999)

    MATH  Google Scholar 

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

    Google Scholar 

  5. Constantine, L.: Peopleware Papers: The notes on the human side of software. Prentice Hall, Englewood Cliffs (2001)

    Google Scholar 

  6. Counsell, S., Swift, S.: Refactoring Steps, Java Refactorings and Empirical Evidence. In: Proceedings of 32nd Annual IEEE International Computer Software and Applications Conference (COMPSAC 2008), pp. 176–179. IEEE Computer Society, Los Alamitos (2008)

    Chapter  Google Scholar 

  7. Murphy-Hill, E., Black, A.P.: Refactoring Tools: Fitness for Purpose. IEEE Software 25(5), 38–44 (2008)

    Article  Google Scholar 

  8. Murphy-Hill, E., Black, A.P.: Breaking the Barriers to Successful Refactoring: Observations and Tools for Extract method. In: Proceedings of 30th International Conference on Software Engineering, Leipzig, Germany, May 2008. IEEE Computer Society, Los Alamitos (2008)

    Google Scholar 

  9. Murphy, G.C., Kersten, M., Findlater, L.: How Are Java Software Developers Using the Eclipse IDE? IEEE Software 23(4), 76–83 (2006)

    Article  Google Scholar 

  10. Acuña, S.T., Juristo, N., Moreno, A.M.: Emphasizing Human Capabilities in software development. IEEE Software (9), 94–101 (2006)

    Google Scholar 

  11. Wake, W.C.: Refactoring Workbook. Addison-Wesley, Reading (2003)

    Google Scholar 

  12. Gill, T.: Visual Basic 6: Error Coding and Layering. Prentice-Hall, Englewood Cliffs (2000)

    Google Scholar 

  13. Gill, T.: Creating Blueprint-Quality Software Specifications. Prentice Hall, Englewood Cliffs (2001)

    Google Scholar 

  14. Roberts, D.: Practical Analysis for Refactoring. Ph.D. thesis, University of Illinois at Urbana-Champaign (1999)

    Google Scholar 

  15. Dudziak, T., Wloka, J.: Tool-supported Discovery and Refactoring of Structural Weaknesses in Code. M.S. thesis, Faculty of Computer Science, Technical University of Berlin (2002)

    Google Scholar 

  16. Mens, T., Tourwé, T.: A Survey of Software Refactoring. IEEE Transaction on Software Engineering 30(2), 126–139 (2004)

    Article  Google Scholar 

  17. Demeyer, S., Ducasse, S., Nierstrasz, O.: Finding Refactorings via Change Metrics. In: Proceedings of International Conference on Object Oriented Programming, System, Language & Application (OOPSLA 2000). ACM SIGPLAN Notices, vol. 35(10), pp. 166–177 (2000)

    Google Scholar 

  18. Philipps, J., Rumpe, B.: Root of Refactoring. In: 10th OOPSLA Workshop on Behavioral Semantics (2001)

    Google Scholar 

  19. Cai, Y., Sullivan, K.J.: A Value-oriented Theory of Modularity in Design. In: Proceedings of the Seventh International Workshop on Economics-driven Software Engineering Research (EDSER 2005), pp. 1–4. ACM, New York (2005)

    Chapter  Google Scholar 

  20. Favaro, J., Favaro, K., Favaro, P.: Value Based Software Reuse Investment. Annals of Software Engineering 5, 5–52 (1998)

    Article  Google Scholar 

  21. Poulin, J.S., Caruso, J.M., Hancock, D.R.: The Business Case for Software Reuse. IBM System Journal 32(4), 567–586 (1993)

    Article  Google Scholar 

  22. Dinh-Trong, T., Geppert, B., Li, J.J., Roessler, F.: Looking for More Confidence in Refactoring? How to Assess Adequacy of Your Refactoring Tests. In: Proceedings of the 8th International Conference on Quality Software. IEEE Computer Society, Los Alamitos (2008)

    Google Scholar 

  23. Meszaros, G.: xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, Reading (2007)

    Google Scholar 

  24. Ducasse, S., Rieger, M., Demeyer, S.: A Language Independent Approach for Detecting Duplicated Code. In: Proceedings of 11th International Conference on Software Maintenance (ICSM 1999), pp. 109–118. IEEE Computer Society, Los Alamitos (1999)

    Google Scholar 

  25. Mens, T., Demeyer, S., Janssens, D.: Formalising behaviour preserving program transformations. In: Corradini, A., Ehrig, H., Kreowski, H.-J., Rozenberg, G. (eds.) ICGT 2002. LNCS, vol. 2505, pp. 286–301. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  26. Mens, T.: A Formal Foundation for Object-Oriented Software Evolution. Ph.D. thesis, Department of Computer Science, Vrije Universiteit Brussel, Belgium (September 1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wang, Y. (2009). An Exploratory Investigation on Refactoring in Industrial Context. In: Bomarius, F., Oivo, M., Jaring, P., Abrahamsson, P. (eds) Product-Focused Software Process Improvement. PROFES 2009. Lecture Notes in Business Information Processing, vol 32. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02152-7_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02152-7_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02151-0

  • Online ISBN: 978-3-642-02152-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics