软件度量



软件度量框架基于三个原则:

  • 对要检查的实体进行分类
  • 确定相关的度量目标
  • 确定组织已达到的成熟度水平

对要检查的实体进行分类

在软件工程中,主要存在三类实体:它们是:

  • 过程
  • 产品
  • 资源

所有这些实体都具有内部和外部实体。

  • 内部属性是可以纯粹根据过程、产品或资源本身来衡量的属性。例如:大小、复杂性、模块间的依赖关系。

  • 外部属性是只能根据其与环境的关系来衡量的属性。例如:用户遇到的故障总数、搜索数据库并检索信息所需的时间。

可以为每个实体测量的不同属性如下:

过程

过程是软件相关活动的集合。以下是可以直接为过程测量的某些内部属性:

  • 过程或其一项活动持续时间

  • 与过程或其一项活动相关的努力

  • 在过程或其一项活动期间发生的特定类型事件的数量

过程的不同外部属性是成本、可控性、有效性、质量和稳定性。

产品

产品不仅是管理层承诺交付的项目,而且是在软件生命周期中产生的任何工件或文档。

不同的内部产品属性包括大小、工作量、成本、规范、长度、功能、模块化、可重用性、冗余性和语法正确性。其中,大小、工作量和成本比其他属性更容易衡量。

不同的外部产品属性包括可用性、完整性、效率、可测试性、可重用性、可移植性和互操作性。这些属性不仅描述代码,还描述支持开发工作的其他文档。

资源

这些是过程活动所需的实体。它可以是软件生产的任何输入。它包括人员、材料、工具和方法。

资源的不同内部属性包括年龄、价格、大小、速度、内存大小、温度等。不同的外部属性包括生产力、经验、质量、可用性、可靠性和舒适性等。

确定相关的度量目标

只有在特定度量有助于理解过程或其结果产品之一时,该度量才有用。只有在项目为过程和产品明确定义了目标后,才能改进过程或产品。对目标的清晰理解可用于根据过程成熟度框架,为给定项目生成建议的度量指标。

目标-问题-度量(GQM)范式

GQM 方法提供了一个包含以下三个步骤的框架:

  • 列出开发或维护项目的主要目标

  • 从每个目标中推导出必须回答的问题,以确定是否正在实现目标

  • 确定为了充分回答这些问题必须测量什么

为了使用 GQM 范式,我们首先表达组织的总体目标。然后,我们提出问题,以便知道答案,从而确定是否正在实现目标。之后,根据需要进行哪些测量来回答每个问题,分析每个问题。

典型的目标是用生产力、质量、风险、客户满意度等来表达的。目标和问题要根据其受众来构建。

为了帮助生成目标、问题和度量,Basili & Rombach 提供了一系列模板。

  • 目的 - 为了(表征、评估、预测、激励等)(过程、产品、模型、度量等),以便理解、评估、管理、工程、学习、改进等。示例:为了学习而表征产品。

  • 视角 - 从开发者、管理者、客户等的角度检查(成本、有效性、正确性、缺陷、更改、产品度量等)。示例:从客户的角度检查缺陷。

  • 环境 - 环境包括以下内容:过程因素、人员因素、问题因素、方法、工具、约束等。示例:此软件的客户是那些不了解工具的人。

度量和过程改进

通常,度量对以下方面有用:

  • 理解过程和产品
  • 建立基线
  • 访问和预测结果

根据 SEI 给出的过程成熟度级别,度量类型和度量程序将有所不同。以下是可在每个成熟度级别应用的不同度量程序。

级别 1:临时性

在这个级别,输入定义不明确,而输出是预期的。从输入到输出的转换是未定义且不受控制的。对于这个过程成熟度级别,需要基线测量来提供测量的起点。

级别 2:可重复性

在这个级别,过程的输入和输出、约束和资源都是可识别的。可重复的过程可以用下图来描述。

Repeatable

输入度量可以是需求的大小和波动性。输出可以用系统大小来衡量,资源可以用员工工作量来衡量,约束可以用成本和进度来衡量。

级别 3:已定义

在这个级别,中间活动已定义,并且它们的输入和输出已知且易于理解。下图描述了一个已定义过程的简单示例。

可以检查、测量和评估中间活动的输入和输出。

Defined

级别 4:已管理

在这个级别,来自早期项目活动的反馈可以用来为当前活动和以后的项目活动设置优先级。我们可以衡量过程活动的有效性。该度量反映了整个过程以及主要活动之间和跨主要活动的交互作用的特征。

Managed

级别 5:优化

在这个级别,来自活动的度量用于通过移除和添加过程活动以及根据测量反馈动态更改过程结构来改进过程。因此,过程更改可能会影响组织和项目以及过程。该过程将充当传感器和监视器,我们可以根据警告信号显着更改过程。

在给定的成熟度级别,我们可以收集该级别和所有下级别的测量数据。

确定成熟度级别

过程成熟度建议只测量可见的内容。因此,过程成熟度与 GQM 的结合将提供最有用的度量。

  • 级别 1,项目可能具有定义不明确的需求。在这个级别,很难测量需求特征。

  • 级别 2,需求已明确定义,并且可以收集其他信息,例如每个需求的类型和对每种类型的更改次数。

  • 级别 3,中间活动已定义,每个活动都有进入和退出标准。

目标和问题分析将相同,但度量将随成熟度而变化。过程越成熟,测量就越丰富。GQM 范式与过程成熟度相结合,已被用作协助管理人员设计测量程序的几种工具的基础。

GQM 有助于理解测量属性的需要,而过程成熟度则表明我们是否有能力以有意义的方式进行测量。两者共同为测量提供了背景。

广告