metrics - 软件质量指标

标签 metrics software-quality

我想知道是否有人有用于衡量软件质量的指标方面的经验。我知道有代码复杂性指标,但我想知道是否有一种特定的方法来衡量它在其生命周期内的实际执行情况。我指的不是运行时性能,而是质量的衡量标准。也欢迎任何有助于收集这些信息的建议工具。

是否有测量方法可以回答这些问题:

  • 更改/增强软件的容易程度以及稳健性
  • 如果它是一个足够通用/通用的软件,那么它的可重用性如何
  • 有多少缺陷与代码相关
  • 是否需要重新设计/重新编码
  • 此代码存在多久了
  • 开发人员喜欢代码的设计和实现方式吗

看起来大部分内容都需要与 CM 和错误报告工具紧密结合。

最佳答案

如果按照您所说的方式衡量代码质量,这将是一项非常简单的工作,而且指标也很准确,那么可能就不再需要项目经理了。更重要的是,优秀管理者和糟糕管理者之间的区别非常小。因为事实并非如此,这只是表明准确了解软件的质量并不是一件容易的事。

您的问题涉及量化方式不同或量化非常主观的多个领域,因此您应该将这些问题分为与共同目标相对应的类别。然后,您可以为每个类别分配一个“重要性”因素,并从中得出一些指标。

例如,您可以使用 static code analysis tools用于衡量代码的语法质量并从中得出一些指标。

您还可以使用与版本控制系统集成的错误跟踪工具从错误/代码行中获取指标。

为了衡量编码过程的稳健性、重用性和效率,您可以评估每个开发功能的设计模式的使用情况(当然在有意义的情况下)。没有任何工具可以帮助您实现这一目标,但如果您监控软件的规模不断扩大并对其进行统计,它可以让您很好地了解项目的发展情况以及项目是否朝着正确的方向发展。引入代码审查程序可以帮助您更轻松地跟踪这些问题,并可能在开发过程的早期解决它们。这些数字可以是使用适当的设计模式实现的功能的百分比。

虽然指标可能非常抽象和主观,但如果您投入时间并始终尝试改进它们,它可以为您提供有用的信息。

关于软件流程中的指标,需要注意一些事项:

  1. 除非您做得很好,否则指标可能弊大于利。
  2. 指标很难做好。
  3. 您在使用指标来评估个人绩效或提供奖金计划时应谨慎。一旦你这样做了,每个人都会试图欺骗系统,而你的指标将被证明毫无值(value)。

关于metrics - 软件质量指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1060548/

相关文章:

language-agnostic - 什么代码度量使您相信提供的代码是 "crappy"?

javascript - 使用 JSON 数据为类别 x 轴设置 C3 子图范围?

cuda - 在windows下运行nvprof --metrics命令出现错误:cuda profiling error

java - Web 应用服务器监控

python - 使用 Python 进行实时串行数据记录 - 设计建议

software-quality - 软件消亡的迹象

windows - 如何在Windows的Minishift v1.5.1中启用指标

testing - 对于不测试代码的开发人员,您会怎么办?

software-quality - 软件开发成本金字塔