Design and implementation of an extensible and modifiable refactoring tool

作者: K. Maruyama , S. Yamamoto

DOI: 10.1109/WPC.2005.17

关键词: Computer scienceProgramming languageSoftware engineeringSoftware maintenanceCode refactoringXMLSource codeObject-oriented programmingProgram Dependence GraphAbstract syntax treeControl flow graph

摘要: Refactoring is an essential and useful practice in developing maintaining object-oriented software since it improves the design of existing code without changing its external behavior. Therefore, several refactoring tools tend to be integrated into contemporary IDEs. However, these represent source as abstract syntax tree (AST) thus their implementations are hard extend modify. This paper presents Jrbx, a tool that uses fine-grained XML representation supports stylized manipulations representation. Moreover, Jrbx aggressively exploits control flow graphs (CFGs) program dependence (PDGs) for both precondition checking change creation. The use XML, CFG, PDG representations makes implementation more understandable reusable, facilitates developers creating new refactorings modifying ones.

参考文章(24)
William F. Opdyke, Refactoring object-oriented frameworks PhD thesis, University of Illinois at Urbana-Champaign. ,(1992)
Ravi Sethi, Jeffrey D. Ullman, Alfred V. Aho, Compilers: Principles, Techniques, and Tools ,(1986)
Tom Mens, Serge Demeyer, Dirk Janssens, Formalising Behaviour Preserving Program Transformations international conference on graph transformation. pp. 286- 301 ,(2002) , 10.1007/3-540-45832-8_22
A. Lakhotia, E.U. Kumar, Abstracting stack to detect obfuscated calls in binaries source code analysis and manipulation. pp. 17- 26 ,(2004) , 10.1109/SCAM.2004.1
Thomas Ball, Susan Horwitz, Slicing Programs with Arbitrary Control-flow AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging. ,vol. 749, pp. 206- 222 ,(1993) , 10.1007/BFB0019410
Ralph Johnson, Donald Bradley Roberts, Practical analysis for refactoring University of Illinois at Urbana-Champaign. ,(1999)
I.D. Baxter, C. Pidgeon, M. Mehlich, DMS/spl reg/: program transformations for practical scalable software evolution international conference on software engineering. pp. 625- 634 ,(2004) , 10.1109/ICSE.2004.1317484
Richard Helm, John Vlissides, Ralph Johnson, Erich Gamma, Design Patterns: Elements of Reusable Object-Oriented Software ,(1994)
William G. Griswold, David Notkin, Automated assistance for program restructuring ACM Transactions on Software Engineering and Methodology. ,vol. 2, pp. 228- 269 ,(1993) , 10.1145/152388.152389
Mary Jean Harrold, James A. Jones, Tongyu Li, Donglin Liang, Ashish Gujarathi, Regression test selection for Java software conference on object-oriented programming systems, languages, and applications. ,vol. 36, pp. 312- 326 ,(2001) , 10.1145/504282.504305