晋武侠

副教授 、 硕士生导师

访问量:

最后更新时间:--

En 登录

晋武侠

副教授 、 硕士生导师

访问量:

最后更新时间:--

软件架构分析与质量 代表论文

中文主页
  • Wuxia Jin, DinghongZhong, Yuanfang Cai, Rick Kazman, Ting Liu. "Evaluating the Impact of Possible Dependencies on Architecture-level Maintainability".   IEEE Transactions on Software Engineering (TSE) 2023 (CCF A).

 

摘要中文版:
       软件实体之间的依赖关系是许多软件架构分析研究和架构分析工具的基础。动态类型语言,如Python、JavaScript和Ruby,容许缺乏显式的类型引用,这使得某些依赖关系无法通过对源代码的纯语法分析来区分。我们称这些为可能依赖,与源代码中直接表现出来的显式依赖形成鲜明对比。我们发现,现有的架构分析工具并没有考虑到可能依赖。因此,一个重要的问题是:这些缺失的可能依赖会在多大程度上影响架构分析?为了回答这个问题,我们对499个开源Python项目进行了研究,采用类型推断技术和类型提示实践来识别可能依赖。我们在三个软件维护上下文中调查了可能依赖的后果,包括捕捉版本历史记录中的共同变化关系、衡量架构可维护性,以及检测违反设计原则和影响可维护性的架构反模式。我们的研究揭示了可能依赖对架构级可维护性的影响是显著的——甚至高于显式依赖。我们的发现表明,架构分析及其工具应该考虑、评估并突出动态类型导致的可能依赖的影响。 

 

  • Wuxia Jin, Yuyun Zhang, Jiaowei Shang, Yi Hou, Ming Fan, Ting Liu. Identifying Code Changes for Architecture Decay via a Metric Forest Structure. ACM/IEEE International Conference on Technical Debt 2023 (TechDebt 2023). 

 
摘要中文版:
       在软件系统的演化过程中,随着变更的积累,架构腐化和架构债务是不可避免的。为了识别那些违反设计原则、降低软件可维护性的架构问题,开发了大量基于度量的方法。然而,正如业界从业者所指出的那样,基于度量的方法在检测架构问题时,缺乏可理解性、可解释性和指示性,在工业界应用时存在不足。为了解决这个问题,本文提出了dbMIT,用于识别可能导致架构衰退的代码变更。dbMIT首先通过语法依赖和演化依赖集成了如CK套件等流行的实现级别度量。然后,dbMIT构建了一个森林结构作为知识库,将这些度量联系在一起,其中关系贯穿多个粒度的度量。通过使用知识库中的预定义规则,dbMIT能够识别可能导致架构衰退的代码变更。由于使用了代码级度量的森林结构,开发者能够轻松理解度量结果,解释为何检测到的代码变更可能是导致架构衰退的原因,并指示如何解决这些问题。基于dbMIT,我们还贡献了一个基于Web的工具,用于测量、检测和可视化可能导致可维护性困难的软件架构。我们在收集的开源项目上的实验结果表明,dbMIT与现有方法相比具有良好的效果。
 

  • Jingwen Liu, Wuxia Jin * , Junhui Zhou, Qiong Feng, Ming Fan, Haijun Wang, Ting Liu. 3Erefactor: Effective, Efficient and Executable Refactoring Recommendation for Software Architectural Consistency, TSE 2024 (CCF A刊)


摘要中文版:
        随着软件的不断演进和业务功能的日益复杂,当实现架构偏离预期的架构设计时,就会出现架构不一致的问题。这种架构问题使得维护变得困难,并且需要付出大量的重构努力。为了帮助劳动密集型的重构,自动化重构得到了广泛关注,尤其是寻找最优重构方案。然而,目前仍然存在三个局限性:推荐的重构方案在解决架构一致性方面效果不足;重构方案的搜索过程效率低下;缺乏可执行的重构方案。为了解决这些问题,我们提出了一种有效、高效且可执行的重构推荐方法,称为3Erefactor,旨在解决软件架构一致性问题。为了实现有效的重构,3Erefactor使用NSGA-II生成重构方案,从模块级和实体级最小化架构不一致性。为了实现高效的重构,3Erefactor利用架构恢复技术定位需要重构的文件,帮助加速重构算法的收敛。为了实现可执行的重构,3Erefactor在重构方案的搜索和生成过程中设计了一套重构可执行性约束策略,包括改进重构前提条件和移除无效操作。我们在6个开源系统上评估了我们的方法。通过对实验数据的统计分析,我们的实验结果表明,3Erefactor生成的重构方案在减少架构不一致性数量、提高重构算法效率以及改善重构可执行性方面,性能明显优于 3 种最先进的方法。