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
相关论文
共 50 条
  • [1] Improving the Teaching of Software Design with Automated Modelling of Syntactic Dependencies
    Steppe, Kevin
    Chin, Sally
    Tuck, Wong Wai
    2017 IEEE 30TH CONFERENCE ON SOFTWARE ENGINEERING EDUCATION AND TRAINING (CSEE&T), 2017, : 144 - 151
  • [2] Increasing Adaptability of Automation Control Software for Automated Material Flow Systems via Software Modularization
    Prieler, Julia
    Aicher, Thomas
    Vogel-Heuser, Birgit
    IECON 2017 - 43RD ANNUAL CONFERENCE OF THE IEEE INDUSTRIAL ELECTRONICS SOCIETY, 2017, : 3951 - 3956
  • [3] (Automated) Software Modularization Using Community Detection
    Hansen, Klaus Marius
    Manikas, Konstantinos
    SOFTWARE ARCHITECTURE (ECSA 2015), 2015, 9278 : 95 - 102
  • [4] Towards Automated Updates of Software Dependencies
    Jayasuriya, Dhanushka
    COMPANION PROCEEDINGS OF THE 2022 ACM SIGPLAN INTERNATIONAL CONFERENCE ON SYSTEMS, PROGRAMMING, LANGUAGES, AND APPLICATIONS: SOFTWARE FOR HUMANITY, SPLASH COMPANION 2022, 2022, : 29 - 33
  • [5] OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture
    Santos, Gustavo
    Anquetil, Nicolas
    Etien, Anne
    Ducasse, Stephane
    Valente, Marco Tulio
    2015 IEEE 3RD WORKING CONFERENCE ON SOFTWARE VISUALIZATION (VISSOFT), 2015, : 190 - 194
  • [6] MDM-BASED SOFTWARE MODULARIZATION BY ANALYSING INTER-PROJECT DEPENDENCIES
    Mirson, Alexander
    Skrypnyuk, Oleg
    Elezi, Fatos
    Lindemann, Udo
    INVEST ON VISUALIZATION, 2011, : 143 - +
  • [7] IMPROVING SOFTWARE RELIABILITY AND SECURITY WITH AUTOMATED ANALYSIS
    Anderson, Paul
    2008 IEEE MILITARY COMMUNICATIONS CONFERENCE: MILCOM 2008, VOLS 1-7, 2008, : 1174 - 1179
  • [8] SReYantra: Automated Software Requirement Inter-dependencies Elicitation, Analysis and Learning
    Deshpande, Gouri
    2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2019), 2019, : 186 - 187
  • [9] Automated Tagging of Software Projects using Bytecode and Dependencies
    Vargas-Baldrich, Santiago
    Linares-Vasquez, Mario
    Poshyvanyk, Denys
    2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, : 289 - 294
  • [10] Topology analysis of software dependencies
    Robillard, Martin P.
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2008, 17 (04)