中文

PairSmell:一种审视软件模块化结构的新视角

软件工程 2024-11-05 v1

摘要

改进现有系统的模块化结构引起了大量研究兴趣,主要集中在两种方法:(1)软件模块化和(2)识别设计问题(如坏味)作为重构机会。然而,重新模块化解决方案通常需要对原始模块进行大量修改,而识别出的设计问题通常过于粗略,无法指导重构策略。结合上述两种方法,本文引入了一个新概念PairSmell,利用模块化来定位需要重构的设计问题。我们关注模块化原则的一个细粒度但基本的方面——模块关系(MR),即一对实体是分离还是共置。主要假设是,如果一对实体的实际MR违反了其“适配MR”,即多个模块化工具(作为评判者)达成一致的MR,则可视为可能有缺陷的架构决策,需要进一步检查。为了量化和评估PairSmell,我们在20个C/C++和Java项目上进行了实证研究,使用4个成熟的模块化工具识别两种形式的PairSmell:不适配分离对InSep和不适配共置对InCol。我们对260,003个实例的研究揭示了其架构影响显著:(1)平均而言,14.60%和20.44%的软件实体分别涉及InSep和InCol MR;(2)InSep对相关的共变更比适当分离对多190%,而InCol对相关的共变更比适当共置对少35%,均表明成功识别了有害软件质量的模块结构;(3)两种形式的PairSmell在软件演化过程中持续存在。

关键词

引用

@article{arxiv.2411.01012,
  title  = {PairSmell: A Novel Perspective Inspecting Software Modular Structure},
  author = {Chenxing Zhong and Daniel Feitosa and Paris Avgeriou and Huang Huang and Yue Li and He Zhang},
  journal= {arXiv preprint arXiv:2411.01012},
  year   = {2024}
}

备注

Accepted by 2025 IEEE/ACM 47th International Conference on Software Engineering (ICSE'25)