PLM软件质量管理理论研究

【导读】
软件产品质量的保证是软件项目管理的一个重要内容。软件项目的目标不仅仅是进度目标和成本目标,更重要的就是质量目标,质量直接决定了软件产品能否生存。软件项目质量管理包
   软件产品质量的保证是软件项目管理的一个重要内容。软件项目的目标不仅仅是进度目标和成本目标,更重要的就是质量目标,质量直接决定了软件产品能否生存。软件项目质量管理包括:质量计划编制、质量保证和质量控制三个过程域。

 
   质量计划是质量管理的第一过程域,它主要结合各个公司的质量方针,产品描述以及质量标准和规则通过收益、成本分析和流程设计等工具制定出来实施方略,其内容全面反应用户的要求,为质量小组成员有效工作提供了指南,为项目小组成员以及项目相关人员了解在项目进行中如何实施质量保证和控制提供依据,为确保项目质量得到保障提供坚实的基础。
 
   质量保证则是贯穿整个项目全生命周期的有计划和有系统的活动,经常性地针对整个项目质量计划的执行情况进行评估、检查与改进等工作,向管理者、顾客或其他方提供信任,确保项目质量与计划保持一致。质量控制是对阶段性的成果进行检测、验证,为质量保证提供参考依据,它是一个PDCA循环过程。




 
2.1软件项目管理概述
   所谓软件项目管理是通过对成本、人员、进度、质量、风险等进行分析和管理,从而保证软件项目能够按照预定的成本、进度、质量顺利完成的活动。它包括项目的计划、项目组织、开发模型定义、监督和控制等主要活动。软件项目管理的根本目的是为了让软件项目从分析、设计、编码到测试、维护等阶段都能在管理者的控制之下,按预定成本按期、保质的完成软件并交付用户使用。而研究软件项目管理是为了从那些成功或失败的案例中总结出能够为今后项目开展提供指导的原则及方法,同时取长补短,以避免错误再次发生。
 
   软件项目管理的内容主要包括以下几个方面:人员组织与人员的管理、软件评估、软件项目计划、软件质量保证、风险管理等。这几个方面都是贯穿、交织于整个软件开发过程中的。其中人员组织与人员的管理主要包括对项目组人员的构成及优化;软件评估主要是用量化的方法评测软件开发中的费用、进度和产品质量等要素是否符合预期值;软件项目计划主要包括对工作量、开发成本、开发时问的估计;软件质量保证是保证产品或服务能充分满足用户需求、完成项目目标而进行的有计划、有组织的活动;风险管理是预测可能发生的各种危害到软件产品质量的潜在因素并由此采取措施进行预防。
 
   软件开发过程可以分为以下几个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段,这几个阶段都是不可缺少的。在进行软件项目管理时,我们可以遵循著名软件工程专家B.W.Boehm总结出的软件开发的七条基本原则:

   (1)用分阶段的生命周期计划严格管理;

   (2)坚持进行阶段评审;

   (3)实行严格的产品控制;

   (4)采用现代程序设计技术;

   (5)结果应能够清楚地审查;

   (6)开发小组的人员应该少而精;

   (7)承认不断改进软件工程实践的必要性。




 
2.2软件项目管理的特殊性
   相对于制造业、建筑业等项目来说,软件项目的成功率一直被公认为较低。总体来说,软件项目的成功率一般为30%左右,同时成本超出预算、时间超出预算的情况也普遍存在。之所以产生这样的结果主要是因为软件项目管理与其他行业的项目管理相比存在一定的特殊性,包括范围的不确定性、需求与实现的差异性、开发效率不确定性、工时标准不固定性等等。
 
   (一)范围的不确定性在软件开发项目的整个生命周期中,软件需求随时可能发生变化,因此软件项目的范围不确定性非常高。同时,在项目初期,由于客户往往不能清晰完整地表达他们的需求,有些需求可能是项目进行过程中才被提出来,因此也给项目范围的确认带来了不小的难度。
 
   (二)需求与实现的差异性软件项目的开发人员通常不是业务领域的专家,而业务领域的专业人员往往又不懂软件开发,因此用软件表达需求会与真实的业务需求存在一些偏差。这给项目的成功带来了一定的风险。
 
   (三)开发效率不确定性软件开发项目在很大程序上受软件架构设计好坏的影响,同时软件程序开发人员的效率受项目条件的制约也会出现很大差异。
 
   (四)工时标准不固定性软件开发不同于制造业的生产活动可以制订标准工时,软件开发人员的技能和工作效率往往随经验、对技术的掌握程度以及对业务问题的了解程度而表现出很大的差异,这也给项目的成本和进度估计带来了难度。因此在日常软件项目中,开发人员的加班加点,特别在项目后期,是普遍存在的现象。正是由于软件项目管理存在以上特殊性以及软件所特有的不确定性,为软件开发项目管理带来了难度和挑战。如何保障软件项目的成功率及软件质量成为我们所面临的一个重要课题。因此,我们需要收集项目中质量管理的成功经验,逐渐形成一个成熟的软件项目质量管理的模型,以提高软件开发的整体水平。




 
