软件测量
软件测量
软件测量框架基于三个原则 –
- 对要审查的实体进行分类
- 确定相关的测量目标
- 确定组织已达到的成熟度水平
对被审查的实体进行分类
在软件工程中,主要存在三类实体。他们是 –
- 流程
- 产品
- 资源
所有这些实体都有内部和外部实体。
-
内部属性是那些可以纯粹根据过程、产品或资源本身来衡量的属性。例如:模块之间的大小、复杂性、依赖性。
-
外部属性是那些只能根据其与环境的关系来衡量的属性。例如:用户遇到的故障总数,搜索数据库和检索信息所花费的时间。
可以为每个实体测量的不同属性如下 –
流程
流程是与软件相关的活动的集合。以下是一些可以直接为流程测量的内部属性 –
-
过程或其活动之一的持续时间
-
与流程或其活动之一相关的努力
-
在流程或其中一项活动中发生的特定类型事件的数量
一个过程的不同外部属性是成本、可控性、有效性、质量和稳定性。
产品
产品不仅是管理层承诺交付的项目,而且是软件生命周期中产生的任何工件或文档。
不同的内部产品属性是大小、工作量、成本、规格、长度、功能、模块化、重用、冗余和句法正确性。在这些规模中,工作量和成本比其他的更容易衡量。
不同的外部产品属性是可用性、完整性、效率、可测试性、可重用性、可移植性和互操作性。这些属性不仅描述了代码,还描述了支持开发工作的其他文档。
资源
这些是流程活动所需的实体。它可以是软件生产的任何输入。它包括人员、材料、工具和方法。
资源的不同内部属性是年龄、价格、大小、速度、内存大小、温度等。不同的外部属性是生产力、体验、质量、可用性、可靠性、舒适度等。
确定相关的测量目标
特定的测量只有在有助于理解过程或其产生的产品之一时才有用。只有当项目对过程和产品有明确的目标时,才能进行过程或产品的改进。对目标的清晰理解可用于在流程成熟度框架的上下文中为给定项目生成建议的度量标准。
目标-问题-度量 (GQM) 范式
GQM 方法提供了一个涉及以下三个步骤的框架 –
-
列出开发或维护项目的主要目标
-
从每个目标中得出必须回答的问题,以确定是否实现了目标
-
决定必须衡量什么才能充分回答问题
要使用 GQM 范式,首先我们要表达组织的总体目标。然后,我们生成问题,以便知道答案,以便我们可以确定是否实现了目标。稍后,根据我们需要什么测量来分析每个问题,以便回答每个问题。
典型的目标是用生产力、质量、风险、客户满意度等来表达的。目标和问题是根据他们的受众来构建的。
为了帮助生成目标、问题和指标,Basili & Rombach 提供了一系列模板。
-
目的– (表征、评估、预测、激励等)(过程、产品、模型、指标等)以了解、评估、管理、设计、学习、改进等。示例:表征产品以学习它。
-
视角– 从开发人员、经理、客户等的角度检查(成本、有效性、正确性、缺陷、变更、产品措施等)。示例:从客户的角度检查缺陷。
-
环境– 环境包括以下内容:过程因素、人员因素、问题因素、方法、工具、约束等。示例:该软件的客户是那些不了解工具的人。
测量和过程改进
通常测量是有用的 –
- 了解过程和产品
- 建立基线
- 访问和预测结果
根据 SEI 给出的过程成熟度级别,测量的类型和测量程序会有所不同。以下是可以应用于每个成熟度级别的不同测量程序。
级别 1:临时
在这个层面上,输入是不明确的,而输出是预期的。从输入到输出的转换是未定义和不受控制的。对于此级别的过程成熟度,需要基线测量来提供测量的起点。
级别 2:可重复
在这个级别,过程的输入和输出、约束和资源是可识别的。下图可以描述一个可重复的过程。
输入度量可以是需求的大小和波动性。可以根据系统规模、人员工作量方面的资源以及成本和进度方面的限制来衡量输出。
级别 3:定义
在这个级别,中间活动被定义,它们的输入和输出是已知和理解的。下图描述了定义过程的一个简单示例。
可以检查、测量和评估中间活动的输入和输出。
级别 4:管理
在这个层面上,早期项目活动的反馈可用于为当前活动和以后的项目活动设置优先级。我们可以衡量流程活动的有效性。测量反映了整个过程的特征以及主要活动之间和跨主要活动的相互作用。
级别 5:优化
在此级别,活动的度量用于通过删除和添加流程活动以及响应度量反馈动态更改流程结构来改进流程。因此,过程变更会影响组织和项目以及过程。该过程将充当传感器和监视器,我们可以根据警告信号显着改变该过程。
在给定的成熟度级别,我们可以收集该级别及其以下所有级别的度量。
确定成熟度
流程成熟度建议仅衡量可见的内容。因此,过程成熟度与 GQM 的结合将提供最有用的度量。
-
在第 1 级,项目可能有不明确的需求。在这个级别上,需求特性的测量是困难的。
-
在第 2 级,需求是明确定义的,并且可以收集附加信息,例如每个需求的类型和每个类型的更改次数。
-
在第 3 级,中间活动被定义为每个活动的进入和退出标准。
目标和问题分析将是相同的,但指标会随着成熟度的不同而变化。过程越成熟,测量结果就越丰富。GQM 范式与过程成熟度相一致,已被用作多种工具的基础,这些工具可帮助管理人员设计测量程序。
GQM 有助于理解测量属性的必要性,过程成熟度表明我们是否能够以有意义的方式测量它。它们一起提供了测量的上下文。