企业软件度量过程的建立
作者:沙晋 单位:深圳易思博网络系统有限公司
关键词:度量 量度 CMM
摘要:软件度量并非一个新的话题,其主要目的是为组织提供对软件过程和产品更深入洞察力,这也就使组织能够更好的进行决策并朝着组织目标发展。对于软件企业而言,度量通常等价于采集并报告数据并且主要以数字为表现形式。本文的目的不在于提供软件度量概念上的解释及由来,而将聚焦于企业软件度量过程的建立上。
从软件企业的观点出发,软件度量(Software Measurement)是通过各种不同的量度(metric)对软件生命周期中的各个元素进行度量(Measure),它能够为项目管理者提供有关项目的各种重要信息,同时也是进行大多评估活动的基础。
通常度量程序是由一些软件工程组在组织中进行实施,而这种用于量化软件过程的决策手段实际上能为所有涉及软件的人或部门带来好处:
项目经理得益于在计划及控制软件项目时作出相关决策;
项目成员能聚焦于工作的改进;
软件配置管理组能关注于产品的完整性;
软件质量保证组则能专注于过程的保证;
当然用户则关于软件产品的最终使用;
除此以外,其他涉及并关心软件过程及产品的职能部门都能以此作出相关决策。
既然软件度量能为企业组织的各个方面带来好处,那么我们究竟应该如何在企业组织中来设计并实现这一度量过程呢?本文将以此为目的展开。
首先,让我们先来了解一下设计软件度量过程的主要构架:
开发一个度量过程并使其成为企业组织中标准软件过程的一部分;
通过定制与整合各种过程资产来对项目及相关手续拟定过程计划;
执行拟定的计划和相关手续来对项目进行过程的实施;
当项目进一步成熟且度量需求发生改变时对相关计划及手续进行改进以改善该过程。
根据以上几点,Carnegie Mellon大学的SEI提出了以下的一个软件度量过程体系结构图:
图1:软件度量过程体系结构
下面我们就来按照上面的体系结构进行分析:
过程计划的制定
制定度量过程的计划包括两个方面的活动,一个是确认范围,一个是定义程序步骤:
确认范围:该活动的根据是要明确度量需求的大小,以限定一个适合于企业本身需求的度量过程。因为在整个度量过程中是需要花费人力物力等有限资源的,不切实际的大而全或不足以反映实际结果的需求都会影响度量过程的可靠性以及企业的发展能力。
定义程序步骤:在确认了范围后,就需要定义操作及度量过程的步骤,在构造的同时应该成文立案。主要工作包括定义完整,一致,可操作的度量;定义数据采集方法以及如何进行数据记录与保存;定义可以对度量数据进行分析的相关技术,以使用户能根据度量数据得到这些数据背后的结果。
过程的实施
过程的实施也包括两方面的活动,一个是数据的采集,一个是数据的分析:
数据的采集:该活动根据已定义的度量操作进行数据的采集,记录及存储。此外,数据还应经过适当的校验以确认有效性。在进行该项活动时应具有一定的针对性,对于不同的项目或活动所需要的实际数据量是有差别的,而且对活动状态的跟踪也是非常重要的。
数据的分析:该项活动包括分析数据及准备报告,并提交报告,当然进行评审以确保报告足够的确实性是有必要的。这些程序步骤可能会需要更新,因为报告可能没有为使用者提供有益的帮助或使用者对报告中的内容不理解,在这两种情况下,都应回馈并更新度量过程以再进行数据分析。
过程的改善
过程的改善仅包含一个方面的活动,即优化过程:
优化过程:该过程活动被用于动态地改善过程并确保提供一个结构化的方式综合且处理多个涉及过程改进的问题。除此以外,该活动对度量过程本身进行评估,报告的使用者会对数据的有效性进行反馈。这些反馈可能来自其他的活动,但一般都会溶入到度量过程新一轮的生命周期中去,对度量过程进行新的确认及定义。
现在,我们已经基本了解了设计一个软件度量过程的体系结构,那么,我们应该如何来进行实施呢?这也就是我们下面即将展开谈到的。
如果企业组织决定在内部开始或改善软件度量过程,组建一个度量专组是很有必要的,同时企业应为该专组提供确定和必要的资源,以便使其展开工作。在完成相应的准备工作后,我们就可以开始经历一个实施的过程了。
确认目标:企业组织必须有明确,现实的目标,进行度量的最终目前是进行改进,如果专组不能确定改善目标,则所有的活动都是茫目且对组织无益的。
对当前能力的理解及评价:正确直观地认识到企业组织当前所处的软件能力是非常重要的,在不同的阶段,组织所能得到并分析的数据是有限的,且分析技术的掌握了是需要一个过程的。度量专组应能够针对当前的软件能力设计度量过程,找到一个均衡点。
设计度量过程:这部分工作也就是我们在前面所详细讨论的一部分。
过程原型:度量专组应该利用真实的项目对度量过程进行测试和调整,然后才能将该过程应用到整个组织中去,专组应确保所有的项目都能理解并执行度量过程,并帮助他们实现具体的细节。
过程文档:到此,专组应该回到第一步审视度量过程是否满足了企业的目标需求,在进一步确认后应进行文档化管理,使其成为企业组织软件标准化过程中的一部分,同时定义工作的模板,角色,以及责任。
过程实施:在前几步完成的情况下,可以开发一个度量工作组来对度量过程进行实施,该工作组会按照已经定义的度量标准来进行过程的实施。
程序扩展:这一步骤是实施的生命周期中最后一个环节,不断的根据反馈进行监督,改进是该生命周期开始的必要因素。
到此,我们已经清楚了软件企业度量过程的完整建立过程,与CMM一样,这也只是一个规范与框架,具体的实现将根据各个企业组织的不同则不同。尽管SW-CMM中并没有一个专门的软件度量的关键过程域,而是将其贯穿于其他关键过程域中,不过在SW-CMM的继承者--CMMI中定义了一个专门的关键过程域:度量与分析。
参考文献:
1. Establishing a Software Measurement Process,CMU/SEI,Donald R. McAndrews,July 1993
2. Goal-Driven Software Measurement--A Guidebook,CMU/SEI,Robert E. Park,August 1996
3. Software Measurement Guidebook,SEL,NASA,June 1995
4. Object-Oriented Software Measures,CMU/SEI,Clark Archer,April 1995
5. Software Quality Measurement:A Framework for Counting Problems and Defects,CMU/SEI,William A. Florac,1992