Evaluating the Impact of Possible Dependencies on Architecture-Level Maintainability

被引:6
作者
Jin, Wuxia [1 ,2 ]
Zhong, Dinghong [2 ]
Cai, Yuanfang [3 ]
Kazman, Rick [4 ]
Liu, Ting [2 ]
机构
[1] Xi An Jiao Tong Univ, Sch Software Engn, Xian 710049, Shaanxi, Peoples R China
[2] Xi An Jiao Tong Univ, Minist Educ Key Lab Intelligent Networks, Network Secur MOEKLINNS, Xian 710049, Shaanxi, Peoples R China
[3] Drexel Univ, Dept Comp Sci, Philadelphia, PA 19104 USA
[4] Univ Hawaii, Dept Informat Technol Management, Honolulu, HI 96822 USA
基金
中国国家自然科学基金; 中国博士后科学基金; 国家重点研发计划;
关键词
Codes; !text type='Python']Python[!/text; Computer architecture; Syntactics; !text type='Java']Java[!/text; Software architecture; Annotations; Dynamic typing; possible dependency; software architecture; empirical study; SOFTWARE; INFORMATION;
D O I
10.1109/TSE.2022.3171288
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dependencies among software entities are the foundation for much of the research on software architecture analysis and architecture analysis tools. Dynamically typed languages, such as Python, JavaScript and Ruby, tolerate the lack of explicit type references, making certain dependencies indiscernible by a purely syntactic analysis of source code. We call these possible dependencies, in contrast with the explicit dependencies that are directly manifested in source code. We find that existing architecture analysis tools have not taken possible dependencies into consideration. An important question therefore is: to what extent will these missing possible dependencies impact architecture analysis?To answer this question, we conducted a study of 499 open-source Python projects, employing type inference techniques and type hint practices to discern possible dependencies. We investigated the consequences of possible dependencies in three software maintenance contexts, including capturing co-change relations recorded in revision history, measuring architectural maintainability, and detecting architecture anti-patterns that violate design principles and impact maintainability. Our study revealed that the impact of possible dependencies on architecture-level maintainability is substantial-higher than that of explicit dependencies. Our findings suggest that architecture analysis and tools should take into account, assess, and highlight the impacts of possible dependencies caused by dynamic typing.
引用
收藏
页码:1064 / 1085
页数:22
相关论文
共 98 条
[21]   A METRICS SUITE FOR OBJECT-ORIENTED DESIGN [J].
CHIDAMBER, SR ;
KEMERER, CF .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1994, 20 (06) :476-493
[22]   Technical Debt Prioritization using Predictive Analytics [J].
Codabux, Zadia ;
Williams, Byron J. .
2016 IEEE/ACM 38TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING COMPANION (ICSE-C), 2016, :704-706
[23]   Investigating the Impact of Multiple Dependency Structures on Software Defects [J].
Cui, Di ;
Liu, Ting ;
Cai, Yuanfang ;
Zheng, Qinghua ;
Feng, Qiong ;
Jin, Wuxia ;
Guo, Jiaqi ;
Qu, Yu .
2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 2019, :584-595
[24]  
docs P., 2022, US
[25]   Android Malware Familial Classification and Representative Sample Selection via Frequent Subgraph Analysis [J].
Fan, Ming ;
Liu, Jun ;
Luo, Xiapu ;
Chen, Kai ;
Tian, Zhenzhou ;
Zheng, Qinghua ;
Liu, Ting .
IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, 2018, 13 (08) :1890-1905
[26]   DAPASA: Detecting Android Piggybacked Apps Through Sensitive Subgraph Analysis [J].
Fan, Ming ;
Liu, Jun ;
Wang, Wei ;
Li, Haifei ;
Tian, Zhenzhou ;
Liu, Ting .
IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY, 2017, 12 (08) :1772-1785
[27]   Active Hotspot: An Issue-Oriented Model to Monitor Software Evolution and Degradation [J].
Feng, Qiong ;
Cai, Yuanfang ;
Kazman, Rick ;
Cui, Di ;
Liu, Ting ;
Fang, Hongzhou .
34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019), 2019, :986-997
[28]  
Finder D., 2022, US
[29]   Arcan: a Tool for Architectural Smells Detection [J].
Fontana, Francesca Arcelli ;
Pigazzini, Ilaria ;
Roveda, Riccardo ;
Tamburri, Damian ;
Zanoni, Marco ;
Di Nitto, Elisabetta .
2017 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE WORKSHOPS (ICSAW), 2017, :282-285
[30]   Automatic Detection of Instability Architectural Smells [J].
Fontana, Francesca Arcelli ;
Pigazzini, Ilaria ;
Roveda, Riccardo ;
Zanoni, Marco .
32ND IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2016), 2016, :433-437