保捱科技网
您的当前位置:首页软件项目度量管理

软件项目度量管理

来源:保捱科技网
 12

软件项目度量管理 ........................................................................................................... 2 12.1 软件度量概述 ........................................................................................................... 2

12.1.1 度量定义 ........................................................................................................... 3 12.1.2 度量的类型 ....................................................................................................... 4 12.1.3 度量的作用 ....................................................................................................... 4 12.1.4 度量的成本 ....................................................................................................... 4 12.2 度量体系 ................................................................................................................... 4 12.3 度量技术 ................................................................................................................... 5

12.3.1 GQM技术 ........................................................................................................ 5 12.3.2 PsM技术 .......................................................................................................... 6 12.4 度量管埋过程 ........................................................................................................... 7

12.4.1 标识目标 ........................................................................................................... 8 12.4.2 选择度量指标 ................................................................................................... 8 12.4.3 定义数据收集 ................................................................................................... 8 12.4.4 分析度量 ........................................................................................................... 9 12.4.5 改逆度量过裎 ................................................................................................. 10 12.5 度量计划 ................................................................................................................. 10

12.5.1 度量计划的构成 ............................................................................................. 10 12.5.2 度量计划的买施 ............................................................................................. 12 12.6 度量指标选择 ......................................................................................................... 13

12.6.1 PsMER分类组 ............................................................................................... 13 12.6.2 s匚丨E=指标 ............................................................................................... 15 12.6.3 PSPE= ........................................................................................................... 18 12.6.4 SE⊥的度量指标 ............................................................................................ 19 12.7 软件度量的建议 ..................................................................................................... 20 12.8 案例说明 ................................................................................................................. 21 12.9 小结 ......................................................................................................................... 22 12.10 习题 ......................................................................................................................... 22

1

12 软件项目度量管理

项目度量是实现量化管理的关键,没有度量,项目管理永远是主观的管理。但是,项目度量常被项目管理过程所忽略,其实它很重要。度量的作用不是立竿见影的,它的作用是潜在的,是逐步体现出来的。所以,应该在项目计划中建立度量计划。本章我们将进入路线图的第11站:项目度量,如图12-1所示。

图12-1路线图第11站:项目度量

我们的生活中同样充满了度量。度量物体的长、宽、高以判断物体是否合乎相关标准,度量体温以便判断是否有发烧症状,度量读书的速度以便计划将来读书的时间等。总之,度量在我们的日常生活中是无处不在的,而且起着比较重要的作用。

度量就像一把尺子,衡量合乎标准、规则、计划的情况。在激烈的软件行业竞争中,客户都希望以更低的费用、更快的速度,获得更多的高质量的产品功能,并可以迅速实现新的功能,以满足不断变化的市场需求。软件度量已经成为企业能否跟上快速变换的信息技术发展的关键要素。

12.1 软件度量概述

软件度量为软件过程的不断改进和量化管理奠定了基础,也为管理层了解项目状态提供了帮助,但国内在这方面似乎经验不足。近来,软件项目总是由于超进度和超预算而名声在外,而且还存在质量的问题,究其原因,主要是没有对进度、成本和质量等进行准确的预计,没有有效的度量。

软件度量已经发展成为一门至关重要的软件工程学科。过去,很多的软件组织认为度量是额外的,是可以忽略的工作,其实,软件度量已经是软件工程的重要实践。高效的组织在技术目标和管理目标上使用客观的度量数据,用度量来帮助计划和评价一个软件项目。

规划项目时,需要估计项目规模和进度;跟踪项目时,需要明确实际的工作量和时间与计划的对比情况;判断软件产品的稳定性时,需要明确发现和纠正缺陷的比率;定量了解项目的进展,需要对当前项目的绩效进行测量,并与基线进行比较。这些都需要准确的度量,度量可以帮助项目经理更好地规划和控制项目,更多地了解项目的情况。一个有效的项目管理应该是离不开度量的。

其实,软件度量是软件项目很重要的一项任务,只是目前还没有受到应有的重视。从图12。2可见,只有经过度量才能知道:项目缺陷10%来自需求阶段,40%来自设计阶段,50%来

2

自实现阶段。也只有经过度量才能知道:缺陷的发现有3%通过需求评审实现,5%通过设计评审实现,7%通过代码评审实现,25%通过功能测试实现,50%通过系统测试实现,还有10%的缺陷留给后来用户发现或者投诉。当然,也可以通过度量知道解决缺陷的成本组成,如图12-3所示。

图12ˉ2阶段缺陷度量结杲

12.1.1 度量定义

量度(mcasurc)被定义为测量的一个单位,必须为每个量度建立通用的或者局部的标准,代码行(LOC)是量度的一个例子,如果没有标准确定什么是代码行(LOC),组织就应该定义一个局部标准来说明代码行(LOC),或者采用相关文献的标准。

测量(measuremcnt)是一个行为或者过程,测量是为实体的所选属性赋予数字或者符号的过程。属性是一个实体的特征,一个实体可以是物理对象,或者可以是发生在现实世界中的事件或者过程。测量过程把现实世界中的实体映射到形式化的数学领域。

图12ˉ3缺陷与成本关系度量结果

度量(mctric)是一个指标器,指示多个(或者单个)量度的计算或者组合的结果,例如缺陷数/千代码行(KLOC)就是一个度量。所以,一个量度是一个直接测量的结果,而

3

一个度量是通过多个测量进行计算而得到的结杲。

