DocumentCode :
351609
Title :
Automatic method refactoring using weighted dependence graphs
Author :
Maruyama, Katsuhisa ; Shima, Ken-ichi
Author_Institution :
NTT Software Labs., Tokyo, Japan
fYear :
1999
fDate :
22-22 May 1999
Firstpage :
236
Lastpage :
245
Abstract :
While refactoring makes frameworks more reusable, it is complex to do by hand. This paper presents a mechanism that automatically refactors methods in object-oriented frameworks by using weighted dependence graphs, whose edges are weighted based on the modification histories of the methods. To find the appropriate boundary between frozen spots and hot spots in the methods, the value of the weight varies based on whether the dependence in the original methods has been repeatedly preserved or destroyed in the methods of applications created by programmers. The mechanism constructs both template methods that contain the invariant dependence and hook methods that are separated by eliminating the variant dependence. The new template methods and hook methods tailored to each programmer save him/her from writing superfluous code when reusing a framework. Experimental results show a reduction rate of up to 22% in the number of statements a programmer has to write when creating several applications; this percentage is double that achievable by a conventional refactoring technique.
Keywords :
object-oriented programming; software reusability; automatic method refactoring; framework reuse; frozen spots; hook methods; hot spots; invariant dependence; modification histories; object-oriented frameworks; statements; template methods; weighted dependence graphs; Application software; Collaborative software; Concrete; History; Laboratories; Object oriented programming; Programming profession; Software reusability; Software systems; Writing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering, 1999. Proceedings of the 1999 International Conference on
Conference_Location :
Los Angeles, CA, USA
ISSN :
0270-5257
Print_ISBN :
1-58113-074-0
Type :
conf
Filename :
841013
Link To Document :
بازگشت