1 软件过程与质量管理
过程是执行一项既定目标的序列活动,软件过程即是人们开发和维护软件以及软件相关产品的系列活动。软件开发过程的三要素包括人、工具以及流程,即具备一定软件开发技能的人、软件开发必要的工具和设备以及完成各种开发任务的实施流程。也就是说,软件开发过程即是把人、工具和流程这三要素整合起来进行有效的运转。IS09000 2000版将软件过程定义为:一组将输入转化为输出的相互关联或相互作用的活动,而CMM标准对过程的定义为:过程是人们运用相应的流程、方法、工具和设备将原始输入材料转化成对客户而言有价值的产品输出。就是说,只有了运用流程和方法执行了活动才能称之为过程。
质量管理是指一个组织在全员参与的基础上,为满足所有受益者的质量要求而形成的一系列质量方针、目标和体系。软件质量管理是对软件的开发和生产过程的管理,包括软件项目策划、对软件过程的跟踪监控、软件配置管理以及软件质量保证等,软件质量管理的一个侧重点就是软件质量控制,而鉴于过程控制对软件质量管理的影响,对软件质量的控制就应该注重软件开发的过程控制,并以此来进行软件质量管理。
2 过程控制的意义
软件开发和维护过程直接影响着软件系统的质量,所以说,对软件质量管理不应该只注重软件产品而忽略软件开发过程,在关注软件产品的同时更应该注重软件过程控制和软件开的可度量问题,由此,就可以预测软件开发项目的趋势和所开发的软件产品的特征,以便及时对软件过程的控制和对软件质量的管理。
若没有一个成熟过程的成熟、规范化组织,就缺少对软件开发过程中出现问题的及时解决,再保持一个得过且过的态度来面对问题,就无法保证软件开发质量,对最后开发的软件产品也就不能有一个准确、合理的定位和把握,无法实现对软件质量的有效管理。而若是在一个制度化、规范化的成熟组织中,有相关的生产管理人员对软件开发过程进行监督,以便及时发现问题并解决问题,和对整个开发过程有一个宏观的制,那么就减少了人为造成的问题和故障,加快了开发过程的运行进度,提高了软件开发工作的效率,并给产品分析和产品质量预测提供了定量依据,也推进了软件开发技术的发展,降低了软件开发和维护的生产成本,提高了软件质量管理效率。
3 基于SPC统计过程控制的软件质量管理
统计过程控制(SPC)是借助数理统计方法并应用相关控制图等对软件开发和生产过程进行分析和跟踪监控的过程控制工具,通过SPC 统计过程控制技术,可以及时发现软件过程中出现的异常趋势和失控状态,并对其提出预警,而收到预警信息的生产管理人员可以实时采取相应的措施和方法来消除产生的异常状况,使过程趋于稳定并能够正常运转,以此来提高基于过程控制的软件质量管理效率,达到软件质量管理目的。
SPC 统计过程控制技术曾成功应用于工业产品的质量控制方面,也由此得到软件过程的质量管理的肯定和应用。SPC技术在软件过程的应用包括数据的采集、对过程中关键质量特性的确定、对过程的分析和改进以及通过分布特性来选择并确定控制图以实现控制图对整个过程的跟踪监控这几个环节,而SPC 统计过程控制要实现对软件过程的分析,就要先明确各度量指标,度量软件产品的缺陷数据在软件过程中的应用可以有效促进软件产品的质量管理。代码行与功能点是较为常用的度量单位,其中代码行度量是直接描述软件产品的规模,这就要求对系统内部要有准确的了解和把握,代码行度量适用于设计和编码阶段,而以功能点为基础的度量则是通过用户的视角来看系统,是以产品外部视图为基础的度量单位,主要应用于软件项目策划以及需求分析等阶段的度量。度量软件产品的缺陷数据包括项目不同阶段所产生的总缺陷数和已关闭的缺陷数以及仍然开放的缺陷数三种。
SPC 统计过程控制在软件过程质量管理的应用主要分为两个阶段,即过程分析阶段和过程监控阶段,SPC 统计过程控制是应用相应的控制图对软件过程进行分析和跟踪监控来实现软件质量的管理,SPC 技术所使用的控制图主要是用来绘制控制线、确定控制界限以及描述超出控制界限的数据点等方面。其中分析阶段所使用的控制图为分析用控制图,而监控阶段所使用的控制图为控制用控制图。
3.1 过程分析阶段
在过程分析阶段,通过利用分析用控制图对过软件程进行分析,可以知道软件开发和生产过程的状态是否稳定,而从分析用控制图的控制界限和中心线可以分析出过程能力是否能满足开发和生产的质量要求。过程分析阶段首先要做的工作,就是将生产过程中所必需要用的设备、原料以及测量系统等准备妥当,以确保生产过程的各阶段能够正常运行。接下来,收集软件过程数据,并利用过程数据做成直方图以及分析用控制图,以便过程能力和过程稳态分析的进行。同时,从分析结果来看,若过程控制状态稳定并且有足够的过程能力以供开发和生产的完成,就把分析用控制图直接转化成控制用控制图,为监控阶段做好准备。而若是过程控制状态失控,发生异常现象,应及时查找失控的原因并分析异常状况,然后实时采取相应的解决措施将其消除,同时去除异常的数据点,然后重新对分析用控制图的控制界限和中心线进行计算分析,直到软件过程处于稳定运行状态并达到过程需要的饱和能量为止,从而为下一步监控阶段的工作和最后对软件质量的有效管理打好基础。
3.2 过程监控阶段
利用分析用控制图转化过来的控制用控制图对整个软件过程进行连续跟踪监控,是过程监控阶段的主要工作。在跟踪监控过程中,以固定的抽样间隔来抽取样本并进行相应的统计计算,然后通过在所使用的控制图上描点来判定软件开发过程的受控状态。若是发现有过程状态失控现象,应及时查找并分析出状态失控的原因,并实时采取相应的措施和方法使失控异常尽快消除。监控阶段对软件过程的跟踪监控,充分体现出了SPC 技术对过程中可能存在的异常状况的预防控制,为实现软件质量的有效管理提供了依据。
总而言之,SPC 统计过程控制在软件过程质量管理的有效应用,切实提高了软件质量管理效率,推进了以过程控制为基础的软件质量管理的探究和研发,为有效解决软件质量管理引发的问题奠定了扎实的基础。
4 结束语
随着国民经济的发展和技术的不断进步,软件工程的技术问题已然得到很好的改善,随之而来的是软件质量管理方面的不足带来的软件危机。要想促进软件产业的健康发展,提高软件质量管理和软件质量管理方法的研究和探讨是相当必要的。在近些年来的探究和研发中,我们可以看到,软件开发过程直接影响着软件产品的质量,可以说,过程控制是软件质量管理的重中之重,在过程控制的基础上进行软件质量管理,可以达到合理有效的软件质量管理目的。但对于过程控制在软件管理中的应用还存在很大的研究空间,在以后软件质量管理方面,应当更深入地进行基于过程控制的软件质量管理的探讨,提高软件质量管理效率。