A language-independent software renovation framework

被引:17
作者
Di Penta, M [1 ]
Neteler, M
Antoniol, G
Merlo, E
机构
[1] Univ Sannio, Res Ctr Software Technol, Dept Engn, I-82100 Benevento, Italy
[2] IRST, I-38050 Trento, Italy
[3] Ecole Polytech Montreal, Dept Genie Informat, Montreal, PQ H3C 3A7, Canada
关键词
refactoring; software renovation; clustering; genetic algorithms; hill climbing;
D O I
10.1016/j.jss.2004.03.033
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
One of the undesired effects of software evolution is the proliferation of unused components, which are not used by any application. As a consequence, the size of binaries and libraries tends to grow and system maintainability tends to decrease. At the same time, a major trend of today's software market is the porting of applications on hand-held devices or, in general, on devices which have a limited amount of available resources. Refactoring and, in particular, the miniaturization of libraries and applications are therefore necessary. We propose a Software Renovation Framework (SRF) and a toolkit covering several aspects of software renovation, such as removing unused objects and code clones, and refactoring existing libraries into smaller more cohesive ones. Refactoring has been implemented in the SRF using a hybrid approach based on hierarchical clustering, on genetic algorithms and hill climbing, also taking into account the developers' feedback. The SRF aims to monitor software system quality in terms of the identified affecting factors, and to perform renovation activities when necessary. Most of the framework activities are language-independent, do not require any kind of source code parsing, and rely on object module analysis. The SRF has been applied to GRASS, which is a large open source Geographical Information System of about one million LOCs in size. It has significantly improved the software organization, has reduced by about 50% the average number of objects linked by each application, and has consequently also reduced the applications' memory requirements. (c) 2004 Elsevier Inc. All rights reserved.
引用
收藏
页码:225 / 240
页数:16
相关论文
共 41 条
[1]  
Anderberg M. R., 1973, CLUSTER ANAL APPL, DOI DOI 10.1016/C2013-0-06161-0
[2]  
[Anonymous], 1999, 6 WORKING C REVERSE
[3]  
[Anonymous], 1979, Computers and Intractablity: A Guide to the Theoryof NP-Completeness
[4]  
[Anonymous], INT C EV COMP
[5]   Extracting concepts from file names; a new file clustering criterion [J].
Anquetil, N ;
Lethbridge, T .
PROCEEDINGS OF THE 1998 INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 1998, :84-93
[6]   A comparison of graphs of concept for reverse engineering [J].
Anquetil, N .
8TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION (IWPC 2000), PROCEEDINGS, 2000, :231-240
[7]   Moving to smaller libraries via clustering and genetic algorithms [J].
Antoniol, G ;
Di Penta, M ;
Neteler, M .
SEVENTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2003, :307-316
[8]   Library miniaturization using static and dynamic information [J].
Antoniol, G ;
Di Penta, M .
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2003, :235-244
[9]   Analyzing cloning evolution in the Linux kernel [J].
Antoniol, G ;
Villano, U ;
Merlo, E ;
Di Penta, M .
INFORMATION AND SOFTWARE TECHNOLOGY, 2002, 44 (13) :755-765
[10]   A method to re-organize legacy systems via concept analysis [J].
Antoniol, G ;
Casazza, G ;
Di Penta, M ;
Merlo, E .
9TH INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 2001, :281-290