软件度量是通过各种不同的量度对软件生存期中的各个元素进行测量的。通过度量可以定量了解项目进度、工作量、产品规模、项目状态以及质量性能等,从而评估项目情况、跟踪进展、评价效率等。SW-CMM中并没有一个专门的软件度量的关键过程域,而是将其贯穿于其他关键过程城中,不过在SW-CMM的继承者——CMMI中定义了一个专门的关键过程城:度量与分析软件度量。

尽管度量和量度有不同形式的定义,但在实践中可以同义地互换使用。因此,在软件工程的文献和实践中,术语“软件度量”(Softwarc Mctrics)、“软件量度”(Softwarc Mcasurcs)和“软件测量”(Software Mcasurcment)可以相互互换使用。

12.1.2 度量的类型

从宏观上,可以将度量分为过程度量、项目度量、技术度量。过程度量是量化了用于软件开发的环境或者过程的特征,过程度量具有战略性目的,有助子进行连续的过程改进。项目度量量化了被开发软件项目的特征,项目度量具有战术性目的,辅助估算、质量控制、生产率评估、项目控制等。技术度量是评估技术工作产品的质量,在项目中进行决策,比如:项目的复杂性,偶合性等。对于项目管理者,感兴趣的是项目度量和过程度量。本章主要讲述过程度量和项目度量。

12.1.3 度量的作用

软件度量能够为项目管理者提供有关项目的各种重要信息,同时也是评估项目活动的基础。软件度量能为项目估算、计划提供基础数据,也提供了控制项目的量化信息。同时,软件度量也为质量管理提供指示,推动企业的过程改进。度量为软件组织提供了客观的信息,是帮助项目经理进行项目交流的有利工具。度量可促进主动性的管理策略,度量指标的各种指示,就像质量目标的红绿指示灯一样,帮助项目经理进行决策,以便对费用、进度、质量等进行杈衡,以满足项目目标。

通过度量,可以量化实体的特征或者属性,以便了解它们、预测它‖可的未来行为,并最终控制它们。所以,进行软件度量的三个主要作用是:1)理解软件项吕;2)预测软件项目;3)控制软件项目。

12.1.4 度量的成本

与大部分管理活动一样,度量管理也是有成本的,度量管理更多依赖子项目负贯人的判断和综合企业文化。如杲收集和推进某类度量的成本是无法承受的,或者某些度量不能提供改善的信息,就不要进行这些度量。在开始收集企业度量时,应从满足最低要求开始,然后逐步增加那些能以最低成本和最低工作量提供最高潜在利益的度量信息。 开始度量时可以设定度量底线:收集度量的成本应与可获得的潜在利益相平衡。防止意外成本(后杲)的发生,例如,测量生产率的时候,开发者一味扩大生产量,不顾镨误,加快编码速度,改变了原来的编码风格。这是得不偿失的做法。

12.2 度量体系

为了有效地进行软件度量,首先要选择合适的度量指标。软件度量指标(SoftwareMctricIndicator)是进行软件度量时所选择的属性,属性是一个实体(例如项目产品、过程等)的特征或者性质。例如,项目的成本是一个度量指标。测量时对指标赋予相应的度量值。图12-4说明与度量指标相关的干系人。度量指标可以为项目管理者进行项目规划和项目控制提供参考;度量指标可以为软件工程过程组(SEPG)的过程改进提供依据;度量指标可以为公司的高层管理提供可视化的报告;度量指标可以为客户提供跟踪项目的可

4

靠信息;度量指标可以为研究组织提供研究的资料。

图12ˉ4与度量指标相关的干系人

一项度量指标只是赋有相对数值的一些数字,规模、工作量、时间或者缺陷也只是一些数据的集合,多项度量指标结合起来才能形成度量体系。利用度量体系的结果,可以确定最佳实践、建立过程改进的模型、分析项目发展趋势、改进评估方式、培训客户等。度量体系是客观评价过程或者产品的标准。

为了让度量体系取得最大的效益,软件企业应该做到: ·将度量体系融人现有过程。 ·将度量体系纳人企业文化。 ·以项目为单位收集信息并汇总,从而产生组织的成效。 ·用准确、可重复和持续的方式收集数据。 ·初始度量,应该选择少量的度量指标。 ·采用行业标准度量体系,促进与其他组织的比较。 ·建立度量体系数据库。 ·运用简单一致的度量方案。 ·及时而恰当地交流度量方案的结果。 ·最妤取得高层经理的支持。 ·选择合适的人员实施度量。 ·对相关人员培训度量规划和度量体系。 ·采用明确的方式进行度量,不进行个人度量。

12.3 度量技术

度量方法学,可以用于决策支持,目的是为一个软件开发项目选择、组织、交流和评价所需的度量。其中GQM(Goal目标一Question问题一Mctric度量)和PSM(Practical SoftwareMcasurcmcnt,实用软件度量)是两种重要的度量方法或者技术。

12.3.1 GQM技术

由于度量工作不易开展,实施度量之初,选择一组数量少而且平衡的度量,有助于企业达到目标。GQM(Goal目标一QuCstion问题-Mc饣nc度量)是一种很不错的技术,可以用于选择适当度量来满足需求。采用GQM方法选择度量指标的基本步骤如下(详见图12-5)∶ l)首先选择几个项目目标或者几个企业目标,尽可能将目标叙述得可以量化、可以测量。 2)对于每个目标,设想一下必须回答的问题,看看是否达到目标。 3)然后,选择回答每个问题所必需的度量指标。 4)最后,确认进行软件度量的度量体系。

5

图12-5 GQM技术

