Font Size: a A A

Research On Software Refactoring

Posted on:2005-06-12Degree:DoctorType:Dissertation
Country:ChinaCandidate:J C ZhangFull Text:PDF
GTID:1118360125450063Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Software refactoring is a kind of program transformations with the purpose of improving the structure of the program while preserving its behavior. The researches and applications of software refactoring are important to software evolution, maintenance and reuse. Software refactoring provides programmers guidelines of coding in elegant styles, as well as in a fashion in which codes are easier to be reused and extended. At the same time, proper application of software refactoring may alleviate the burdens of coding and debugging, so as to improve the software productivity. The research on software refactoring offers great prospects in constructing software development environment with enhanced practicability. On the basis of summarizing related works, with objectives of enriching refactoring and improving software maintenance and reuse, this paper researches into software refactoring on following 5 aspects: (1) On the aspect of enriching refactoring methods related to language mechanisms, a set of primitive refactoring related to Java interface mechanism are proposed. With primitive refactoring and other existed refactoring, composite refactorings could be constructed. (2) On the aspect of improving language mechanisms, characters of crosscutting concerns related to interfaces are analyzed to present an approach of mining for interface oriented crosscutting concerns. The results of mining could be applied in refactoring of AspectJ programs. (3) On the aspect of taking advantage of new programming language mechanisms to refactoring, making use of Aspect mechanism in AspectJ language, a method of encapsulating crosscutting concerns related to interface mechanism is presented. At the same time, some self-refactoring problems of Aspect are also discussed. (4) On the aspect of enriching typical design methods, typical design and implement methods on aggregation and association relationships are summarized, which can be used to accomplish goals software refactoring. (5) On the aspect of enriching approaches of programming understanding, a method of reversely extracting object state models with controllable granularity is presented.The main conclusions and contributes of this paper is listed as follows:1. The state of arts in software refactoring research is illustrated.Based on a comprehensive summarization of the researches on software refactoring in recent ten years, this paper pointed out the primary problems in refactoring realm, from various aspects such as understanding programming structures, supporting new programming language mechanisms, and objectives of classic software refactoring, etc.2. A Java-interface-oriented software refactoring approach is proposed.Some existing approaches and automation tools for software refactoring are primarily based on a set of refactoring primitives presented by Opdyke for C++, while no interface supporting is included in this set of primitives. Interface, however, is one of the most important concepts in object-oriented methods. Properly using the interface mechanism in Java programs is one of the most significant factors affecting the program structure. Based on summarizing the behaviors of interface-related bad program structures, following the Java language specification, this paper proposes a set of primitive refactorings related to Java interface mechanism, and introduces the situations where they may be used. Since every primitive refactoring is behavior-preserving, the refactoring method composed of these primitives also preserves the program behaviors. Moreover, because the interface mechanism of Java language can resolve most problems of multiple inheritance, this set of refactoring primitives also extend existing refactoring methods to multiple inheritance systems.3. An approach on interface-related mining for crosscutting concerns is proposed.This paper summarized the crosscutting characters that are manifested in implementation of the concerns in abstract levels, and a strong emphasis has been laid on an analysis of crosscutting concerns relate...
Keywords/Search Tags:Software Refactoring, Software Maintenance, Program Transformation, Behavior-Preservation, Program Structure Improvement, Primitive Refactorings, Composite Refactorings, Interface in Java, Aspect-Oriented Paradigm, Cross-Cutting Concerns, Aspect Mining
PDF Full Text Request
Related items