求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
 
软件缺陷度量与软件过程管理方法研究
 

2010-11-11 来源:网络

 

摘 要: 软件能力成熟度模型第4级中要求在项目中定量管理,建立组织级过程性能,构成完整的量化管理,采用统计或其它定量方法管理软件过程,并通过对过程中出现的方法,技术等问题进行因果分析和寻找解决方案[1]。在仔细研究了现有的缺陷度量分类方法和分析指标后,提出了一个基于缺陷度量与分析的软件过程改进模型。应用该模型可以设计缺陷数据管理系统。

关键词: 软件缺陷;缺陷度量;软件过程

1 引言

软件产品的生产过程决定了所开发出的软件的质量,提高软件质量是软件生产过程中各项活动的共同目标,因此,必须对软件的生产过程进行有效的质量控制与管理[2]。软件缺陷是软件在生命周期各个阶段存在的一种不满足给定需求属性的问题[3]。目前发布的软件中,都存在着这样或那样的缺陷,某些缺陷可能成为软件的致命隐患,而导致应用软件或操作系统崩溃,所以软件开发公司和个人必须都积极采取有效的方法,尽可能的减少缺陷。

在软件开发过程中实施缺陷的度量与分析,对于提高软件开发和测试效率,预防缺陷发生,保证软件产品质量有着十分重要的作用。缺陷分析是将软件开发各个阶段产生的缺陷信息进行分类和汇总统计,计算分析指标,编写分析报告的活动。通过软件缺陷分析可以发现各种类型缺陷发生的概率,掌握缺陷集中的区域、明确缺陷发展趋势、挖掘缺陷产生的根本原因,便于有针对性地提出遏制缺陷发生的措施、降低缺陷数量[3]。缺陷分析报告中的统计数据及分析指标既是对当前软件质量状况的评估,也是判定软件是否能按期发布或交付使用的重要依据。实施缺陷分析的前提是需要一个符合项目要求的缺陷数据管理系统,通过采集完整的缺陷数据信息,进行缺陷数据分析,来改进软件过程质量并实施缺陷预防措施。

2 问题描述

 目前多数中小型软件项目的开发对于缺陷信息的控制和管理处一种混乱的状态中,对测试前期的设计和开发阶段的缺陷数据统计和分析的重视程度严重不足。基本上是在进入测试阶段后才开始报告出大量的缺陷,进行缺陷的修正,再测试,再修正这样一个无序的过程。由于缺乏缺陷数据的统计与分析,及缺陷的预防机制,使得软件项目开发周期变得难以控制。

根据缺陷分类方法的目的,观察角度和复杂度的不同,已经出现了几种软件缺陷的分类方法。例如,比较流行的IBM公司制定的缺陷正交分类方法ODC(Orthogonal Defects Classification)。该方法提供了一种从缺陷中提取关键信息的测量范例,适用于评价软件开发过程,提出过程改进方案,其缺点在于分类复杂,难以把握缺陷分类的标准。Thayer软件错误分类方法通过错误性质划分缺陷,适用于指导开发人员消除缺陷。美国电气和电子工程师协会IEEE(Institute of Electrical and E-lectronics Engineers)制定的软件异常分类标准提供了一个统一的方法对软件和文档中发现的异常进行详细的分类,具有较高的权威性,不足之处在于没有考虑软件工程的过程缺陷,分类过程复杂[5]。软件生产是以过程为主线的,各种活动都围绕过程进行,各种工具和方法的使用都和过程紧密联系,过程由一系列的活动组成,这些活动由开发者使用工具、方法和技术完成。过程之间是相互联系的。过程结果会影响到相关的以该过程结果为基础的过程。将分类方法建立在过程基础上可以更好地理解缺陷形成的过程,把握缺陷的本质,从根本上预防缺陷。

现在市场上的已经开发了几种缺陷管理系统工具,例如Mercury公司的Quality Center,IBM公司的Rational系列管理工具,微软公司的VSTS等。类似的商用的缺陷管理系统的特性基本上都大同小异,对于缺陷属性的分类方法没有一个统一的标准,现有的缺陷管理工具在缺陷数据的分析方面普遍比较薄弱,通常只是提供一些缺陷属性数量的简单统计功能,用户不得不借助一些其它的统计分析软件或自行开发缺陷数据分析组件来进行缺陷数据的分析。在实际软件开发过程中,对于缺陷数据的分析还没有给予足够的重视。

本文基于上述思考,提出了一个基于缺陷度量与分析的软件过程改进模型,如图1。该模型可根据需要设计缺陷属性度量分类标准。在软件开发过程中通过缺陷管理系统采集缺陷数据,运用缺陷分析方法实施缺陷分析,把握缺陷发展趋势,对软件项目开发过程进行综合评价。实施缺陷预防方案,提高软件产品的开发质量。通过缺陷分析结果的反馈,改进缺陷度量分类标准和分析目标,提高缺陷分析结果的准确性。本文重点研究了缺陷分类方法和缺陷数据的分析方法,并结合某项目中的缺陷数据实例进行了分析。

3 缺陷分类方法研究

3.1 缺陷分类的目的和原则