例如:某软件公司确定的目标是: 1)一年内降低50%维护成本。

2)将进度估计的准确性提高到10%以内。 3)将下一个项目的系统测试时间减少15%。

对于第一个目标:一年内降低50%维护成本,应该确定如下问题: 1)每个月的维护费用是多少?

2)支持每个应用软件的维护成本是多少?

3〕用子调整(调整以适应变更的环境)、完善(增加、提高)和修正(纠正缺陷)的费用 各是多少?

对于最后一个问题,可以提出如下的度量: 1)每类维护活动的时间。

2)每类维护活动时间内的总维护成本。

类似地,对于其他的目标,我们也可以逐步提出问题,然后再确定相应的度量指标。 12.3.2 PsM技术

PSM(实用软件度量)是数十年来数十个组织的经验总结,它们是在实现如何最佳地完成软件项目度量过程中积累起来的。PSM是基于成功量度工作中关键实践的一个全面度量过程,该过程反映每个项目的技术和管理特点,是基于风险和问题驱动的。PSM包括三个基本的度量活动:裁剪、应用和实施。裁剪是选择一组有效、平衡的度量,GQM方法可以帮助实现这一目标。应用是收集、加工、分析定义的度量数据。实施是根据具体的企业和项目,建立一个有效的度量买既过桂。

PsM采用度量信息模型懈决了度量信息的数据结构,采跽螂型撼述了良量祗动和任务s良量信息模型如图12-6所示,它提供了定义特定项目度量并将度量与项目决策者的需要相关联的结构。项目经理需要对项目的进度、成本、质量等做出综合的决策,因此,需要有项目实践中的信息作为决策的依据。在度量实施和数据的收集过程中,度量信息模型将度量数据和相关的分析构造作为决策信”崽。

6

图|2ˉ6度量信”愈模型

度量过程模型(见图12-7)可以同度量信息模型一起,对一个项目提供实施度量的应用框架,它是通过计划→实施→检查→行动的管理顺序构造的,包括四个基本活动:计划度量、执行度量、评价度量、建立和维持承诺。核心的度量过程是计划度量和执行度量。计划度量活动包括数据收集、分析和报告规程的定义和规划,它的输出是定义良好的度量方法、直接支持项目的信息需要。执行度量活动直接解决了度量用户的需求,包括度量数据的收集、分析、处理;执行度量活动是通过执行度量计划而为项目决策提供有效的信息产品。评价度量活动可以通过评估度量的应用和度量过程能力,提供改进措施,便于持续改进。建立和维持承诺是确保度量获得相应的支持,获得相应的资源和基础设施。

只有进行正确的度量,才可能真正获得软件项目中的各种实际数据,为正确地估算、计划、控制项目性能提供帮助。

图127度量过程模型

12.4 度量管埋过程

尽管很多人已经意识到度量的重要性,但是真正实施度量还是有一定的困难。定义和实施度量过程的最佳方法是:首先定义企业或者项目的目标,然后为其选择合适的度量,确定了度量指标之后,下一步就需要收集支持这些度量指标的特定数据集。具体说,软件项目度量过程的基本步骤是: 1)标识目标。 2)选择度量指标。 3)定义数据收集。 4)分析度量。 5)改进度量过程。

7

12.4.1 标识目标

标识目标是成功实施度量的第一步,如杲没有确定的目标,就妤比在没有软件需求的时候就开始进行软件项目的开发,这是无法成功的。以下便是一些目标举例: ·提高项目生产率。 ·提高项目质量。 ·降低项目成本。

度量本身不说明问题,度量必须与一个目标进行比较以确定项目是否成功。刚开始度量时,项目经理通常不太清楚项目组织当前的生产率或者质量水平,所以,初始的目标就可以执行得常规一些或者采用当前状态的度量作为基线,然后将后续的度量与塞线进行比较,以判断是否有所进步。基线不一定容易得到,有时需要积累一些初始度量数据,实施一些测量并了解当前的水平。例如,可能要跟踪系统缺陷三个月,然后按照月的平均值作为综合基线。之后,可以根据当前的情况,设定特定的目标,例如将生产率提高l0%等。

12.4.2 选择度量指标

标识目标之后,下一步是选择合适的度量指标,以便确定如何支持这些目标。例如,针对上面标识的目标,确定度量指标,如表12币1所示。 表丬2丬 选择度且指标 目 标 提高项目生产率提高项围质量 降低项目成本 度量指标 每小时的功能点数 每个功能点产住的缺陷数每个功能点的戌本 作为软件企业,在开始选择度量时,应该从少数的度量值人手,这样才能更便捷、准确和一致地收集到数据。下面给出一个适合起步阶段的度量方案:

1)生产率。生产率是指消耗资源、开发软件过程中的效率。例如LOC/小时。

2)质量。质量既是软件过程的度量指标,又是已交付软件产品的度量指标。例如缺陷率、 缺陷排除率等。

3)规模成本。规模成本是决定项目能否继续进行的一个至关重要的参数,成本超出会导 致项目失败。例如人月工作量、实际成本、计划成本等。

4)时间。时间用来编制项目进度,也用来确定在预定日期内完成项目所需要的资源,时 间还能影晌软件的质量。例如工期等。

为了完成这些度量体系,需要更多其他的基本度量,例如表示规模的代码行、功能点,表示工作量的工时数,表示质量的缺陷数,表示时间的日期,表示成本的金钱等度量指标。它们可以以各种方式组合成上面的度量体系。软件组织必须明确、一致地定义这些度量指标,并且可以捕获它们。

