跳转到内容

软件工程/质量/指标2 简介

来自维基教科书,开放的书籍,为开放的世界

本文介绍了各种软件包指标。 它们由 Robert Cecil Martin 在他的《敏捷软件开发:原则、模式与实践》一书(2002 年)中提到。

术语“软件包”,正如这里所使用的那样,指的是一组相关的类(在面向对象编程领域)。

  • 类和接口数量:软件包中具体类和抽象类(以及接口)的数量是软件包可扩展性的指标。
  • 传入耦合(Ca):依赖于软件包中类的其他软件包的数量是软件包责任的指标。
  • 传出耦合(Ce):软件包中的类依赖的其他软件包的数量是软件包独立性的指标。
  • 抽象性 (A):分析软件包中抽象类(以及接口)数量与分析软件包中类总数之比。此指标的范围为 0 到 1,其中 A=0 表示完全具体的软件包,A=1 表示完全抽象的软件包。
  • 不稳定性 (I):传出耦合 (Ce) 与总耦合 (Ce + Ca) 之比,使得 I = Ce / (Ce + Ca)。此指标是软件包对变化的弹性的指标。此指标的范围为 0 到 1,其中 I=0 表示完全稳定的软件包,I=1 表示完全不稳定的软件包。
  • 与主序列的距离 (D):软件包从理想化线 A + I = 1 的垂直距离。此指标是软件包在抽象性和稳定性之间平衡的指标。位于主序列上的软件包在其抽象性和稳定性方面具有最佳平衡。理想的软件包要么完全抽象且稳定 (x=0, y=1),要么完全具体且不稳定 (x=1, y=0)。此指标的范围为 0 到 1,其中 D=0 表示与主序列重合的软件包,D=1 表示与主序列尽可能远的软件包。
  • 软件包依赖循环:软件包依赖循环以及参与软件包依赖循环的软件包的层次路径将被报告。

参考资料

[编辑 | 编辑源代码]
  • Robert Cecil Martin (2002). 敏捷软件开发:原则、模式与实践. Pearson Education. ISBN 0-13-597444-5.
[编辑 | 编辑源代码]
  • OO 指标教程用示例解释了软件包指标
  • JHawk - Java 指标工具,所有最重要的代码指标。Eclipse、独立和命令行版本
  • Lattix - 支持各种架构指标(包括软件包依赖指标)的架构工具。
  • NDepend - 支持软件包依赖指标的 .NET 应用程序。
  • CppDepend - 支持所有最重要的代码指标的 C++ 指标工具。
  • JDepend - 支持软件包依赖指标的 Java 应用程序。
  • STAN - Java 结构分析。Eclipse 集成和独立的可视化依赖分析、质量指标和报告。
  • SourceMonitor - 一些用于 C++、C、C#、VB.NET、Java、Delphi、Visual Basic (VB6)
  • PHP Depend - 支持软件包依赖指标的 JDepend 的 PHP 版本。
华夏公益教科书