2.3软件项目质量管理
   质量:一组固有特性满足要求的程度,指产品或服务满足规定或潜在需要的特征和特性的总和。它既包括有形产品也包括无形产品;既包括产品内在的特性也包括产品外在的特性,即它包括了产品的适用性和符合性的全部内涵。
 
   软件质量:在国家标准《信息技术软件产品评价质量特性及其使用指南》中对软件质量(software quality)的定义是“与软件产品满足明确或隐含需求的能力有关的特征和特性的总和”。这个标准符合对软件质量的普遍理解,即符合用户需求的软件才能被视为高质量的软件,因此客户满意度指标也可以作为软件质量度量体系中的一个参考指标。
 
   软件项目的质量管理:指的是保证项目满足其目标要求所需要的过程。质量管理在项目管理中是非常重要的环节,它主要包括质量计划编制、质量保证和质量控制三个过程域。质量管理实施的主要过程描述如下:

   编制项目的质量计划,首先确定项目的范围、中间产品和最终产品,确定可能影响产品质量的技术要点,并找出能够确保高效满足相关标准的过程及方法。编制质量计划通常采用流程图、因果分析图等方法对项目进行分析。编制质量计划需确定需要监控的关键元素,设置合理的检查点,并制定质量标准。
 
   质量计划中还必须确定有效的质量管理过程,明确质量监理人员对项目质量负责和各级质量管理人员的权限。质量计划中必须将管理活动的细节明确落实到各责任人或单位,才能保证质量计划的有效实施。质量计划确定后,按照其建立的质量管理体系,各模块就要按照质量计划的要求实施有效的质量控制。质量控制应贯穿于项目的整个过程,它可分为监测和控制两个阶段:监测的目的就是收集、记录和汇总有关项目质量的数据信息;控制就是使用质量监测提供的数据进行控制,确保项目质量与计划保持一致。
 
   在质量监测过程中,对于质量计划中设置的检查点或里程碑事件,质量监测人员要及时进行检查,以确定项目是否符合相关的质量标准。同时,对质量监测的结果要进行及时的分析,确定项目实施过程是否在控制之中,并进行趋势分析,对一些偏向于不合格的趋势及早进行控制。在质量监测分析时,对于那些已发现的不合格或存在着潜在不合格的因素,应制定相应的纠正措施或预防措施。纠正措施或预防措施制定后,应对质量计划进行相应的调整,保证项目的顺利实施。
 
   项目收尾包括项目评估和项目终止两个阶段。项目收尾阶段的质量控制是一个非常重要而又容易忽视的内容。项目质量评估不仅仅是在项目完成后进行,还包括对项目实施过程中的各个关键点的质量评估。项目质量评估看起来属于事后控制,但它的目的是试图总结出项目质量合格或不合格的精髓,以便在以后的项目质量管理中能够从中获益。
 
   项目终止阶段,应提供项目质量评估报告、项目竣工报告等,同时进行项目总结。项目总结是一个把实际运行情况与项目计划不断比较并提炼经验教训的过程。通过项目总结,项目过程中的经验和教训将得到完整的记录和升华。一个角色也可以包含多个访问者。




 
2.4软件项目质量管理实施方法研究
   在PLM系统软件开发项目质量管理活动实施过程中,根据企业质量管理的现状以及软件项目质量管理的特点,我们主要借鉴了戴明环、PSP和TSP三种质量管理实施的方法,具体理论分析如下:
 