12.4.3 定义数据收集 选择了度量指标之后,就可以定义支持这些度量指标所需要的数据:明确度量的各项具体活动;确定度量时间、确定度量负责人、确定度量报告形式等,必要时可以赋予各种度量相应的优先级。 ⒈数据定义

度量指标的每项定义都要进行验证,并以可以理解的方式进行定义,例如如果选择了每小时功能点的生产率作为度量指标,就需要定义功能点和功能点的工作时间量。 2-数据收集

尽最大可能把度量收集活动集成到项目的软件开发过程中,作为软件项目活动的一部分,而不是额外的工作。数据应该在支持选择的度量指标的那些点上进行收集。例如,如果项目的

8

目标是提高项目生产率,而且度量指标是功能点/小时,那就需要计算执行的功能点数,同时收集其工作时间量。 3,|&集度垦的责任 为了确保数据的收集,需要指定收集和报告每顼数据的负责人,例如,一些人负责记录数据,一些人负责收集数据,还有一些人负责报告数据等。 ⒋度曼收集的工具

在收集度量数据的时候,应该利用现有的数据收集形式或者体系,避免重复和混乱,尽可能利用自动化的工具帮助度量数据的收集和分析,可以通过采用纸面模板、电子数据表、预定义报告、软件工具等方式实现。收集过程的自动化可以降低度量工作的成本,并增强收集数据的准确性。例如,作为一个软件配置项的软件模块放人配置库之后,计数器程序就可以自动计算代码行数等。表12亏2是度量数据定义的一个表格。 表亻2-2 项目度丑走义 目 标 提高项目化产率 提高顶目质量 降低项目成本 度量指标 功能点//l`时 缺陷'功能点 成本'功能点 数据定义 项目实施过程中计算出功能点数 项目开发周期内记录工作时间量 项目实施过程中计算出功能点数 计算用户使用三个月后的缺陷数 项目实施过程中计算出功能点数 按工作量计算出劳动成本 项目周期内记录非芳动成本 12.4.4 分析度量

分析度量是根据收集的数据,同时汇总历史数据,与既定的目标进行跟踪比较,得出相应的结论。

汇总数据时要汇总已经完成的项目的度量数据和当前项目的历史数据。进行数据度量时应该使用度量数据库,存储和收集度量数据。

分析度量的主要原因是要给出结论并做出预测,这些结论和预测可用于指导项目的技术和管理过程。最基本的分析活动之一是随着时间的变化绘制出度量结果,并在项目的进展中寻找其特征和趋势,其中既有预测和预期的数据,也有实际的曲线,典型的例子是成本和进度数据、产生的代码行数或者存储设备的使用情况等。 度量报告的确定包括确定度量报告的对象、报告的频率和报告的形式。度量报告的对象除了包括项吕经理、项目组成员、高层领导、客户、过程改进入员等外,还应包括提供信息的人员和数据收集过程的人员,他们都应该从中获益,获得相关的信息。项目组人员利用度量结果分析项目的现状,预测项目的后续情况,同时,也获得必要的过程改进信息。度量报告至少应该包括: ·度量结果:看到的事实。例如“某某项目,第二阶段的缺陷率下降6%”♂ ·度量结论:分析结果是什么。例如“某某项目,第二阶段的缺陷率下降6%,是由于在 项目第二阶段增加了技术评审的频度和质量”。 要深人了解度量值说明的内在问题,比 如某个功能点发现的缺陷减少,就要仔细探讨是因为测试效果下降了,还是因为开发质 量提高了,缺陷数下降了哪些等。 ·建议:下一步如何做。例如,“建议进一步加强技术评审的效率,同时将技术评审作为 过程改进,推广到企业的软件开发过程中”。

9

责 任 功能点负责人用电子表格记录数据 开发人贞随时记录数据 功能点负责人用电子表格记录数据 服务台的人员在接到用户的报告后采用缺陷跟踪系统记录数据 功能点负责人用电子表格记录数据 项目经理在项目进行过程中记录并计算 使用度量的数据可以进行软件项目的各种决策,例如: ·可以判断产品的推出程度。 ·可以了解客户项目的成本和进度。 ˉ ·可以考虑在估计成本和进度时包括多少偶然因素。 ·可以估计在过程改进中投资何处能得到最高的回报。

12.4.5 改逆度量过裎

与SW-CMM的软件过程改进模型IDEAL类似,度量过程的改进也有PIMA(Plan。 ImplcmcntationˉMctric—Action,计划实施度量改进)模型: 计划:它要求在启动开发活动前首先确定用户的需求,以确保计划和度量需求的制定早于度量指标的选择。在设计和实施方案前,公司需要确定目标并确立软件度量(计划〉需求(问题)。

实施:实施阶段包括筛选和设计适合该计划的恰当度量体系,以及培训、启动和收集具体的指导性度量指标。

度量:在度量过程中,要结合度量指标,收集、分析、审核和报告实际数据,并汇集和呈报具有可操作性的管理信'急。 改进:根据前一步的数据,确立适当的过程改进方法,执行完行动后再循环返回到计划步骤,确认下一度量方案是否仍然符合目标‘

12.5 度量计划

为了能更好控制项目进展和评估项目性能,也为了能向将来项目提供历史信息,建立一个项目度量计划是必需的。为特定的项目制定度量计划,需要将度量信息模型实例化,以便生成一个项目度量产品,供项目决策和后续项目之用。一个软件度量程序的关键活动是规划+工作,实施和使用度量,以及改进或者精化度量程序。

12.5.1 度量计划的构成

一个度量计划的执行产生项目需要的度量信息产品,这些信息产品可以作为项目决策的指示器。度量规划包括三个任务:1)定义项目的目标;2)选择支持达到目标的度量;3)定义实施必要的测量过程、计算所需的度量、需要的和规程。即度量计划是项目目标需要的度量(信,歆需要)、度量构造和度量规程的集合。

