论文标题

警告:违规症状表明建筑侵蚀

Warnings: Violation Symptoms Indicating Architecture Erosion

论文作者

Li, Ruiyin, Liang, Peng, Avgeriou, Paris

论文摘要

随着软件系统的发展,其体系结构倾向于降级,并逐渐阻碍软件维护和进化活动,并对系统的质量属性产生负面影响。建筑侵蚀现象背后的主要根本原因来自违规症状(例如违反建筑模式)。先前的研究着重于使用体系结构一致性检查方法检测软件系统中的违规行为。但是,代码审查评论也是丰富的资源,可能包含有关违反建筑的广泛讨论。在这项工作中,我们从开发商的角度研究了法规评论评论中违反建筑症状的特征。我们采用了与违规症状有关的一组关键字,从OpenStack和QT社区中的四个流行的OSS项目中收集606(21,583个)代码审查评论。我们手动分析了收集的606条评论,以提供违规症状的类别和语言模式,以及开发人员如何解决这些症状的反应。我们的发现表明:(1)开发人员在代码审查过程中讨论了10种违规症状; (2)表达违规症状的经常使用的术语是“不一致的”和“侵犯”,最常用的语言模式是问题发现; (3)重构和删除代码是解决违规症状的主要措施(90%),而开发人员忽略了一些违规症状。我们的发现表明,对违规症状的调查可以帮助研究人员更好地了解建筑侵蚀的特征,并促进开发和维护活动,而开发人员应明确管理违规症状,不仅用于解决现有的违反现有建筑的侵犯,还可以防止未来的违规行为。

As a software system evolves, its architecture tends to degrade, and gradually impedes software maintenance and evolution activities and negatively impacts the quality attributes of the system. The main root cause behind architecture erosion phenomenon derives from violation symptoms (such as violations of architecture pattern). Previous studies focus on detecting violations in software systems using architecture conformance checking approaches. However, code review comments are also rich sources that may contain extensive discussions regarding architecture violations. In this work, we investigated the characteristics of architecture violation symptoms in code review comments from the developers' perspective. We employed a set of keywords related to violation symptoms to collect 606 (out of 21,583) code review comments from four popular OSS projects in the OpenStack and Qt communities. We manually analyzed the collected 606 review comments to provide the categories and linguistic patterns of violation symptoms, as well as the reactions how developers addressed them. Our findings show that: (1) 10 categories of violation symptoms are discussed by developers during the code review process; (2) The frequently-used terms of expressing violation symptoms are "inconsistent" and "violate", and the most frequently-used linguistic pattern is Problem Discovery; (3) Refactoring and removing code are the major measures (90%) to tackle violation symptoms, while a few violation symptoms were ignored by developers. Our findings suggest that the investigation of violation symptoms can help researchers better understand the characteristics of architecture erosion and facilitate the development and maintenance activities, and developers should explicitly manage violation symptoms, not only for addressing the existing architecture violations but also preventing future violations.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源