CMM软件质量管理
软件质量基本概念
3. 传统软件工程中质量管理的弱点
在传统《软件工程》 在传统《软件工程》中,由于没有完全吸收 CMM和ISO9000的质量管理思想,因而对软件 的质量管理思想, 和 的质量管理思想 质量的定义是较模糊的,如表14-2所示。按照这 所示。 质量的定义是较模糊的,如表 所示 些定义,对软件阶段产品和软件最终产品的测试、 些定义,对软件阶段产品和软件最终产品的测试、 评审和评价,也是较模糊的。因为它主要不是根 评审和评价,也是较模糊的。 用户需求报告》 功能、性能、接口” 据《用户需求报告》中,对“功能、性能、接口” 的具体要求,记录并跟踪“不符合项”是否为零, 的具体要求,记录并跟踪“不符合项”是否为零, 而是考虑“正确性、健壮性、完整性、可用性、 而是考虑“正确性、健壮性、完整性、可用性、 可理解性、可移植性、灵活性”等抽象指标, 可理解性、可移植性、灵活性”等抽象指标,往 往使测试人员和评审人员感到有点无所事从。 往使测试人员和评审人员感到有点无所事从。
软件质量保证方法
2. CMM改进软件质量的方法 改进软件质量的方法
CMM认为:它的18个关键过程域,每一个都跟质量 认为:它的 个关键过程域 个关键过程域, 认为 管理有关,质量管理体现在每一个KPA的验证之中。当 的验证之中。 管理有关,质量管理体现在每一个 的验证之中 针对软件质量进行保证的问题, 前,针对软件质量进行保证的问题,最有效的办法还是 下面五个方法的汇集: 下面五个方法的汇集: (1) 面向 面向CMM2的KPA“软件质量保证”(SQA: 软件质量保证” 的 软件质量保证 : Software Quality Assurance)方法。 方法。 方法 (2) 面向 面向CMM3的KPA“同行评审”(PR:Peer 同行评审” 的 同行评审 : Reviews)方法。 方法。 方法 (3) 面向 面向CMM4的KPA“软件质量管理”(SQM: 软件质量管理” 的 软件质量管理 : Software Quality Management)方法。 方法。 方法 (4) 面向 面向CMM5的KPA“缺陷预防”(DP:Defect 缺陷预防” 的 缺陷预防 : Prevention)方法。 方法。 方法 (5) 软件质量保证的其他措施。 软件质量保证的其他措施。
软件质量保证方法
3. CMM2的“软件质量保证 的 软件质量保证SQA”过程 过程
(1) 首先,通过监控软件的开发过程,来保证产品的 首先,通过监控软件的开发过程, 质量; 质量; (2) 其次,保证生产出的软件产品及软件开发过程, 其次,保证生产出的软件产品及软件开发过程, 符合相应的标准与规程; 符合相应的标准与规程; (3) 最后,保证软件产品、软件过程中存在的不符合 最后,保证软件产品、 项问题得到处理,必要时将问题反映给高级管理者。 项问题得到处理,必要时将问题反映给高级管理者。 结合这三项内容, 结合这三项内容,CMM2的软件质量保证手段主要有 的软件质量保证手段主要有 三项: 审计、评审和处理不符合项” 三项:“审计、评审和处理不符合项”。审计是检查做 没做,做了多少,以及按什么标准和规范做的。 没做,做了多少,以及按什么标准和规范做的。评审是 检查干得好不好,是否还存在不符合项。 检查干得好不好,是否还存在不符合项。处理不符合项 是跟踪纠错过程,直至改正为止。 是跟踪纠错过程,直至改正为止。
软件质量保证方法
7. 软件质量保证的其他措施
除了CMM上述四个方法的全面综合治理之外,为了 上述四个方法的全面综合治理之外, 除了 上述四个方法的全面综合治理之外 抓好软件质量管理,软件组织的高层经理和项目经理, 抓好软件质量管理,软件组织的高层经理和项目经理, 还应该大力提倡并严格执行“七化原则” 还应该大力提倡并严格执行“七化原则”,即在软件质 量管理中,管理人员要做到:行为规范化,报告制度化, 量管理中,管理人员要做到:行为规范化,报告制度化, 报表统一化,数据标准化,信息网络化,管理可视化, 报表统一化,数据标准化,信息网络化,管理可视化, 措施及时化。 措施及时化。 为了执行好上述“七化原则” 为了执行好上述“七化原则”,在软件组织内部的各个 日报表、 项目中,还要建立“五报一例制度” 项目中,还要建立“五报一例制度”,即:日报表、周 报表、月报表、里程碑报表、重大事件报表和例会制度。 报表、月报表、里程碑报表、重大事件报表和例会制度。 实行“高层经理抓月报,部门经理抓周报, 实行“高层经理抓月报,部门经理抓周报,项目经验抓 日报”的上、 下三层的管理方法。 日报”的上、中、下三层的管理方法。
6. CMM5的软件质量保证手段“缺陷预防” 的软件质量保证手段“ 的软件质量保证手段 缺陷预防”
CMM5的“缺陷预防”目的是:鉴别缺陷的原因,并 的 缺陷预防”目的是:鉴别缺陷的原因, 防止它们再次发生。具体做法有: 防止它们再次发生。具体做法有:建立项目缺陷分析的 工程数据库,字段有: 缺陷编号、缺陷名称、 工程数据库,字段有:“缺陷编号、缺陷名称、缺陷类 缺陷部位、缺陷原因、影响范围、发生频率、 型、缺陷部位、缺陷原因、影响范围、发生频率、发生 时间、所属项目” 将分析结果, 时间、所属项目”等。将分析结果,尤其是带普遍价值 的过程更改,通知组织中的其他软件项目组。 的过程更改,通知组织中的其他软件项目组。
14.2 软件质量保证方法
1. 从四个方面来改进软件质量
(1) 力图从编程语言上实现突破。已经从机器 力图从编程语言上实现突破。 语言、汇编语言、面向过程的语言、 语言、汇编语言、面向过程的语言、面向数据的 语言,发展到面向对象、面向构架的语言。 语言,发展到面向对象、面向构架的语言。 (2) 力图从 力图从CASE工具上实现突破。这些工具有: 工具上实现突破。 工具上实现突破 这些工具有: OracleDesigner,PowerDesigner,ERwin, , , , Rose,San Francisco,北大青鸟系统。 , ,北大青鸟系统。 (3) 力图从软件过程管上实现突破。如CMM, 力图从软件过程管上实现突破。 , ISO9000,微软企业文化,IBM企业文化。 企业文化。 ,微软企业文化, 企业文化 (4) 力图从测试与纠错上实现突破。先后出现 力图从测试与纠错上实现突破。 了各种测试方法、工具和纠错手段。 了各种测试方法、工具和纠错手段。
软件质量保证方法
4. CMM3的软件质量保证手段“同行评审” 的软件质量保证手段“ 的软件质量保证手段 同行评审”
俗话说,隔行如隔山,所以外行不能参与评审。 俗话说,隔行如隔山,所以外行不能参与评审。同行 评审是指同行进行软件产品验证的活动, 评审是指同行进行软件产品验证的活动,其目的是为了 及早和高效地从软件工作产品中识别并消除缺陷。 及早和高效地从软件工作产品中识别并消除缺陷。与技 术评审不同,同行评审的对象一般是部分软件工作产品, 术评审不同,同行评审的对象一般是部分软件工作产品, 重点是发现软件工作产品中的缺陷。 重点是发现软件工作产品中的缺陷。 所谓同行, 所谓同行,是指和开发者在被评审的软件工作产品上 有相同的开发经验和知识的人员。一般来讲, 有相同的开发经验和知识的人员。一般来讲,不建议管 理者作为同行,参与同行评审, 理者作为同行,参与同行评审,也不应使用同行评审的 结果去评价产品开发者的功过是非。 结果去评价产品开发者的功过是非。 有人会说:同行是“冤家” 没关系, 有人会说:同行是“冤家”。没关系,因为同行评审 是挑剔,是找缺陷,“冤家”更好。 是挑剔,是找缺陷, 冤家”更好。
理解
关注
14.1 软件质量基本概念
1. 软件质量及相关概念的定义
所谓软件质量,就是供方提供的软件产品, 所谓软件质量,就是供方提供的软件产品,满 软件质量 足用户明确和隐含需求能力特性的总和。 足用户明确和隐含需求能力特性的总和。 所谓软件产品 软件产品, 所谓软件产品,就是供方交付给用户一套计算 机程序、数据以及相关的文档。 机程序、数据以及相关的文档。 所谓供方 就是向用户提供产品的组织。 供方, 所谓供方,就是向用户提供产品的组织。供方 有时又称承包方。 有时又称承包方。 通过上述定义,知道了软件质量是什么, 通过上述定义,知道了软件质量是什么,以及 意味着什么。在此之前,可能不知道这么多概念, 意味着什么。在此之前,可能不知道这么多概念, 只知道好的软件的特点是功能强、性能优、 只知道好的软件的特点是功能强、性能优、易使 易维护、可移植、可重用。 用、易维护、可移植、可重用。
软件质量保证方法
5. CMM4的软件质量保证手段“软件质量管理” 的软件质量保证手段“ 的软件质量保证手段 软件质量管理”
CMM4的“软件质量管理”目的是:建立对项目的软 的 软件质量管理”目的是: 件产品质量的定量了解,以便实现特定的质量目标, 件产品质量的定量了解,以便实现特定的质量目标,例 如在流程、时间、功能、性能、接口、 如在流程、时间、功能、性能、接口、界面上的特定需 求目标。为此,要对软件工作产品, 求目标。为此,要对软件工作产品,实施内容丰富的特 定测量计划,进行质量的定量管理。 定测内容 1) 软件质量及其相关概念的定义 2) 质量管理与控制的三个层次 3) 传统软件工程中质量管理的弱点 4) 同行评审 5) 软件质量保证管理文档 1) 从四个方面来改进软件质量 2) CMM改进软件质量的方法 改进软件质量的方法 3) 软件组织内部的“七化原则”和“五报一 软件组织内部的“七化原则” 例制度” 例制度” 1) CMML2的“软件质量保证 的 软件质量保证SQA”过程 过程 2) 《软件质量保证计划》的编写方法 软件质量保证计划》
序号 质量因素 质量因素的定义 1 系统满足规格说明书和用户目标的程度。 正确性 系统满足规格说明书和用户目标的程度。 2 健壮性 在意外环境或错误操作下, 在意外环境或错误操作下,系统做出适当响 应的程度。 应的程度。 3 完整性 对未经授权的人使用系统的企图, 对未经授权的人使用系统的企图,系统能够 控制的程度。 控制的程度。 4 系统完成预定的功能时,令人满意的程度。 可用性 系统完成预定的功能时,令人满意的程度。 5 系统的理解和使用的容易程度。 可理解性 系统的理解和使用的容易程度。 6 诊断和改正发现的错误所需的工作量大小。 可维修性 诊断和改正发现的错误所需的工作量大小。 7 修改或改进系统,需要的工作量多少。 灵活性 修改或改进系统,需要的工作量多少。 8 系统容易测试的程度。 可测试性 系统容易测试的程度。 9 移植到另一种平台中运行所需资源的多少。 可移植性 移植到另一种平台中运行所需资源的多少。 10 软件系统的可复用程度。 可再用性 软件系统的可复用程度。 11 与其他系统集成,所需的工作量多少。 互运行性 与其他系统集成,所需的工作量多少。