图12-8描述了度量计划中的信息需要、度量构造和度量规程的关系。 信息需要应该与项目的目标一致,同时也应该与实现目标的范围相关。很多的项目都是根据成本、进度、质量和软件范围等来实现既定的目标。

度量构造定义了度量的对象和如何对数据进行组合以便产生满足信息需要的结果。 度量规程定义了收集和组织数据的机制,要求这些数据可以实例化度量构造。

定义妤目标之后,选择度量集合,以测量目标的满足程度。选择度量必须是现实的。因此,在选择度量时,必须清楚地理解计算度量所需的数据,以及如何通过计算这些数据得到度量。面对大量的度量,如何选择一个小型的、有意义的度量集是很重要的。理想情况下,选择的度量应该具有如下的特征: ·简单:度量的定义简单、易于理解。 ·客观:不同的人使用同一度量,应该得到相同的值。 ·易收集:收集数据的成本或者工作量是合理而且可以接受的。 ·健壮性:度量对不相关的改变是不敏感的。 ·正确性:度量的测量应该是它所定义的内容。

10

图12-8度量计划的组成关系

如果度量只是支持一个单独的项目,那么所选择的度量以及被狈!量的数据和度量的单位都应该被记录到项目度量计划中。如杲设计的度量方案支持多个项目,那么共同的信息应该置于一个单独的组织度量计划中。

度量计划还应该定义度量规程,例如: ·何时、以何种频率实施测量过程和收集数据。 ·记录和汇报结果的时间要求。 ·被测量数据的来源。 ·收集、抽取和记录数据的形式和规程。 ·数据如何被存储和访问。 ·谁负责设计度量数据库、谁负责维护和监督度量工作。 ·谁负责收集度量数据。 ·谁使用度量数据。 ·数据如何被确认、分析和报告。 ·获取并维护支持过程的所有支持工具。

项目管理者需要在项目执行期间对产品的质量进行定期评价,软件的缺陷率(缺陷数/KLOC)便是一个重要的度量指标,它的大小可以作为决策的指示器。缺陷率是一个派生度量,即需要获取多于一个属性的信息,是两个或多个基本度量的函数。这里,缺陷率需要的基本度量是代码行数和缺陷数的度量,缺陷率的函数是:缺陷率=1000x缺陷数/代码行数。基本度量是对单个属性的度量,执行度量产生一个度量值,例如代码行数、缺陷数等。具体的度量过程如图12-9和图12亏10所示。

度量分析模型是基子构造的度量及其随着时间变化的行为期望饣是包含多个基本度量或者派生度量的算法或者计算。

11

图l2-9缺陷度量过程

图12-10缺陷拴制线

12.5.2 度量计划的买施

实施度量计划所涉及的活动包括度量收集、度量确认、度量分析和度量改进。对于小型的项目,项目经理可以负责实施度量活动;对于大型项目,项目经理可以设置专门的度量人员。无论如何,项目经理都需要进行度量活动,保证收集和报告的度量数据是准确的,同时分析潜在的问题指标,并采取相应的措施。 度量过程的实施不但需要规划和开发,还需要在推广和人员配置方面制定决策。度量推广是将已经定义的度量过程推广到具体的项目中或者整个企业中。人员配置是安排度量收集、分析等人员。他们需要负责收集度量数据(例如工作量、成本、缺陷等),需要掌握准确、—致地记录分析项目数据的方法(例如功能点或者缺陷率)。其实,需要度量的时间可能比开发人员想像的时间要多。 在度量计划实施前,必须确定并归档数据采集和数据报告的过程和方法,这涉及到将出现的

12

特定度量活动与开发周期相结合。要清楚活动的时间,还应该确定所需要的表格、工具和报告格式。另外,根据度量情况,应该对所有涉及度量的人员进行必要的培训。

12.6 度量指标选择

很多的文献或者标准也对度量体系进行了说明,但是不同的项目组织一定耍根据自己的实际情况,分析自己的需要和目标,因地制宜地选择适合的度量。对于一个刚开始制定度量程序的企业,选择一组满意的核心度量并不是一件容易做到的事情。下面给出一些度量指标选择的参照。

12.6.1 PsMER分类组

软件度量可以帮助预测项目及其过程的质量以及发展趋势。可以使用企业的度量数据库估计类似项臣的成本、进度、资源以及缺陷密度等。经验表明:大部分项目信息可以按照通用的域来分组,即信,B分类(或者度量组)。信息分类(度量组)几乎对所有项目都是基本的,它是项目经理每日需要管理的主要关注点。这些信,E,分类是: ·产品规模。 ·产品质量。 ·过程质量。 ·资源与成本。 ·项目进展状态。 ·客户瞒意度。 ·技术有效性。

其中:信息分类中的每个分类又包合一定的度量指标和度量指标的组合,它们构成了度量 体系。见表12-3。

表12ˉ3 度且组及其度旦指标 度 量 组 产品规模 分 绸 功能规模 度量指标 需求 功能变更 功能点 数据库规模 枸件 代码行 接口 需求覆盖 基线变更 度量指标 缺陷 缺陷的延续时问 技术性能水平 恢复的时间 复杂度 利用率 吞吐率 响应时间 一些标准间的依从性 13

