[论文解读] Software Architecture Metrics: a literature review
本篇系统文献回顾识别并评估了用于在设计初期及开发过程中评估质量的软件架构度量指标。该研究按可维护性、可扩展性和性能等质量属性对度量指标进行分类,提供其使用指南,并强调其在实际应用场景中的相关性,同时指出了工业界采用率和实证验证方面的局限性。
In Software Engineering, early detection of architectural issues is key. It helps mitigate the risk of poor performance, and lowers the cost of repairing these issues. Metrics give a quick overview of the project which helps designers with the detection of flaws or degradation in their architecture. Even though studies unveiled architectural metrics more than 25 years ago, they have not yet been embraced by the industry nor the open source community. In this study, we aim at conducting a review of existing metrics focused on the software architecture for evaluating quality, early in the design flow and throughout the project's lifetime. We also give guidelines of their usage and study their relevance in different contexts.
研究动机与目标
- 识别并整理适用于早期阶段质量评估的现有软件架构度量指标。
- 评估这些度量指标与关键软件架构质量属性的相关性与代表性。
- 为架构师提供在设计与开发过程中应用这些度量指标的实际指导。
- 评估度量指标在多大程度上反映了实际的架构质量特征,特别是在敏捷与迭代开发环境中的表现。
- 突出指出架构度量在工业界采用率和实证验证方面的不足,尤其是与SonarQube等代码级工具相比。
提出的方法
- 遵循系统文献回顾(SLR)方法的最佳实践,包括正向与反向雪球法。
- 聚焦过去25年内经过同行评审的出版物,筛选出以架构级度量为中心的研究。
- 根据其评估的质量属性(如可维护性、可扩展性、简洁性、可重用性和性能)对度量指标进行分类。
- 评估每项度量指标的理论基础、实际可用性及其在真实项目或案例研究中的验证情况。
- 评估有效性威胁,包括时间限制以及基于标题选择论文可能产生的偏倚。
- 将度量指标与现有代码级工具(如SonarQube)进行比较,突出当前工具链在设计级度量支持方面的缺失。
实验结果
研究问题
- RQ1软件设计师可用于评估软件架构质量的度量指标有哪些?
- RQ2这些度量指标在多大程度上能代表架构的质量特征,如可维护性、可扩展性和性能?
- RQ3这些度量指标在真实软件开发环境中,特别是在敏捷环境中的相关性与有效性如何?
- RQ4尽管具有理论价值,为何架构度量在工业界或开源社区中未被广泛采用?
- RQ5当前度量指标在实证验证和集成到设计工作流方面存在哪些局限性?
主要发现
- 整理出一份全面的架构度量指标清单,按可维护性、可扩展性和性能等质量属性进行分类。
- 许多度量指标缺乏在真实项目中的实证验证,限制了其在工业环境中的可信度。
- 基于代码语法的度量指标(如服务粒度)在早期设计阶段难以应用,降低了其实际效用。
- 工具支持存在显著缺口——现有工具如SonarQube专注于代码级度量,而非设计级的架构度量。
- 研究发现,尽管度量指标有助于早期发现架构缺陷,但由于缺乏验证和工具集成,其采用率仍较低。
- 结合多个度量指标可对架构质量进行量化评估,从而支持更优的设计决策,并促进不同设计方案之间的比较。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。