缺陷分类的目的是通过实施软件缺陷管理,采集完整的缺陷数据信息。通过缺陷数据分析软件缺陷产生的原因,改进软件过程,预防软件缺陷,提高软件质量,改善组织的软件能力成熟度。

缺陷分类方法应满足以下要求:准确地对发现的缺陷类型进行分类;缺陷分类类型之间应无重叠,并尽可能多的覆盖开发过程中出现的分类;分类要与软件生命周期有机结合,从软件过程的角度对软件缺陷进行分类。

3.2 缺陷度量属性分类

实施度量分析的目的是为了发现软件过程中的问题,并制定过程改进的计划和目标。过程度量分析的关键是对实际工作量、项目进度、项目实际情况与计划或预计成本的偏离程度过程中存在的缺陷以及在项目中已解决的缺陷进行分析和统计。

在引言中曾提到,软件缺陷的范围很广,不仅仅指在测试过程中发现的缺陷,而是指在整个软件生命周期中发现的所有缺陷。一个缺陷需要记录许多相关的度量属性,如何划分这些度量属性也是缺陷分类研究领域的一个热点。传统的软件缺陷分类方法主要目标是消除软件缺陷,评价软件的性能和可靠性,不能满足改进软件过程的需要。所以需要设计一个较完整的缺陷分类方法,在软件生命周期各个阶段中按照缺陷产生的过程来分类。本文中将缺陷度量属性设计为描述属性、统计属性和控制属性三类。

3.2.1 基于缺陷描述属性的分类

缺陷描述属性是指:缺陷信息描述,缺陷处理时间,缺陷引入/流出原因分析,缺陷处理结果描述,缺陷调查分析相关的辅助文件路径等由处理分析缺陷的相关责任人进行记录的属性,其属性值没有固定的取值范围。缺陷文字属性按照表1进行分类。

3.2.2 基于缺陷统计属性的分类

缺陷统计属性是指:缺陷生命周期状态,缺陷流出的开发阶段,缺陷流出的部门,缺陷流出的功能模块,缺陷表现类型,缺陷的严重等级等基于缺陷数量统计其分布的属性。并且缺陷统计属性参考正交缺陷分类方法[9]划分,属性间没有相关性。缺陷统计属性按照表2进行分类。

3.2.3 基于缺陷控制属性的分类

缺陷控制属性是指:处理缺陷的角色,缺陷的分配,处理缺陷的时间,缺陷数据之间的关联关系等基于缺陷分配流程管理的属性。缺陷控制属性按表3进行分类。

4 缺陷度量过程管理

4.1 处理缺陷的角色

在软件开发过程中处理缺陷的四种角色及其工作职能的设计,如表4所示。


4.2 缺陷生命周期

  缺陷生命周期是指从报出缺陷,修正缺陷,再测试直到该缺陷被消除的这段时间[3]。缺陷生命周期在一定程度上决定着软件开发的进度,在进行缺陷分析时,定期对缺陷各种状态信息的变化趋势进行总结,是项目经理计划开发周期,调整开发进度的重要依据。在3.2.1小节表2的缺陷统计属性分类中,已经定义过几种基本的缺陷生命周期状态,各种状态之间的转换过程如图2所示。

4.3 缺陷分配管理流程

  从缺陷的发现直至最终缺陷被修正消除的一个生命周期中,缺陷的分配管理流程主要包括: (1)报告人登陆缺陷; (2)管理人员分配缺陷给相关责任人; (3)责任人调查并修正缺陷,分析缺陷引入的原因; (4)管理人员对修正结果进行复查,分析缺陷流出的原因; (5)报告人验证缺陷是否被正确修正,具体流程如图3所示。

应用缺陷度量属性分类和缺陷分配管理流程,可以根据项目需要构建缺陷管理系统。通过对采集的缺陷数据进行分析,利用分析结果可以对缺陷度量属性分类和缺陷分配管理流程做进一步的进,以适应项目开发的需要。

5 结语

软件项目开发过程需要一种方法能够持续对其进行监控和改善其中存在的问题。以往的件开发过程使用软件缺陷管理系统对发现的缺进行跟踪和修复,但是能够合理利用缺陷数据进分析统计的却不多,许多统计到的缺陷信息并没得到很好的利用。本文中设计了缺陷度量属性类方法和缺陷分配管理流程,通过在软件开发过中实施缺陷过程度量管理,并采用合适的缺陷分技术,可以帮助项目组对整个软件开发过程的质情况进行评估,了解缺陷集中区域和发展趋势,及时采取处理措施解决,使软件项目开发周期更可控。

 



如何有效地进行项目沟通
如何进行项目计划及质量管理
IT项目风险管理案例和应对之道
组建高效快速研发团队的必要
一个甲方项目经理的自白
TFS使用指南


软件项目管理
软件开发项目管理
研发项目管理
高级项目管理实战
敏捷项目管理实践
项目风险管理

相关咨询服务
建立项目管理规范


中国银行 IT外包项目管理
北京软件项目管理
某电子软件中心 项目外包管理
某电信服务商 项目外包管理
富士 软件外包项目管理与进度
Schneider 项目管理+软件质量
中国电信 软件项目管理