《{品质管理品质知识}质量管理软件质量管理与质量保证》由会员分享,可在线阅读,更多相关《{品质管理品质知识}质量管理软件质量管理与质量保证(119页珍藏版)》请在金锄头文库上搜索。
1、第九章 软件质量管理与质量保证,9.1 软件质量 9.1.1 影响软件质量的因素 人的因素 软件需求 测试的局限性 质量管理的困难 软件人员的传统习惯 开发规范 开发工具支持不够,什么是软件质量,成本,可靠,维护,及时 交付,正确,功能,功能,成本,及时 交付,软件质量的若干侧面,9.1.2 McCall提出的表明软件质量 的11个质量特性,使用性 测试性 正确性 维护性 可靠性 移植性 效率 重用性 完整性 互操作性 适应性(灵活性),9.1.3 产品质量与过程质量,产品质量,开发技术,成本、 时间、进度,过程质量,人员素质,影响产品质量的4个方面,9.2 软件质量保证,质量保证也是一个过程
2、,已列入国际标准“ ISO/IEC 12207信息技术-软件生存期过程”中。,9.2.1 质量保证的主要功能,质量方针的制定和展开 质量保证方针的质量保证标准的制定 质量保证体系的建立和管理 各阶段的质量评审,9.2.2 质量保证的实施 质量度量方法 ISO建议的软件质量评价标准分为三级: 高层:质量需求评价准则(SQRC) 中层:质量设计评价准则(SQDC) 低层:质量度量评价准则(SQMC),ISO建议的软件质量度量模型,正 确 性,可 跟 踪 性,完 备 性,准 确 性,容 错 性,简 洁 性,模 块 性,通 用 性,扩 充 性,可 容 性,效 率,安 全 性,可维护性,适 应 性,连
3、接 性,SQDC,SQRC,SQMC,可 用 性,一 致 性,由各使用 单位根据 实际情况 决定,能用于软件质量定量评价的软件度量,美国国防部AD报告:把质量表现形式 归纳为190多个 问题; IEEE质量标准词典规定:39组度量公式 39个度量项分为四级: 0级:已公式化,尚未被运行有效确认 1级:已为软件界采用,应用范围有限 2级:已被软件界接受,已取得一定经验 3级:软件界已广泛使用,已取得相当经验,3级的8个度量项,(1)缺陷密度 (2)需求可追踪性 (3)Halstead软件科学 (4)McCabe复杂性度量 (5)发现k个缺陷的平均时间 (6)按耗时作故障分析 (7)平均故障时间
4、(8)故障率,9.2.3 技术评审,软件评审是一个“过滤器”, 用于“净化”软件工程各项活动,9.3 软件可靠性,硬件系统故障率,0,t,Z(t),软件系统故障率,0,t,Z(t),9.3.1 基本概念,软件可靠性定义 在给定时间间隔内和特定的 环境下,软件按规格说明成功 运行的概率。,软件可靠性的主要指标,借用硬件可靠性的定量度量方法来度量软件的可靠性: MTBF:平均故障间隔时间 MTTF:平均故障时间,t1,t2, ., tn:失效时间,MTTF,n,i=1,n,1,t,i,软件可靠性定义的要素,(1)环境条件 规定软件的使用环境 (输入数据要求和环境) (2)规定时间 时间t是随机变量
5、。 (3)规定的功能 (4)成功运行,9.4 质量管理、质量认证与质量审核,质量管理的类型: (1)质量检验型管理 (2)全面质量管理 (3)质量认证,软件质量保证体系的研究和主要技术,目前国际上软件过程质量管理最主要的三个典型代表: CMM /PSP/TSP ISO9000系列 ISO/IEC15504,过程与软件质量管理 随着软件技术和软件应用的发展,以过程为中心的软件开发、生产与质量管理是现代软件产业的时代特征。 质量形成于过程,高可信、高质量的软件必须依赖对软件过程的管理。,过程与软件质量管理 ISO9000 2000版将过程定义为“一组将输入转化为输出的相互关联或相互作用的活动” 软
6、件过程分为: 软件工程过程:软件开发和生产的过程, 如:需求分析、设计、编码、 测试等过程; 软件管理过程:对软件开发和生产的过程进 行管理的过程, 如:项目策划过程、跟踪监控过 程、质量保证过程 软件支持过程:对软件开发和生产的过程进 行支持的过程, 如:评审过程、培训过程、 质量过程。,技术改进与过程改进的关系 技术改进必须与过程改进同时并举,低技术,高技术,过程 成熟,过程 不成熟,低风险途径,高风险 途径,原始态,理想态,可能无结果途径,软件工程的五个发展方向,软件过程的 管理模式,CMM:软件过程管理与改进 CMM是软件工程过程学科中的一个管理与改进软件过程的模式,也是一种衡量软件开
7、发能力和成熟度的标准。,CMM /PSP/TSP技术流派 CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅隆大学的软件工程研究所(SEI:Software Engineering Institute)受美国国防部评估软件供应商能力的要求,1986年开始研究制定,并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM标准共分五个等级,由低到高分别为: 初始级、可重复级、已定义级、定量管理级和优化级。,1998年SEI启动了CMMI (CMM Integration) CMM
8、I通过提供统一的过程改进框架,消除了不同 模型之间的不一致和重复性,可望成为今后软件过 程改进领域比较稳定的一个实用模型。 目前SEI正在进行二个方面的扩充: 将质量管理的理念和思想向人力资源管理方面扩展(PSP/TSP/P-CMM); 将过程技术与产品线技术融合; 如2000年推出的软件产品线PLP(Products Line Practice)和COTS(Commercial Off The Shelf),ISO 9000标准系列,1987年ISO公布ISO9000质量管理和质量保证标准系列。 至1997年底,约100个国家、地区推行ISO9000质量认证活动;,ISO 9000族列标准现
9、有20个标准,分为五类: (1) 质量术语标准:ISO8402-1994 (2)质量保证标准 (3)质量管理标准 (4)质量管理和质量保证标准的选用和实施指南 (5)支持性技术标准,ISO 9000主体可分为两组: 用于“需方对供方要求质量保证”的标准: 9001 9003 用于 “供方建立质量保证体系”的标准: 9004 9001、 9002、 9003的区别 其对象的工序范围不同: 9001范围最广,包括从设计到售后服务; 9002是9001 的子集; 9003是9002 的子集。,ISO/IEC15504 1998年SPICE(Software Process Improvement a
10、nd Capability dTermination)项目组织发表用于确定自我能力改造和进行软件供应商能力的国际标准ISO/IEC15504. 该标准覆盖了过程评估、过程改进和过程能力确认等指南和模型。 目前,有关组织正在就CMMI和15504标准的兼容性问题进行探讨,很有可能CMMI会最终和ISO/IEC 15504标准兼容,并同时支持和兼容CMM。,CMM模型及其实践,在CMM模型及其实践中,企业的过程能力被作为一项关键因素予以考虑。所谓过程能力,是指把企业从事软件开发和生产的过程本身透明化、规范化和运行的强制化。这样一来,就可以把软件开发及生产过程中成功或失败的经验教训变成今后可以借鉴和
11、吸取的营养,大大加快软件生产的成熟程度提高。,在软件开发过程中, 一些关键的过程域(KPA)可以被识别出来,成为某些CMM模型方法中的衡量基准。利用过去软件工程发展的成果,侧重这些关键过程域的实施,将会有效地建立一个过程,加快软件企业成熟度的提升。,CMM一共有5级,18个关键过程域(KPA),52个目标,300多个关键实践。据美国卡内基.梅隆大学SEI统计,至2001年6月底,CMM的认证情况如下表所示。,过程成熟度框架,要区分不成熟和成熟软件组织,需要构造一个软件过程成熟度框架, 它描述一条从无序到有序的软件过程的 进化途径,框架是支持持续改进的基础。,软件过程成熟度框架包括四个概念: 软
12、件过程 软件过程能力 软件过程性能 软件过程成熟度:CMM分为五级,软件过程成熟度的五个等级,0 1 2 3 4 5,软件过程能力,成熟度等级,优化级(5),管理级(4),不断改进的过程,定义级(3),重复级(2),初始级(1),可预测的过程,标准的一致的过程,有纪律的过程,5个成熟度等级在开发过程中变化的显著特点,五级成熟度的特性,等级1 初始级,CMM1,杰出的主管和优秀的队伍,项目成功,CMM1,一般的主管和队伍,项目成功难以预测,等级2 重复级,项目经验,定义准则 和跟踪,新的类 似项目,再成功,五级成熟度的特性,等级3 定义级,CMM重复,定义软件过程,可视和可控,等级4管理级,软件
13、过程能力,量化,改进与预测,等级5优化级,已有的技术,等级24中的改进,已有的技术,等级5中的优化,新的技术,CMM的内部结构与定义,能力成熟度模型的结构,过程能力,成熟度等级,关键过程域,包含,共同特点,被规划成,关键实践,包含,指示,目标,完成,规范化,阐述,活动,描述,关键过程域,优化级(5) 过程更改管理 技术改革管理 缺陷预防,管理级(4) 软件质量管理 定量过程管理,每一个关键过程域指出了改进过程能力的主要过程,定义级(3) 同行评审 组间协调 软件产品工程 集成软件管理 培训大纲 组织过程定义 组织过程集点,重复级(2) 软件配置管理 软件质量保证 软件子合同管理 软件项目跟踪和
14、监督 软件项目策划 需求管理,初始级(1),CMM成熟度等级的评估,评估步骤: 1.项目关键实践(被执行活动)的性能评分,2.评定关键过程域所达到的目标,3. 项目的成熟度等级评定,4.有多个项目的等级来评定组织(软件商) 的成熟度等级,重复级的关键实践,需求管理: 执行约定 执行能力 被执行活动 测量和分析 检查,软件项目计划: ,软件项目跟踪和监督: ,管理级的关键实践,组织过程定义 组织标准软件过程,集成软件管理 项目定义软件过程,定量分析项目 定义软件过程性能,控制,数据,软件过程 性能在定义 的范围内,定量过程管理,改进,定义过程管理,软件质量管理,软件质量管理,定量过程管理,软件产
15、品管理,集成软件管理,管理级,定义级,实现定量目标:软件产品,定量分析:项目定义 软件过程,实践:项目定义 软件过程,建立:项目定义 软件过程,软件过程评估和软件能力评价 软件过程评估:集中关注一个组织所需 改进之处及其轻重缓急; 软件能力评价:集中关注识别一个特定 项目再进度要求和预算 限制内构造出高质量软 件所面临的风险。,软件过程评估和软件能力评价的差别,是在开放、合作的环 境中进行的; 目的在于暴露问题和 帮助经理和工程师改 进他们组织的软件过 程;,软件过程评估,软件能力评价,是在更为面向审计 的环境中进行的, 评价的目的与金钱 密切相关,评估评价组的推荐意见将影响挑选承制方或投放资金。,统一软件开发过程RUP,RUP(Rational Unified Process)是Rational 公司1998年发布的通用的软件开发过程框架,RUP是一种软件工程过程; 统一了各种开发方法; 使用统一建模语言UML,RUP和CMM相辅相成; 软件企业使用RUP很容易达到CMM3级的要求; RUP可以作为CMM3级所要求的机构标准软件 过程;,RUP的特点,用例驱动; 架构为核心; 增量迭代的开发过程;,第十章 软 件 复 用 10.1软件复用概述 10.1.1软件复用的定义 软件复用就是通过对已有软件的各种知识来建立新的软件。这些软件知识包括: 领域知识 开发经验 设计决定