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.
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
Opdyke, W.F.: Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign (1992)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
SourceForge, Inc.: SourceForge.net (2004), http://sourceforge.net/
Cederqvist, P.: Version management with CVS (2003), http://ximbiot.com/cvs/manual/
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)
Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Chidamber, S., Kemerer, C.: A metrics suite for object-oriented design. IEEE Trans. on Software Engineering 20(6), 476–493 (1994)
Behlendorf, B., et al.: Subversion (2003), http://subversion.tigris.org/
Tichy, W.F.: RCS, http://www.cs.purdue.edu/homes/trinkle/rcs/
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)
The Eclipse Foundation: Eclipse Java Development Tools (JDT) Subproject. http://www.eclipse.org/jdt/
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)
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)
The Apache Software Foundation: Jakarta Commons (1999), http://jakarta.apache.org/commons/
Author information
Authors and Affiliations
Editor information
Rights 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)