Using structural and semantic measures to improve software modularization

被引:53
作者
Bavota, Gabriele [1 ]
De Lucia, Andrea [2 ,3 ,4 ]
Marcus, Andrian [5 ]
Oliveto, Rocco [6 ,7 ,8 ]
机构
[1] Univ Salerno, Dept Math & Informat, Fisciano Sa, Italy
[2] Univ Salerno, Fisciano Sa, Italy
[3] Univ Salerno, Dept Engn, Fisciano Sa, Italy
[4] Univ Salerno, Res Ctr Software Technol RCOST, Fisciano Sa, Italy
[5] Wayne State Univ, Detroit, MI 48202 USA
[6] Univ Molise, Dept Math & Informat, Pesche Is, Italy
[7] Univ Molise, Fac Sci, Pesche Is, Italy
[8] Univ Molise, Dept Stat, Pesche Is, Italy
基金
美国国家科学基金会;
关键词
Software re-modularization; Information-flow-based coupling; Conceptual coupling between classes; Empirical studies; CLUSTERING ALGORITHMS; LEGACY SYSTEMS; INFORMATION; COHESION;
D O I
10.1007/s10664-012-9226-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Changes during software evolution and poor design decisions often lead to packages that are hard to understand and maintain, because they usually group together classes with unrelated responsibilities. One way to improve such packages is to decompose them into smaller, more cohesive packages. The difficulty lies in the fact that most definitions and interpretations of cohesion are rather vague and the multitude of measures proposed by researchers usually capture only one aspect of cohesion. We propose a new technique for automatic re-modularization of packages, which uses structural and semantic measures to decompose a package into smaller, more cohesive ones. The paper presents the new approach as well as an empirical study, which evaluates the decompositions proposed by the new technique. The results of the evaluation indicate that the decomposed packages have better cohesion without a deterioration of coupling and the re-modularizations proposed by the tool are also meaningful from a functional point of view.
引用
收藏
页码:901 / 932
页数:32
相关论文
共 50 条
[11]   Comparison of Graph Clustering Algorithms for Recovering Software Architecture Module Views [J].
Bittencourt, Roberto Almeida ;
Guerrero, Dalton Dario Serey .
13TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING: CSMR 2009, PROCEEDINGS, 2009, :251-254
[12]   Decomposing legacy systems into objects: an eclectic approach [J].
Canfora, G ;
Cimitile, A ;
De Lucia, A ;
Di Lucca, GA .
INFORMATION AND SOFTWARE TECHNOLOGY, 2001, 43 (06) :401-412
[13]   SOFTWARE SALVAGING AND THE CALL DOMINANCE TREE [J].
CIMITILE, A ;
VISAGGIO, G .
JOURNAL OF SYSTEMS AND SOFTWARE, 1995, 28 (02) :117-127
[14]   Investigating the use of Lexical Information for Software System Clustering [J].
Corazza, Anna ;
Di Martino, Sergio ;
Maggio, Valerio ;
Scanniello, Giuseppe .
2011 15TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2011, :35-44
[15]   A Probabilistic based Approach towards Software System Clustering [J].
Corazza, Anna ;
Di Martino, Sergio ;
Scanniello, Giuseppe .
14TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR 2010), 2010, :88-96
[16]   Improving IR-based Traceability Recovery Using Smoothing Filters [J].
De Lucia, Andrea ;
Di Penta, Massimiliano ;
Oliveto, Rocco ;
Panichella, Annibale ;
Panichella, Sebastiano .
2011 IEEE 19TH INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC), 2011, :21-30
[17]   Using Structural and Semantic Metrics to Improve Class Cohesion [J].
De Lucia, Andrea ;
Oliveto, Rocco ;
Vorraro, Luigi .
2008 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, 2008, :27-36
[18]  
DEERWESTER S, 1990, J AM SOC INFORM SCI, V41, P391, DOI 10.1002/(SICI)1097-4571(199009)41:6<391::AID-ASI1>3.0.CO
[19]  
2-9
[20]  
DUCASSE S, 2007, P 23 IEEE INT C SOFT, P94