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