您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 如何讲授软件工程之软件质量管理
软件工程(第二版)齐治昌、谭庆平、宁洪编著高等教育出版社主讲:陈明锐教授★省级精品课程★第十四章软件质量管理序言软件质量保证涉及需求分析、软件设计、编程和测试、软件发布和维护等各个阶段的软件质量活动,包括质量人员的组织和培训、质量策划、设计模式的有效应用、编程的最佳实践等。是贯穿于整个生存周期的重要问题。主要内容包括质量和软件质量的概念、软件质量标准、软件质量工程体系、配置管理、质量度量和可靠性评估等。前面讲过的三章需求分析——瀑布模型;九章软件测试;十章软件复用;十三章软件工程管理…第十四章软件质量管理通过本章的学习,我们要深刻理解软件质量管理和保证的重要性,了解软件质量工程体系及其代表性的模型或理论(如TQM、CMM、ISO9000国际标准、六西格玛和零缺陷管理等),建立正确的质量文化和理念,掌握软件开发和维护过程中的质量保证措施和管理方法,灵活运用质量管理工具,为将来从事软件开发、测试或管理等工作打下良好的基础。14.1从质量保证到质量认证14.2质量保证14.3软件可靠性14.4程序正确性证明14.5CMM软件能力成熟度模型14.6ISO9000国际标准14.7软件度量第十四章软件质量管理什么是质量1986年ISO8492的定义:质量是产品或服务所满足明示或暗示需求能力的特性和特征的集合。ISO9000(2000版)的定义:质量是一组固有特性满足要求的程度。IEEE的定义:即质量是系统、部件或过程满足明确需求,且客户或用户需要或期望的程度不同。RUP的定义:满足或超出认定的一组需求,并使用经过认可的评测方法和标准来评估,还使用认定的流程来生产。什么是软件质量ANSI/IEEESTD729给出了软件质量定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。(1)软件产品质量满足用户要求的程度;(2)软件各种属性的组合程度;(3)用户对软件产品的综合反映程度;(4)软件在使用过程中满足用户要求的程度。质量管理的发展历程1900手工操作者专职检验员1920过程统计技术1931全面质量管理1960以顾客为中心阶段时间1990后14.1从软件质量保证到质量认证质量管理的三个阶段:1.质量检验——百分比抽样方法2.全面质量管理TQM—零缺陷、6σ3.质量认证ISO9000国际标准CMM软件能力成熟度模型14.2质量保证阐述性互用性数据公开性正确性可靠性效率完整性可用性可维护性可测试性灵活性可移植性重复性连贯性容错性执行效率/储存效率存取控制/存取检查可训练沟通良好简单性易操作的工具自我操作性扩展性一般性模块性软件系统独立性机器独立性通讯公开性正确性可操作性面向软件产品的软件质量属性:运行性能维护性能移植性能量14.2质量保证McCall等人改进了Boehm质量模型:14.2质量保证产品运行的诠释14.2质量保证产品修正与转移的诠释软件质量的活动内容软件产品质量:是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过一些方法和人类活动来改进质量。质量模型:McCall模型,Boehm模型,ISO9126模型。软件过程质量:软件能力成熟度模型CMM;国际标准过程模型ISO9000;软件过程改进和能力决断SPICE。软件商业环境质量:培训、成品制作、宣传、发布日起、客户、风险、成本、业务等。质量保证的活动内容复审:计划与开发方法:设计、编码…控制:软件配置软件测试课本P303图14.1(如下)属于软件过程的质量活动软件过程的质量保证保证项目实施的供应、开发、运行、维护和支持(包括质量保证)过程符合合同要求并按计划完成;保证开发单位或组织内部的软件工程实践、开发环境、测试环境、资料等的适合且与合同要求相一致;保证用户及其它合作伙伴按合同和计划提供必要支持和合作;保证软件产品和过程的度量符合所建立的标准和步骤;保证项目组成员具有参加项目所必需的知识和技能,并接受必要的培训。验证与确认验证过程的目是确定一个系统或软件的需求是否完备和正确,以及每一阶段的软件产品是否达到了前面各阶段对它提出的要求或条件。验证内容合同验证、过程验证、需求验证、设计验证、代码验证、集成验证、文档验证。确认过程确定需求和最终建成的系统或软件是否满足原计划特定应用的过程。确认活动的任务准备测试需求、测试用例和用于分析测试结果的测试规格说明书;确认这些测试需求、测试用例和测试规格说明书能反映该特定应用的特殊要求按上述要求实施测试;确认该软件所规定的衡量标准;确认该软件实现了安全性、保密性和其它关键性需求。开发时期的配置管理配置管理开始于计划时候,终止于软件生存周期结束。中心思想:基线之前更改自由,基线之后严格管理。对软件配置的连续控制与跟踪,保证了软件配置的完整性与一致性。软件配置基线计划需求设计编码测试维护计划文档需求规格说明用户手册计划基线需求分析基线设计基线设计文档代码清单编码和单元测试基线测试文档用户文档测试基线软件配置基线软件产品的质量保证保证合同所需的各项计划均已编制成文档,内容符合合同要求,互相一致,并保证这些计划的实施;保证软件和有关文档符合合同要求并按计划完成;在准备软件产品的提交时,应保证软件产品完全满足合同要求且为用户所接受。14.3软件可靠性硬件系统故障率与可靠性:14.3软件可靠性软件系统故障率与可靠性:14.3软件可靠性软件可靠性的定义:在给定的时间内,程序按照规定的条件成功地运行的概率。14.3软件可靠性假设R(t)代表在时间(0~t)之间的软件可靠性,P{E}代表事件E的概率,则软件可靠性可表示为:R(t)=P{在时间[0~t]内按规定条件运行成功}为了简化,假定故障率是不随时间变化的常量,根据经典的可靠性理论,R(t)可以表示为时间与故障率的指数函数:tetRt=程序运行时间;为故障率,即单位时间内程序运行失败的次数。14.3软件可靠性tRt1.00321123tetR大可靠率下降快!图14.2可靠性随t、的变化可靠性分级表分级故障的后果开发工作量比例因子甚低低正常高甚高工作略有不便有损失,但容易弥补弥补损失比较困难重大的经济损失危及人的生命0.750.881.001.151.40可靠性模型正比于遗留故障数的宏观模型平均故障时间模型(MTTF模型)错误植入模型略…..(在研究生阶段的《软件质量保证》学科里研究学习…)提高软件可靠性的途径避免错误,尽量采用无差错的过程的方法,例如净室工程方法。当软件在运行中一旦出现错误,便将它的影响限制到可容许的范围之内。14.4程序正确性证明测试不能够证明程序不存在错误。程序正确性证明:用数学的方法,证明程序具有某些需要的性质。输入-输出断言法、最弱前置条件法、结构归纳法等。略…..14.5CMM软件能力成熟度模型20世纪80年代后期用于评估软件供应商的开发能力1991年正式公布CMM1.0版,标志着软件质量管理向软件认证迈出了重要一步。既是一把度量当前软件过程完善程度的尺子,也为软件机构提供了改进软件过程的指南。CMM的基本概念1.软件过程软件企业(或软件项目开发小组)在计划、开发和维护一个软件是所执行的一系列活动,包括工程技术活动和软件管理活动。软件过程能力和软件过程性能。软件过程成熟度:表达一个特定的软件过程被明确和有效地定义、管理、测量和控制的程度。CMM的基本概念2.关键过程域过程域:互相关联的若干软件实践活动和有关基础设施的一个集合。关键过程域:对于实现软件过程能力成熟度等级的目标起关键性作用的过程域。关键实践:对实施关键过程域起关键作用的措施、活动、规程以及相关基础设施。CMM的基本概念3.CMM模型确定一个软件过程的成熟程度以及指明如何提高过程成熟度的残酷模型。把成熟度等级分为5级,共包括18个关键过程领域,52个过程目标,316种关键实践,为软件企业的过程能力提供了一个阶梯式的进化框架。过程能力等级特点关键过程域1.初始级(Initial)软件过程是无序的,对过程几乎没有定义,成功取决于个人的努力。管理是消防队救火式的。2.可重复级(Repeatable)建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程规则和纪律,能重复早先类似应用项目取得的成功。需求管理软件项目策划软件项目跟踪和监督软件子合同管理软件质量保证软件配置管理3.已定义级(Defined)已将软件管理和工程两个方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目均使用经过批准、剪裁的标准软件过程来开发和维护软件。组织过程定义组织过程焦点培训大纲集成软件管理软件产品工程组际协调同行专家评审4.已管理级(Managed)收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。定量的过程管理软件质量管理5.优化级(Optimizing)过程的量化反馈和先进的新思想、新技术促使过程不断改进。缺陷预防技术变更管理过程变更管理CMM质量思想软件过程能力成熟度是指一个特定过程被明确地定义、管理、测量、控制并且是有效的程度。成熟度意味着能力上的增长能力,并表明一个组织软件过程的丰富性和在项目中运用它时的一致性。过程能力与成熟度关系CMM关键过程域CMM内容结构示意图CMM关键过程域CMM关键过程域CMM关键过程域不同CMM等级软件生命周期各阶段缺陷分布示意图CMM应用¤能力评估软件过程评估软件能力评价¤过程改善引用CMM关键实践改善本机构的软件过程火红的CMM认证!!!……14.6ISO9000国际标准质量术语标准ISO8402-1994质量保证标准ISO9001质量管理标准ISO9004-1软件企业实施ISO9000标准知识准备立法宣传执行监督改进14.7软件度量软件项目度量的内容(1)规模度量——代码行数、功能点数、对象点或特征点等;(2)复杂度度量——计算程序结构复杂度指标;(3)缺陷度度量——确定缺陷分布和变化状态;(4)工作量度量——人力资源分配;(5)进度度量——计划与实际对比;(6)风险度量——发生的概率、带来的损失;(7)其他度量——需求稳定、资源利用、文档水平……14.7软件度量过程度量(1)过程成熟度度量——主要包括组织能力、培训质量、文档标准化、过程定义能力、配置管理度量等;(2)过程质量管理度量——主要有质量计划、质量审查、质量测试、质量保证度量等;(3)生命周期度量——主要包括需求分析、设计、编程、测试、维护度量等。哈哈、哈哈哈…胜利完成任务!
本文标题:如何讲授软件工程之软件质量管理
链接地址:https://www.777doc.com/doc-155972 .html