Advanced refactorings in eclipse.

SPLASH(2004)

引用 7|浏览46
暂无评分
摘要
ABSTRACTWe will demonstrate several advanced refactorings for Java that have been implemented in the context of the Eclipse development environment for Java (see www.eclipse.org). These refactorings are semantics-preserving program transformations that are typical of the sorts of transformations object-oriented programmers perform manually in order to improve the structure of existing code, and to promote reuse, clarity, and extensibility. Our demonstration will consist of three parts: (i) a quick review of the implementation in Eclipse of several widely-used refactorings such as Extract Method, Introduce Factory and Change Method Signature as described in Fowler's seminal book on refactoring, (ii) a demonstration of generalization-related refactorings such as Extract Interface, for extracting an interface from a class in order to reduce client dependencies on implementation particulars, and Generalize Type, for remediating over-specific declarations, and (iii) a demonstration of Genericize Container Uses, a refactoring that we are currently developing for migrating occurrences of standard container classes such as ArrayList or HashMap in a user's program to instantiations of the generic versions of these container classes in Java 1.5 (e.g., ArrayList). This involves determining the element types that flow into each container object, modifying their declarations and allocations sites where possible, and removing casts that have been rendered redundant. The latter two categories of refactorings involve non-trivial static analysis, as well as challenging usability issues from a software engineering perspective, which reflect the complications that programmers face when performing the transformations manually. Therefore, during each demonstration, we will give a brief overview of the technical challenges that the refactorings present, along with highlights of the approach we took in addressing them. In particular, we will briefly describe a new piece of Eclipse infrastructure designed to help implement various kinds of context-sensitive and context-insensitive type and pointer analyses for Java.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要