基于CMMI的软件质量保证过程管理

2015-05-30 10:48聂芸
软件工程 2015年8期
关键词:过程管理

聂芸

摘 要:软件质量保证是当今软件行业一个值得关注的重要问题。软件的质量则直接关系到用户的生命和财产安全。而在实际的工程应用中,软件质量的优劣与软件工程过程的合理与否有着密切的关系。本文从理论和实践两个角度详细阐述了基于CMMI的软件质量保证过程,从而实现了基于CMMI的软件质量保证的定量和全面的质量管理。

关键词:CMM;软件质量保证;过程管理

中图分类号:TP31 文献标识码:A

Abstract:Software quality assurance is an important issue of the software industry.Software quality is directly related to people's life and property safety.In the actual engineering application,the pros and cons of the software quality have a close relationship with software engineering process.From two angles of theory and practice,this paper has a detailed elaborated based on CMMI,software quality assurance process for software quality assurance of the quantitative and comprehensive quality management.

Keywords:CMMI;software quality assurance;process management

1 引言(Introduction)

在计算机软件工程方面,质量常常被视为系统内部部件或系统过程中满足的以下两个要求:(1)明确的需求。(2)客户或用户对系统的需要或期望的程度。更为重要的是,软件产品的质量往往是软件工程的核心所在[1]。可是,目前在软件工程中还没有形成完整且统一的软件质量的概念,而目前比较权威的观点则认为质量满足有以下四种条件:首先,软件质量需要集合计算机系统稳定和卓越程度的所有属性;其次,软件质量需要集合软件产品中满足明确需求程度的属性;第三,软件质量需要集合软件产品的明确或隐含的需求能力的特性或者特征;最后,软件质量需要满足在质量定义中客户明确指出的需求[2]。

综上所述,软件质量需满足以下三个特性:(1)软件需求成为度量软件质量的基础。(2)软件质量是一种难以定量度量的属性。(3)软件质量需要同时保证客户的明确需求和隐含需求。

2 软件的质量管理(Software quality management)

而软件的质量管理则包括执行确定的质量政策、目标与职责过程相关的活动,进而使待完成的项目满足一开始制定的需求。随着各行各业中信息技术越来越广泛的使用,软件质量受到了越来越多的关注和重视。因此,软件质量的好坏与否已经越来越成为公司能否生存的核心竞争力之一。而这种决定企业生存的竞争力除了体现在多样的产品类型和先进的产品功能上外,更多的竞争力则体现在产品是否具有可靠且稳定的质量保证上。随着目前信息科技在社会日常需求上的发展,软件被应用的领域在进一步被细化。随之而来的则是进一步复杂的设计程度,以及不断被要求缩短的软件研发周期。只有软件具有的质量和服务在制定之处就以利润最大化和质量最优化为市场导向,才能将软件具有的市场价值最大化[3]。

而目前有很多能够影响软件质量的因素。首先影响软件质量的管理学因素主要有软件执行的正确性,软件的健壮性,软件运行的效率,软件的安全性和可用性,软件运行的风险,软件执行的可理解性,软件本身的可维护性和适应性,以及软件的可移植性和可再用性等因素。而软件的复杂性这个属性则决定了必须由相应固定的标准来保证软件质量,从而形成了完整统一的软件质量保证体系。

3 软件的质量保证(Software quality assurance)

软件质量保证(Software Quality Assurance,SQA)也往往具有不同的定义。目前比较权威的定义是:软件质量保证是软件质量评估和度量的一个功能单位,其包括过程和产品的保证。它的基本任务是确保软件项目履行的过程中对产品和过程的承诺。在整个软件的开发过程中,软件质量保证应该一直贯穿其中,且在该过程中软件不会被耗损,这是与硬件系统最大的不同。因此,在软件交付使用之后,该软件的可用性不会随着时间的流逝而改变,具有相当的稳定性[4]。

针对软件质量保证的软件质量管理体系是标准化组织经过长期的研究和实践逐步演化和制定的一整套适用于软件管理的理论体系。它的目的是对质量管理过程进行规范,使得软件质量管理有据可依。目前在国际社会中有两种被广泛采用的软件质量管理体系分别是ISO9000和CMM/CMMI。前者是集合了国际标准化组织的现代管理学理念的精华部分,并合并了ISO9001、ISO9002和ISO9003三种标准,进一步将PDCA戴明环闭环管理模式引入其中,同时把持续改进的思想引进并贯穿于整个软件质量管理标准,从而建立一种可持续改进的结构。后者ISO9001:2000则为各种机构和组织提供了软件质量管理的另一种切实可行的方案,并以体系化模式来管理软件组织的质量,该体系把“以顾客为中心”和“持续改进”的理念彻底贯彻到标准中,以拥有持续满意的顾客为目的,从而使软件质量和软件服务更好地满足顾客的期望值。

4 基于CMMI的软件质量保证(On software qualityassurance of CMMI)

