设计反模式与设计模式变异及其变更与缺陷倾向性研究
软件工程
2021-04-02 v1
摘要
在软件演化过程中,缺乏经验的开发人员在修改软件系统以修复缺陷或根据需求变化添加新功能时,可能会引入设计反模式。开发人员也可能使用设计模式来提升软件质量,或作为某些设计反模式的潜在补救手段。因此,设计模式与设计反模式由开发人员引入、移除并相互变异。许多研究调查了设计模式与设计反模式的演化及其对软件开发的影响。然而,它们孤立地研究设计模式或设计反模式,未考虑其变异以及这些变异对软件质量的影响。因此,我们报告了关于设计模式与设计反模式之间双向变异及其对这些变异在软件变更与缺陷倾向性上影响的研究。我们分析了七个具有不同规模、演化历史和应用领域的 Java 软件系统的快照。我们构建了马尔可夫模型以捕捉不同设计模式与设计反模式变异发生的概率。我们的研究结果表明:(1) 设计模式与设计反模式会变异为其他设计模式和/或设计反模式;(2) 某些变更类型主要触发设计模式与设计反模式的变异(重命名以及对注释、声明和运算符的更改);(3) 某些设计反模式与设计模式的变异在特定上下文中更容易产生缺陷。这些结果为设计模式与设计反模式的演化及其对软件系统变更与缺陷倾向性的影响提供了重要见解。
引用
@article{arxiv.2104.00058,
title = {Investigating Design Anti-pattern and Design Pattern Mutations and Their Change- and Fault-proneness},
author = {Zeinab and Kermansaravi and Md Saidur Rahman and Foutse Khomh and Fehmi Jaafar and Yann-Gael Gueheneuc},
journal= {arXiv preprint arXiv:2104.00058},
year = {2021}
}