物理规模 技术有效性 度 量 组 产品质量 技术适合性 技术易变性 分 纲 功能正确性 可维护性 效率 可移植性 度 量 组 分 绸 可用性 可靠性 度量指标 操作员的镨误 平均故障时间 参考成熟度评定 过程审计 生产率 循环时间 已包含的缺陷 遗漏的缺陷 返工工作量 返工构件 员工水平 开发工作量 经验水平 员工流动 BCWS,BCWP,ACwP 预算费用 需要的数量 可用的数量 Ej用的时间 已用的时间 里程碎日期 缓冲时间 已跟踪的需求 已测试的需求 已打开的问题 已关闭的问题 已完成的评审 已打开的变更请求 已解决的变更请求 已设计的单元 已编码的单元 已集成的单元 正在执行的测试用例 已通过的测试用例 尚未解决的项 已经完成的项 已集成的枸件已集成的功能 客户瞄意度奖金 支持的请求数支持时间 过程质量 过程依从性 过程效率 过程有效性 资源与成本 个人工作量 财务性能 环境和支持资源 项目进展状态 完成的里程碑 关键路径的性能 工作单元进展 增量式模式 客户瞒意度 客户反馈 客户支持 在项目度量过程中也许不能包括上述所有的项,但是建议在度量计划中至少包括下面的方面: ·产品规模:计算代码行、功能点、对象分类、需求的数目或者图形用户界面单元。

14

·估计的和实际的项目时间以及工作量:跟踪个别任务、项目里程碑以及全面产品发展。 ·工作量分布:记录花在开发活动上的时间以及花在维护活动上的时间。 ·缺陷:计算测试发现的和客户发现的缺陷数目以及缺陷的类型严重性和状态。

12.6.2 s匚丨E=指标

美国的SEI(软件工程研究所)受DoD(美国国防部)的委托开发了一个基本测量集,详见John H.Baumcrt在CMU/SEI-92-TR-25的Scptcmbcr 1992的技术报告中的文章“SoftwarcMcasurcs and thc Capability Maturity Modcl”。这个基本测量集涵盖了规模、工作量、进度和质量的度量,通过7组13个度量指标(见表12-4)来评估软件企业的成熟度,表12-5和表12-6是这些度量指标在CMM的不同级别进行的不同度量描述。这些度量指标在不同的级别应该到达不同的度量程度。例如,度量指标Progrcss∶在CMM-2应该度量出在甘特图上对计划和实际进度的比较,在CMM-3应该度量出在廿特图和网络图上对实际和计划进度的控制范围比较,在CMM-4应该度量出在甘特图和网络图上对实际和计划进度的控制限的比较,在CMM-5应该度量出每个项目返工的时间占总项目时间的比率以及过程变更中各项活动所花时间的比例,其他的度量结果详见表12-5和表12-6。

