GQM实施介绍-推荐下载
- 格式:pdf
- 大小:406.62 KB
- 文档页数:12
GQM模型及实施方法
赛宝认证中心
一、GQM模型概述
如何选择和定义度量,确定度量目标、选择适当的测量项是做好度量的基
础。目前国际上广泛采用的比较典型的目标驱动的方法就是GQM(Goals-
Questions-Metrics)和GQ(I)M度量定义模型。
GQM是一种系统地对软件及其开发过程实施定量化的度量方法。GQM模
型是20世纪80年代中期由美国马里兰大学巴士利博士(Dr.Victor Basili)及其
助手提出的一种面向目标、自上而下由目标逐步细化到度量的度量定义方法,
用以告诉组织或者机构应该采集哪些数据。它基于如下的假设:对于一个有目
的地进行度量的软件组织,首先必须指定组织和项目的目标,然后跟踪目标到
数据,这些数据旨在可操作化地定义目标,最后提供一个解释数据与相关目标
的框架。每一个组织、项目均有一系列目标要实现;而要实现每一个目标,均
要回答一系列问题才能知道目标是否实现;而对提出的每个问题,都可以找到
一个完整、可以量化的满意解答。它把组织的目标归纳、分解为度量的指标,
并把这些指标提炼成可以测量的值,从而能更好的预测、 控制过程性能,实现
软件开发的定量化管理。
GQM是一种面向目标的度量方法,也是管理者的一种科学的、具有逻辑性的思考问
题的方式。GQM模型提供了自顶向下的度量定义方法和自底向上的数据采集、 解释方法 ,首
先定义需要度量的目标, 再针对各个目标,提出可能会遇到的问题,来定义这个目标;然
后通过回答问题的形式来衡量这些目标是否被实现。将一个个模糊的、抽象的目标,分解
成具体的、可测量的问题,最后,针对每一个问题再给出一组测量方法,并用这一组 测量
方法测量出来的数据就是对这个问题的回答。分析过程的目的是把概念化的目标转化成比
较具体的问题,再进一步把问题分解成可以度量的指 标。因此,这一过程着重分析目标—
— 问题——指标的层次结构与相互之间的关联。GQM模型基于目标自上而下有三个层次。这三层分别是:概念层-目标(Goals)、
操作层-问题 (Questions)、 数据层-度量 (Metric)。GQM的三层模型如图1所示。这
三层是一个继承性的结构,下一层是对上面一层的细化,通过这种细化和逐步求精,最终由目标得到需要的度量。
图1 GQM三层模型
(1)概念层(目标)。目标是对特定对象定义的,基于不同原因,同不同质量
模型相关,基于不同观点,与特定的环境相关联。它描述了度量目的,通过给
定目标,度量过程得到了清晰地表达。 GQM一般包括五个要素:度量的对象、
目的、属性 、角度 ( 为谁服务 )及度量的环境。它描述了通过度量期望达到
的度量目标。每一个度量目标都包含三个特征,即关注点、对象和视角,同时
还包括一个度量目的。关注点定义了对特定对象需要研究的特定特征,视角描
述了需要相应度量信息的执行者的观察角度,度量目的描述了是如何使用度量
结果模型的。特定环境下项目的目标的定义由诸多的原因所决定 ,其中主要的
是产品、 过程和资源。
(2)可操作层(问题)。该层针对上一层的目标定义了一组问题,用一系列的问
题来定义所研究对象的模型,然后得出评价或达到特定目标。这些问题从各个
角度对度量的目标进行描述。问题同状态模型有关,它更加详细地定义了目标
所关注的对象。用来评测既定目标的一系列问题应该建立在一定的具有相关特
性的模型基础之上 ,所选择的问题应该尽可能地来刻画一个度量目标,而不是
没有原则的来选择数据 ,否则将造成工作量的增大和数据的浪费。
(3)量化层(问题)。基于上述模型的一系列度量,与每个问题相关联,并
以可度量的方法回答这些问题。对于每个问题都定义了一组数据与之相关联,
通过这些数据可以对每一个问题有个量化的回答,是对问题特征的一种刻画。
指标的数据来自主、客观的测量,并且要仔细选择,力求从不同角度来刻画每
一个问题。同一个测量项也可以被用来回答相同目标中的不同的问题,好几个
GQM模型也可以共享一些问题和测量项,站在不同的角度来看相同的度量也会
有不同的数据值。
二、GQ(I)M模型概述
卡内基·梅隆大学软件工程研究所软件工程度量和分析组在GQM模型的
基础上提出了GQ(I)M模型,GQ(I)M区别于GQM的地方就在于它在Q和M
之间加入了一个中间步骤,即在GQM模型的问题层和度量层之间增加了可视
化的指示器层,用它在问题和度量数据之间建立联系。指示器(Indicator),或
称为指标,是用于评价或预测其他度量的度量。指示器是一个或多个度量的综
合,是对软件产品或过程的某一方面特征的反映,它通常利用图表、文本和表
格等形式来描述,模型使用者可根据问题先定义指示器,然后再确定构建该指
示器所需要的度量和数据。不同的度量目的,有不同的度量指示器选择。在具
体的实施过程中可操作的度量成千上万,应选择最能反映当时度量环境的指标
作为度量指示器。这些指示器可以作为测量要求说明书,指导需要收集什么数
据,对这些数据需要做哪些处理和分析,为这些活动做计划。
如针对各个阶段分别注入和清除了多少缺陷问题,可以建立指示器:缺陷
的阶段分布。
图2给出了GQ(I)M度量模型。
图2 GQ(I)M示意图
三、GQM及GQ(I)M实施原则及主要步骤
1、GQM及GQ(I)M实施原则包括三个:
度量目标源于商业目标。
度量不是为了度量而度量,度量是为了实现某个目标。它可以是为了加强
对过程的理解,也可以是为了改进过程。但无论是哪种目标,它都是为软件公
司商业目标服务的。因此,在确定度量目标时,一定要确保其源于商业目标,
并保持其可跟踪性。
(2)发展思想模型提供环境和焦点
在度量实施中,度量目标可以有很多。我们常常会在大量的数据淹没之下
不知所措,因此必须确定关注焦点,确定度量目标的优先级。除此以外,为了
实现这些目标,就必须建立可以实现这些目标的环境。
用GQM/GQ(I)M将非形式化的目标转化为可以执行的度量结构
确定了度量目标,根据这些目标提出问题,解决了这些问题实际上就是实
现了度量目标。从这些问题中引出直观的指示器或者度量,从而实现从度量目
标到度量数据项的映射。
2、GQM的实施步骤
在项目和组织的特定需要的基础之上,GQM模型的工作原理就是提供一种
模式来帮助软件管理者为了达到管理上的目标而设计一整套软件度量体系 ,运
用系统的方法来对软件过程和产品模型中的各个目标进行裁减/ 整合。GQM可
以有效回答正在收集的数据目的是“为什么”这个问题。“为什么”的问题是重
要的,因为基于它可以确定如何解释所获得的数据,而且,该问题的答案也为
后续在未来项目和活动中重用度量计划和过程提供了基础。软件开发 中应用
GQM 方法力求形式化表达这个特殊的过程,通过定义目标和测量的指标,使
之能和有形产品一样,能方便地观察和测量GQM方法具有许多优点:思路清
晰,便于理解,便于培训,便于知识的重用和计算机管理,以及适应于复杂、
多变的应用环境等。
采用GQM方法的测量活动包括四个阶段:
1、计划阶段:选择度量应用的项目,经过定义、特征化并且制定计划,产
生项目计划。
2、定义阶段:定义度量程序(目标、问题、度量和确定假设)并文档化。
3、数据收集阶段:收集、确认、分析数据,产生结果集,并采取正确的行
动;
4、解释阶段:按照度量的定义收集的数据转化为度量结果,回答提出的问
题评估所要达到的目的。通过事后剖析的方式分析数据以评估是否与目标一致,
并为其后的改善提供建议;为测量结果利益相关者提供反馈信息。
其中GQ(I)M定义阶段包括如下实施细节。
(l)确定商业目标
(2)确定需要获取什么
(3)确定子目标
将相关的问题分组,产生一系列与你管理或执行的活动相关的子目标。
(4)确定与子目标相关的实体和属性
本过程步提供为实现子目标必须获取的实体和属性信息。
(5)格式化度量目标
格式化后的度量目标应该包括以下四个元素:关注对象、关注目的、关注人
群和度量环境。
制定度量计划。对目标进行分解时,可以参照过程模型的结构进行。根据
过程的子过程组成情况,把度量目标分解为针对子过程的子度量目标。
(6)确定有助于达到度量目标的可度量的问题和相关的指示器。由格式化后
的度量目标推出实现这些目标必须量化的问题和指示器(包括各种类型的图表)。
(7)确定为了解决问题构造指示器所需收集的数据要素。
(8)定义使用的度量并使之可行。在组织内明确定义度量的公式、度量数据
的含义,使用结构化的方法确保不遗漏重要的度量。
(9)确定实现度量的活动
这些活动主要包括:确定数据源,确定收集报告数据的方法、频率、执行人,
确定可以使用数据的用户,定义这些数据将如何被分析报告,定义辅助过程自
动化和过程管理的工具,确定收集数据的过程等。
(10)准备实现度量的计划,开发数据收集和分析的机制;
该计划应该包括:度量目的、度量的背景、度量的范围、与其它过程改进活
动的关系、实现度量应该进行的任务、活动和人力资源、度量进度、度量职责
以及支持活动等。
由以上的原则和实现步骤可以看出:过程步(l)一(5)是对组织的商业目标进行
分析分解,产生GQ(l)M中的G。在(6)一(10)步将目标映射为相应的度量。在整
个过程中,必须保持两个可跟踪性:
一个是目标(G)到商业目标的可回溯,另一个是度量(M)到目标(G),这样就
可以确保度量不偏离组织目标,避免收集不必要的数据,浪费人力。
四 度量目标确认方法
采用GQM方法定义将要测量的范畴,首先必须定义出目标,再由目标提
出相应的问题,问题的答案整理一下就可以成为度量的范畴了,可见度量范畴
定义的难点就是目标的选取。
一个没有明确目标的项目,是不可能明确地实现其目标的。在目标驱动度
量中,首要的问题不是“我应当运用什么指标?”,而是“什么是我想要知道的
或要学习的?”,需要建立过程性能度量目标。过程性能度量目标不是凭空产生
的,而来源于具体的商业目标。而关键过程是实现商业目标的主要贡献部分,
因此可以通过商业目标在关键过程的划分进一步明确我们要度量的问题。建立
从商业目标到具体的度量目标的映射关系,如图3所示。
图3 商业目标、关键过程目标和度量目标的映射关系
从最初的度量动机逐层分解到各个关键的过程,分析关键过程目标。由关
键过程目标的实现来决定商业目标的实现,再把关键过程的目标细化为可度量
的度量目标。进行软件过程度量具体到子过程,确定过程目标和度量目标的活
动是一个复合活动,该子过程的输入产品是“准备好的度量环境”消息信息、
项目管理要求、过程管理需求和软件过程特征,输出的是度量目标,这里的度
量目标在确定了度量子过程之后通过下面六步来实现。
(l)确定商业目标
本过程的产品是一系列具有不同优先级的商业目标,在对这些目标进行分
解前最好让管理层进行评审以确定正确的优先级,并且保证不会遗漏重要的目
标。
如建立如下目标,一年内降低50%维护成本;将进度估计的准确性实际提
高到10%;内;将下一个项目的系统测试时间减少15%。度量目标是由信息需
求发展来的,可能的来源涉及诸如估计项目计划参数、实施项目状态的监督、
已建立的管理目标、商业计划、正规需求或合同义务、其他项目或组织级实体
的经验,以及过程改进计划等内容。
客户满意、自适应能力强和生产效率高是软件组织的三大基本商业目标。
其他商业目标可从这三大目标中演化出来,例如增强功能、降低成本、缩短产
品推出时间和增强产品的质量等。过程管理需求和项目管理需求中实际包含了