陈江平SoftwareEngineering,9thedition.Chapter27Slide1质量管理陈江平SoftwareEngineering,9thedition.Chapter27Slide2目标质量管理过程和质量保证、质量规划和质量控制等关键过程活动质量管理过程中质量标准的重要性软件度量的概念以及预测型度量和控制型度量之间的区别理解度量如何在评估某些质量属性时发挥作用陈江平SoftwareEngineering,9thedition.Chapter27Slide3内容过程和产品质量质量保证和质量标准质量规划质量控制陈江平SoftwareEngineering,9thedition.Chapter27Slide4软件质量管理关心一个软件产品是否达到了需要的质量水平.包括确定适当的质量标准和程序,并确保这些标准和程序被执行.目标是发展“质量文化”,让每个开发者有强烈的产品质量意识.陈江平SoftwareEngineering,9thedition.Chapter27Slide5什么是质量?质量,简单来说,就是产品必须符合其描述.在软件系统中存在以下问题:•描述应该面向客户期望的产品特性,但是开发机构也可能有需求(如可维护性需求),这种需求没有体现在描述中;•我们不知道如何用一种明确的方式描述某些质量特征;•要写出完备的软件描述十分困难.陈江平SoftwareEngineering,9thedition.Chapter27Slide6质量协商要注重质量管理,才有可能实现改进描述.尽管描述是不完善的,但是我们要建立起质量管理程序.陈江平SoftwareEngineering,9thedition.Chapter27Slide7质量管理范围正规的质量管理对开发大型和复杂系统团队而言是特别重要的.质量文档时记录项目中的每个子小组所做的工作的文件,它允许对系统演化负责的小组追踪开发团队所做的工作.对于较小的系统,质量管理需要较少的文件,并应着眼于建立质量文化.陈江平SoftwareEngineering,9thedition.Chapter27Slide8质量管理活动质量保证•建立起机构质量规程和标准的整体框架.质量规划•从这个框架中选择适当的质量规程和标准,进行改写使之适用于某一特定的软件项目.质量控制•定义并设计质量过程,确保软件开发团队严格遵守项目质量规程和标准.为以确保独立性,质量管理应该与项目管理分开.陈江平SoftwareEngineering,9thedition.Chapter27Slide9质量管理和软件开发陈江平SoftwareEngineering,9thedition.Chapter27Slide10开发过程的质量直接影响了交付产品的质量.因某些质量属性难以评估,所以这十分重要.过程质量和产品质量的关系十分复杂和难以理解.过程和产品质量陈江平SoftwareEngineering,9thedition.Chapter27Slide11基于过程的质量生产制造中产品质量和生产过程有直接的关系.对于软件来说,基于过程的质量管理更复杂,原因是:•在软件开发中,个人技能和经验的应用是尤为重要;•一些外部因素应用程序的新颖性或早期产品发布的商业压力均会影响产品质量.必须注意,不应施加不适当的过程标准-这些标准都可能是降低而不是提高产品质量.陈江平SoftwareEngineering,9thedition.Chapter27Slide12基于过程的质量陈江平SoftwareEngineering,9thedition.Chapter27Slide13制定过程标准,如应该如何进行评审、什么时候进行评审等.对开发过程进行监控,确保标准的贯彻执行.向项目管理层和客户报告软件过程的进展情况.实践过程质量陈江平SoftwareEngineering,9thedition.Chapter27Slide14标准是有效地进行质量管理的关键.他们可能是国际,国家,组织或项目标准.产品标准用于待开发的所有组件,如文档标准等.过程标准定义了软件开发必须遵循的过程.质量保证和质量标准陈江平SoftwareEngineering,9thedition.Chapter27Slide15软件标准封装了最成功的至少是最恰当的软件开发经验.软件标准提供了一个框架,围绕这个框架才能实现质量保证过程.软件标准还有助于工作的连贯性,由一个人着手进行的工作别人可以接着做.标准的重要性陈江平SoftwareEngineering,9thedition.Chapter27Slide16产品和过程标准ProductstandardsProcessstandardsDesignreviewformDesignreviewconductRequirementsdocumentstructureSubmissionofdocumentstoCMMethodheaderformatVersionreleaseprocessJavaprogrammingstyleProjectplanapprovalprocessProjectplanformatChangecontrolprocessChangerequestformTestrecordingprocess陈江平SoftwareEngineering,9thedition.Chapter27Slide17标准存在的问题在软件工程师看来,它们可能是不相关或者不是最新的.他们往往涉及太多的形式化内容.如果软件工具不支持这些标准,那么为了能使文档和标准联系起来,则需要繁琐的手工劳动.陈江平SoftwareEngineering,9thedition.Chapter27Slide18让软件工程人员参与产品标准的选择.定期评审和修改标准,以反映技术的变化.尽可能提供支持软件标准的工具.标准开发陈江平SoftwareEngineering,9thedition.Chapter27Slide19ISO9000是一个用于在所有行业建立质量管理系统的国际标准集.应用范围广,从制造业到服务业都有涉及.ISO9001应用于涉及设计、开发和产品维护等机构内的质量过程.ISO9001是一个必须为每个使用标准的组织提供实例的质量过程的一般模型.陈江平SoftwareEngineering,9thedition.Chapter27Slide20ISO9001ManagementresponsibilityQualitysystemControlofnon-conformingproductsDesigncontrolHandling,storage,packaginganddeliveryPurchasingPurchaser-suppliedproductsProductidentificationandtraceabilityProcesscontrolInspectionandtestingInspectionandtestequipmentInspectionandteststatusContractreviewCorrectiveactionDocumentcontrolQualityrecordsInternalqualityauditsTrainingServicingStatisticaltechniques陈江平SoftwareEngineering,9thedition.Chapter27Slide21ISO9000认证质量标准和过程应记录在一个组织的质量手册.一个外部机构可以证明一个组织的质量手册符合ISO9000标准.客户们也越来越依赖于ISO9000的认证,用它来衡量供应商对产品质量的重视程度.陈江平SoftwareEngineering,9thedition.Chapter27Slide22ISO9000标准和质量管理陈江平SoftwareEngineering,9thedition.Chapter27Slide23文档化标准尤为重要–文档是表现软件和软件过程的唯一一种有形方式.文档过程标准•定义了文档生成应遵循的标准.文档标准•规定了文档的结构和表达方式.文档转换标准•确保了文档的电子拷贝都相容.陈江平SoftwareEngineering,9thedition.Chapter27Slide24文档制作过程陈江平SoftwareEngineering,9thedition.Chapter27Slide25文档标准文档标识标准•文档是如何唯一确定的.文档结构标准•项目文档的标准结构.文档书写标准•规定了文档的“机构风格”.文档更新标准•定义如何表现文档已经更新.陈江平SoftwareEngineering,9thedition.Chapter27Slide26文档转化标准交换标准允许电子文件间的转换和邮发等.文档用不同的系统和不同的计算机制作,即使使用标准工具,标准一般还是需要确定其使用,如样式表和宏的使用.需要存档.文字处理系统的寿命可能比系统存档的时间短得多.存档标准可以定义为保证再将来需要的时候能获得文档.陈江平SoftwareEngineering,9thedition.Chapter27Slide27质量规划质量规划列出了所需的产品品质以及如何达到这些品质要求,同时确定最重要的质量属性.质量规划应定义质量评估过程.质量规划应选择那些适合具体产品和开发过程的机构标准,如果项目中要使用新的方法和工具,还要制定新的标准.陈江平SoftwareEngineering,9thedition.Chapter27Slide28质量规划质量规划结构•产品介绍;•产品计划;•过程描述;•质量目标;•风险和风险管理.在写质量规划时,应该尽可能写得短一些•如果文档太长,工作人员就不愿意看它.陈江平SoftwareEngineering,9thedition.Chapter27Slide29软件的质量属性SafetyUnderstandabilityPortabilitySecurityTestabilityUsabilityReliabilityAdaptabilityReusabilityResilienceModularityEfficiencyRobustnessComplexityLearnability陈江平SoftwareEngineering,9thedition.Chapter27Slide30质量控制包括监督检查整个软件开发过程,以确保至来年个保证规划和标准得到严格执行.质量控制的两种方式•质量评审;•自动化的软件评估.陈江平SoftwareEngineering,9thedition.Chapter27Slide31质量评审是验证一个过程或产品指令最广泛的方法.这种方法通过一组人检查软件过程的全部或者一部分、系统或者相关文档以发现潜在的问题.目标不同的几种审查方法:•设计或程序检查(产品);•过程审查(产品和过程);•质量审查(产品和标准).陈江平SoftwareEngineering,9thedition.Chapter27Slide32审查类型ReviewtypePrincipalpurposeDesignorprograminspectionsTodetectdetailederrorsintherequirements,designorcode.Achecklistofpossibleerrorsshoulddrivethereview.ProgressreviewsToprovideinformationformanagementabouttheoverallprogressoftheproject.Thisisbothaprocessandaproductreviewandisconcernedwithcosts,plansandschedul