表12ˉ4 sΞ丨提出的度且指标及其描述 指 标 进度(Progrcss) 人员工作量(Effort) 成本(Cost) 质量(Quality) 软件质量保证审计结果 评审结果 问题报告 对等评审结果 缺陷预防 稳定性(Stability〉 需求稳定性 规模稳定性 过程稳定性 描 述 根据进度承诺,提供项目实际进度的进展情况 显示出人力安排在项目成本、进度遵守和产品质量方面所做的贡献 提供实际成本与估算成本的跟踪比较结杲,并预讣未来项目的成本 提供产品质量的评估和项目人员遵循项目过程的情况 提供来自生命周期评审的各个评审项的状态结果 了解产品和过程的质量以及测试的效果 了解中间产品和最后产品的质量以及对等评审过程和开发过程的实施结果 了解缺陷引人原囡以及各种减少缺陷引人率的预防擂动的效果 了解需求变更的次数以及影响 了解需求完整性和稳定性,以及在现有的预算和进度内完成项目所需的人员方面的能力 了解已定义过程的有效性和质量 计算机资源利用情况根据项目在计算机资源利用方面的目标'需求,提供项目在(ComputerResourcc 计算机资源利用方面的实际情况 Utilization) 培训(Training)

了解组织为满足技能需求而开发的培训程序的有效牲 15

表刂2-5 CMMˉ2,3级的度丑指标描述 指 标 进度(ProgrCss) CMMˉ2级(可重复级) ·在甘特图上对实际进度和计划进度进行比较 CMMˉ3级(定义级) ·在甘特图和网络图上对实际进度和计划进度的控制范围进行比较 ·用较细的粒度来比较计划和实际的人员工作量分布图示 ·对实际成本和计划成本的控制范围进行比较 ·成本效能指标和进度效能指标 ·不合格项情况 ·审计信息 ·采样规模信″急 ·评审项结果信息 ·问题报牛信'彀 ·与历史数据比较问题报告的数量 ·问题报告一直没有被解决的时间 ·每个产品的问题报告数量 人员工作量(Effort) ·实际人员工作量和计划人员工作量分布图示的比较 成本(Cost) ·实际成本和计划成本的比较 ·成本差异和进度差异 ·不合格项情况 质量(Quality) 软件质量保证审计结果 评审结果 问题报告 ·评审项结果信‘崽 ·问题报告信息 ·没有解浃的问题报告的数量、处理结束的问题报告的数量、没有评估的问题报告的数量 ·问题报告的密度 ·问题报告与通过的测试案例的比较 对等评审结果 ·没有解决和处理完毕的缺陷数量 ·每个产品的缺陷数量、每个产品缺陷密度 ·Parcto缺陷分析·初步抟制图 ·需求变更和需求澄清的数量 ·每个版本的需求分布情况 ·各种类型需求的变更分布 ·各种需求变更请求持续没有被处理的时间 ·放弃的需求变更申请数量和批准的需求变更申请数量 ·实际规模增长与计划规模增长的控制范围比较 ·每个版本的规模分布情况 ·过程变更的数量 ·被放弃过程的数量 ·实际和计划计算机的资源利用情况图示 ·实际和计划的培训课程数量 ·实际和计划的参加培训的人数 缺陷预防 稳定性(Stabi1ity) 需求稳定性 ·需求变更和需求澄清的数量(计划需求与实际需求的比较) ·每个版本的需求分布情况 规模稳定性 ·项目规模的增长趋势·每个版本的规模分布情况 过程稳定性 计算机资源利用情况·实际和计划的计算机资源利用情况(ComputCr 图示 RcsourccUtilization) 培训(Training) 16

指 标 CMMˉ2级(可重复级) CMMˉ3级(定义级) ·培训课程质量统计图示 ·放弃培训的数量 表12ˉ6 CMMˉ4,5级的度上指标描述 指 标 进度(ProgrCss) CMMˉ4级(管理级) ·在甘特图和网络图⊥对实际进度和计划进度的统计控制限进行比较 与定义级同 CMMˉ5级(优化级) ·每个项目返工的时间占总项目时间的比例 ·在正在进行的过程变更中各种项目活动时间所占的比例 ·每个项目返工的人员工作量占总项目人员工作量的比例 ·在正在进行的过程变更屮各种项目活动人负工作量所占的比例 ·在可选择的各种过程改进、缺陷预防活动和技术革新任务中陶投人效益比 ·在可选择的各种过程改进、缺陷预防悟动和技术革新任务中的实际和计划的投人效益比 与定义级同 与定义级同 与定义级和管理级同 人员工作童(Effort) 成本(Cost) ·实际成本和计划成本的控制限比较·成本效能指标和进度效能指标 质量(Quality) 评审结果 问题撇告 与定义级同 ·问题报告产生的原因·用户发现的缺陷数/KLOC,测试团队发现的缺陷数'KLOC,测试团队发现的缺陷占总缺陷的比例 ·没有处理的缺陷数量和解决完成的缺陷数量 ·每个产品的缺陷数量、每个产品缺陷密度 ·Pareto缺陷分析 ·对等评审结果控制图 与定义级同 ·项目规模增长与增长控制限的比较·每个版本的规模分布情况 与定义级同 软件质量保证审计结果 与定义级同 对等评审结果 与定义级和管理级同 缺陷预防 稳定性(Stability) 需求稳定性 规模稳定性 过程稳定性 ·缺陷种类分布图示 ·缺陷引人率 与定义级同 与定义级和管理级同 与定义级同 与定义级同 计算机资源利用情况与定义级同 (ComputCrRcsOurce UtilizatiOn) 培训(Training)

与定义级同 17

与定义级同

SEI推荐了四个基本的度量: ·规模:物理的代码行计数。 ·工作量:花费的人工时计数。 ·进度: 日历日期。 ·质量:软件问题和缺陷计数。

12.6.3 PSPE=

PSP(Pcrsonal Softwarc Proccss,个体软件过程)是由Watts S.Humphrcy开发的个体软件工程,是为帮助软件工程师出色地完成任务而设计的过程框架,它尤其强调度量的重要性。PSP度量主要是包括项目计划度量和项目质量度量。 PSP的计划度量的指标: ·程序规模

■新开发的或者修改的LOC ■复用的LOC ■删除的LOC ·开发时间 ■计划阶段 ■设计阶段 〓编码阶段ˉ ■代码复查阶段 ■编译阶段 ■测试阶段 ■后置处理阶段 ·生产率

■Minutcs/LOC

■LOC/Hour ` PSP的质量度量的指标: ·引人的缺陷数量 ■计划阶段 ■设计阶段 ■编码阶段 ■代码复查阶段 ■编译阶段 ■测试阶段 ·排除的缺陷 ■计划阶段 ■设计阶段 ■编码阶段 ■代码复查阶段 ■编译阶段 ■测试阶段 ·质量效率

■缺陷数/KLOC ■质检/过失比

18

12.6.4 SE⊥的度量指标

美国NASA的软件工程实验室(SEL)创建的目的是为了研究软件工程技术的有效性,在选择SEL的核心度量时,SEL开发者首先关注的是理解软件开发过程,然后改进这个软件开发过程。表12。7和表12-8总结了SEL的核心度量和SEL推荐的度量,这些度量是被成功使用且得到真践验证的。 表丬2-了 S匚⊥核心度且 度 量 源代码增长荜 用 途 l反映需求的完整性和欤件开发过程的质量 2项目进展指标 3测试期间软件产品稳定性指标 l项目环境属性和被开发软件的类型 2过程和质量的指标 3为将来项目估算提供基础数据 l反映需求稳定性和完备性 2系统稳定性的指标 l!CPU的使用直接与项目的特定过程相关 2设计和实现的进展指标 1深人了解项目开发和过程改进 2软件稳定性的指标 3。欤件质量的指标 l了解软件的可靠性、测试的进展、人员安排方面的问题以及测诚质量 2估计软件质量和项目完成日期 l反映软件开发过程、需求稳定性 2稳定性指标 l了解一个特定阶段巾各个开发活动的过程 2进展指标 3间接的软件质量指标 工作量数据 系统规模估算 计算机的使用 锴误率 已经报告、已经改正的软件差异 软件的变更率 开发活动状态数据

表12ˉ8 SEL推荐皮n 度 量 来源变更 规范变更 变更的类 计算机的使用 已经报告/公开的差异 用 途 1饣配置管理的质量 2规范`设计的稳定性 1, 规范的质量 2, 再规划的要求 l设计不稳定性 2,规葩的易变形 l进展 2过程控制 l人员安排方面的需求 2软件可靠性 3进度可靠性 19

度 量 全部工作量 每个活动的工作量 修改'变更的工作量 每次审查发现的错误 锴误的类型 镨误的总数已规划/设计'审查/编码模块的规模 管理者做出的对总体规模的估计 源增长的规模 要做的规范'设计项 用 途 l规划的质量 2。管理的质量 1‘进度 2再规划的需求 1设计的质量 2维护的成本 1‘软件质量 2桌面工作欠缺 1设计问题 l软件可靠性 2维护成本 3进展 l规范的稳定性 2再规划的需求 1, 过程的质量 2, 饣设计完备性/质量 l管理控制的水平 规划的/执行l'完成进度 的'通过的测试 2进展 12.7 软件度量的建议

软件度量中最棘手也是最关键的一个方面是做出如何将它引人到组织内的决策,度量方案需要高层经理的支持,并且较难维护。尽管软件度量对软件项目具有非常重要的作用,但是软件度量较难在软件组织内真正展开。一般说,度量工作开展比较困难的原因主要是: ·开发人员不一定认为度量是软件工程的必备要素。 ·度量恐惧,认为太麻烦。 ·由于项目期限的原因,导致度量没有时间做(项目人员会说:我们还有更“实质性的”工作要做)。 ·习惯于主观的判断,而不是依据准则和度量指标。 ·度量方法无效。 ·员工的变更和保存记录的缺乏。 ·没有建立项目总结的规章制度。 ·常常忽视定义和收集度量。

度量工作没有技术难度,只是比较琐碎,不容易立竿见影看到效杲。但是,大家不要忘了今天的数据是明天的历史数据,所以度量应该从今天做起。其实,比较成熟的软件企业将掌握度量视为“廉价的保险单”,从而可以避免很多风险的出现。有度量数据,就可以对项目进行深刻的分析。无法度量则无从管理,这是许多软件度量方案的内在驱动。只有更多的人和组织接纳了度量体系,度量的运用就会演变成战略优势。

20

进行软件项目度量要注意以下几点:

1)实施度量还应该包括企业文化的改变,软件度量让软件企业的管理由凭感觉管理转变为凭事实管理。当然,在引人度量的时候,开发人员可能会受到传统经验的束缚而抵制改变。无论选择什么样的度量体系,收集和汇报准确数据的先决条件之一是建立一个有益的度量环境。

