1、惠普国际软件人才基地教材惠普国际软件人才基地教材7.4 软件质量模型7.4.1 软件质量概念 软件质量的重要性软件质量高降低项目开发成本,包括维护成本、修复成本等导致项目进度延误、预算超支或项目失败、项目终止软 件 质 量7.4.1 软件质量概念 软件质量的定义ISO/IEC9126:反映软件产品满足规定需求和潜在需求能力的特征和特性的总和AMJ.Fisher:所有描述计算机优秀程度的特性的组合BANSI/IEEE Std 1061-1992:与软件产品满足需求所规定的和隐含的能力有关的特征或特性的全体C 软件质量的特性 用户-如何使用软件、软件性能和使用软件的效果 开发者-中间产品的质量以及
2、最终产品 管理者-总的质量,而不是某一特性7.4.1 软件质量概念 ISO/IEC9126规定,软件质量可用6个特性来评价:功能性:软件所实现的功能达到它的设计规范和满足用户需求的程度 可靠性:在满足一定条件的应用环境中,软件能够正常维持其工作的能力 可用性:对于一个软件,用户在学习、操作和理解过程中所做努力的程度 效率:在规定条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度 维护性:当环境改变或软件运行发生故障时,为使其恢复正常运行所做努力的程度 可移植性:为使一个软件从现有运行平台向另一个运行平台过度所做努力的程度7.4.1 软件质量概念7.4.2 软件质量分层模型McCa
3、ll模型(FCM)软件质量要素(factor),衡量标准(criteria)和量度标准(metrics)在FCM三层模型中,软件质量概念是基于11个特性之上这11个特性分别面向产品操作(product operation)、产品修正(product revision)和产品转移(product transition)7.4.2 软件质量分层模型 McCall的FCM三层质量模型层 级名 称内 容第一层质量要素:描述和评价软件质量的一组属性功能性、可靠性、易用性、效率性、可维护性、可移植性等质量特性以及将质量特性细化产生的副特性第二层衡量标准:衡量标准的组合反映某一软件质量要素精确性、稳健性、安
4、全性、通信有效性、处理有效性、设备有效性、可操作性、培训性、完备性、一致性、可追踪性、可见性、硬件系统无关性、软件系统无关性、可扩充性、公用性、模块性、清晰性、自描述性、简单性、结构性、文件完备性等第三层量度标准:可由各使用单位自定义根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量7.4.2 软件质量分层模型Boehm模型 软件质量模型第一层:功能性、可靠性、可用性、效率、可维护性和可移植性 第二层给出了23个质量特性:可访问性、可说明性、准确性、可扩充性、通信性、完备性、简洁性、一致性、设备独立性、效率、人类
5、工程、可读性、可维护性、可修改性、可移植性、可靠性、健壮性、自包含性、自描述性、结构性、可测试性、可理解性和可用性 第三层是软件质量度量,通过对软件开发各个阶段进行问卷调查,实现对软件开发过程的质量控制7.4.2 软件质量分层模型ISO/IEC 9126质量模型 该模型将软件质量定义为六大特性:功能性、可靠性、可用性、效率、可维护性和可移植性,每个特性又分为一系列子特性。GB/T 16260-2006质量模型 该模型在上述模型的基础上对软件质量从6个质量特性和27个质量子特性进行概念性描述。7.4.2 软件质量分层模型 GB/T 16260-2006质量模型7.4.2 软件质量分层模型 软件质
6、量度量是从整体上对软件质量进行测评 用于软件开发中对软件进行质量控制 并最终对软件产品进行评价和验收 在软件开发中,软件度量的根本目的是管理的需要 没有软件过程的可见度就无法对软件进行管理 没有软件产品质量的定量描述就无法对软件质量进行评价 度量是一种可用于决策的可比较的对象 软件度量包含费用、工作量、生产率、性能、可靠性和质量等方面的度量7.4.3 软件质量度量与评价IEEE Std 1061软件质量度量方法学提供了系统地进行软件质量度量的途径,跨越整个软件生存周期。7.4.3 软件质量度量与评价建立软件质量需求准备度量实现软件质量度量分析质量度量结果确认软件质量度量 软件度量元选择原则 选
7、择充分体现该领域软件特征的度量元 可操作性好、度量项数据易获得且其获取的代价较小 少而精、规模适中 子特性、度量元尽量不相关 标准符合性要突出7.4.3 软件质量度量与评价 避免走入软件度量的误区 目的不明,事后发现度量的内容与管理无关 使用度量去评价个人 开发人员拒绝执行,认为会否认其工作业绩 度量过多,要求广泛收集数据,程序繁琐,不堪重负 认为度量结果报告无法引导管理活动 管理部门看到可能发生的问题或无成功的结果,而放弃支持度量工作 过分强调单个因素的度量7.4.3 软件质量度量与评价 软件质量评价指标(评价准则)的确定选择合适的指标体系并使其量化是软件测试与评估的关键评估指标可以分为定性
8、指标和定量指标两种7.4.3 软件质量度量与评价在选取评估指标时,应该把握如下原则:针对性能够反映评估软件的本质特征,具体表现就是功能性与高可靠性可测性能够定量表示,可通过数学计算、平台测试、统计等方法得到具体数据简明性易于被各方理解和接受完备性选择的指标应覆盖分析目标所涉及范围客观性客观反映软件本质特征,不能因人而异7.4.3 软件质量度量与评价 软件质量定量评价公式通过国内外多年研究,在软件质量的定量评价方面取得了一定成果。国外著名软件质量度量和评价产品中都给出了相关的计算公式,如Panorama+,Logiscope,McCabe IQ等可维护性:0.5*可测试性+0.5*可理解性可测试
9、性:0.5*结构性+0.5*McCabe复杂度可理解性:0.25*结构性+0.25*McCabe复杂度+0.25*简洁性+0.25*自描述性结构性:0.2*编码语句的最大嵌套层次+0.2*修改全局数据+0.2*使用Goto语句+0.2*数据习惯用法+0.2*无条件循环语句所占比例7.4.3 软件质量度量与评价 简洁性:0.4*实体的习惯用法+0.4*局部调用+0.2*被调用 自描述性:0.2*B_comment+0.3*全部注释行所占的比例+0.5*注释实体所占比例 可移植性:0.5*独立性+0.5*完整性 独立性:0.5*异常比例+0.5*用户定义类型 完整性:(if语句+case语句+初始
10、化对象)/3 可靠性:0.33*完整性+0.33*模块性+0.34*可测试性 模块性:0.5*编码行数+0.5*结构性7.4.3 软件质量度量与评价惠普国际软件人才基地教材7.5 软件质量管理7.5 软件质量软件质量管理三个关键阶段 质量计划制定 质量控制 质量保证7.5.1 软件质量的概念质量计划制定量计划制定阶段 关注质量目标,提出软件质量的特性和明确的可测量的标准。软件质量特征明确的可测量的标准优先级排定3.质量控制阶段软件质量目标需满足SMART原则7.5.1 项目中质量管理的原则质量保证量计划制定阶段 评估,检查和改进确保项目质量与计划一致提供信任 证实性预防性系统性反应能力3.质量
11、控制阶段7.5.1 项目中质量管理的原则质量控制量计划制定阶段 阶段性的成果进行测试与验证为.质量控制阶段为质量保证提供参考依据7.5.2 项目中质量管理的原则1.软件质量 的适度原则软件质量的适度原则软件质量的落实原则以客户需求为指导的原则量计划制定阶段 7.5.3 软件质量管理的方法1.技术评审技术评审过程检查实施软件测试2.过程检查3.实施软件测试7.5.4 全面质量管理PDCA(或PDSA)循环又叫戴明环,是美国质量管理专家休哈特博士首先提出的,由戴明采纳、宣传,获得普及,从而也被称为“戴明环”,也有。它是全面质量管理所应遵循的科学程序。7.5.4 全面质量管理常用思维方法可总结为5W
12、1H,如下图:7.5.5 敏捷开发中的质量管理捷开发特点强调以人为核心、迭代、循序渐进、贴近用户和拥抱变化。敏捷开发中有些企业不设置测试工程师,而是叫QA工程师。.敏捷开发中的QA角色QA工程师或项目经理更多扮演教练的角色QA工程师在敏捷开发中连接用户与技术团队针对已经稳定的功能开发和执行自动化回归测试迭代后收集和分析反馈惠普国际软件人才基地教材7.6 惠普静态分析工具HP FortifySCA7.6 惠普静态分析工具HP FortifySCAHP FortifySCAHP FortifySCA 扫描结果查看图数据流引擎配置引擎控制流引擎结构引擎语义引擎五大扫描引擎7.6 惠普静态分析工具HP
13、 FortifySCAHP FortifySCA7.6 惠普静态分析工具HP FortifySCAHP FortifySCA 内置五大分析引擎与规则包配合工作,从五个侧面全面地分析程序源代码中的安全漏洞分析引擎 数十万条软件安全漏洞特征的集合,能查出约350多种安全漏洞,内置在SCA中与分析引擎配合工作安全编码规则包 一个用来查看、审计SCA分析出来的漏洞结果的综合平台审计工作台 HP FortifySCA的规则支持自定义功能,方便用户来扩展SCA对漏洞的分析能力/SCA提供了一个用户自定义的向导和编辑器自定义向导/编辑器 为了方便用户使用SCA对程序源代码进行安全扫描,它提供了多种IDE工具
14、的插件IDE插件HP FortifySCA产品组件介绍 软件质量定义 软件质量特性 软件质量分层模型思想及常见质量模型 软件质量的度量与评价 软件质量管理 惠普静态分析工具HP FortifySCA小结本章作业1.什么是静态测试?静态测试包括哪些内容?2.什么是同行评审?简述同行评审的内容和流程。3.什么是需求规格说明测试?我们如何对需求规格说明进行评审?4.什么是代码审查?代码审查包括哪些内容?5.代码检查包括哪些内容?我们如何进行代码检查?6.什么是编码规范?确立和遵守编码规范有何意义?7.代码分析工具是怎样工作的?代码自动分析都有哪些内容?简单介绍几款针对不同语言的编程规则检查工具(在网
15、上查找)。8.什么是代码结构分析?代码结构分析有何意义?9.从网上下载画程序控制流图和程序调用图的软件,并给出实际使用的例子和结果。本章作业10.什么是软件复杂性?软件复杂性包括哪些内容?11.什么是Halstead复杂度?Halstead复杂度度量的主要思想是什么?12.McCabe复杂度的中心思想是什么?我们如何进行McCabe复杂度的度量?13.简述软件复杂性度量的基本方法,采取何种手段控制软件复杂性?14.面向对象软件复杂性度量的特性有哪些?我们一般用于度量的方法有哪些?15.简述软件质量定义,软件质量属性包括哪些内容?16.简述软件质量分层模型概念,目前流行的质量分层模型有哪些?17.GB/T 16260-2006(软件工程 产品质量标准)质量模型中的质量特性/子特性有哪些,我们一般如何处理质量特性/子特性之间的冲突?18.简述惠普静态分析工具的用途和功能?
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。