Skip to main content

Extracting Prehistories of Software Refactorings from Version Archives

  • Conference paper
Large-Scale Knowledge Resources. Construction and Application (LKR 2008)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 4938))

Included in the following conference series:

  • 596 Accesses

Abstract

This paper proposes an automated technique to extract prehistories of software refactorings from existing software version archives, which in turn a technique to discover knowledge for finding refactoring opportunities. We focus on two types of knowledge to extract: characteristic modification histories, and fluctuations of the values of complexity measures. First, we extract modified fragments of code by calculating the difference of the Abstract Syntax Trees in the programs picked up from an existing software repository. We also extract past cases of refactorings, and then we create traces of program elements by associating modified fragments with cases of refactorings for finding the structures that frequently occur. Extracted traces help us identify how and where to refactor programs, and it leads to improve the program design.

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 Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)

    Google Scholar 

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

    Google Scholar 

  3. SourceForge, Inc.: SourceForge.net (2004), http://sourceforge.net/

  4. Cederqvist, P.: Version management with CVS (2003), http://ximbiot.com/cvs/manual/

  5. Hayashi, S., Saeki, M., Kurihara, M.: Supporting refactoring activities using histories of program modification. IEICE Trans. on Information and Systems E89-D(4), 1403–1412 (2006)

    Article  Google Scholar 

  6. Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

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

    Article  Google Scholar 

  8. Behlendorf, B., et al.: Subversion (2003), http://subversion.tigris.org/

  9. Tichy, W.F.: RCS, http://www.cs.purdue.edu/homes/trinkle/rcs/

  10. Zimmermann, T., Weißgerber, P.: Preprocessing CVS data for fine-grained analysis. In: Proc. 1st Int’l Workshop on Mining Software Repositories, pp. 2–6 (2004)

    Google Scholar 

  11. The Eclipse Foundation: Eclipse Java Development Tools (JDT) Subproject. http://www.eclipse.org/jdt/

  12. Lee, K.H., Choy, Y.C., Cho, S.B.: An efficient algorithm to compute differences between structured documents. IEEE Trans. on Knowledge and Data Engineering 16(8), 965–979 (2004)

    Article  Google Scholar 

  13. Weißgerber, P., Diehl, S.: Identifying refactorings from source-code changes. In: Proc. 21st Int’l Conf. on Automated Software Engineering, pp. 231–240 (2006)

    Google Scholar 

  14. The Apache Software Foundation: Jakarta Commons (1999), http://jakarta.apache.org/commons/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Takenobu Tokunaga Antonio Ortega

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hayashi, S., Saeki, M. (2008). Extracting Prehistories of Software Refactorings from Version Archives. In: Tokunaga, T., Ortega, A. (eds) Large-Scale Knowledge Resources. Construction and Application. LKR 2008. Lecture Notes in Computer Science(), vol 4938. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-78159-2_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-78159-2_9

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-78158-5

  • Online ISBN: 978-3-540-78159-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics