According to Martin Fowler, refactoring is a controlled technique for improving the design of an existing code base. However, the tasks of refactoring are difficult, and they require a lot of effort and experience. The goal of this project is to develop a semi-automatic tool that can perform some refactoring techniques for codes written in Java. Seven refactoring methods are implemented: Remove Assignments to Parameter, Introduce Parameter Object, Extract Class, Inline Class, Extract Interface, Replace Data Value with Object, and Replace Type Code with State/Strategy. The implementation consists of two parts: Object-Oriented Program Information Extraction System and code refactoring functions. The information extraction system is built on ANTLR-based Java grammar rules to parse Java files. This system is developed to provide the detailed information about classes, fields, methods, variables, and instances that are helpful data for refactoring. Refactoring functions use these extracted information and users’ input to make decision on changing the code.
|Commitee:||Lam, Shui, Murgolo, Frank|
|School:||California State University, Long Beach|
|Department:||Computer Engineering and Computer Science|
|School Location:||United States -- California|
|Source:||MAI 55/04M(E), Masters Abstracts International|
|Keywords:||Antlr parser, Code refactoring, Java, Object-oriented program information|
Copyright in each Dissertation and Thesis is retained by the author. All Rights Reserved
The supplemental file or files you are about to download were provided to ProQuest by the author as part of a
dissertation or thesis. The supplemental files are provided "AS IS" without warranty. ProQuest is not responsible for the
content, format or impact on the supplemental file(s) on our system. in some cases, the file type may be unknown or
may be a .exe file. We recommend caution as you open such files.
Copyright of the original materials contained in the supplemental file is retained by the author and your access to the
supplemental files is subject to the ProQuest Terms and Conditions of use.
Depending on the size of the file(s) you are downloading, the system may take some time to download them. Please be