跳到主要导航 跳到搜索 跳到主要内容

Evaluating the Impact of Possible Dependencies on Architecture-Level Maintainability

  • Wuxia Jin
  • , Dinghong Zhong
  • , Yuanfang Cai
  • , Rick Kazman
  • , Ting Liu
  • Xi'an Jiaotong University
  • Drexel University
  • University of Hawai'i at Mānoa

科研成果: 期刊稿件文章同行评审

13 引用 (Scopus)

摘要

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
期刊IEEE Transactions on Software Engineering
49
3
DOI
出版状态已出版 - 1 3月 2023

学术指纹

探究 'Evaluating the Impact of Possible Dependencies on Architecture-Level Maintainability' 的科研主题。它们共同构成独一无二的指纹。

引用此