Improving Software Modularization via Automated Analysis of Latent Topics and Dependencies

被引:82
作者
Bavota, Gabriele [1 ]
Gethers, Malcom [2 ]
Oliveto, Rocco [3 ]
Poshyvanyk, Denys [4 ]
De Lucia, Andrea [1 ]
机构
[1] Univ Salerno, Fisciano, SA, Italy
[2] Univ Maryland, Baltimore, MD 21201 USA
[3] Univ Molise, Pesche, IS, Italy
[4] Coll William & Mary, Williamsburg, VA USA
基金
美国国家科学基金会;
关键词
Documentation; Management; Software modularization; refactoring; relational topic modeling; empirical studies; recommendation system; LEGACY SYSTEMS; MODELS; INFORMATION; RECOVERY;
D O I
10.1145/2559935
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Oftentimes, during software maintenance the original program modularization decays, thus reducing its quality. One of the main reasons for such architectural erosion is suboptimal placement of source-code classes in software packages. To alleviate this issue, we propose an automated approach to help developers improve the quality of software modularization. Our approach analyzes underlying latent topics in source code as well as structural dependencies to recommend (and explain) refactoring operations aiming at moving a class to a more suitable package. The topics are acquired via Relational Topic Models (RTM), a probabilistic topic modeling technique. The resulting tool, coined as R3 (Rational Refactoring via RTM), has been evaluated in two empirical studies. The results of the first study conducted on nine software systems indicate that R3 provides a coupling reduction from 10% to 30% among the software modules. The second study with 62 developers confirms that R3 is able to provide meaningful recommendations (and explanations) for move class refactoring. Specifically, more than 70% of the recommendations were considered meaningful from a functional point of view.
引用
收藏
页数:33
相关论文
共 66 条
[1]   Automatic Package Coupling and Cycle Minimization [J].
Abdeen, Hani ;
Ducasse, Stephane ;
Sahraoui, Houari ;
Alloui, Ilham .
16TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE 2009), 2009, :103-+
[2]  
[Anonymous], PRACTICAL NONPARAMET
[3]  
[Anonymous], 2010, IEEE INT C SOFTWARE
[4]  
Anquetil N., 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303), P235, DOI 10.1109/WCRE.1999.806964
[5]   Legacy Software Restructuring: Analyzing a Concrete Case [J].
Anquetil, Nicolas ;
Laval, Jannik .
2011 15TH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING (CSMR), 2011, :279-286
[6]   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
[7]  
Baeza-Yates R, 1999, MODERN INFORM RETRIE, V463
[8]   Mining Search Topics from a Code Search Engine Usage Log [J].
Bajracharya, Sushil ;
Lopes, Cristina .
2009 6TH IEEE INTERNATIONAL WORKING CONFERENCE ON MINING SOFTWARE REPOSITORIES, 2009, :111-120
[9]   Theory of Aspects as Latent Topics [J].
Baldi, Pierre F. ;
Lopes, Cristina V. ;
Linstead, Erik J. ;
Bajracharya, Sushil K. .
ACM SIGPLAN NOTICES, 2008, 43 (10) :543-562
[10]  
Bavota G., 2010, Proceedings 17th Working Conference on Reverse Engineering (WCRE 2010), P195, DOI 10.1109/WCRE.2010.29