2)软件度量不一定消耗大量的时间。可以使用许多工具或者缺陷胫艮踪系统等,另外还可以使用方便的跟踪表格、基于网络的报告工具等来降低收集时间费用。每天的工作记录与其说是负担,不如说是习惯,但要求有一定的管理纪律。

3)开始度量时,可以使用GQM技术来选择一组初始度量,一旦习惯了测量理念,有了动力,就可以引人新的度量。获得了更多的信息,就可以更有效地管理项目。

4)如果没有明确定义度量数据,大家解释不同,就会产生误会,所以要有统一明确的度量规则。

12.8 案例说明

《校务通管理系统》度量计划分析;根据企业的质量策略和项目的特点制定本项目度量计划,主要目的是为本项目的控制提供实际数据,以及为将来其他项目提供估算依据,表12ˉ9给出项目规模的度量指标,表12⊥10是项目的时间度量指标,衰L2-11是需求变更度量指标。 1.规模度量 ˉ

表亻2-9 项目规模的度且指标 任务名称 需求规格说明书 总体设计说明书 系统测试计划 详细设计说明书 单元测试计划 源程序 单元测试报告 系统测试报告 总计 规模度量单位 文本页数 HLD页数 文本页数 DLD页数 文本页数 LOC行数 文本页数 文本页数 文本页数 HLD页数 DLD行数 LOC行数 计 划 实 际 2,时间度量

表刂2-亻0 时间度且指标 各阶段名称 实际时间 需求分析 需求检查 总体设计 测试计划 总体设计检查

计划时间(小时) 21

实际时间(小时) 各阶段名称 详细设计 详细设计复核 洋细设计检查 单元测试计划 编写源程序 代码复核 代码检查 单元测诚 集成测试 系统测试 合计 3.需求变更皮量

表亻2ˉ‖ 需求变更皮丑指标 变更请求

请求时间 计划时间(小时) 实际时间(小时) 变更请求者 变更内容 批准否(Y/N) 批准时间 需求规格版本 12.9 小结

软件度量对软件项目管理起着非常重要的作用,只有完成了准确的项目度量才能有效地进行项目的跟踪控制,才能及时预防风险的发生,而且对今后设计准确的项目规划都起着极为重要的参考作用。常用的度量技术有GQM和PSM,对子初始度量,可以采用GQM的方法,选取适合本项目的最小度量集,然后逐步完善度量计划。作为项目管理者,应该掌握常用的度量指标。度量计划中应明确说明度量指标、度量方式以及度量负责人等。

12.10 习题

12,1采用GQM的方法,针对第11章习题中的项目选择合适的最小度量集。

22

23

因篇幅问题不能全部显示,请点此查看更多更全内容