您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 软件工程实践(14)质量保证
北京理工大学软件工程实践汤铭端中国航天科工集团公司204所第十四讲质量管理与质量保证评审与审查风险管理目的与内容掌握质量的概念了解质量管理和质量保证的内容和过程掌握评审和审查的过程了解和掌握风险管理的概念与过程质量管理质量的概念质量定义:反映实体满足明确和隐含需要能力的特性综合定义的说明:明确需要:指合同中用户明确提出的要求与需要隐含需要:指由生产企业通过市场调研进行识别与探明的要求或需要特性:实体所特有的性质,反映了实体满足需要的能力项目的质量质量的类型:质量,通常指产品的质量,广义的还包括工作的质量。产品质量是指产品的使用价值及其属性;而工作质量则是产品质量的保证,它反映了与产品质量直接有关的工作对产品质量项目的质量从项目作为一次性的活动来看,项目质量体现在由WBS反映出的项目范围内所有的阶段、子项目、项目工作单元的质量所构成,也即项目的工作质量;从项目作为一项最终产品来看,项目质量体现在其性能或者使用价值上,也即项目的产品质量。质量成本质量成本是实施单位为了保证和提高产品质量、满足用户需要而支出的费用,以及因未达到质量标准而产生的一切损失费用的总和。质量管理的内容质量计划质量控制质量保证戴明环——PDCAP:Plan-计划D:Do-实施C:Check-检查A:Action-处理PDCA质量计划质量计划的目的主要是确保项目的质量标准能够得以满意的实现,其关键是在项目的计划期内确保项目按期完成,同时要处理与其他项目计划之间的关系。质量计划的内容需达到的质量目标质量工作具体流程在项目各个不同阶段,职责、权限和资源的具体分配项目实施中需采用的具体的书面程序和指导书有关阶段适用的试验、检查、检验和评审大纲达到质量目标的测量方法随项目的进展而修改和完善质量计划的程序为达到项目质量目标必须采用的其它措施项目质量控制质量控制主要是监督项目的实施结果,将项目的结果与事先制定的质量标准进行比较,找出其存在的差距,并分析形成这一差距的原因,质量控制同样贯穿于项目实施的全过程。项目的结果包括产品结果(如交付)以及管理结果(如实施的费用和进度)。质量控制通常是由质量控制部门或类似的质量组织单元实施,但是也并非总是如此。质量保证质量保证是所有计划和系统工作实施达到质量计划要求的基础,为项目质量系统的正常运转提供可靠的保证,它应该贯穿于项目实施的全过程之中。在ISO9000系列实施之前,质量保证通常被描述在质量计划之中。质量保证通常是由质量保证部门或者类似的组织单元提供,但是不必总是如此。质量保证通常提供给项目管理组以及实施组织(内部质量保证)或者提供给客户或项目工作涉及的其它活动(外部质量保证)。“质量保证”与“保证质量”保证质量是质量控制的任务用户不提QA,项目实施者也要进行质量控制,保证项目质量满足用户要求QA是以保证质量为基础,进一步引伸到提供质量“信任”这一基本目的QA的主要工作是促进完善质量控制,以便准备好客观证据,并根据对方的要求有计划、有步骤地开展提供证据的活动“保证”有“保险”的意义软件质量保证软件质量保证的目的是向管理者提供适当的对软件项目正使用的过程和正构造产品的可视性。软件质量保证包括评审和审计软件产品和活动以验证它们符合适用的规程和标准,给项目和其它有关的经理提供这些评审和审计的结果。SQA的问题处理渠道首先在软件项目内部处理符合性问题,如可能的话就地解决它。对于那些无法在软件项目内部解决的问题,软件质量保证组逐级上递该问题到管理者的恰当层次以求得解决。SQA的目标目标1软件质量保证活动是有计划的。目标2软件产品和活动遵守适用的标准、规程和需求的情况得到客观的验证。目标3受影响的组和个人接到软件质量保证活动和结果的通知。目标4高级管理者处理在软件项目内部不能解决的不符合问题。SQA的独立性存在负责协调和实施项目的SQA的组SQA有一个向高级管理者报告的渠道,它独立于:项目经理,软件工程组,其它的有关组组织机构支持那些要求独立性的活动,如SQA独立性应该:给担当SQA角色的个人提供组织上的自由度,使他们成为高级管理者在软件项目上的“耳目”。使得担当SQA角色的个人免受他们正在评审的软件项目的管理者所作的性能评价的影响。使高级管理者相信正在报告的有关项目过程和产品的信息是客观的。SQA过程活动活动1按照已建档的规程为软件项目制订SQA计划活动2按照SQA计划进行SQA组的活动活动3SQA组参与准备和评审项目的软件开发计划、标准和规程活动4SQA组评审软件工程活动以验证符合性活动5SQA组审计指定的软件工作产品以验证符合性活动6SQA组定期向软件工程组报告其活动的结果活动7按照已文档化的规程对在软件活动和软件工作产品中所鉴别出的偏差建立文档并加以处理活动8SQA组与顾客的SQA人员一起对它的活动和发现进行定期评审SQA计划的内容1.SQA组的职责和权力2.SQA组的资源要求3.项目的SQA组活动的进度表和投资4.SQA组参加制定项目的软件开发计划、标准和规程的情况5.将由SQA完成的评价6.将由SQA组进行的审计和评审7.将用作SQA组评审和审计的基础的项目的标准和规程8.用于对不符合性问题建立文档和进行跟踪直至结束的规程9.要求SQA组生成的文档10.就SQA活动给软件工程组和其它软件—有关组提供反馈信息的方法和频率评审与审查Review&Inspection概论在软件的研制过程中必须进行的一项重要工作,就是软件的验证与确认。软件验证是确定软件开发周期中的一个给定阶段产品是否达到前阶段确立的需求的过程。它包括评审、审查、测试、检查、审计等项活动。软件确认是在软件开发过程结束时对软件进行评价,以确认它和软件需求是否相一致的过程。也可以说,确认是“端到端”的验证。什么是验证与确认验证和确认是两项相辅相成的工作,但它们之间却极易混淆。软件工程权威BarryW.Boehm曾巧妙地用两句形式相似但内容不同的话作过精辟的描述:Verification:Arewebuildingtheproductright?Validation:Arewebuildingtherightproduct?验证:我们正正确地制造产品吗?确认:我们正制造正确的产品吗?为什么V&V不论项目大小如何,软件验证与确认很大程度地影响着软件的质量。人总是会犯错误的,而没有经过验证的软件将难以正常工作。有典型事例说明在开发期间每1000行代码中发现有20到50个错误,而即使是在系统测试之后每1000行代码中仍有1.5到4个错误。软件验证与确认的目标是把错误减少到可以接受的水平。软件的验证与确认工作占用整个项目的30%~90%的资源。验证与确认V形图软件开发工作开始于图的左上角,沿左边的产生“软件规格”侧向下进行到“V”的底端,其间要逐阶段进行验证;之后沿右边的产生“软件产品”侧向上,之间对应着它们对“软件规格”的验证。V形图强调在左侧按照输入验证每个输出及在右侧根据“软件规格”验证软件产品。系统需求软件需求概要设计详细设计单元测试组装测试编码确认测试系统联试详细设计概要设计软件需求系统需求型号任务编译后的单元测试后的单元组装后的软件测试后的软件交付软件验证验证验证验证验证验证验证与确认验证与确认V形图验证与确认说明根据系统需求验证软件需求根据软件需求验证概要设计根据概要设计验证详细设计根据详细设计验证编码用单元测试验证详细设计用组装测试验证概要设计用确认测试验证软件需求用系统联试验证系统需求通过评审进行V&V对软件的工作产品进行验证的一个重要方法是评审。评审是把工作产品或工作产品集提交给项目人员、经理、用户、顾客或其它感兴趣各方进行评价或批准的过程或会议。评审一般有技术评审、审查、走查、审计等多种形式。检查阶段工作的管理评审称作阶段评审。为什么要及早进行评审1)程序中的大部分错误是在编码之前造成的。据统计,设计及之前阶段产生的错误大约占63%,而编码错误仅占37%。2)错误的检测与改正时间越晚,所付出的代价也就越高。通过对一些大型软件项目的分析表明;如果在需求和设计阶段发现一个错误,改正所需费用为1;那么在测试前发现该错误,改正费用则为6.5;在测试时发现,改正费用为15;而在交付使用后再发现,改正费用则高达67。3)错误还会被“放大”。阶段评审评审的目的阶段评审在软件研制的各个阶段完成了预定工作时进行,目的是检查该阶段工作是否完成,是否达到了规定的质量和技术要求,检查计划管理、质量管理、风险管理、配置管理的执行情况,决定是否可以转入下一个研制阶段。各研制阶段结束时均应进行阶段评审。评审组成员评审由项目组上级主管机构组织,组长由上级主管领导担任。成员包括:1)主管领导;2)同行专家;3)质量管理人员;4)科研(计划)管理人员;5)项目组成员;6)交办方代表(必要时)。阶段评审程序(1)(1)评审前的准备准备阶段评审汇报和被评审文件。汇报内容:1)本阶段研制工作的主要内容和完成情况;2)为保证产品质量所做的质量保证工作;3)计划落实和配置管理情况;4)本阶段出现的主要问题及解决情况;5)结论及建议。(2)确定评审人员和日期(3)评审组分工(4)评审组审阅评审文件承办单位提前三天将评审文件提交评审组审阅阶段评审程序(2)(5)评审会议1)软件研制项目组作阶段评审汇报;2)评审组询问、讨论、审查各项工作,项目组答辩;3)评审组作出评审结论并由组长宣布。(6)填写评审总结报告(7)评审后的工作评审结论入配置管理、保存备案、交上级审批。项目组针对修改意见和改进建议,经审批进行修改补充。项目组根据评审意见,转入下一研制阶段。阶段评审表在每次阶段评审时,都必须履行正式手续,填写必要的评审表格,以利于项目管理和质量检查。阶段评审表由三张子表组成子表1是对评审中发现问题的记录子表2是评审总结报告子表3是评审小组成员登记与签字表对于在评审中发现的软件问题,用软件问题报告单对问题进行详细的描述。评审问题记录登记号评审日期年月日评审性质评审□复审□项目名子项目名代号编号问题摘要问题类型是否解决123456789101112131415评审总结报告登记号评审日期年月日评审性质评审□复审□项目名子项目名代号阶段名系统需求□需求分析□概要设计□详细设计□软件实现□组装测试□确认测试□系统联试□项目组长姓名单位电话评审任务评审材料通过不需修改稍作修改不通过作重要修改要重新评审备注评审小组成员职务姓名职称单位签字组长副组长成员成员成员成员成员成员成员技术评审以下技术评审过程是欧洲航空局最佳实践过程之一目的技术评审的目的是对具体的工作产品集(如文档、源代码)进行评价,并对管理提供以下信息:它们符合前一阶段制定的软件规格;它们已按照项目的标准和方法完成;所有的更改都正确地得到完成,并只影响对更改规定的范围。组织技术评审过程由评审组来执行,评审组中有以下的角色:负责人秘书成员职责负责人的责任包括:提名评审组;组织评审并通知所有参加者评审的时间、地点和日程;会议前向所有参加者分发评审项并在必要时分配评审项;必要时组织评审组开展准备工作;主持评审会议;发布技术评审报告。必要时秘书应协助负责人,并负责记录评审组发现的问题、作出的决定和建议。职责各评审组成员检查评审项并参加评审会议。如果被评审项规模大、复杂或需要各种专业的专家技能才能进行有效的评审,那么负责人可以在成员中分配评审项。输入适当时,对技术评审过程的输入包括:评审会议日程;对目的的陈述;评审项(如被评审的软件需求规格说明、软件概要设计说明);评审项应符合的上阶段给出的软件规格(如评审软件详细设计说明时所对应的软件概要设计说明);评审项使用的计划、标准及指南;与评审项有关的评审差异表、软件问题报告单,修改报告单;软件质量保证人员的报告。评审差异表编号
本文标题:软件工程实践(14)质量保证
链接地址:https://www.777doc.com/doc-3592814 .html