2.4.1戴明环
   在项目质量管理的实施过程,戴明环(又名PDCA循环法)作为有效的管理工具在质量管理中得到广泛的应用。它为企业实施质量改进提供了一个周期模型。将这个模型运用到企业全面质量管理过程中,企业可以把它用做质量过程改进的方法,通过对问题的定义,确定改进机会,建立改进计划和目标,并根据问题产生的原因实施改进,在改进实施中收集数据,进行分析评价,从而进行持续的改进。戴明环一般将项目划分为四个阶段:

   第一个阶段称为计划阶段,又叫P阶段(Plan)
   这个阶段的主要内容是市场调查、用户访问、需求收集等,摸清用户对产品质量的要求,确定质量目标和质量计划等。

   第二个阶段为执行阶段,又称D阶段(Do)
   这个阶段是实施P阶段所规定的内容,如根据质量标准进行产品设计、试制、试验、其中包括计划执行前的人员培训。

   第三个阶段为检查阶段,又称C阶段(Check)。

   这个阶段主要是在计划执行过程中或执行之后,检查执行情况是否符合计划的预期结果。

   最后一个阶段为处理阶段,又称A阶段(Action)。
   主要是根据检查结果,总结经验并采取相应的措施。

图2-1PDCA图
 
   质量管理活动的全部过程实际上就是质量计划的制定和组织实现的过程,而这个过程就是按照PDCA循环不停顿地周而复始地运转的,如图2—1所示。在质量管理活动中,无论企业是为了提高产品质量,还是为了减少不合格的产品,都要先提出目标,并将该目标以及实现目标需要采取的措施写入到计划中;计划制定后,项目就要按照计划进行项目活动进行检查,看是否达到了预期的目标;然后通过检查找出问题及问题产生的原因;最后就要进行处理,将经验和教训制定成标准或形成制度。
 
   PDCA循环体现了过程改进的顺序性和持续性的特点,它具有广泛适用性和对具体管理活动的指导性,应用非常广泛。例如IS09000和IS014000管理体系的建立都是基于PDCA循环。通过应用PDCA循环,不但有助于提高产品的质量,还对项目成员工作思路和工作方法的转变、增强个人的质量意识、提高工作水平起到了积极的促进作用。
 
2.4.2PSP个人软件过程
   在软件项目中,由于人员成本占据了软件开发成本的70%,所以工程师的技能与工作习惯很大程度决定了软件开发过程的结果。要提高项目质量,就要以人为本,提高项目参与者的素质及质量意识。具有高素质的开发工程师将对项目质量目标的实现起到事半功倍的作用。因此,在软件项目『F式之前,必须对缺乏项目管理及质量管理意识的开发工程师进行相关的培训。基于CMM实践中的发现,通过对工程师进行PSP培训,可以帮助企业建立一套规范的程序开发方法,并极大地提高软件产品开发的质量。
 
   PSP(Personal Software Process个人软件过程)是一种用于控制、管理和改进个人软件工作方式的自我改善过程,足一个包括软件开发表格、指南和过程的结构化框架,有助于模范软件工程师的个人技能的结构化框架。实践证明传统的测试/修复策略对于工程化的生产来说是昂贵的、耗时的、效率低的,因此PSP的策略是为系统工作的所有软件工程师都必须做质量工作,使用已经定义、度量的过程,建立可度量的目标并为了这些目标跟踪软件性能。它指导软件工程师如何设计、跟踪自己的工作;如何利用己定义的和已度量的过程;如何建立可度量的目标并根据目标跟踪性能;如何从一开始就控制质量;如何分析每个工作的结果;如何利用这些数据结果调整和改进下一项目的过程。
 
   PSP的过程结构如图2—2所示:首先计划项目的规模以及所需资源,从而确定进度计划,并将计划写入计划和总结报告中以便与实际的进行对比;脚本用于指导工作和数据的收集,经过设计、设计复查、编码、编码复查、编译、测试等阶段实施开发,将设计和编码所需时间和发现的缺陷记入同志中;在后续处理阶段收集日志中的时间、缺陷等数据,度量程序的规模以及计划总结表格,同时将日志记入产品计划总结报告中。
 
