Ranking architecturally critical agglomerations of code smells

被引:19
作者
Vidal, Santiago [1 ]
Oizumi, Willian [2 ]
Garcia, Alessandro [2 ]
Diaz Pace, Andres [1 ]
Marcos, Claudia [3 ]
机构
[1] ISISTAN CONICET, Buenos Aires, DF, Argentina
[2] Pontificia Univ Catolica Rio de Janeiro, Rio de Janeiro, RJ, Brazil
[3] ISISTAN CIC, Buenos Aires, DF, Argentina
关键词
Code smells; Agglomerations; Software architecture;
D O I
10.1016/j.scico.2019.07.003
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code smells are symptoms in the source code that could help to identify architectural problems. However, developers may feel discouraged to analyze multiple smells if they are not able to focus their attention on a small set of source code locations. Unfortunately, current techniques fall short in assisting developers to prioritize smelly locations that are likely to indicate architectural problems. Furthermore, developers often have trouble analyzing interconnected smells that contribute together to realize an architectural problem. To deal with these issues, this work presents and evaluates a suite of five criteria for ranking groups of code smells as indicators of architectural problems in evolving systems. These criteria were implemented in a tool called JSpIRIT. In a first experiment, we have assessed the criteria in the context of 23 versions of 4 systems and analyzed their effectiveness for revealing architectural problem locations. In addition, we conducted a second experiment for analyzing similarities between the prioritization provided by developers and the prioritization provided by our best performing criterion. The results provide evidence that one of the proposed criteria helped to correctly prioritize more than 80 code locations of architectural problems, alleviating tedious manual inspection of the source code vis-a-vis with the architecture. (C) 2019 Elsevier B.V. All rights reserved.
引用
收藏
页码:64 / 85
页数:22
相关论文
共 45 条
[1]  
[Anonymous], 2002, Mallet
[2]  
[Anonymous], J SOFT ENG RES DEV
[3]  
[Anonymous], 2014, AUTOM SOFTW ENG, DOI DOI 10.1007/S10515-014-0175-X
[4]  
Arcoverde R., 2013, 27 SBES
[5]  
Azadi U., 2019, INT C TECHN DEBT TEC
[6]  
Bass L., 2013, Software architecture in practice, V3rd
[7]   Investigating the evolution of code smells in object-oriented systems [J].
Chatzigeorgiou, Alexander ;
Manakos, Anastasios .
INNOVATIONS IN SYSTEMS AND SOFTWARE ENGINEERING, 2014, 10 (01) :3-18
[8]  
Choudhary A., 2016, 1 INT WORKSH TECHN D, P76
[9]   An Empirical Study of Architectural Decay in Open-Source Software [J].
Duc Minh Le ;
Link, Daniel ;
Shahbazian, Arman ;
Medvidovic, Nenad .
2018 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE (ICSA), 2018, :176-185
[10]  
Ducasse S., 2004, P 20 IEEE INT C SOFT