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 条
[11]  
Bui TN, 1996, IEEE T COMPUT, V45, P841, DOI 10.1109/12.508322
[12]  
Cordy JR, 2003, PROG COMPREHEN, P196
[13]   Multi-objective Genetic Algorithms: Problem Difficulties and Construction of Test Problems [J].
Deb, Kalyanmoy .
EVOLUTIONARY COMPUTATION, 1999, 7 (03) :205-230
[14]  
DIPENTA M, 2002, P IEEE WORK C REV EN, P128
[15]  
Doval D., 1999, STEP '99. Proceedings Ninth International Workshop Software Technology and Engineering Practice, P73, DOI 10.1109/STEP.1999.798481
[16]  
Goldberg D.E., 1989, OPTIMIZATION MACHINE
[17]  
GORDON A, 1985, CLASSIFICATION
[18]  
HARMAN M, 2002, AAAI GEN EV COMP C G, P82
[19]  
Kaufman L., 1990, Finding Groups in Data: An Introduction to Cluster Analysis, DOI DOI 10.1002/9780470316801
[20]  
KRONE M, 1994, PROC INT CONF SOFTW, P49, DOI 10.1109/ICSE.1994.296765