《清华大学 殷人昆 项目管理 ppt课件 07软件项目质量管理.ppt》由会员分享,可在线阅读,更多相关《清华大学 殷人昆 项目管理 ppt课件 07软件项目质量管理.ppt(208页珍藏版)》请在三一办公上搜索。
1、1,软件项目管理,第七章 软件项目质量管理Software Project QualityManagement,清华大学计算机系 殷人昆,一个成功的项目管理是在约定的时间、范围、预算的成本以及要求的质量下,达到或超过项目干系人的期望。由此可见,项目质量管理是项目管理的重要方面,它与绩效、成本、时间是项目成功的关键因素。项目质量管理是由质量方针、组织结构、项目过程中的活动以及相应的资源组成,包括整体管理职能的活动,这些活动确定质量的政策、目标、责任,并在质量体系中凭借质量计划编制、质量控制、质量保证和质量提高等措施履行质量的目标。,7.1 项目质量与质量模型7.2 项目质量管理7.3 项目质量计
2、划的编制7.4 项目质量保证7.5 项目质量控制7.6 质量保证体系7.7 CMM的质量过程7.8 软件验证和确认技术,7.1 项目质量与质量模型,7.1.1 项目质量的概念,ISO 8402-1994 定义质量为 “反映实体满足明确和隐含需求的能力的特性的总和”。其中,实体是“可以单独描述和研究的事物”,如产品,活动,过程,组织和体系等。明确需求是指在标准、规范、合同、技术要求和其他文件中明确规定的要求。隐含需求是指用户和社会对实体的期望,以及公认的不必明确的要求。,在项目范围内,质量管理的重要方面是通过项目管理把隐含需求转变成明确需求。David Garvin提出,“质量是一个复杂的多层面
3、的概念”:从先验论角度看,质量是可以识别出来的,但不能明确定义的。从用户角度看,质量是对目标的满足程度。从制造角度看,质量是对规范的符合程度。从产品角度看,质量是产品的内在特征。从基于价值的角度看,质量依赖于顾客愿意出多少钱购买。,质量的两个主要特点:质量是综合的概念,它要求功能、成本、服务、环境、心理等诸方面都能满足用户的需要。质量是一个动态的、相对的、变化的、发展的概念,随着地域、时期、使用对象、社会环境、市场竞争的变化而被赋予不同的内容和要求,而且随着社会的进步及知识创新,其内涵和要求也是不断更新、丰富的。另外,质量还包括对项目过程的要求,如规定执行过程必须遵循的规范和标准等。,7.1.
4、2 软件质量特性,按照 ISO 8402-1994 规定,软件质量是“对用户在功能和性能方面需求的满足,对规定的标准和规范的遵循,正规化软件某些公认的应该具有的本质”。包涵的含义有三:用户的需求是软件质量评价的基础。已经规定的标准和规范是软件开发的共同准则。软件的某些要求虽然没有明确提出,但是业内公认和执行的,也应得到满足。,软件质量不是绝对的,而是相对的概念。软件质量概念需要建立在预先定义的需求的基础上,而预先定义的需求在很大程度上依赖于描述它们的人员。这些人员可能来自软件产品不同的开发环境,对软件质量有不同的理解,因此提出了关于软件产品的质量特性及其组合。如果这些质量特性及其组合都能在产品
5、中得到满足,则这个软件产品质量就是高的。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。,7.1.3 软件质量模型,软件质量特性,反映了软件的本质。讨论一个软件的质量,归结到定义软件的质量特性。定义一个软件的质量,就等价于为该软件定义一系列质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。软件质量特性定义成分层模型。最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。这些子特性在必要时又可由它的一些子特性定义和度量。,1976年 B. W. Boehm、T. R. Brown 和 M. Lipow首次提出软件质量模型,他们认为软件产品的
6、质量基本上可以从下列 3 个方面来考虑:软件的可使用性、可维护性和可移植性。这些质量特性又可分为若干层次,对最低层次的质量子特性引入数量化的概念。1979年,McCall 和 Walters 提出新的软件质量模型与度量,该模型得到公认和广泛的应用,并成为 ISO 质量模型及其他模型的基础。该模型提出软件的 11 个质量特性,集中分布在3 个方面:软件产品的运行特性、修正特性和转移特性。,Boehm质量模型,McCall质量模型,可维护性(Maintainability)可测试性(Testability)灵活性(Flexibility),正确性(Correctness) 可靠性(Reliabil
7、ity)可使用性(Usability) 效率(Efficiency)完整性(Integrity),互连性(Interoperability) 可移植性(Portability) 复用性(Reusability),ISO的软件质量评价模型,按照 1991 年 ISO 发布的 ISO/IEC 9126 质量特性国际标准 ,软件质量度量模型由三层组成 软件质量特性 软件质量子特性 软件质量度量评价准则高层和中层建立国际标准,低层可由各使用单位视实际情况制定。,ISO 9126质量模型,其中, 表示有利影响, 表示不利影响。,质量特性之间的竞争,1994年对ISO/IEC 9126开始进行修正,将原标
8、准修订为两个序列标准:ISO/IEC 9126信息技术 软件产品质量,描述新的软件质量模型,分为 4 个部分:质量模型(9126-1)内部质量(9126-2)外部质量(9126-3)使用质量(9126-4)ISO/IEC 14598信息技术 软件产品评价,详细描述软件质量评价的方法,分为 6 个部分:,概述(14598-1)策划和管理(14598-2)开发方过程(14598-3)获取方过程(14598-4)评价方过程(14598-5)评价模块的文档(14598-6)修订版保留了 6 个质量特性,但明确了它们与内部度量和外部度量的关系,并解释了这些特性与使用质量之间的关系。修订版还给出了一个质量
9、模型的规格说明,引入了使用质量。,ISO/IEC 9126与ISO/IEC 14598之间的关系,内部质量和外部质量的质量模型,外部质量是软件产品在规定条件下使用时,满足规定的和隐含的要求的程度。外部质量是从外部观点看软件产品的全部特性。内部质量是软件产品在规定条件下使用时,决定其满足规定的和隐含的要求的能力的产品属性的全体。内部质量是从内部的观点看软件产品的全部特性。在质量模型中有 6 个软件质量特性,这些特性按用户观点描述软件的外部质量,每个质量特性按开发者的观点又分解为子特性。,外部和内部质量的质量模型,使用质量的质量模型,使用质量是软件产品在规定的使用环境中,规定的用户能实现规定目标的
10、要求,并具有有效性、生产率、安全性和满意度的能力。使用质量是从软件所处的环境的观点,用软件在这个环境中的使用绩效来测量的,而不是依靠软件本身的特性来测量。,在生存期中各种质量特性的使用,软件的生存期可以划分为三个大的阶段。在软件需求定义阶段定义软件的质量要求;在软件产品开发阶段要使得软件产品具有要求的质量;在软件运行和维护阶段要测量软件是否达到了用户的质量要求并维护软件的性能水平。用户质量要求可以用使用质量度量、外部质量度量表达,有时也可以用内部质量度量来表达。用这些度量表达的要求将作为产品确认的准则。,外部质量要求从外部的观点规定要求的质量级别,包括从用户质量要求导出的要求。外部质量要求用作
11、各开发阶段的确认目标,在质量要求规格说明中用外部质量度量规定,并应当转换为内部质量要求。内部质量要求从内部的观点规定要求的质量级别,用于说明中间产品的特性。内部质量要求可以用作各开发阶段的确认目标,也可以用于定义开发策略和开发期间评价和验证的准则。内部质量要求用内部度量数据定量地规定。,7.2 项目质量管理,项目质量管理理论产生于 1920 年代,其主要目的是:最经济、最有效地开发、设计、生产用户最满意的产品和服务。质量管理的发展阶段:以产品为中心的质量检验合同及质量控制阶段(1950年),7.2.1 项目质量管理的概念,以顾客为中心的质量保证阶段(1950 年1987 年)强调持续改进的质量
12、保证阶段(1987年现在)全面质量管理阶段目前质量管理理论和实践的中心是针对过程的质量管理。主张在生产过程中保证质量,而不是在传统的生产过程结束后才发现质量问题,这就比产品质量检验控制更具有先期性和主动性。一般地,开发过程的质量直接影响可交付产品的质量,产品质量直接与生产过程有关。,产品质量是经过生产的全过程一步一步产生和形成的,产品的形成构成了产品的质量环。,软件在其开发过程中可以借用一般产品生产的质量管理基本思想。软件开发过程基本可以划分为几个阶段:需求分析、概要设计、详细设计、程序编码与单元测试、集成与测试、版本发行等。它们的质量形成过程同样涉及到各个部门及其相关人员,也涉及到生产企业内
13、外相关人员和用户。因为产品的形成受到开发过程的影响,故对生产过程的质量因素分析必须基于过程进行。影响产品质量的因素很多。根据对质量影响大小来看,可分为偶然因素和异常因素。,偶然因素始终存在,对质量影响较小。 异常因素对产品质量影响较大,应尽快找出,采取措施加以消除。根据来源不同,质量因素可分为 5M1E:材料(Material)方法(Method)设备(Machine)操作人员(Man)测量(Measurement)环境(Environment)软件产品的质量因素可以参照 5M1E 进行来源分析,并着重于异常因素的来源分析。,7.2.2 全面质量管理,ISO 9000:2000 对质量管理的定
14、义是:“在质量方面指挥和控制组织的协调的活动”。因此,质量管理确定质量方针、目标和责任,指导和控制组织所有与质量有关的相互协调的活动。1950 年代末,美国质量管理专家 W.E.Deming 和 J.M.Juran 等人提出了全面质量管理 TQC(Total Quality Control)的概念。通过多年实践,全面质量管理从以质量管理专业人员为核心进行质量管理,发展到管理者推动、组织各层次、各部门人员来学习和实施质量管理。,1994 年 ISO 8402 标准将全面质量管理定义为TQM (Total Quality Management)。其描述为 “一个组织以质量为中心,以全员参与为基础,
15、目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径”。换言之,TQM 就是运用质量管理的科学理论、技术、方法,建立起贯穿于产品质量形成全过程的质量保证体系,使企业全体职工树立质量观点,提高工作质量,经济地生产用户满足的产品。全面质量管理针对的是广义的质量,即产品质量和工作质量的综合。,工作质量是指与质量有关的各项工作,即保证产品质量的各种手段。从系统的观点来看,要获得高的产品质量,必须把重点放在工作质量上。工作质量保证了过程质量,过程质量直接影响了产品质量。全面质量管理的特点:全过程的质量管理。产品质量有一个逐步形成的过程,因此要求事前控制生产过程的质量,保证一切环节的质
16、量良好。全员的质量管理。产品质量取决于全体员工对产品质量的认识,以及与产品质量有关的工作,质量。因此,需要重视人的因素,发挥人的主观能动性。全企业的质量管理。质量管理光靠技术是不够的,要靠组织上下各个层次开展重点不同的质量活动。全面质量管理的基本方法是 PDCA 循环法。它把质量管理过程分为计划(Plan)、实施(Do)、检查(Check)、处理(Action)等 4 个阶段 8 个步骤,强调按此顺序循环反复,执行质量管理步骤。计划(Plan):分析质量现状,找出存在的质量问题。,分析产生问题的原因及各种影响因素。从众多原因中找出影响质量的主要原因,从而找出影响质量的主要因素。针对影响质量的主
17、要因素制定相应的应对措施(质量过程),制定改进质量的计划。实施(Do):贯彻和实施既定的质量计划,展开质量过程。检查(Check):检查质量过程执行的结果,评价质量过程的实施是否有效地达到了计划的预期效果。,处理(Action):总结经验教训,肯定成功的经验。明确尚未解决或者新发现的问题,并转入下一个 PDCA 循环。,全面质量管理从过去的事后检验,以“把关”为主,转换到以预防、改进为主;从管“结果”转换为管“因素”,找出影响产品质量的因素,并抓住主要因素。这要求全体人员要树立 3 个观点:系统的观点:将生产企业视为一个开放的系统,运用系统科学原理和方法,对所有环节进行全面的组织管理。为用户服
18、务的观点:树立质量第一、用户第一的思想。预防为主的观点:使生产经营活动处于受控状态。,7.2.3 项目质量管理的描述,项目质量管理包含一些过程,它要求保证该项目能够兑现它的关于满足各种需求的承诺。它包括在质量体系中与决定质量工作的策略、目标和责任的全部管理功能有关的各种活动,并通过诸如质量计划、质量保证和质量提高等手段来完成这些活动。项目质量管理主要包括质量计划编制、质量保证、质量控制三个过程。这些过程相互影响,并与其他知识体系的过程之间也相互影响。,7.3 项目质量计划的编制,项目质量计划包括识别哪些质量目标与项目有关,并确定如何满足这些质量目标。在项目计划阶段,质量计划编制是其辅助过程之一
19、,与其他过程并行进行。例如,实施产品的需求变更,可能需要对成本或进度计划进行调整,还可能需要对问题进行风险分析。质量计划的要点:引言1.1 目的1.2 定义和缩写词1.3 参考资料,项目概述2.1 功能概述2.2 项目生存期模型2.3 项目阶段划分及其准则实施策略3.1 项目特征3.2 主要工作项目组织4.1 项目组织结构 机构组成及来自各相关单位质量管理人员在机构中关系4.2 SQA组的组织4.3 SQA组的权力和职责,质量对象分析与选择质量任务6.1 基本任务6.2 活动反馈方式6.3 争议上报方式6.4 测试计划6.5 采购产品的验证和确认6.6 客户提供产品的验证实施计划7.1 工作计
20、划7.2 高级管理层定期评审安排7.3 项目经理定期和基于事件的评审安排,资源计划记录的收集、维护和保存9.1 记录范围9.2 SQA记录的收集、维护和保存质量计划需要根据项目的具体情况决定采取什么形式。有的质量计划包括质量保证计划和质量控制计划。质量保证计划包括质量保证(审核、评审软件过程、活动和软件产品等)的方法、职责、时间安排等;质量控制计划可以包括在 开发活动的计划中,如代码走查、单元测试、集成测试、系统测试等。,7.3.1 项目质量计划编制的依据,项目质量计划编制的目的是识别项目相关的质量目标,以及确定如何满足这些相关的质量目标。质量计划编制通过参照或依据实施项目组织的质量方针、项目
21、的范围说明、产品说明等,识别出项目相关的所有质量目标,从而达到或超过项目的客户及其他项目干系人的期望和要求。质量方针 ISO 9000:2000 对质量方针的定义是“由组织的最高管理者正式发布的该组织总的质量意图和质量方向”。,项目质量方针应与实施该项目的组织的质量方针一致。组织的最高管理者应在以下几方面确保:与组织的宗旨相适应 即组织的质量方针应与组织的总体经营宗旨相一致。由于不同组织提供的产品、服务及规模、目的不尽相同,其经营宗旨也各不相同,质量方针也应有所不同。包含有对满足要求和持续改进质量管理体系有效性的承诺 这种承诺的对象是与组织利益关系一致的各个相关方(包括客户、员工、供方和社会等
22、),其中对客户的承诺是最重要的,主要是满足客户对产品的要求。,提供制定和评审质量目标的框架 由于质量方针指出了组织的质量方向,而质量目标是对这一方向的落实和展开,因此质量方针应是制定和评审质量目标的框架和基础。在组织内得到沟通和理解 为了质量方针的最终实现,组织的最高管理者必须将它传达到组织内各适当层次的有关人员,使他们相互沟通和充分理解质量方针。在持续适宜性方面得到评审 组织应对质量方针是否适合于发展,进行定期评审和修订,以反映不断变化的内外部条件和信息。这种评审,一般在组织定期的管理评审中进行。,质量目标ISO 9000 : 2000 要求组织的最高管理者应在以下几方面确保建立和实现质量目
23、标:质量目标的制定 组织制定质量目标的原则应是持续改进、提高质量、使客户满意。应考虑市场当前和未来的需要,还应考虑当前的产品及顾客满意的状况。质量目标应予以分解和展开 质量目标必须分解到组织中与质量管理体系有关的各职能部门及层次(如决策层、执行层、作业层)中,相关职能和层次的员工都应把质量目标转化或展开为各自的工作任务。,质量目标应是可测量的 作业层的质量目标应该尽可能定量地设定。通过检验、计算或其他测量方法可以确定其量度值。并与设定值进行比较,以确定实现的程度。质量目标作为质量管理体系有效的判定指标,其可测量性可以增加质量目标的可评审性。与质量方针保持一致 质量目标应在质量方针的基础上建立,
24、在质量方针给定的框架内展开,内容应与质量方针保持一致,在管理评审中与质量方针一起进行评审。质量目标的内容,产品要求,即体现产品的固有特性(例如功能、性能、行为、心理、时间特性)和产品的赋予特性(如价格)。满足产品要求所需的内容,即满足产品要求所需的资源、过程、文件和活动。包括对持续改进的承诺,体现分阶段实现的原则。总之,组织应根据行业的特点、产品和服务的特点、自身的特点确定质量目标的内容。项目范围说明这是质量计划编制过程中关键的一个依据,它记录,了该项目的所有主要可交付物,也用来帮助定义重要项目干系人的需求。项目的产品说明书它详细地记录了项目交付物的功能、特点、需要达到的性能指标以及相关的技术
25、细节。了解产品说明书可以帮助识别项目相关的质量目标,并根据其产品特性和技术细节得出该项目的质量目标。标准和规则项目管理者还必须考虑任何适用于特定领域的专门标准和规则。,例如,在一个城域网项目中,根据项目本身的要求和相关业务领域要求,参照“高端路由器规范YDT 1156-2001”、“低端路由器规范YDT 1098-2001”等标准,给项目的结果提供一个质量目标。其他过程的输出除了项目范围说明和产品说明,其他知识体系中的过程所产生的结果也可作为项目质量计划编制的依据。例如,参照项目采购管理过程的输出结果“采购计划”,可以在项目质量计划中加入对承包商的质量要求。,收益/成本分析质量计划中的效益是指
26、做好各种项目工作,以满足项目的质量需求。衡量项目收益的指标是返工率降低、生产率提高、成本节省和项目干系人满意度提高。满足质量要求的成本是与项目管理活动有关的费用。编制质量计划的目的是努力使获得的收益远远超出实施过程的成本。基准比较法将计划或实际实施过程中的项目做法与其他类似项,7.3.2 项目质量计划编制的方法,目的实际做法进行比较,通过比较来改善与提高当前项目的质量管理,以达到项目预期的质量或其他目标。类似项目可以是同一应用领域的,也可以不是。因果图因果图是反映影响项目的各种潜在原因或结果与各种可能出现的问题之间关系的一种图表。也称为鱼骨图或石川( )图。因果图方法首先确定结果(质量问题),
27、然后分析造成这种结果的原因。每根鱼刺都代表可能的差错原因,用于查明质量问题的可能原因和设立相应检验点。,因果图例 1,实验设计是一种统计分析技术,用于识别和找出哪些变量对项目结果的影响最大。例如,网络设计师可通过实验确定更能满足客户需求的方案。实验设计也可用于平衡成本和进度计划等项目管理问题。例如,使用资深工程师比使用年轻工程师花费成本多,但解决问题快,能保证项目的时间进度。适当设计的“实验”可从有限的几种相关情况中找出最佳的方案。例如,根据高级工程师和初级工程师的不同组合计算成本和工期。,质量成本指为了达到产品或服务的质量进行的全部工作所发生的成本,它以货币为表现形式。质量成本可分为一致成本
28、和非一致成本。一致成本 是为确保与要求一致所做的全部工作,包括培训、指导、查证、确认、测试、维持、测量、评审。非一致成本 指由于不符合要求所引起的全部工作,包括损耗、返工、维修许可、产品回收、投诉处理等。通过缩减一致成本来节省项目费用会带来灾难性的后果。,质量成本的另一种分类为预防成本培训、设计评价、质量计划、过程能力研究、卖方供货商调查等费用。评估成本 检查和测量、设备维护、设计评审、内部设计审核、走查、整理并报告检查数据的成本。内部缺陷成本 废品与返工、与推迟付款有关的费用、缺陷存留、工程变动成本、根本设计错误和纠正文档的成本。外部缺陷成本 客户退货和补贴、现场服务、人员培训、产品责任诉讼
29、、担保、投诉处理、未来经营损失等费用。,一般的软件质量成本主要是软件设计的质量成本。软件设计的质量成本是指软件组织为保证软件产品的质量满足用户的要求所投入的费用,以及设计缺陷所造成的损失。设计质量投入 用户需求分析、运行平台与环境分析、编制可靠性大纲、培训设计开发人员等所花费的成本。设计缺陷损失 是指由于设计方案存在缺陷而被迫修改设计,甚至重新设计所花费的成本;或者由于设计方案所选择技术标准不恰当,未达到规定的质量要求,导致检验费用增加及售后服务的损失。,7.3.3 项目质量计划编制的结果,质量管理计划项目质量管理计划描述项目管理团队如何建立它的质量方针,描述项目质量体系即组织结构、职责、规程
30、、工作过程,以及建立质量管理所需的资源。质量管理计划是整个项目计划的一部分,根据项目的需要可以是正式的也可以是非正式的。除了描述项目的质量方针外,它还要兼顾质量保证和质量控制,从而提高项目的质量。操作定义操作定义是用专业化的术语描述各项操作规程的定,义,并定义相应的质量控制过程对它们的进行检测,以确保操作规程的实施符合质量要求。检测列表即测试手册。用于证实需要执行的一系列步骤已经得到贯彻执行。,7.4 项目质量保证,制定一个项目质量计划以确保一个项目的质量是一回事,确保实际交付高质量的产品和服务是另一回事。ISO/IEC 12207 : 1995 指出:软件质量保证是一个有计划、有组织的活动,
31、它向所有相关的人提供证据,以证明质量功能正在按质量要求运行的信心。ISO/IEC 12207 : 1995 还指出:软件质量保证过程(SQA)是恰当保证为项目生存期中的软件产品和过程符合规定需求和已制定计划提供足够保证的过程。,从以上定义可知,质量保证是一种管理活动,其目的是确保在软件开发过程中遵循了合适的过程和标准。它应贯穿于整个项目的始终。质量保证过程是通过评价项目的整体绩效,建立起对项目质量的信任。通过质量保证过程,使得软件项目过程和项目本身对相关各方透明化。软件质量保证过程包括 4 方面的活动:过程实施产品质量保证过程质量保证质量保证体系的质量保证,7.4.1 质量保证过程及依据,质量
32、保证是在质量系统内实施的计划中的所有活动,是保证质量管理计划得以实施的一组过程和步骤。从本质上讲,质量保证是对质量计划和质量控制过程的质量控制。其要点是:在项目进展过程中,定期对项目各方面的表现进行评价;通过评价,推测项目最后是否能够达到相关的质量指标;通过质量评价,帮助项目(内、外部)相关人员建立对项目质量的信心。,项目产品或服务的质量保证清晰的规格说明 对一个具体的项目,要明确项目的最终产品是什么,项目的中间产品是什么。这些中间产品包括各项工作的里程碑以及项目低层次活动产生的中间产品。使用完善的标准 即一个标准设计的工作包,它是从以往被证实能够达到要求的结果的经验中得出的。完善的标准对于保
33、证实现项目产品或服务的质量是非常重要的。历史经验 历史经验越多,制定的方针和规格说明就越好。而高新技术项目或新的项目组织由于经验缺乏,通常不能创建一个清晰的规格,说明。合格的资源 如果项目成员熟悉项目的领域知识和系统开发技能,就能够更好地应用标准来实现项目特定的规格。此外,合格的资源还将包括在项目实施过程中所使用的原材料和财政资源等。公正的设计评审 设计评审是为了保证在设计阶段能够满足用户的需求。但这样做有一定副作用:开发人员要花很多时间来验证、测试他们的工作,影响新的开发任务的实施。变更控制 为达到项目预期的质量目标,在质量实施的过程中,变更不可避免。因此,要仔,细定义好每个变更的目的,同时
34、认真评价对程序设计的影响,做好费用 效益分析,在预定目标的基础上做好变更控制工作。管理过程的质量保证为了保证管理过程的质量,也要采取与产品的质量保证类似的步骤,即要有一套完善的进行项目管理的规程。该规程要清晰地指明项目怎样管理好满足项目要求的资源。下面列出的是微软提出的软件质量保证检查表:你识别出对你的项目很重要的质量特性了吗?,你让其他人都知道项目的目标了吗?你对外部质量特性(正确性、可用性、有效性、可靠性、完整性、适用性、精确性和健壮性)和内部质量特性(可维护性、灵活性、可移植性、可复用性、可读性、可测试性和可理解性)作了区分吗?有没有想过有些特性是冲突的,而有些是互补的?你的项目有没有采
35、用几种不同的缺陷发现技术来分析不同类型的错误?你的项目计划中有没有包括在软件开发不同阶段进行质量保证的步骤?,质量有没有测量,以便于了解什么地方质量提高了,什么地方质量下降了?管理层是否了解质量保证在(开发)前期增加成本而在后期节省成本?项目质量保证一般通过质量管理信息系统实现。当项目的产品和服务交付后,借助质量管理信息系统继续跟踪产品和服务的运行情况。如果在保质期内发现了产品的质量问题,应由专门人员记录问题,进行分类,根据问题的级别进行处理。,质量保证的依据质量管理计划 该计划描述了项目质量管理体系,即组织结构、职责、规程、工作过程和质量管理所需要的资源。所有与质量相关的活动都要以该管理计划
36、为依据。质量控制检测结果 这是对质量控制的监测和测试,以比较、分析的形式做出的报告。操作定义 它是质量管理计划编制的输出。用以描述各种操作规程的含义,并确定如何通过质量控制规程对它们进行检测。,质量计划的工具和方法策划质量保证计划的方法通常包括收益成本分析、基准比较法、因果图、实验设计法、质量成本法等。质量审计质量审计可以是有计划的或随机的,可以由内部审计师进行,或者由第三方代理人进行。项目产品审计过程是根据质量保证计划对项目进展过程中的工作制品进行质量审查的过程。质量保证管理人员进行质量审计时:,7.4.2 质量保证的方法,预先依据相关的产品标准编写产品审计要素;然后在整个项目进展过程中根据
37、这些产品审计要素对提交的工作制品或产品进行审计,同时记录不符合项;再与相关人员会商确认这些不符合项;最后质量保证管理员根据确认结果编写产品审计报告,提交给项目经理和其他相关人员。项目过程质量审计是对质量管理活动的结构性审查,是对项目的执行过程进行检查,确保所有的,活动都遵循(计划的)规程进行。过程质量审计的目标是通过对其质量管理活动的审查总结出一些经验教训,从而提高该项目以及实施项目的组织内其他项目的执行水平。执行过程质量审计的质量保证人员一方面是作为项目过程的观察员,监督审查质量体系的执行,另一方面是作为项目质量状态的报告员,报告项目的质量现状和质量过程的状态。如何具体执行各个过程,应参照组
38、织内相应的质量体系的定义,以及为项目定制的专用过程定义等。例如,下面是一个产品审计的实例。,美国CMU SEI 推荐的软件质量保证活动为项目制定SQA计划 该计划规定了软件开发小组和质量保证小组需要执行的质量保证活动。SQA计划的要点包括:需要进行哪些评价?需要进行哪些审计和评审?项目采用的标准;错误报告的要求和跟踪过程;SQA小组应产生哪些文档?向软件项目组提供的反馈数量等。,参与开发该软件项目的软件过程描述软件开发小组为开发活动选择软件过程,SQA小组评审过程说明,确保该过程与组织政策、内部、外界标准及软件项目计划的其他部分相符。评审各项软件工程活动评审各项软件工程活动,核实其是否符合已定
39、义的软件过程。为此,SQA小组必须识别、记录和跟踪所有偏离过程的偏差,核实其是否已经改正。审计指定的软件工作产品审计指定的软件工作产品,核实其是否符合已,定义的软件过程中的相应部分。记录软件工作及软件工作产品的偏差 确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。 跟踪问题的解决 记录所有不符合部分,向管理部门报告。跟踪不符合的部分直到问题得到解决。协调变更的控制与管理。帮助收集和分析软件度量的信息。,7.4.3 质量保证的结果,质量保证的结果就是一个:质量提高。质量提高包括采取措施提高项目的效力和效能,为项目干系人提供更多的利益。在多数情况下,为提高质量必须做好变更需求或
40、采取纠正措施的准备,并按照整体变更控制的规程进行。,7.5 项目质量控制,项目质量控制就是项目管理人员采取有效措施监督项目的具体实施结果,判断它们是否符合有关的项目质量标准,并确定消除产生不良结果的原因的方法。项目质量控制活动一般包括:保证由内部或外部机构进行监测管理的一致性。发现与质量标准之间的差异。消除产品或服务处理中性能不能满足的因素。审查质量标准以决定可以达到的目标。,需要时修订项目的质量标准或项目的具体目标。项目具体结果包括:项目的最终产品(可交付成果)或服务。项目过程的中间结果。项目产品的质量控制由质量控制的职能部门负责,而项目中间产品的质量则由项目管理组织的成员进行控制。质量控制
41、过程还可能包括详细的活动和资源计划。项目的质量控制工作是一个系统工程,应从项目的全过程入手,全面、综合地进行控制。,项目的质量控制工作有两个方面。项目产品或服务的质量控制项目产品或服务的质量控制是一个诊断和治疗的过程。当产品生产出来后要检查产品的规格是否符合需求的标准。产品的质量控制活动包括验证和确认(V&V)、测试、记录和分析。项目管理过程的质量控制项目管理过程的质量过程通过项目审核来进行。项目审核通过比较管理过程的作业与成功实践的标准进行详细的检查。在软件开发项目情形,管理过程的质量控制就是开发过程的质量控制。,项目审核人员在软件开发过程的各开发阶段的检查点上对该阶段的工作成果进行评审,以
42、确定是否达到该阶段的项目质量要求。如果达到预定的目标,则项目可进入下一个阶段。下图是针对设计的评审流程。每个具体的里程碑与软件开发组某一具体的角色相关联,不同的角色属于不同的业务部门,而人员的业绩评估与管理归属于各自的业务部门。因此,基于里程碑的软件质量控制必然会演变成对角色的质量控制,这样才能真正达到对软件的质量控制。,基于角色的质量控制系统,人员构成,主要任务,控制标准,归属部门,在进行项目质量控制时,有时由于具体情况的影响,需要进行质量改进。一般情况下,质量改进可以通过常规的活动,如整体质量管理工作、持续的管理工作和少量为改善产品或服务的质量和项目进程而进行的规范过程来获得。,7.5.1
43、 质量控制的依据,质量控制是检测特定的项目结果,确定这些项目结果是否满足相关的项目质量标准,并找出解决问题的方法。在实施质量控制之前,质量控制人员必须知道实施质量控制的依据。项目工作结果项目工作结果包括项目产品结果和项目管理结果,是实施质量控制的对象。因此,在做质量控制之前要得到工作结果,对它们进行检测,判断是否满足项目相关的质量标准。,如果不能满足相关的质量标准,要根据结果找出不能满足的原因,找出解决的办法。质量管理计划质量管理计划是整个质量管理的计划文档,它描述了项目质量系统,包括组织结构、职责、规程、过程和用于质量管理的资源。质量管理计划贯穿于整个项目生存期,用于指导质量保证和质量控制。
44、操作定义和检测列表操作定义是用专业化的术语描述各种操作规程的含义,以及如何通过质量控制规程对它们进行检测。检测列表则用于检测需要执行的一系列步骤是否得到贯彻执行。,7.5.2 质量控制的方法,质量控制通常包括:监控指定的项目工作成果,判断它们是否符合有关的质量标准,并探寻导致项目工作成果不能令人满意的原因,找出消除这些原因的方法。质量控制应贯穿于项目执行的全过程。软件项目质量控制的主要活动是技术评审,通过在软件生存期的各个阶段执行验证和确认工作来消除缺陷,保证软件产品和过程的质量。由于人的认识不可能百分之百地符合客观实际,因此生存期每个阶段的工作中都可能出错。,由于前一阶段的成果是后一阶段工作
45、的基础,前一阶段的错误自然会导致后一阶段的工作中有相应的错误,而且错误会逐渐累积,越来越多。此外,及时进行评审不仅有利于软件质量的提高,还能进一步提高工程师的工作效率。对于开发工程师,可以减少修订缺陷的时间,提高编程效率;减少测试和调试时间。对于测试工程师,可以将更多的精力放到测试用例设计上,以进一步提高测试效率。对于维护人员,可以减少维护工作量,增强产品的可维护性。,技术评审是对产品以及各阶段的输出内容进行评估。技术评审的目的是揭示软件在逻辑、执行以及功能和编码上的错误;验证软件是否符合需求;确保软件的一致性。技术评审后,需要以书面的形式对评审结果进行总结。技术评审会分为正式和非正式两种,通
46、常有技术负责人或技术骨干制定详细的评审计划,包括评审时间、地点以及定义所需的输入文件。在完成技术评审的过程中,不仅需要关注上述的评审目标,还需要注意技术的共享和延续性。技术评审的对象包括系统开发规程、需求说明书、设计说明书、测试计划、用户手册、安装规程、产,品发布说明、维护手册等。在评审过程中,评审小组会议按照评审检查表对需要评审的内容逐项进行检查,确定每个项目的状态,检查项目的状态可以分为合格、不合格、待定、不适用几个等级。评审结束后,评审小组需要列出存在问题,建议措施,责任人等,并完成最终的评审报告。技术评审报告需要提供如下的内容:会议的基本信息;存在的问题和建议措施;评审结论和意见;问题
47、跟踪表格;技术评审问答记录(通常作为附录出现在报告中)。,评审检查的项目包括软件需求评审 确保规格说明中规定的各种需求的合适性概要设计评审 评价总体结构、外部接口、主要部件功能分配、全局数据结构以及各主要部件间接口的合适性详细设计评审 确认详细设计在功能、算法、过程描述等方面的合适性软件验证和确认评审 评价软件验证和确认计划中规定的验证和确认方法的合适性和完整性,功能检查 软件发行前要检查所有功能是否与需求规格说明中的规定相符物理检查 验收前检查程序与文档是否一致,是否已做好交付的准备综合检查 软件验收时,用户委托专家进行设计抽样检查。检查代码与设计文档的一致性(硬件和软件) 接口说明间的一致
48、性设计与功能需求的一致性功能需求与测试描述的一致性评审的方法和技术包括:,临时评审一位程序员临时请另一位程序员花几分钟帮他查找一个缺陷即属于临时评审。这是最不正式的一种评审,但在软件小组合作中却十分自然。它能快速获取别人的意见或帮助,其他人往往能够发现开发者本人不易发现的错误。桌面检查或轮查,又称为分配审查方法。是一种由多人组成的并行的同行桌面检查。与只有一个人进行桌面检查不同,作者将需要评审的内容发送给几位评审员,并收集整理他们的反馈意见。这种评审方法适合于由于地理位置或时间限制而无法面对面开会的情况。结对评审又称为同行桌面检查或伙伴检查。这种评审是除作者外,再请一位评审员对工作产品进行桌面
49、检查。如果评审员使用了缺陷检查表、专门的分析方法和为小组评审度量采集所用的标准表格,那么这种评审就是相当正式的。,在评审完成时,评审员把缺陷表交给作者,或者两个人一起坐下来共同准备缺陷表。评审员也可以简单地把做过标记的工作产品交给作者。 结对评审是最便宜的同行评审方法。寻找一位足够专业且值得信赖的人,相互交换工作产品来进行同行桌面检查,除了能保证编程的质量外,也是一种好的训练方法,使评审活动有效完成。走查走查是一种非正式的评审,在软件项目中被广泛使用。走查的方法有两种。使用一批样品数据作为测试用例,一步步地执行模块,几位参与评审的同事一起检查以确保,正确的逻辑和行为。一种走查是按照脚本执行,通
50、过脚本描述一个具体的任务或场景,用以说明系统如何在交互中完成预定的功能。在走查中,作者占有主导地位,由作者描述产品的功能和结构以及完成任务情况等。走查的目的是希望参与评审的其他同事可以发现产品中的错误,了解产品,并对模块的功能和实现等达成一致意见。小组评审小组评审简称为评审,是一种“轻型”的审查。它是有计划的和结构化的,非常接近于最正式的,评审技术。小组评审允许由一组有资格的人来判断产品是否合用,并找出该产品没能达到规格说明和规范要求的方面。小组评审比结对评审开销要大,但不同的评审者能发现不同的问题。小组评审适用于不需要严格审查过程的工作产品。由于没有正式审查严格,小组评审可以节省出一些会议时