软件质量管理课件ppt_第1页
软件质量管理课件ppt_第2页
软件质量管理课件ppt_第3页
软件质量管理课件ppt_第4页
软件质量管理课件ppt_第5页
已阅读5页,还剩161页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第六章软件质量管理 首都师范大学教育技术系方海光2006年11月 2 回忆 项目管理知识体系的构成PMI将项目管理知识体系分为9大知识领域 1 项目集成管理2 项目范围管理3 项目时间管理4 项目成本管理5 项目质量管理6 项目人力资源管理7 项目沟通管理8 项目风险管理9 项目采购管理 3 4 软件质量管理 软件开发过程 5项目质量管理的概念 19软件质量的概念 48软件质量管理 87软件质量的综合评价 144 5 软件开发过程 软件的含义软件 程序 文档 服务为解决软件危机 人们提出用工程化的原则及方法来组织软件开发工作 这就是软件工程的由来 在软件工程中可将软件的生存周期分为6个阶段 传统生命周期 即瀑布模型 1 计划 Planning 2 需求分析 RequirementAnalysis 3 设计 Design 4 编码 Coding 5 测试 Testing 6 运行与维护 RunandMaintenance 6 软件开发瀑布模型 7 软件开发过程 1 需求分析需求分析是根据客户的要求 清楚地了解客户需求中的产品功能 特性 性能 界面和具体规格等 然后进行分析 确定软件产品所能达到的目标 软件产品需求分析是软件开发过程的第一个环节 也是最重要的一个环节 如果需求分析做不好 下面的设计 编程做得再好 客户 用户 也不可能对开发出来的软件产品感到满意 软件产品需求分析的结果要文档化 而且这类文档的描述尽量不要用专业术语 从而使用户能够完全理解需求分析的结果 参与对其复审的过程 8 软件开发过程 2 设计软件设计是根据需求分析的结果 考虑如何在逻辑 程序上去实现所定义的产品功能 特性等 可以分为概要设计和详细设计 也可以分为数据结构设计 软件体系结构设计 应用接口设计 模块设计 算法设计 界面设计等 设计过程将需求转换成软件表示 设计的结果将作为编码的框架和依据 以提高编码的效率和质量 设计的文档化体现在产品规格说明书 functionalspecification 技术设计文档 developmentdesigndocument 和软件配置文档 softwareconfigurationdocument 9 软件开发过程 3 编程经过需求分析 设计之后 接下来就是用一种或多种具体的编程工具 如VS Net JBuild Eclipse Delphi PB等 进行编码 即将设计转换成计算机可读的形式 如果设计做得好 做得仔细 编程就容易了 4 测试任何编程 免不了存在这样或那样的错误 所以有必要进行软件测试 测试过程集中于软件的内部逻辑 保证所有语句都测试到 以及外部功能 即引导测试去发现错误 并保证定义好的输入能够产生与预期结果相同的输出 测试按不同的过程阶段分为单元测试 集成测试 功能测试 系统测试 验证测试等 10 软件开发过程 5 维护从理论上 软件测试的覆盖率不可能做到百分之百 所以软件在交付给用户之后有可能存在某些问题 而且用户的需求会发生变化 特别是开始使用产品之后 对计算机系统有了真正的认识和了解 会提出适用性更好的 功能增强的要求 所以 软件交付之后不可避免地要进行修改 升级等 软件维护复杂 周期长 其成本必然很高 通过提高软件的需求分析 设计和编程的质量 强化软件测试 可以大幅度降低软件的维护成本 11 软件开发过程 软件开发模式软件开发模式是指从最初构想到公开交付发行软件的过程 大棒模式或边写边改模式瀑布模式原型模式快速应用 RAD 模式螺旋模式增量模式和跌代模式 12 大棒模式或边写边改模式 大棒模式优点是简单 几乎无计划 项目成员精力都花在开发软件和编写代码上 最终的软件产品是什么样不可知 边写边改模式在大棒模式的基础上考虑了产品的要求 项目成员通常只有粗略的想法就进行简单的设计 然后开始漫长的编码 测试 修复 13 大棒模式或边写边改模式 探索测试如果采用大棒模式或者边写边改模式 就不会有作为测试依据的各类文档 尽管这对于软件测试员不是理想的状况 但是此时可以采用称为探索测试的解决方案 这需要把软件当产品说明书来对待 分步骤地逐项探索软件特性 记录软件执行情况 详细描述功能 在这种情况下 无法像有产品说明书那样完整测试软件 比如无法判定是否遗漏功能 但是可以进行系统测试 找到软件缺陷 另外 与同类型软件进行比较也是一个有效的方法 14 软件开发模式 原型模型 在进行了基本需求分析之后 快速开发出产品的原型 然后基于这个原型 同客户沟通 交流 更好地了解客户需求 不断修改这个原型 到了双方认可的程度 再做详细地分析 设计和编程 最终开发出令客户满意的产品 一般步骤如下 1 先定义软件的总体目标 根据已知的需求来规划出可实现的区域 2 然后是 快速设计 集中于系统的总体框架 基本功能和直观的输入方式和输出格式等 3 有了原型 使客户对系统实现哪些具体功能 功能实现到什么程度有更好的理解 开发者可以边开发边评估 不断细化软件的需求 逐步调整原型使其满足客户的要求 这形成一个迭代的过程 15 原型模型 即使开始建立的原型过于简单或性能很差 难以使用 但为下一次建立适用的模型积累了经验 而浪费的成本 时间有限 原型模型的优点是使用户能够感受到实际的系统 使开发者能够快速地构造出系统的框架 原型模型的缺点是产品的先天性不足 因为开发者常常需要做实现上的折中 可能采用不合适的操作系统或程序设计语言 以使原型能够尽快工作 16 RAD模型 RAD模型RAD rapapplicationdevelopment 模型 即快速应用开发模型 由于其模型构图形似字母 V 故也称V模型 是属于线性顺序一类的软件开发模型 它通过使用基于构件的开发方法来缩短产品开发的周期 提高开发的速度 RAD模型实现的前提是能做好需求分析 并且项目范围明确 这一点正好和原型模型相反 17 螺旋模型 螺旋模型 最早是由Boehm提出来的 是一个演化软件过程模型 它将原型的迭代特征与线性顺序模型中控制和系统化方面结合起来 使得软件增量版本的快速开发成为可能 在螺旋模型中 软件开发是一系列的增量发布 在早期的迭代中 发布的增量可能是一个纸上的模型或原型 在以后的迭代中 更加完善的被开发系统版本逐步产生 18 增量模式和跌代模式 软件开发分阶段可以通过两种模型来描述 即增量模型和迭代模型 增量模型描述软件产品的不同阶段是按产品所具有的功能进行划分 先开发主要功能或用户最需要的功能 然后 随着时间推进 不断增加新的辅助功能或次要功能 最终开发出一个强大的 功能完善的 高质量的 稳定的产品 迭代模型描述软件产品的不同阶段是按产品深度或细化的程度来划分 先将产品的整个框架都建立起来 在系统的初期 已经具有用户所需求的全部功能 然后 随着时间推进 不断细化已有的功能或完善已有功能 这个过程好像是一个迭代的过程 最终的目标是一致的 也是为了实现一个强大的 功能完善的 高质量的 稳定的产品 19 项目质量管理的概念 产品 过程的结果四类 硬件 有形产品 有计数的特性 服务 无形的 并且是在供方和顾客接触面上至少需要完成一项活动的结果软件 由信息组成 通常是无形产品并可以方法 论文或程序的形式存在 流程性材料 有形产品 有一定的连续性 20 质量的定义 ISO8402 1994 质量管理和质量保证术语 中对质量所下的定义是 质量是反映实体 产品 过程或活动等 满足明确和隐含需要的能力的特性总和 21 实体 entity item 可单独描述和研究的事物 实体可以是活动或过程 可以是产品 可以是组织 体系或人 也可以是上述各项的任何组合 需求 requirements 包括 明确需要 和 隐含需要 22 为使 需求 可以实际运用 一般应将其转化为质量要求 所谓质量要求 是指 对需要的表述或将需要转化为一组对实体特性的定量或定性的规定要求 以使其实现并进行考核 23 质量不仅包括活动或过程的结果 还包括它们形成和实现的活动及过程本身 质量不仅包括产品质量 还包括它们形成和实现过程中的工作质量 质量不仅要满足顾客的需要 还要满足社会的需要 并使顾客 从业人员 业主 供方和社会都收益 stakeholder 受益者 质量问题不仅存在于工业 还存在于服务业及其他各行各业 24 产品质量 产品质量是指产品能够满足使用要求所具备的特性 一般包括性能 寿命 可靠性 安全性 经济性以及外观质量等 产品质量的概念 在不同历史时期有不同的要求 随着生产力发展水平不同和由于各种因素的制约 人们对产品质量会提出不同的要求 25 服务质量 服务质量是指服务满足明确和隐含需要的能力的特性总和 定义中的服务 主要指服务性行业提供的服务 如交通运输 邮电 商业 金融保险 饮食 宾馆 医疗卫生 文化娱乐 仓储 咨询 法律等组织提供的服务 由于服务含义的延伸 有时也包括工业产品的售前 售中和售后服务 以及企业内部上道工序对下道工序的服务 反映服务质量要求的质量特性主要有功能性 经济性 安全性 时间性 舒适性和文明性 26 过程质量 过程是指 将输入转化为输出的一组彼此相关的资源和活动 其中资源可包括人员 资金 设施 设备 技术和方法 过程质量 是指过程满足明确和隐含需要的能力的特性之总和 过程质量 可分为开发设计过程质量 制造过程质量 使用过程质量与服务过程质量四个子过程的质量 27 工作质量 工作质量 是指与质量有关的各项工作对产品质量 服务质量 过程质量的保证程度 28 质量特性的概念 质量特性 产品或服务满足人们明确或隐含需求的能力 属性和特征的总和 29 质量内涵 内在质量特性 在产品或服务的持续使用中体现出来的特性 产品的特性 性能 强度 精度等 外在质量特性 在产品或服务外在表现方面的属性和特性 产品外形 包装 色泽 味道等 经济质量特性 与产品或服务的购买和使用成本有关的特性 产品的寿命 成本 价格 运营费等 商业质量特性 与产品或服务提供企业承诺的各种商业责任有关的特性 产品的保质期 保修期 售后服务水平等 环保质量特性 与产品或服务对环境的影响有关的特性 30 质量的决定因素 一件产品或一项服务能否成功地完成它预定的使命取决于四个主要因素 它们是 1 设计质量 设计人员对产品或服务的一些性能所做出的接受或拒绝的选择 2 质量符合设计的程度 产品或服务符合 即实现 设计人员意图的程度 3 便于使用 4 售后服务 31 戴明 W E Deming 戴明总结出14条质量管理原则 他认为一个公司要想使其产品达到规定的质量水平必须遵循这些原则 主要观点是引起效率低下和不良质量的原因在公司的管理系统而不在职员 部门经理的责任就是要不断调整管理系统以取得预期的结果 戴明还强调了减少质量波动 与一定标准之间的偏差 的必要性 要减少质量波动 就需要辨别引起波动的特殊原因 即可纠正的原因 和共同原因 即随机原因 质量管理专家 戴明 32 戴明14条原则的核心 目标不变 持续改善和知识渊博 知识渊博包括 1 以所在公司为荣 2 掌握质量波动的原理 3 知识体系 4 心理学原理 戴明知识渊博的概念使得日本成为世界经济强国的好学信条和价值观具体化了 戴明14条原则的核心 33 朱兰 Juran 朱兰视质量为适用性 Fitnessforuse 认为通过管理可以控制大约80 的质量缺陷的发生 包含质量计划 质量控制和质量改进的质量三元论的思想来描述质量管理 根据朱兰的观点 为建立有能力满足质量标准的工作程序 质量计划是必要的 为了掌握何时采取必要措施纠正质量问题就必须实施质量控制 质量改进有助于发现更好的管理工作方式 管理就是不断改进工作是朱兰理论的一个核心 朱兰被确认为第一个提出计算质量成本的质量管理专家 他解释了如果不良质量的成本可以降低的话 那么就有可能增加公司利润 质量管理专家 朱兰 34 费根鲍姆 ArmandFeigenbaum 前通用电器生产和质量控制经理 他因提出把质量责任推广到生产领域以外而在质量运动中闻名 在推行 缺陷成本 方法方面起重要作用 根据这一方法 管理应服从于质量 质量管理专家 费根鲍姆 35 1 全面质量控制是一个在公司内部使质量标准制定 维持和改进集成于一体的系统 公司应该能够使工程部 生产部和服务部门共同发挥作用 在达到用户满意的同时实现最佳经济目标 2 质量控制的 控制 方面应该包括制定质量标准 评价与这些标准有关的行为 当没有达到预定标准时采取纠正措施以及制定改进质量标准计划 3 影响质量的因素可分为两大类 技术性的和人为的 人为的因素更为重要 4 质量成本可被分为四类 预防成本 鉴定成本 外部损失成本和内部损失成本 5 重要的是要控制源头质量 费根鲍姆质量控制基本原理要点 36 质量管理的基本概念 古津进的定义 向消费者或顾客提供高质量产品与服务的一项活动 这种产品和服务必须保证满足需求 价格便宜和供应及时 定义说明 质量管理目的 向消费者或顾客提供高质量产品与服务目标和作用 使产品和服务达到三项要求 即满足需求 价格便宜和供应及时 37 质量管理定义 ISO8402一1994 质量管理和质量保证术语 对质量管理的定义是 质量管理是确定质量方针 目标和职责 并在质量体系中通过诸如质量策划 质量控制 质量保证和质量改进使其实施的全部管理职能的所有活动 38 质量管理定义 质量管理是各级管理者的职责 但必须由最高管理者领导 质量管理的实施涉及到组织中的所有成员 在质量管理中要考虑到经济性因素 质量管理是企业管理的重要组成部分 是企业管理职能中的重要职能 企业一般包括经营决策 计划 生产 技术 质量 劳资 供应 销售 销后服务 成本财务等管理部门 质量管理处于重要的地位 我国有关领导人提出 企业管理应以质量管理为纲 质量管理带动 推动和联系其它部门完成企业生产经营活动的任务 39 质量方针 指由组织的最高管理者正式发布的该组织总的质量宗旨和方向 质量目标 在质量方面所追求的目的 是对质量方针的展开 质量管理的术语和内涵 40 质量策划 是质量管理的一部分 致力于制定质量目标并规定必要的运行过程和相关资源以实现质量目标 包括 质量管理体系策划 产品实现策划以及过程运行策划 质量计划是策划的结果之一 最终的目的是满足顾客要求 质量控制 致力于满足质量要求 包括设定标准 测量结果 判定 采取措施 41 质量保证 致力于提供质量要求会得到满足的信任 质量改进 致力于增强满足质量要求的能力 42 质量管理的任务 正确制订和贯彻执行质量方针和政策 保证和提高产品质量和服务质量 生产出物美价廉的产品 以满足用户需要 不断降低物质消耗 降低质量成本和提高经济效益 提高领导和职工的质量意识和素质 促进企业素质和管理水平的提高 研究和发展质量理论和质量科学 43 项目质量的概念项目的质量 双重性 产品质量 服务质量 从项目作为一次性的活动来看 项目质量体现在由WBS反映出的项目范围内所有的阶段 子项目 项目工作单元的质量所构成 也即项目的工作质量 从项目作为一项最终产品来看 项目质量体现在其性能或者使用价值上 也即项目的产品质量 项目是应业主 客户的要求进行的 不同的业主 客户有着不同的质量要求 其意图已反映在项目合同中 因此 项目合同是进行项目质量管理的主要依据 44 项目质量管理的概念 为保障项目产出物能够满足项目业主 客户以及项目其他相关利益者的需要 所开展的对于项目产出物质量和项目工作质量的全面管理工作 包括 项目质量方针的确定项目质量目标和质量责任的制定项目质量体系的建设为实现项目质量目标所开展的项目质量计划 项目质量控制和项目质量保障等一系列质量管理工作 45 项目质量管理的思想 全面质量管理的思想 质量管理的全员性 全过程性 全要素性 项目质量管理的几个重要理念 使顾客满意是项目质量管理的目的项目质量是干出来的 不是检验出来的项目质量管理的责任是全体团队成员的项目质量管理的关键是不断监控和改进项目质量确定与项目质量实施项目质量等级与项目质量好坏 46 ISO10006国际项目质量管理标准 国际标准ISO10006是由ISO TCl76 SC2国际标准化组织质量管理和质量保证技术委员会质量体系分委员会制定的 这一文件是1997年12月发布的 文件的全称是 质量管理 项目质量管理指南 该文件分为两个部分 一个是主文件部分 另有三个附件 其中主文件部分的核心内容包括三个部分 其一是该标准所涉及的范围和所引用的标准及其相关定义 其二是有关项目特征的说明 其三是项目管理过程中的质量规范 第二部分是主要内容 它包括了项目策划 集成管理 范围管理 时间管理 成本管理 资源管理 组织与人力资源管理 沟通管理 风险管理 采购管理等各方面质量保障与质量控制方面的规定 47 ISO10006标准的内容 本标准的适用范围本标准引用的标准条款相关的定义项目的特性项目过程中的质量管理总结项目经验 48 软件质量的概念 软件质量的定义软件质量模型 49 软件质量的定义 1 软件质量的定义1 ANSI IEEEStd729 1983定义软件质量为 与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体 2 M J Fisher将软件质量定义为 所有描述计算机软件优秀程度的特性的组合 3 GB T6583 ISO8402 1994 定义软件质量为 反映实体满足明确和隐含需要的能力和特性总和 也就是说 为满足软件的各项精确定义的功能 性能需求 符合文档化的开发标准 需要相应地给出或设计一些质量特性及其组合 作为在软件开发与维护中的重要考虑因素 如果这些质量特性及其组合都能在产品中得到满足 则这个软件产品质量就是高的 50 软件质量的定义 软件质量反映了以下三方面的问题 软件需求是度量软件质量的基础 不符合需求的软件就不具备质量 规范化的标准定义了一组开发准则 用来指导软件人员用工程化的方法来开发软件 如果不遵守这些开发准则 软件质量就得不到保证 往往会有一些隐含的需求没有显式地提出来 如软件应具备良好的可维护性 如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求 软件质量也不能保证 51 软件质量的定义 2 软件质量特性软件质量特性 反映了软件的本质 讨论一个软件的质量 问题最终要归结到定义软件的质量特性 而定义一个软件的质量 就等价于为该软件定义一系列质量特性 52 软件质量的定义 通常 软件质量可由以下主要特性来定义 1 功能性 软件所实现的功能达到它的设计规范和满足用户需求的程度 2 效率 在规定条件下 用软件实现某种功能所需的计算机资源 包括时间 的有效程度 3 可靠性 在满足一定条件的应用环境中 软件能够正常维持其工作的能力 4 安全性 为了防止意外或人为的破坏 软件应具备的自身保护能力能力 53 软件质量的定义 6 可维护性 当环境改变或软件运行发生故障时 为了使其恢复正常运行所做努力的程度 7 可扩充性 在功能改变和扩充情况下 软件能够正常运行的能力 8 可移植性 为使一个软件从现有运行平台向另一个运行平台过度所做努力的程度 9 重用性 整个软件或其中一部分能作为软件包而被再利用的程度 54 软件质量的定义 3 软件生存期与质量特性从用户的角度看 软件的生存期可分为如下三个阶段 1 初期运用 运行新开发的软件产品 2 维护与扩充 在运行过程中修改缺欠的内容 而且 为了进一步的使用 需根据运行环境 主要指应用环境和技术环境 的变化做功能上和性能上的扩充 3 移植和连接 把在原有平台上运行的软件向其它新的运行环境转移 或者组成软件包以便重用 或与其它软件进行连接 55 软件质量的定义 对于软件所需求的质量特性 在软件生存期的不同阶段中情况各有不同 要求也不一样 这可由下图说明 Back 56 软件质量模型 所谓质量模型是指提供声明质量需求和评价质量基础的特性以及特性之间关系的集合 换句话说质量模型是用来描述质量需求以及对质量进行评价的理论基础 早在1976年 由Boehm等提出软件质量模型的分层方案 1979年McCall等人改进Boehm质量模型又提出了一种软件质量模型 模型包括质量要素 factor 准则 criteria 和度量 metric 三层次 如图所示 特性是软件质量的反映 软件属性可用做评价准则 定量化地度量软件属性可知软件质量的优劣 57 软件质量模型 McCall质量度量模型框 面向管理观点的产品质量 决定产品质量的软件属性 定量化地度量软件属性 58 软件质量模型 软件质量要素直接影响软件开发过程各个阶段的产品质量 由于对软件质量理解的不断深化 软件质量要素不是一成不变的 McCall等人给出的软件质量要素共11个 分为三类 分别面向软件产品的运行 修正 转移 它们与特性的关系如图所示 59 软件质量模型 McCall软件质量模型 60 软件质量模型 正确性 在预定环境下 软件满足设计规格说明及用户预期目标的程度 它要求软件没有错误 可靠性 软件按照设计要求 在规定时间和条件下不出故障 持续运行的程度 效率 为了完成预定功能 软件系统所需的计算机资源的多少 完整性 为了某一目的而保护数据 避免它受到偶然的 或有意的破坏 改动或遗失的能力 可使用性 对于一个软件系统 用户学习 使用软件及为程序准备输入和解释输出所需工作量的大小 61 软件质量模型 可维护性 为满足用户新的要求 或当环境发生了变化 或运行中发现了新的错误时 对一个已投入运行的软件进行相应诊断和修改所需工作量的大小 可测试性 测试软件以确保其能够执行预定功能所需工作量的大小 灵活性 修改或改进一个已投入运行的软件所需工作量的大小 62 软件质量模型 可移植性 将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小 复用性 一个软件 或软件的部件 能再次用于其它应用 该应用的功能与此软件或软件部件的所完成的功能有联系 的程度 互连性 连接一个软件和其他系统所需工作量的大小 如果这个软件要联网 或与其他系统通信 或要把其他系统纳入到自己的控制之下 必须有系统间的接口 使之可以联结 互连性很重要 它又称相互操作性 63 软件质量模型 通常 对以上各个质量特性直接进行度量是很困难的 在有些情况下甚至是不可能的 因此 McCall定义了一组比较容易度量的软件质量要素评价准则 使用它们对反映质量特性的软件属性分级 以此来估计软件质量特性的值 定义评价准则的关键是确定影响软件质量要素的属性 这些属性必须满足 比较完整 准确的描述软件质量要素 比较容易量化和测量 能够反映软件质量的优劣 McCall定义的软件质量要素评价准则共21种 它们是 64 McCall软件质量要素评价准则 1 可审查性 Auditability 检查软件需求 规格说明 标准 过程 指令 代码及合同是否一致的难易程度 2 准确性 Accuracy 计算和控制的精度 最好表示成相对误差的函数 值越大表示精度越高 3 通信通用性 CommunicationCommonality 使用标准接口 协议和频带的程度 4 完全性 Completeness 所需功能完全实现的程度 5 简明性 Conciseness 程序源代码的紧凑性 6 一致性 Consistency 设计文档与系统实现的一致性 7 数据通用性 DataCommonality 在程序中使用标准的数据结构和类型 8 容错性 Error tolerance 系统在各种异常条件下提供继续操作的能力 65 McCall软件质量要素评价准则 9 执行效率 ExecutionEfficiency 程序运行效率 10 可扩充性 Expandability 能够对结构设计 数据设计和过程设计进行扩充的程度11 通用性 Generality 程序部件潜在的应用范围的广泛性12 硬件独立性 HardwareIndependence 软件同支持它运行的硬件系统不相关的程度 13 检测性 Instrumentation 监视程序的运行 一旦发生错误时 标识错误的程度 14 模块化 Modularity 程序部件的功能独立性 66 McCall软件质量要素评价准则 15 可操作性 Operability 操作一个软件的难易程度 16 安全性 Security 控制或保护程序和数据不受破坏的机制 以防止程序和数据受到意外的或蓄意的存取 使用 修改 毁坏或泄密 17 自文档化 Self documentation 源代码提供有意义文档的程度 18 简单性 Simplicity 理解程序的难易程度 19 软件系统独立性 SoftwareSystemIndependence 程序与非标准的程序设计语言特征 操作系统特征 以及其他环境约束无关的程度 20 可追踪性 Tracebility 对软件进行正向和反向追踪的能力 21 易培训性 Training 软件支持新用户使用该系统的能力 67 计算软件质量要素 软件质量要素Fj的值可用下式计算LFj CjkMkj 1 2 11 k 1其中Mk是软件质量要素Fj对第k种评价准则的测量值Cjk是相应的加权系数 McCall定义的评价准则多数都没有客观的测量方法 只能凭主观印象为评价准则定值 McCall将评价准则分为0 10级 0级最低 10级最高 Mk的取值是0 0 1 0 2 1 0 68 质量要素与评价准则 1 2 69 质量要素与评价准则 2 2 70 McCall软件质量要素评价准则 McCall软件质量度量模型为软件质量管理奠定了基础模型由软件质量要素和评价准则组成加权系数Cjk满足 Cjk 1其中Cjk 0当质量要素Fj与k项评价准则无关时 Cjk 0McCall评价准则项数L 21 71 软件质量模型 ISO软件质量度量模型1985年国际标准化组织 ISO 建议 软件质量度量模型由三层组成 高层称软件质量需求评价准则 SQRC 中层称软件质量设计评价准则 SQDC 低层称软件质量度量评价准则 SQMC 分别对应McCall等人的要素 评价准则和度量 ISO认为应对高层和中层建立国际标准 以便在国际范围内推广软件质量管理 而低层可由各单位自行制定 ISO高层由8个要素组成 中层由23个评价准则组成 它们之间的关系如表所示 72 ISO的质量要素与评价准则 1 2 73 ISO的质量要素与评价准则 2 2 74 软件质量模型 1991年 ISO发布了ISO IEC9126质量特性的国际标准 将质量特性降为6个 即功能性 可靠性 可维护性 效率 可使用性 可移植性 并定义了21个子特性 1991年发布的ISO IEC9126标准现在被分为了两部 ISO IEC9126 软件产品质量 和ISO IEC14598 软件产品评价 75 软件质量模型 76 软件质量特性之间的竞争 在软件的质量特性与质量特性之间 质量特性与质量子特性之间存在着有利的影响和不利的影响 例如 由于效率的要求 应尽可能采用汇编语言 但是用汇编语言编制出的程序 可靠性 可移植性以及可维护性都很差 因此在系统设计过程中应根据具体情况对各种要素的要求进行折衷 以便得到在总体上用户和系统开发人员都满意的质量标准 质量要素之间的关系表 77 软件质量特性之间的竞争 78 软件质量的度量和评价 软件质量的度量是软件属性的量化 是经验关系系统到数值关系系统的一种映射 软件质量特性度量有两类 预测型和验收型 预测度量是利用定量的或定性的方法 对软件质量的评价值进行估计 以得到软件质量的比较精确的估算值 它是用在软件开发过程中的 尺度度量 这是一种定量度量 它适用于一些能够直接度量的特性 一般它作为相对量进行度量 如可靠性度量 复杂度度量 缺陷度量和规模度量等 二元度量 这是一种定性度量 它适用于一些只能间接度量的特性 验收度量是在软件开发各阶段的检查点 对软件的要求质量进行确认性检查的具体评价值 它可以看成是对预测度量的一种确认 是对开发过程中的预测进行评价 79 软件质量的度量和评价 软件质量度量的实施在确定要对一个软件 系统 进行度量之后 一般 采取以下几个步骤 来实施对该软件的度量 1 确定软件质量需求 在用户需求中 除功能需求外 还有非功能需求 包括 质量需求 环境需求 设计约束 开发策略等 质量需求是用户比较关心的内容 但是 我们已经知道 软件的功能需求的确定 存在一定的难度 而非功能需求的确定 则难度更大 这些困难包括 需求如何获取 需求冲突如何协调 需求的确认和变更的授权等 过程 需求获取 首先 你要理解用户的需求 区分哪些是质量需求 把这些需求记录下来 获得用户的确认 需求分析 拿到用户确认的需求后 你可以开始把用户的质量需求与我们设定的质量特性联系起来 一直区分到子特性 这种联系 就是把用户语言描述的需求 转变为计算机工程师语言的需求 建立了这种关联后 可以根据分类 分级 确定直接度量 80 软件质量度量的实施 2 确定直接度量直接度量就是实际的软件质量测量活动 它的输入是软件或软件过程 输出是一个测量值 它通过执行一系列的任务 获得一个质量值 例如 对一个没有经过培训的用户 让他使用软件系统的某一功能 在界面提示 联机帮助 使用手册的帮助下 他学会掌握该功能所花的时间 而用户需求对此项指标的要求 目标 和现实系统所达到的实际值 比如 10个人次测量后统计意义上的 的比较 就是将提交质量评审的质量值 在进行直接度量前 你应该有以下准备 1 工具 有助于计算度量值的硬件 软件工具 如 缺陷跟踪工具 2 应用 描述度量结果的希望值 度量值的意义 作用和对度量结果数据的使用方法 3 数据 获得度量结果所需的数据 程序 过程等度量对象 4 计算 度量程序 步骤和方法 5 费用 测试是要花钱 人力 物力 时间等 的 81 软件质量度量的实施 3 分析度量结果对度量过程进行跟踪和分析 需要时 可能会对度量程序 度量工具 度量方法 甚至原始数据 做出补充和调整 4 确认质量度量在度量过程中 进行度量结果的确认非常重要 首先 要确认度量过程是否与事实相符 脱离现实真实的度量 与目标再相符的结果也是没有意义的 其次 是确认方法的有效性 例如 在度量中 我们用到很多统计学方法 在这些方法中 我们有一些概率分布假设 例如 某些错误的发生 我们假设符合随机概率分布 当这些假设并不成立时 度量的结果是不真实的 82 软件质量的度量和评价 软件质量评价定量地评价软件的质量 目前还不能精确地做到 一般采取由若干 6 10 位软件专家进行打分来评价 这些软件专家应是富有实际经验的项目带头人 软件质量评价分两步走 1 评分对每一阶段要达到的质量指标 质量特性目标值或标准 详细开列 建立度量工作表 在表中 以提问题方式 列出在某一阶段为实现某一质量指标 应达到什么标准 所以它也可称为检查表 特别地 有些检查表是针对子系统或模块的 为了回答度量工作表上的问题 必须积累原始资料 最重要的原始资料是在软件定义与开发的各个阶段提供的文档 其次是在开发过程中积累的各种数据 特别是对出错数据的记录 评分主要是依据软件实际成果进行的 由于软件使用环境不同 使用目的不同 各人打分会有一定差别 2 分析结果根据评分的结果 对照评价指标 检查某个质量特性是否达到了要求的质量标准 如果某个质量特性不符合规定的标准 就应当分析这个质量特性 找出为什么达不到标准的原因 分析原因应该自顶向下进行 按系统级 子系统级 模块级逐步分析 83 四层模型 四层模型软件质量的度量关键是要定出评定质量的指标和评定优劣的标准 有一种四层模型 第一层是软件产品质量 质量需求 第二层是质量特性 第三层是质量子特性 第四层是度量指标 软件产品质量层 质量需求 是产品必须满足的质量需求 它是用用户术语描述的 主要有四点 1 产品将在用户所在组织当前使用的平台和操作系统上运行 2 产品将是可靠的并能防止数据丢失的机制 3 产品将提供完成某些任务所必需的功能 4 产品将易于使用 84 四层模型 质量特性 表示与整个质量需求有关的特殊质量特性 它代表了用户的质量需求 它采用从用户角度考虑的立场 把软件质量分解成四类质量特性 这四个质量特性是软件的基本特征 IEEE的四个质量特性是 可移植性 可靠性 功能性 可使用性 可靠性 在规定的时间和条件下 软件所能维持其性能水平的程度 可靠性对某些软件是重要的质量要求 它除了反映软件满足用户需求正常运行的程度 且反映了在故障发生时能继续运行的程度 功能性 软件所实现的功能满足用户需求的程度 功能性反映了所开发的软件满足用户指明的或隐含的需求的程度 即用户要求的功能是否全部实现了 可移植性 从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度 易使用性 对于一个软件 用户学习 操作 准备输入和理解输出时 所做努力的程度 易使用性反映了与用户的友善性 即用户在使用本软件时是否方便 85 四层模型 86 四层模型 Back 87 软件质量管理 基本概念软件质量管理的主要活动软件质量管理的内容软件质量标准简介软件文件标准与规范 88 软件质量管理的基本概念 质量管理体系为实施质量管理所需的组织结构 程序 过程和资源 组织结构 组织为行使其职能按某种方式建立的职责 权限及其相互关系 程序 为进行某项活动所规定的途径 1在很多情况下 程序可形成文件 如质量体系程序 2程序形成文件时 通常称之为 书面程序 或 文件化程序 3书面或文件化程序中通常包括活动的目的和范围 做什么和谁来做 何时 何地和如何做 应使用什么材料 设备和文件 如何对活动进行控制和记录 过程 将输入转化为输出的一组彼此相关的资源和活动 资源 可包括人员 资金 设施 设备 技术和方法 对于质量管理体系 1质量体系的内容应以满足质量目标的需要为准 2一个组织的质量体系主要是为满足该组织内部管理的需要而设计的 它比特定顾客的要求要广泛 顾客仅仅评价质量体系中的有关部分 3为了合同或强制性质量评价的目的 可要求对已确定的质量体系要求的实施进行证实 89 软件质量管理的基本概念 质量方针由组织的最高管理者正式发布的该组织总的质量宗旨和质量方向 质量策划确定质量以及采用质量体系要素的目标和要求的活动 质量策划包括 a 产品策划 对质量特性进行识别 分类和比较 并建立其目标 质量要求和约束条件 b 管理和作业策划 为实施质量体系进行准备 包括组织和安排 c 编制质量计划和作出质量改进的规定 90 软件质量管理的基本概念 质量控制为达到质量要求所采取的作业技术和活动 1质量控制包括作业技术和活动 其目的在于监视过程并排除质量环中所有阶段中导致不满意的原因 以取得经济效益 2质量控制和质量保证的某些活动是互相关联的 质量保证为了提供足够的信任表明实体能够满足质量要求 而在质量体系中实施并根据需要进行证实的全部有计划和有系统的活动 1质量保证有内部和外部两种目的 a 内部质量保证 在组织内部 质量保证向管理者提供信任 b 外部质量保证 在合同或其他情况下 质量保证向顾客或他方提供信任 2质量控制和质量保证的某些活动是相互关联的 3只有质量要求全面反映了用户的要求 质量保证才能提供足够的信任 91 软件质量管理的基本概念 质量改进为向本组织及其顾客提供更多的收益 在整个组织内所采取的旨在提高活动和过程的效益和效率的各种措施 质量管理确定质量方针 目标和职责并在质量体系中通过诸如质量策划 质量控制 质量保证和质量改进使其实施的全部管理职能的所有活动 1质量管理是各级管理者的职责 但必须由最高管理者领导 质量管理的实施涉及到组织中的所有成员 2在质量管理中要考虑到经济性因素 92 软件质量管理的基本概念 全面质量管理一个组织以质量为中心 以全员参与为基础 目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径 1 全员 指该组织结构中所有部门和所有层次的人员 2最高管理者强有力和持续的领导以及该组织内所有成员的教育和培训是这种管理途径取得成功所必不可少的 3在全面质量管理中 质量这个概念和全部管理目标的实现有关 4 社会受益 意味着在需要时满足 社会需求 5有时把 全面质量管理 TQM 或它的一部分称为 全面质量 公司范围内的质量管理 CWQC TQC 等 93 软件质量管理的基本概念 质量审核确定质量活动和有关结果是否符合计划的安排 以及这些安排是否有效地实施并适合于达到预定目标的 有系统的 独立的检查 1质量审核一般用于 但不限于 对质量体系或其要素 过程 产品或服务的审核 上述这些审核通常称为 质量体系审核 过程质量审核 产品质量审核 和 服务质量审核 2质量审核应由与被审核领域无直接责任的人员进行 但最好在有关人员的配合下进行 3质量审核的一个目的是评价是否需要采取改进或纠正措施 审核不能和旨在解决过程控制或产品验收的 质量监督 或 检验 相混淆 4质量审核可以是为内部或外部的目的而进行 94 软件质量管理的基本概念 管理评审由最高管理者就质量方针和目标 对质量体系的现状和适应性进行的正式评价 1管理评审可以包括质量方针评审 2质量审核的结果可作为管理评审的一种输入 3 最高管理者 指的是其质量体系受到评审的组织的管理者 95 软件质量管理的主要活动 1 软件质量策划1 软件质量策划的内容 确定软件组织 适应其生产特点的组织结构 以及人员的安排和职责的分配 确定组织的质量管理体系目标 根据组织的商业需要和产品市场 确定选择ISO9000或CMM作为其质量管理体系的符合性标准或模型 标识和定义组织的质量过程 即对组织的质量过程进行策划 确定过程的资源 主要影响因素 作用程序和规程 过程启动条件和过程执行结果规范等 识别产品的质量特性 进行分类和比较 建立其目标 质量要求和约束条件 策划质量改进的计划 方法和途径 96 软件质量管理的主要活动 2 软件组织的质量过程通常包含两种类型 软件工程过程和组织支持过程软件工程过程就是通常所说的软件生命周期中的活动 一般包括软件需求分析 软件设计 编码 测试 交付 安装和维护 一个组织的软件过程策划一般包括两个阶段 组织标准生产过程的策划和项目产品策划 CMM中定义了三个关键过程域来实现这两级的过程策划 组织过程定义 主要任务是识别和确定组织的质量过程 将组织必须和比较成熟的软件过程 过程资源要求 过程程序 过程产品要求等通过文件形成制度 并通过培训等机制贯彻到整个组织中 以改进所有项目的过程性能 软件项目策划 目的是为具体软件项目的开发 检查活动制定合理的计划 主要内容包括确定项目开发的主要活动及活动时间的关系 制定项目的开发进度 配备合适的资源 设定合适的检查点和检查方式等 软件产品工程 目的是协调一致地执行良好定义的工程过程 将软件工程活动组成一个有机的整体以生产更好 更符合要求的软件产品 97 软件质量管理的主要活动 组织支持过程是软件组织为了保证软件工程过程的实施和检查而建立的一组公共支持过程 主要包括 管理过程 包括评审 检查 文档管理 不合格品管理 配置管理 内部质量审核和管理评审 支持过程 包括合同评审 子合同评审 采购 培训 进货检验 设备检验 度量和服务 在CMM中 有一些对应的关键过程区域 需求管理 软件子合同管理 软件质量保证 软件配置管理 培训程序 同行评审 98 软件质量管理的主要活动 2 软件质量控制与保证软件质量控制的主要目标就是按照质量策划的要求 对质量过程进行监督和控制 质量控制的主要内容有 1 组织中与质量活动有关的所有人员 按照职责分工进行质量活动 2 所有质量活动按照已经策划的方法 途径 相互关系和时间 有序地进行 3 对关键过程和特殊过程 实施适当的过程控制技术以保证过程的稳定性 并在受控的情况下 提高过程的能力 4 所有质量活动的记录都被完整 真实地保存下来 以供统计分析使用 99 软件质量管理的主要活动 实施软件质量控制通常涉及的技术 软件配置管理软件配置管理的目的是 对软件生产过程中的所有有意义的中间产品形成文档 并以一种便于存取和检索 必要时可以逆向回溯的方式保存 同时配置管理还要保证文档的安全性 保密性和及时性 软件过程流管理现代质量理论认为 质量形成于过程 软件过程流管理是软件质量控制中非常重要的环节 过程流管理的基本原则是 按计划和设定条件启动和结束过程流中的质量活动 按照计划对中间产品进行验证 防止不合格的产品转入下道工序 记录和保持必要的过程活动的质量情况 软件质量保证软件质量保证的目的是向组织的内部或外部提供信任依据 对内向组织的管理者表明组织的质量管理处于良好的状态 所有质量活动有效地运行 对外向顾客表明 组织有能力满足顾客的质量要求 并提供符合质量要求的产品和服务 100 软件质量管理的主要活动 3 软件质量的度量和验证 软件质量度量类型 产品质量度量通常产品质量度量依赖于具体的产品标准 通过测量获得产品质量特性的有关数据 辅以合适的统计技术以确定产品或同批产品是否满足了规定的质量要求 过程质量度量通过对软件产品设计 开发 检查 评审等过程的度量技术的使用 来度量软件过程的进度 成本是否按计划保证 质量计划的变化频率 变化的诱因以及风险的管理等等 101 软件质量管理的主要活动 软件质量验证ISO9000 2000中对验证 Verification 的定义是 通过提供客观证据对规定要求已得到满足的认定 CMM在关键过程域 KPA 的公共特征 CommonFeature 验证实现 VerifyingImplementation 中这样描述 验证实现是保证活动按照已经建立的过程执行的一系列步骤 典型的验证有管理部门的评审 审核和软件质量保证 在软件质量管理中 对软件产品的验证通常包括 对各级设计的评审 检查 各个阶段的测试等 对软件过程的验证 则是对过程数据的评审和审核 102 软件质量管理的主要活动 4 软件质量改进质量改进是现代质量管理的必然要求 ISO9000要求组织定期进行内审和管理评审 采取积极有效的纠正预防措施 保持组织的质量方针和目标持续适合组织的发展和受益者的期望 具体进行软件过程改进的活动包括 度量与审核 纠正和预防措施 管理评审 103 软件质量管理的内容 软件质量管理活动大致可以分为质量控制和质量设计 这两类活动内容在功能上是互补的 质量控制主要包括计划 规程评价和产品评价 质量设计主要是指质量准则的运用 1 质量控制 计划进行质量控制 必须首先制定一个软件质量管理计划 这个计划确定质量目标 确定在每个阶段为实现总目标所应达到的要求 对进度进行安排 确定所需人力 资源和成本等等 这个计划贯穿于整个软件的生存期中 并指导软件开发每个阶段的具体活动 104 软件质量管理的内容 规程评价规程就是在软件生存期中应当遵循的一些政策 规则和标准的具体实施的描述 软件质量管理就是通过软件管理人员来监督和执行这些规程 在规格中也包括实行软件质量保证功能的描述 它们可以包括如下内容 指示在何时 何地进行规程审计 文件审计和代理审计 指示应当采集哪数据以及如何对其进行分析处理 例如 在每次评审和测试中发现的错误如何进行修正 描述希望得到的质量度量 规定在项目的什么阶段进行评审以及进行什么形式的评审 规定在项目的什么阶段应当产生什么报告和计划 规定产品各方面测试应达到的水平 105 软件质量管理的内容 产品评价软件产品评价的主要目的是确保产品和它的需求相符合 类似于硬件的产品检验 这种评价所用的方法可以是设计的走查 walk throu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论