软件能力成熟度模型集成(Capability Maturity Model Integration,CMMI)是软件能力成熟度模型(Capability Maturity Model for Software,CMM)模型的最新版本。CMMI可以描述组织软件过程的能力,其核心是将软件开发过程花,并对软件开发和维护进行监控和研究,使其满足标准化,科学化的要求,帮助企业实现更好的商业目的。在实际的执行过程中CMMI将能力成熟度划分为五个等级,分别是:初始级、已管理级、已定义级、量化管理级和优化级。这个五个等级中的每一个级别都将构成下一个级别的基础。CMMI被公认为是软件产品进入国际市场的通行证,它为改进软件组织的过程提供了一种单一的集成化框架,消除了模型之间的差异性,减少了各类模型的重复劳动,增加了软件的透明度和理解,从而建立了一个自动的并可扩展的框架,并从总体上改进软件组织的质量和运行效率。因此,有效实施地CMMI可以有效地提升软件开发项目的成功率,进一步降低软件开发风险和成本,并提高产品的质量,使得企业的竞争力在根本上得到提升。在目前看来,有两点原因促使企业实施CMMI,其一是为适应市场需求,特别是提升企业在投标活动中通过CMMI门槛的概率;第二个方面出于有效管理的目的,通过CMMI的顺利实施来对组织内部的管理进行改进,从而有效提升组织的工作效率。迄今为止,CMMI主要被应用在软件能力评估和持续过程改进这两大方面。

在实际的操作过程中,开发人员的素质和团队管理能力则往往更多地决定了软件质量,而在大型软件开发的项目中,主要体团队的总体能力又体现在软件开发人员的能力上。而软件开发过程中的控制力和自我改善能力又决定了软件的成熟度,其对软件的实际开发质量起到了至关重要的作用。因此,只有不断的加强软件开发成员团队素质的管理,才能更好地建立有效且稳定的软件开发过程,进而达到对软件开发质量的控制,以更好地保证软件的开发质量。

以上的描述主要从理论上阐述了基于CMMI的软件质量保证的概念与理论,为了更好地诠释基于CMMI的软件质量保证,本文将进一步从工程实际出发描述软件质量保证的实际操作。

5 基于CMMI的软件质量保证的实际工程操作(Thepractice of software quality assurance of CMMI)

在软件开发项目立项后,需要首先任命一名该项目的测试负责人。该测试负责人需要具体负责项目测试的相关文档,测试进度,测试质量,测试过程的管控。进而在软件测试开始前,团队的开发人员需要首先熟悉产品需求规格说明书,产品开发计划和产品详细设计等准备工作。

在熟悉产品需求规格书方面,测试人员应该参与产品需求规格说明书的审核,产品需求规格说明书完成后,需求人员应以邮件方式及时发送给测试人员,避免在产品开发完成提交测试时才告知测试人员。当开发过程和测试过程中发现需求定义有问题的,开发人员和测试人员都只能向需求人员提出问题,当需求出现疑义时,必须由需求人员与客户沟通确认,并更新需求规格说明书。在产品开发计划方面,在确定开发人员提交测试版本的时间时需要开发负责人签字确认,开发人员在提交测试版本同时给出测试说明,测试说明包括本测试版本已知重要问题,未完成功能(如果存在),测试建议等。在产品详细设计方面,对于软件项目的需求,开发人员提交测试版本时同时提交该需求的产品详细设计,内容包含开发人员为实现需求,所做的改动,新增的功能,删除的功能等说明。同时其他项目的产品详细设计内容,见软件开发流程中产品详细设计的相关说明。在整个准备过程中,开发人员、测试人员和需求分析人员需要保持充分积极的沟通,以保证所设计出的软件能够体现客户的真正需要。

在软件的设计过程中,需要详尽地将整个软件设计过程分成若干可执行的阶段,确定好每阶段的时间节点和完成需求,保证每一个阶段的充分可执行性。在完成软件设计后,测试团队需要根据最初的设计制定完备的测试需求并搭建测试平台,编写测试计划,完成测试用例审核和测试人员评估,最后在测试的完成阶段做好详尽的测试报告以备客户查询。

总之,软件的设计与测试的实际操作是一个严丝合缝并环环相扣的过程。

6 结论(Conclusion)

基于CMMI的软件测试是一个庞大且详细的框架体系,其对软件质量的保证和企业市场的扩大有着非常重要的促进作用。而基于CMMI的软件测试需要整个设计和测试团队的密切配合和积极沟通,其实际操作具有相当大的探讨空间。

参考文献(References)

[1] 赵丽莉,金学军.软件性能测试面面观[J].软件工程师,2006(11):40-42.

[2] 刘涛,薛胜军.基于CMM/CMMI的软件质量保证[J].交通与计算机,2006,24(2):121-123.

[3] 赖耿标.基于CMMI的A公司软件质量管理诊断研究[D].华南理工大学,2014.

[4] 刘文红,吴欣,张敏.基于CMMI的软件质量保证[J].现代电子技术,2012,35(16):53-56.

作者简介:

聂 芸(1978-),女,本科,工程师.研究领域:软件测试管理,软件质量保证,软件测试.

猜你喜欢
过程管理
基于教学过程管理提高人才培养质量的探索与实践
经管专业本科毕业设计(论文)创新模式研究
青岛市拓展行业现状与对策研究
如何做好建筑工程中质量控制
基于Web的毕业设计管理系统设计与实现
研究生创新培养的“步态追踪”模式
病案首页质量控制与信息系统实现方法
全面质量管理理念在高校学生事务过程管理中的应用探索
教学过程管理信息化探讨
基于PDCA模式的基础医学专业实验过程管理研究