《软件工程讲义_第十九章过程度量和项目度量》由会员分享,可在线阅读,更多相关《软件工程讲义_第十九章过程度量和项目度量(41页珍藏版)》请在金锄头文库上搜索。
1、软件工程第19章 过程和项目度量主要内容v过程程领域和域和项目目领域中的度量域中的度量v软件件测量量v软件件质量度量量度量v小小结过程和项目度量v软件件过程和程和项目度量是定量的目度量是定量的测量,量,这些些测量能使量能使软件工程件工程师更深入地了解更深入地了解软件件过程的功效,以及使用程的功效,以及使用该过程作程作为框架框架进行开行开发的的项目的功效。度量目的功效。度量时,首先收集,首先收集基本的基本的质量数据和生量数据和生产率数据,然后分析率数据,然后分析这些数据、与些数据、与过去的平均去的平均值进行比行比较,通,通过评估来确定是否已有估来确定是否已有质量和生量和生产率的提率的提高。度量也
2、可以用来高。度量也可以用来查明明问题区域,以便区域,以便确定合适的确定合适的补救方法,并改救方法,并改进软件件过程。程。过程和项目度量v软件度量由件度量由软件管理者来分析和件管理者来分析和评估。估。测量数据通常由量数据通常由软件工程件工程师来收集。来收集。v如果不如果不进行行测量,只能根据主量,只能根据主观评价来价来做判断。通做判断。通过测量,可以量,可以发现趋势,可以,可以更好地更好地进行估算,随着行估算,随着时间的推移能的推移能够获得真正的改得真正的改进。过程和项目度量v 首先确定一首先确定一组有限的易于收集的有限的易于收集的过程程测量和量和项目目测量。通常使用面向量。通常使用面向规模或面
3、向模或面向功能的度量功能的度量对这些些测量量进行行规范化。然后,范化。然后,对测量量结果果进行分析,并与行分析,并与该组织以前完以前完成的成的类似似项目的平均数据目的平均数据进行比行比较。最后。最后评估估趋势,并,并给出出结论。v工作工作产品是得到一品是得到一组软件度量,它件度量,它们提提供了供了对过程的洞察力和程的洞察力和对项目的理解。目的理解。过程和项目度量v通通过提供目提供目标评估的机制,估的机制,测量使我量使我们能能够对项目和目和过程有更深入的了解。程有更深入的了解。Lord Kelvin曾曾经说过:v当你能当你能够测量你所量你所说的事物,并能用数的事物,并能用数字表达它字表达它时,你
4、就,你就对它有了一定的了解;它有了一定的了解;当你不能当你不能测量它,也不能用数字来表达量它,也不能用数字来表达时,就就说明你明你对它的了解它的了解还很很贫乏,不能令人乏,不能令人满意:意:这可能是知可能是知识的开始,但你在思想的开始,但你在思想上上还远远没有没有进入科学的境地。入科学的境地。过程和项目度量v测量可以量可以应用于用于软件件过程中,目的是持程中,目的是持续地改地改进软件件过程。程。测量也可以量也可以应用于整用于整个个软件件项目中,目中,辅助助进行估算、行估算、质量控制、量控制、生生产率率评估及估及项目控制。最后,目控制。最后,软件工程件工程师还可以使用可以使用测量来帮助量来帮助评
5、估工作估工作产品的品的质量,并在量,并在项目目进展展过程中程中辅助助进行行战术决策。决策。过程和项目度量vPAR96讨论了了进行行测量的理由:量的理由:(1)刻画刻画通通过刻画而刻画而获得得对过程、程、产品、品、资源源和和环境的了解,并建立同未来境的了解,并建立同未来评估估进行比行比较的基的基线;(2)评价价通通过评价来确定相价来确定相对于于计划的状况;划的状况;(3)预测通通过理解理解过程和程和产品品间的关系,并构的关系,并构造造这些关系的模型来些关系的模型来进行行预测;(4)改改进通通过识别障碍、根本原因、低效率和障碍、根本原因、低效率和其他改其他改进产品品质量和量和过程性能的机会来程性能
6、的机会来进行改行改进。v测量是一个管理工具,如果能正确地使用,它将量是一个管理工具,如果能正确地使用,它将为项目管理者提供洞察力。因此,目管理者提供洞察力。因此,测量能量能够帮助帮助项目管理者和目管理者和软件件团队制定出使制定出使项目成功的决策。目成功的决策。过程领域和项目领域中的度量v过程度量程度量的收集涉及所有的的收集涉及所有的项目,而且要目,而且要经历相当相当长的的时间,目的是提供能,目的是提供能够引引导长期的期的软件件过程改程改进的一的一组过程指程指标。项目度量目度量使得使得软件件项目管理者能目管理者能够:(1)评估正在估正在进行中的行中的项目的状目的状态;(2)跟踪潜在的跟踪潜在的风
7、险;(3)在在问题造成不良影造成不良影响之前响之前发现它它们;(4)调整工作流程或任整工作流程或任务;(5)评估估项目目团队控制控制软件工作件工作产品品质量的能力。量的能力。v测量数据由量数据由项目目团队收集,然后被收集,然后被转换成度量成度量数据在数据在项目期目期间使用。使用。测量数据也可以量数据也可以传送送给那那些些负责软件件过程改程改进的人的人员。因此,很多相同的。因此,很多相同的度量既可用于度量既可用于过程程领域,又可用于域,又可用于项目目领域。域。过程度量和软件过程改进v改改进任何任何过程的唯一合理方法就是程的唯一合理方法就是测量量该过程的特定属性,再根据程的特定属性,再根据这些些属
8、性建立一属性建立一组有意有意义的度量,然后使的度量,然后使用用这组度量提供的指度量提供的指标来来导出出过程改程改进策略。但是,在策略。但是,在讨论软件度量及其件度量及其对软件件过程改程改进的影响之前,必的影响之前,必须注注意到:意到:过程程仅是众多是众多“改改进软件件质量量和和组织性能的控制因素性能的控制因素”中的一种。中的一种。软件质量和组织有效性的决定因素图19-1 软件质量和组织有效性的决定因素过程度量和软件过程改进v在在图19-1中,中,过程位于三角形的中央,程位于三角形的中央,连接了三个接了三个对软件件质量和量和组织绩效有重大效有重大影响的因素。其中,人影响的因素。其中,人员的技能和
9、的技能和动力被力被认为是是对质量和量和绩效影响最大的因素,效影响最大的因素,产品复品复杂性性对质量和量和团队绩效也有相当大的效也有相当大的影响,影响,过程中采用的技程中采用的技术也有一定的影响。也有一定的影响。另外,另外,过程三角形位于程三角形位于环境条件境条件圆圈内,圈内,环境条件包括:开境条件包括:开发环境、商境、商业条件、客条件、客户特性。特性。过程度量和软件过程改进v可以可以间接地接地测量量软件件过程的功效。即,程的功效。即,可以根据从可以根据从过程中程中获得的得的结果来果来导出一出一组度量。度量。这些些结果包括:在果包括:在软件件发布之前布之前发现的的错误数的数的测度,提交度,提交给
10、最最终用用户并由并由最最终用用户报告的缺陷的告的缺陷的测度,交付的工作度,交付的工作产品的品的测度,花度,花费的工作量的的工作量的测度,花度,花费时间的的测度,与度,与进度度计划是否一致的划是否一致的测度,度,以及其他以及其他测度。度。还可以通可以通过测量特定量特定软件件工程任工程任务的特性来的特性来导出出过程度量。程度量。过程度量和软件过程改进vGRA92认为不同不同类型的型的过程数据的使用可以分程数据的使用可以分为“私有的和公有的私有的和公有的”。私有度量的例子有:个人缺陷率、。私有度量的例子有:个人缺陷率、软件构件缺陷率和开件构件缺陷率和开发过程中程中发现的的错误数。数。v“私有私有过程
11、数据程数据”的的观点与点与Humphrey所建所建议的个人的个人软件件过程方法相一致。程方法相一致。Humphrey认为过程改程改进能能够、也也应该开始于个人开始于个人级。私有。私有过程数据是程数据是软件工程件工程师个人个人改改进其工作的重要其工作的重要驱动力。力。v有些有些过程度量程度量对于于软件件项目目团队是私有的,但是私有的,但对所有所有团队成成员是公用的。例如,主要是公用的。例如,主要软件功能的缺陷件功能的缺陷报告、告、正式技正式技术评审中中发现的的错误,以及每个构件或功能的代,以及每个构件或功能的代码行数或功能点数。行数或功能点数。这些数据可由些数据可由团队进行行评审,以便,以便找出
12、能找出能够改善改善团队性能的指性能的指标。过程度量和软件过程改进v公用的度量一般吸收了原本是个人或公用的度量一般吸收了原本是个人或团队的私有信息。收集和的私有信息。收集和评估估项目目级的缺陷的缺陷率、工作量、率、工作量、时间以及相关的数据,来找以及相关的数据,来找出能出能够改善改善组织过程性能的指程性能的指标。v软件件过程度量程度量对于于组织提高其整体的提高其整体的过程成熟度能程成熟度能够提供很大的帮助。不提供很大的帮助。不过,就,就像所有其他度量一像所有其他度量一样,软件件过程度量也可程度量也可能被能被误用,用,产生的生的问题比它比它们所能解决的所能解决的问题更多。更多。过程度量和软件过程改
13、进vGRA92提出一提出一组“软件度量件度量规则”。管理者和。管理者和开开发者在制定者在制定过程度量大程度量大纲时,这些些规则都适用:都适用:v解解释度量数据度量数据时使用常使用常识,并考,并考虑组织的敏感性。的敏感性。v向收集向收集测量和度量的个人及量和度量的个人及团队定期提供反定期提供反馈。v不要使用度量去不要使用度量去评价个人。价个人。v与开与开发者和者和团队一起一起设定清晰的目定清晰的目标,并确定,并确定为达到达到这些目些目标需需要使用的度量。要使用的度量。v不要用度量去威不要用度量去威胁个人或个人或团队。v指出指出问题区域的度量数据不区域的度量数据不应该被被“消极地消极地”看待,看待
14、,这些数据些数据仅仅是是过程改程改进的指的指标。v不要在某一个不要在某一个别的度量上的度量上纠缠,而无暇,而无暇顾及其他重要的度量。及其他重要的度量。过程度量和软件过程改进v随着一个随着一个组织更加得心更加得心应手地收集和使用手地收集和使用过程度量,程度量,简单的指的指标获取方式就会逐取方式就会逐渐被被更加精确的方法所取代,更加精确的方法所取代,该方法称方法称为统计软件件过程改程改进。本。本质上,上,SSPI使用使用软件失效分件失效分析方法收集在析方法收集在应用用软件、系件、系统或或产品的开品的开发及使用及使用过程中所遇到的所有的程中所遇到的所有的错误及缺陷信及缺陷信息。息。项目度量v软件件过
15、程度量用于程度量用于战略目的,而略目的,而软件件项目度量目度量则用于用于战术目的。即,目的。即,项目管理者和目管理者和软件件项目目团队通通过使用使用项目度量及从中目度量及从中导出的指出的指标,可以改,可以改进项目工作流程和技目工作流程和技术活活动。v在大多数在大多数软件件项目中,目中,项目度量的第一次目度量的第一次应用用是在估算是在估算阶段。从段。从过去去项目中收集的度量可以作目中收集的度量可以作为估算当前估算当前软件工作量及件工作量及时间的基的基础。随着。随着项目目的的进展,可以将花展,可以将花费的工作量及的工作量及时间的的测量与最量与最初的估算初的估算值(及及项目目进度度)进行比行比较。项
16、目管理者目管理者可以使用可以使用这些数据来些数据来监控控项目的目的进展。展。项目度量v随着技随着技术工作的启工作的启动,其他,其他项目度量也目度量也开始有意开始有意义了。生了。生产率可以根据率可以根据创建的模建的模型、型、评审的的时间、功能点以及交付的源代、功能点以及交付的源代码行数来行数来测量。此外,量。此外,对每个每个软件工程任件工程任务中所中所发现的的错误也要也要进行跟踪。在行跟踪。在软件件从需求到从需求到设计的演化的演化过程中,需要收集技程中,需要收集技术度量来度量来评估估设计质量,并提供若干指量,并提供若干指标,这些指些指标将会影响代将会影响代码生成及生成及测试所采用所采用的方法。的方法。项目度量v项目度量的目的是双重的。首先,利用目度量的目的是双重的。首先,利用度量能度量能够对开开发进度度进行必要的行必要的调整,以整,以避免延避免延迟,并减少潜在的,并减少潜在的问题及及风险,从,从而使得开而使得开发时间减到最少。其次,减到最少。其次,项目度目度量可在量可在项目目进行行过程中程中评估估产品品质量,必量,必要要时可可调整技整技术方法以提高方法以提高质量。量。v随着随着质量的提高