图2-2PSP过程结构图
 
   PSP被认为是组织计划引入TSP的前提条件。它可以被应用于软件开发过程的多个方面,比如:小型程序开发、需求定义、文档编写、系统测试、系统维护、大型软件系统的加强等。目前PSP不仅是一些国际知名大学或软件学院中学生的必修课程,同时在各行业中也有广泛的应用。例如全世界有越来越多的软件企业,如Microsoft,Quarksoft,BAAN,Intuit,Advanced In formation Service,Teradyne等,都通过实施PSP来增强企业的竞争力。
 
2.4.3TSP小组软件过程
   在软件开发过程中,通过对软件过程进行控制是获得高质量软件产品的关键,而小组软件过程TSP(Team Software Process)正是为如何对软件过程进行控制提供了一个实用的、可操作的软件过程参考模型。它的主要作用是指导小组软件工作的步骤,包括:1)如何规划和管理小组项目;2)使小组中已分配的不同角色有明确的目标并各司其职;3)在整个开发过程中明确每个步骤应该做什么。
 
   TSP由一系列阶段和活动组成。各阶段均由计划会议发起。在首次计划中,TSP组将制定项目整体规划和下阶段详细计划。TSP组员在详细计划的指导下跟踪计划中各种活动的执行情况。首次计划后,原定的下阶段计划会在周期性的计划制定中不断得到更新,只要计划不再适应工作,就进行更新。当工作中发生重大变故或成员关系调整时,计划也将得到更新。在计划的制定和修正中,小组将定义项目的生命周期和开发策略,这有助于更好地把握整个项目开发的阶段、活动及产品情况。
 
   每项活动都用一系列明确的步骤、精确的测量方法及开始、结束标志加以定义。在设计时将制定完成活动所需的计划、估计产品的规模、各项活动的耗时、可能的缺陷率及去除率,并通过活动的完成情况重新修正进度数据。开发策略用于确保TSP的规则得到自始至终的维护。TSP的实施过程可以看作是由众多被划分为阶段的循环构成,如图2—3所示。这些过程不断地进行交互性,以便每个阶段和循环都能在上一循环所获得的信息的基础上得以重新规划。
 
图2-3TSP过程图
 
   TSP的实施需要遵循以下原则:1)基于PSP(Personal Software Process)个人软件过程的简单框架,每个人在开发过程中各司其职;2)多周期小步骤进行开发;3)建立标准的质量和效率评测机制;4)提供小组和组员的评价准则;5)采用角色和小组评价准则;6)采用必要的开发纪律和规范;7)提供协同工作的指导。
 
   在软件项目中,TSP为项目提供了一个定义的过程框架,用以管理、跟踪报告团队过程。通过实施TSP,组织可以建立自我导向团队,计划并跟踪他们的工作、建立目标并拥有他们的过程和计划。TSP帮助组织最终完成一个成熟规范、安全可靠的软件的保障。TSP扩展并完善了PSP的方法,指导工程师开发和维护团队的工作,它展示如何建立一个自我导向的团队及如何扮演一个有效团队成员的角色。它还向管理层展示了如何指导和支持这些团队、如何维护培养团队高绩效的环境。
 
   TSP可以降低项目缺陷、改进产品质量、节省项目成本。例如微软公司通过进行TSP培训后,其开发人员的个人测试缺陷从超过25个缺陷/KLOC降低到7个缺陷/KLOC。微软的开发团队也如其他的软件开发团队一样,通常要耗费40.60%的整体开发时间在测试上,因为他们用这些时间来发现并解决产品的缺陷。但是通过实施TSP后,团队花费了充足的时间在早期的缺陷移除活动上,如个人评审和团队检查等,因此在测试阶段,他们的测试工作量只用了整个项目工作量的11.5%,并且在提交了高质量的产品的同时使得项目成本也节省了35%。
 
2.5本章小结
   在本章中,简要介绍了软件项目管理基本概念和软件项目质量管理。分析了我国软件项目质量管理现状,介绍了软件项目质量管理实施方法研究。

  • 2018-12-03 11:51
  • 我要分享:
声明:文章"PLM软件质量管理理论研究"为XXX公司原创文章,转载请注明出处,谢谢合作!您所在位置:PLM系统 > PLM新闻 > 体系管理资讯 >

联系清泰代表

热门文章
热门标签