第3章软件质量标准

质量标准是质量管理的依据和基础,产品质量是由一系列的标准来控制的,并且监督
产品生产全过程。因此,质量标准应贯穿企业质量管理的始终,是提高产品质量的基础。
本章首先对软件质量标准进行了综合性的介绍,并重点介绍了几种广泛应用的标准,包括
CMM 、CMMI 、ISO9000标准簇等。

3.软件质量标准概述
1 

软件质量标准经过几十年的发展,逐渐形成了多层次、多种多样的标准体系。软件质
量标准按照制定的结构和适用的范围不同,分为国际标准、国家标准、行业标准、企业标准
和项目规范。

1.国际标准
3.1 

国际标准由国际联合机构制定和公布,提供各国参考的标准。国际标准化组织
(nentoatnadsOgaiain,这一国际机构有着广泛的代表性和权威性,

ItrainlSadrrnztoISO)
它所公布的标准也有较大的影响,是一个全球性的非政府组织,推动标准化及其发展,并
颁布国际标准,我国是ISO的正式成员。其中,计算机与信息处理技术委员

ISO建立了“ 
会”,简称ISO/TC97,专门负责与计算机有关的标准化工作。这类标准通常冠有ISO字
样,如ISO13502—1992InformationProcesing-Program 
CotctsandConventions 
forTheirRepresentation(《信息处理-程序构造及其表示的约定》),(u) (r) (s) (n) 又如ISO9001—2008 
QlityMagtSystemsRequirements(《质量管理体系要求》),以及国际标准ISO(u) /I(a) EC 9126(a) I(n) (eme) nformation 
Technology-Software 
Product 
Evaluation-Quality 
ChteristicsandGuidelinesfortheirUse(《软件产品评估-质量特性及其使用指南纲
要》)。(c) (a) (r) (a) 

目前,有100多个国家采用ISO9000系列标准,用以全面提高企业管理水平与国际
接轨。ISO9000标准簇主要强调的是各个行业如何建立完善的全面质量管理体系,而并
不是只针对软件行业的标准。

国际标准ISO/IEC12119Information 
Technology-Software 
Packages-Quality 
ReqitdTtig(《信息技术-软件包-质量要求和测试》)。国(u) 际标(eme) 准(n) IS(sa) O(n) /IEC(e) 17(n) 025G(s) (r) eneralRequirementsfortheCompetenceofTestingand 
CalibtinLbtis(《检测和校准实验室能力的通用要求》)。国(r) 际(a) 标(o) 准IS(a) O/I(a) (r) E(o) C(r) 1(e) 4598SoftwareEnginering-ProductEvaluation(《软件工程
产品评估》)。


1.国家标准
3.2 

国家标准由政府或国家级的机构制定或批准,是适用于全国范围的标准。中华人民
共和国国家市场监督管理总局公布实施的标准,简称国标(GB )。其现已批准了若干软件
工程标准。

与软件工程和软件测试相关的国家标准如下: 
GB/T9386—2008 《计算机软件测试文档编制规范》
GB/T15532—2008 《计算机软件测试规范》
GB/T2500.—系统与软件工程a第1

12021 《系统与软件质量要求和评价(SQuRE)

部分:SQuaRE 指南》
GB17859—1999 《计算机信息系统安全保护等级划分准则》
GB/T18231—2000 《信息技术低层安全模型》
GB/T18336.1—2015 《信息技术安全性评估准则第1部分:简介和一般模型》
GB/T18336.—2015 《信息技术安全性评估准则第2部分:安全功能组件》

2GB/T18336.3—2015 《信息技术安全性评估准则第3部分:安全保障组件》
GB/T4943.—信息技术设备安全第1部分:通用要求》

12011 
《
GB/T15278—1994 《信息处理数据加密物理层互操作性要求
》
GB/T17900—1999 《网络代理服务器的安全技术要求
》
GB/T16260.—2006 《软件工程产品质量
》


1GBT9386—2008 《计算机软件测试文档编制规范》
GB/T25000.10—2016 《系统与软件工程系统与软件质量要求和评价(SQuaRE)

第10 部分:系统与软件质量模型》
GB/T15532—2008 《计算机软件测试规范》
GB/T20917—2007 《软件工程软件测量过程》
GB/T8567—2006 《计算机软件文档编制规范》
GB/T18336.1—2015 《信息技术安全技术信息技术安全评估准则第1部分: 

简介和一般模型》
GB/T20009—2019 《信息安全技术数据库管理系统安全评估准则》
GB/T20273—2019 《信息安全技术数据库管理系统安全技术要求》
GB/T21671—2018 《基于以太网技术的局域网(LAN)系统验收测试方法》
GB17859—1999 《计算机信息系统安全保护等级划分准则》
GB/T18336.—2015 《信息技术安全技术信息技术安全评估准则第1部分:

1

简介和一般模型》
GB/T20279—2015 《信息安全技术网络和终端隔离产品安全技术要求》
GB/T20280—2006 《信息安全技术网络脆弱性扫描产品测试评价方法》
GB/T20282—2006 《信息安全技术信息系统安全工程管理要求》
GB/T20945—2013 《信息安全技术信息系统安全审计产品技术要求和测试评价

44 

方法》
GB/T20984—2022 《信息安全技术信息安全风险评估方法》
GB/T22239—2019 《信息安全技术网络安全等级保护基本要求》
ANSI(AmericanNationalStandardsInstitute)即美国国家标准协会。这是美国一些

民间标准化组织的领导机构,在美国和全球都有权威性。
BS(BritishStandards):英国国家标准。
JIS(JapaneseIndustrialStandards):日本工业标准。
DIN(DeutschesInstitutfürNormung):德国标准化协会。

1.行业标准
3.3 

行业标准由行业机构、学术团体或国防机构制定,适用于某个业务领域。
IEEE(ntttfElcrcladElcrncier即美国电气与电子工程师学

IsiueoetianetoisEngns)
会。该学会有一个软件标准分技术委员会,负责软件标准化活动。IEEE公布的标准常
冠有ANSI的字头。例如,ANSI/IEEEStr828:1983 《软件配置管理计划标准》、ANSI/
IEEE829:1998 《软件测试文档编制标准》。

GJB,中华人民共和国国家军用标准。这是由中华人民共和国国防科学技术工业委
员会批准,适合于国防部门和军队使用的标准。例如,GJB437—1988 《军用软件开发规
范》。

1.企业标准
3.4 
企业标准是由一些大型企业或公司,由于软件工程工作的需要,制定适用于本企业或
公司的规范。例如,美国IBM公司通用产品部1984年制定的《程序设计开发指南》仅供
该公司内部使用。

1.项目规范
3.5 
项目规范由某一企业或科研生产项目组织制定,为该项任务专用的软件工程规范。
例如: 

.打印机测试规范; 
.扫描仪测试规范; 
.显示器测试规范; 
.硬盘测试规范; 
.投影机测试规范; 
.台式计算机测试规范; 
.笔记本计算机测试规范; 
.显卡测试规范; 
45 

.服务器测试规范; 
.交换机测试规范; 
.防火墙测试规范。
软件质量标准是在20世纪70年代首先由美国国防部的军用标准发展而来的,其后
很多跨国公司也制定自己的公司标准。

3.
2 
CMM 

随着时代的发展,人们开始意识到,软件的开发不仅仅在于新技术是否出现,更在于
软件使用过程的管理。软件企业的开发结构只有在形成一套完整而熟练的过程后,其开
发才能够步入正轨。目前,CMM(CapabilityMaturityModel)即能力成熟度模型,作为当
前世界上最流行、最实用的软件生产过程的评价标准,已被国际软件产业界公认为软件企
业进入国际市场的通行证。

3.1 
CMM 
的含义
2.
20世纪30年代,经济学家WalterShewart提出了产品质量的分层控制原理。CMM 
的研究始于1986年11月。为了满足美国联邦政府评估软件供应商能力的要求,美国卡
内基-梅隆大学软件工程研究所(SoftwareEngineringInstitute,SEI)展开研究,以探索
一种保证软件产品质量、缩短开发周期和提高工作效率的软件工程模式与标准规范。

1991年,0版正式推出。1993年, 推出了CMM1.

CMM1.根据反馈意见,1版。1999 
年完成了CMM2.成为认证标准之一。

0版。其后又修改升级, 

CMM是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发

展阶段的描述。CMM的核心是把软件开发看作一个过程,并对软件开发和维护进行全

过程监控和研究,使其更科学化和标准化,能够实现企业的目标。

CMM除了包括有效开发软件的作业程序外,还制定了五个循序渐进的质量等级
(CMM1~CMM5),分别为初始级、可重复级、已定义级、已管理级和优化级。其中, 
CMM5是CMM认证的最高标准,可有效地帮助企业改进和优化管理,大大提高软件企
业的开发水平和产品质量。根据SEI的统计,软件企业在引入CMM管理后,劳动生产率
平均增长35%,错误率平均减少39%,平均成本回报率为5∶1 。

获得CMM对许多软件外包有着不可抵挡的诱惑。所谓服务外包,就是指企业把整
个工作或工作的一部分交由其他公司去做。之所以这样做,一个重要的原因就是节约生
产成本。因为外包的对象一般选择劳动力价格及运营成本相对低廉的国家,比在本国内
招募员工的支出要少得多。目前,软件外包的发包市场主要集中在北美、西欧和日本等国
家,服务接包市场主要是印度、爱尔兰和中国。

为增强自身实力,积极参与国际竞争,国内软件企业把资质认证也提上了日程。我国
政府明确表示鼓励软件出口型企业通过CMM认证。各地方政府也制定了相应的政策, 
如上海市就规定对在本市注册并通过CMM3~CMM5认证的企业可以分别获得40万元、

46 

60万元和80万元资助。
CMM包含四个目标。

(1)通过对实践和技术的定义、评估和成熟预测,以加快导入和推广高成效的软件工
程的实践和技术。
(2)在软件工程和技术转型方面维护一个长期有效的资格认证工作。
(3)使政府组织和工业组织通过自己的直接努力实现软件工程的有规划的改进。
(4)促进软件工程持续不断地应用所采纳的优秀标准。
3.2 
CMM 
的五个级别
2.
CMM的主要特点是通用性好,它适用于各种规模的软件公司,从大规模的跨国公司
到小型软件企业。CMM定义了软件能力成熟度的五个级别,这五个级别呈阶梯状进化
的过程,如图3-1所示。级别1实际上是一个起点,任何准备实施CMM体系的企业都位
于此起点,并通过这个起点向更高的级别努力,每达到一个新的目标,就表明达到了这个
级别的能力成熟度,就可以迈向新的目标。


图3-
1 
CMM 
的五个级别

CMM1:初始级。描述了不成熟,或者说是未定义过程的组织,没有为软件开发和维
护提供一个稳定的环境。项目成功具有偶然性。

CMM2:可重复级。需要解决需求管理、软件项目计划、软件项目跟踪和监控、软件
子合同管理、软件质量保证、软件配置管理等过程区域。

CMM3:已定义级。需要解决组织过程焦点、组织过程定义、培训规则、集成软件管
理、软件产品工程、组间协调、同行复查等过程区域。

CMM4:已管理级。需要解决定量过程管理、软件质量管理等过程区域。企业为软
件产品和软件过程制定了量化的质量目标。

CMM5:优化级。需要解决缺陷预防、技术变动管理、过程变动管理等过程区域。企
业以防止错误为目标,在过程实施之前想办法发现过程中的优点和缺点。

为了达到某一个成熟度等级,必须实现该级别上的全部关键过程域。关键过程域
(KeyProcesArea,KPA)是指相互关联的若干软件实践活动和有关基础设施的一个集

47 


合。除了CMM1外,其他几个级别的关键过程域如表3-1所示。

表3-
1 
CMM 
的关键过程域

级别关键过程域
CMM1 无
CMM4 定量过程管理(QuantitativeProcessManagement)
软件质量管理(SoftwareQualityManagement) 
CMM5 
缺陷预防(DefectPrevention)
技术变动管理(TechnologyChangeManagement)
过程变动管理(ProcessChangeManagement) 
CMM2 

CMM3 

需求管理(RequirementManagement)
软件项目计划(SoftwareProjectPlanning)
软件项目跟踪和监控(SoftwareProjectTrackingOversight)
软件子合同管理(SoftwareSubcontractManagement)
软件质量保证(SoftwareQualityAsurance)
软件配置管理(SoftwareConfigurationManagement) 

组织过程焦点(OrganizationProcesFocus)
组织过程定义(OrganizationProcesDefinition)
培训规划(TrainingProgram)
集成软件管理(IntegratedSoftwareManagement)
软件产品工程(SoftwareProductEnginering)
组间协调(

IntergroupCoordination)
同行复查(PerReviews) 

多数企业组织的基本目标是达到CMM3 。评估组织当前的成熟度级别的手段之一
是软件能力评估(SoftwareCapabilityEvaluation,SCE )。SCE通过评估软件过程和项目
实践来确定该组织是否言行一致。组织的过程如实体现了所做的工作,项目实施是对该
过程的特定剪裁和解释,应该证明说到做到。

3.
3 
CMMI 

随着CMM1.从CMM 如SW-CMM 、SE-CMM 、

0的推出, 衍生出了一些改善模型, 
IPD-CMM等。不过,在同一个组织中多个过程改进模型的存在可能会引起冲突和混淆。
CMMI就是为了解决怎么保持这些模式之间的协调。

3.1 
CMMI的含义
3.
2000年12月,由卡内基-梅隆大学SEI率先发布了CMMI(CapabilityMaturityModelIntegration),即能力成熟度整合模型,项目致力于帮助企业缓解多个过程改进模
型的存在造成的困境。CMMI为改进一个组织的各种过程提供了一个单一的集成化框
架,新的集成模型框架消除了各个模型的不一致性,减少了模型间的重复,增加了透明度

48 


和理解,建立了一个自动的、可扩展的框架,因而能够从总体上改进组织的质量和效率。
CMMI 主要关注点是成本效益、明确重点、过程集中和灵活性四方面。

与原有的CMM 类似,CMMI 也包括了在不同领域建立有效过程的必要元素,反映
了业界普遍认可的“最佳”实践;专业领域覆盖软件工程、系统工程、集成产品开发和系统
采购。在此前提下,CMMI 为企业的过程构建和改进提供了指导和框架作用,同时为企
业评审自己的过程提供了可参照的行业基准。

CMMI 的主要原则。

(1)强调高层管理者的支持。过程改进往往也是由高层管理者认识到并提出的,大
力度的、一致的支持是过程改进的关键。
(2)仔细确定改进目标。首先应该对给定时间内的所能完成的改进目标进行正确的
估计和定义,并制订计划,选择能够达到的目标和能够看到对组织的效益。
(3)选择最佳实践。应该基于组织现有的软件活动和过程改进,参考其他标准模型, 
取其精华去其糟粕,得到新的实践活动模型。
(4)过程改进要与组织的商务目标一致,与发展战略紧密结合。
3.2 
CMMI 
的基本内容
3.
CMMI 内容分为要求、期望和提供信息共三个级别,来衡量模型包括的质量重要性
和作用。要求级别,是模型和过程改进的基础;期望级别,在过程改进中起到主要作用,但
是某些情况不是必需的,可能不会出现在成功的组织模型中;提供信息级别,构成了模型
的主要部分,为过程改进提供了有用的指导,在许多情况下它们对需要和期望的构建做了
进一步说明。

CMMI 提供了阶段式表述(StagedRepresentation)和连续式表述(Continuous 
Representation)两种表示方法。阶段式表述表示为一系列成熟度等级阶段,强调的是组
织的成熟度,从关键过程域的角度考察整个组织的能力成熟度阶段;连续式表述强调的是
单个关键过程域的能力,从关键过程域的角度考察基线和度量结果的改善。

两种表示法的差异反映了为每个能力和成熟度等级描述过程而使用的方法,虽然它
们描述的机制可能不同,但是两种表示方法通过采用公用的目标和方法作为需要的和期
望的模型元素,而达到了相同的改善目的。

1.CMMI 
关键过程域
CMMI 同样分为五个成熟度级别,除了第一个级别外,成熟度由一系列的关键过程
域描述,CMMI 的关键过程域如表3-2所示。

表3-
2 
CMMI 
的关键过程域

级别关键过程域
CMMI1 无
49 


续表

级别关键过程域
配置管理(ConfigurationManagement)
关键过程域产品质量保证(KeyProcesAreaandProductQualityAsurance)
度量与分析(MeasurementandAnalysis)
供应商协议管理(SpplierAgrntManagnt)
项目监督与控制(Proje(u) ctMonitoringMa(eme) nagement)(eme) 项目计划(ProjectPlanning)
需求管理(RequirementManagement)


决策分析与解决方案(DecisionAnalysisandResolution)
确认(Validation)
验证(Verification)
产品集成(PdctIntegration)技术解决方案(T(u) (o) (r) echnicalSolution)
需求开发(RequirementDevelopment)
风险管理(RikManagement)
集成项目管理((s) negraedPrjetMaagn
组织培训(
Ittocnemet)


OrganizationalTraining)
组织过程定义(OrganizationalProcesDefiition)
组织过程焦点(OrganizationalProcesFocus)(n) 

组织过程绩效(OrganizationalProcesPerformance)
定量项目管理(QuantitativeProjectManagement) 
组织革新和部署(OrganizationalInnovationandDeployment)
因果分析和解决方案(CausalAnalysisandResolution) 

CMMI2 

CMMI3 

CMMI4
CMMI5


2.CMMI等级
CMMI分为五个成熟度等级,分别是初始级、重复级、定义级、管理级和优化级,表示
组织过程改进提高的方向。

CMMI1:初始级。软件过程随意和无序,组织通常不能提供稳定的环境,产品的优
劣往往取决于个人的能力。

CMMI2:重复级。需求、过程和服务已经有管理,组织和管理已经形成文件,全过程
已经受到监控。

CMMI3:定义级。标准已经建立,在CMMI2的基础上整个过程是一致的,且对过程
的描述更详细、更严格。

CMMI4:管理级。已经达到CMM2和CMM3的目标,建立了质量和过程的目标,对
于过程以统计和定量技术进行控制,过程控制是可预见的。

CMMI5:优先级。已经完成CMM2 、CMM3和CMM4的目标,过程变更可以定量理
解,过程可以持续改进。

50 

3.3 
CMM 
与CMMI 
的区别
3.
就软件工程而言,CMMI 是CMM 的最新版本。CMMI 的关键过程域不再局限于纯
粹的软件范畴,比CMM 多了几个关键过程域。CMMI 模型最终代替CMM 模型的趋势
不可避免。

此外,CMM 的基于活动的度量方法与瀑布过程的有次序的、基于活动的管理规范有
非常密切的联系,更适合瀑布型的开发过程。CMM 保留了基于活动的度量方法,它的确
集成了软件产业内很多现代的最好的实践,因此它很大程度上淡化了和瀑布思想的联系。
CMM 和瀑布思想相联系,而CMMI 和迭代思想联系得更紧密。

CMMI 中在保留了CMM 阶段式表述的基础上,出现了连续式表述,这样可以帮助
一个组织以及这个组织的客户更加客观和全面地了解它的过程成熟度。两种表现方式从
其所涵盖的过程区域上来说并没有不同,不同的是过程区域的组织方式以及对成熟度级
别的判断方式。

CMMI 比CMM 进一步强化了对需求的重视。在CMM 中,关于需求只有需求管理
这一个关键过程域,也就是说,CMM 强调对有质量的需求进行管理,而如何获取需求则
没有提出明确的要求。CMMI 中还强调风险管理,不像在CMM 中把风险的管理分散在
项目计划和项目跟踪与监控中进行要求。

3.SO9000 
软件质量标准
4I

全世界范围应用最为广泛的标准是ISO 制定的ISO9000 标准簇(简称ISO9000), 
其是衡量各类产品质量的重要依据,目前,已经有100 多个国家的企业采用和实施了它的
一系列标准。通过推行ISO9000,可以全面提升组织机构的管理水平,提高产品质量,降
低生产水平,提高生产效率。ISO9000 可以为软件企业提供质量体系,提高软件质量度
量和控制方法量化和分析,提供软件质量依据。

3.1 
ISO9000 
的主要内容
4.
ISO9000 的核心思想是过程控制和预防为主。首先,通过企业从原材料采购、产品
加工、产品销售和售后服务等一系列过程加以控制,实现最佳的产品质量和用户满意度; 
其次,在企业对产品生产全过程控制的同时,预防和减少不合格产品。

ISO9000 中的软件质量标准很多,其中ISO9001 就是设计、开发、生成、安装和服务
的质量标准,是ISO9000 的核心标准。

ISO9001 质量管理体系规定了组织具有提供顾客要求和适应法规要求的产品的能

力,以增进顾客满意度。包括引言、范围、引用标准、术语和定义、质量管理体系、管理职

责、资源管理、产品实现、测量分析和改进等内容。

ISO9003 标准的主要内容如下: 

51 

.开发详细的质量计划和程序控制配置管理、产品验证、不规范行为(缺陷)和纠正
措施(修复); 
.准备和接收软件开发计划,包括项目定义、产品目标清单、项目进度、产品说明书, 
如何组织项目的描述、风险和假设的讨论以及控制策略等; 
.使用客户易理解的且测试时易进行合法性检查的用语来表述说明书; 
.计划、开发、编制和实施软件设计审查程序; 
.开发控制软件设计随产品生命周期而发生变化的程序; 
.开发和编制软件测试计划; 
.开发检测软件是否满足客户要求的方法; 
.实施软件验证和接收测试; 
.维护测试结果的记录; 
.解决软件缺陷的方式; 
.证明产品在发布之前已经就绪; 
.开发控制产品发布过程的程序; 
.明确指出和规定应该收集的质量信息。
ISO/IEC9126(GB/T16260)《软件产品评估-质量特性及其使用指南纲要》是一种评
价软件质量的通用模型,描述软件质量模型分为如下四部分。
(1)ISO/IEC9126-1:质量模型。
(2)ISO/IEC9126-2:外部质量度量。
(3)ISO/IEC9126-3:内部质量度量。
(4)ISO/IEC9126-4:使用质量度量。

3.2 
ISO9000 
和CMM/CMMI 
的关系
4.
1.ISO9000 
和CMM 
的关系
ISO9000 是国际标准,适用性更广泛,而CMM 是美国军方为评价软件企业的质量
管理水平委托SEI 开发的一个评价模型,CMM 只适用于软件行业。因此,从软件行业
看,CMM 更专业、更关注软件开发的全过程管理。ISO9000 相当于CMM2 和CMM3 的
部分内容。

ISO9000 和CMM 均可为软件企业服务,对影响

ISO9000 主要从用户的角度出发, 
质量的因素加以控制;而CMM 更强调软件开发的成熟度,强调过程的不断改善。

2.ISO9000 
和CMMI 
的关系
ISO9000 和CMMI 都关注质量和过程管理,而CMMI 

ISO9000 涉及的范围更广泛, 
只适用于软件行业。

52 

3.其他质量标准
软件质量保证有很多,比较有影响的标准还有IEEE 、SPICE 、ISO/IEC15504 、ISO/
IEC12207等。

3.1 
IEEE质量标准
5.
IEEE系列软件工程标准是由软件工程技术委员会(TechnicalCommiteonSoftware 
Enginering,TCSE)之下的软件工程标准工作小组(SoftwareEngineringStandards 
Subcommite,SESS)创立的。

IEEE质量标准是由顾客标准、资源标准、流程标准和产品标准组成的,每个标准下
又分为需求标准、建议标准和指南。

1.顾客标准
顾客标准包括软件获得、软件安全、软件需求和软件开发流程。

2.资源标准
资源标准包括软件质量保证、软件配置管理、软件单元测试、软件测试与确认、软件维
护、软件项目管理和软件生命周期流程。

3.流程标准
流程标准包括可靠性、软件质量度量和软件用户文件。

4.产品标准
产品标准包括软件测试文件、软件需求规格、软件设计描述、再用链接库的运用和辅
助工具的选择。

3.2 
SPICE
5.
SPICE(SoftwareProcesImprovementandCapabilitydEtermination),即软件过程
改进和能力鉴定。

SPICE标准起步较晚,具备的优点如下:首先,SPICE标准注意吸收各种已有模型的
优势,取长补短,强调其与各种模型的兼容,同时经过十多年的广泛试验,保证了其很强的
实用性;其次,SPICE标准比CMMI更加开放,并按照这些模型实行改进和评估,因此比
CMMI更加灵活和实用;最后,SPICE标准不仅可用于软件过程改进领域,也可扩展运用
到其他与信息技术相关的过程领域。

SPICE标准的第五部分是软件过程评估,它的参考模型结合了软件工程过程生命周

53 

期标准ISO12207,并包含了ISO12207的2008修订版。

由于SPICE标准更加开放和集成,因此备受产业用户的欢迎。很多行业制定了自己
的行业SPICE标准,其中包括汽车业、航天业、医疗仪器业等。这些行业都是对软件质量
要求非常高的行业,其中航天SPICE标准SPICE4Space(S4S)得到欧洲航天局的推崇和
支持,其特色部分是风险管理。

3.3 
IIEC
5.SO/

ISO/IEC联合信息技术委员会(JointTechnicalCommiteforInformation 
Technology)是国际标准化组织(ISO)和国际电工委员会(InternationalElectrotechnical 
Commsin,联合组建的第一个标准化技术委员会,

ioIEC) 该委员会在ISO和IEC的共同
领导下制定信息技术领域的国际标准。

1.ISO/IEC15504 

ISO/IEC15504的前身是SPICE,定义了实施过程评估要求,是使用过程改进和能力
测定的基础。它由九部分构成: 

.概念和介绍指南; 
.过程和过程能力的参考模型; 
.评估过程; 
.评估指南; 
.评估模型和标识指南; 
.审核员资格指南; 
.过程改进指南; 
.确定承包方过程能力的使用指南; 
.术语。
ISO/IEC15504与CMM有关,二者都是为软件组织的过程能力进行评估。二者也
有区别:ISO/IEC15504在为软件组织的过程能力进行评估的同时为企业提供可兼容和
可重复的软件能力评估方式,并可以确定软件过程评估的范围;CMM是一种层次模型, 
反映成熟度的进步阶段,为企业提供了目标。

2.ISO/IEC12207 

ISO/IEC12207是软件生命周期的国际标准,描述了软件生命周期的体系结构。生

命周期包括三个过程。

1)基本过程

基本过程提供生命周期的主要功能,由获得、供应、开发、操作和维护组成。

2)支持过程

支持过程提供支持和协调活动,由文档、配置管理、质量保证、验证、有效性、评审、审

核和解决问题组成。

54 

3)组织过程
组织过程是整体管理和支持过程,由管理、平台、改进和培训组成。

3.思考题
1. 什么是CMM? 什么是CMMI? 二者有何区别? 
2. 简述CMM 的五个级别。
3. 简述CMMI 的关键过程域。
4. 简述ISO9000 标准,它与CMM 和CMMI 有什么关系? 
5. 简述其他比较有影响的软件质量标准。
55 

第4章软件全面质量管理

伴随着改革开放的步伐,全面质量管理(TotalQualityManagement,TQM)概念也进
入中国。国内外的实践表明,它是一种最有效的广泛适用的管理方法。全面质量管理是
企业管理现代化、科学化的一项重要内容,随着质量管理的内容和要求标准化以及质量管
理理念的普及,越来越多的企业开始采用这种管理方法。

4.软件全面质量管理概述
1 

质量是企业生存和发展的第一要素,质量水平的高低,反映了一个企业的综合实力的
高低,质量问题是影响企业发展的重要因素,在激烈的市场竞争中,应充分认识质量管理
和产品质量对企业发展的作用和影响。全面质量管理有利于提高企业素质,增强企业的
市场竞争力,提高企业产品质量,改善产品设计,加速生产流程,鼓舞员工的士气和增强质
量意识,改进产品售后服务。

4.1 
质量管理和全面质量管理
1.
1. 
质量管理和全面质量管理的定义
质量管理是指在质量方面指挥和控制组织的协调的活动。质量管理,通常包括制定
质量方针和质量目标,以及质量策划、质量控制、质量保证和质量改进。

自20 世纪50 年代以来,随着生产力的迅速发展和科学技术的日新月异,人们对产品
的质量从注重产品的一般性能发展为注重产品的耐用性、可靠性、安全性、维修性和经济
性等。在生产技术和企业管理中要求运用系统的观点来研究质量问题,在管理理论上也
有新的发展,突出重视人的因素,强调依靠企业全体人员的努力来保证质量。

美国人费根鲍姆在20 世纪60 年代初提出了全面质量管理的概念。全面质量管理即

为了能够在最经济的水平上、考虑到充分满足顾客要求的条件下进行生产和提供服务,并

把企业各部门在研制质量、维持质量和提高质量方面的活动构成一体的一种有效体系。

ISO8402 对全面质量管理的定义:一个组织以质量为中心,以全员参与为基础,目的
在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径。

全面质量管理是一门系统性很强的学科,是一种由顾客的需要和期望驱动的管理哲

学。它是以质量为中心,建立在全员参与基础上的一种管理方法,其目的在于获得顾客满

意,让组织成员和社会受益。

全面质量管理就是组织企业全体员工和有关部门参加,综合运用现代科学和管理技

术成果,控制影响产品质量全过程和各因素,合理高效地生产和提供消费者满意的产品的


系统管理活动。质量不仅取决于各种工序,还涉及企业各个部门人员。所以,质量的保证
要通过全面质量管理来实现。

2. 
全面质量管理的特点
全面质量管理具有很多优点,能够为企业带来竞争优势。全面质量管理的特点主要
体现在全员性、全过程、全面性等几方面。

1)全面质量管理的全员性

产品质量是许多生产环节和各项管理工作的综合反映。企业中任何一个环节、任何
一个人的工作质量,都会不同程度地直接或间接地影响产品质量。全面质量管理中的全
员性表现在,质量管理不是少数专职人员的事,而是全企业各部门、各阶层的全体人员共
同参加的活动。同时,全面质量管理并不是“质量管理责任平均分配”,而是为实现全体的
目的,大家有系统地共同搞质量管理。质量管理活动必须是使所有部门的人员都参加的
系统性活动。同时,要发挥全面质量管理的最大效用,还要加强企业内各职能部门和业务
部门之间的横向合作,这种合作已经逐渐延伸到包括企业外的用户和供应商。要实现全
面质量管理的全员性,应当做好两方面的工作。

(1)必须抓好全员的质量教育和培训。教育和培训的目的有两方面:第一,加强职工的
质量意识,牢固树立“质量第一”的思想;第二,提高员工的技术能力和管理能力,增强参与意
识。在教育和培训过程中,要分析不同层次员工的需求,有针对性地开展教育和培训。
(2)要实行各部门及各级、各类人员的质量责任制,明确任务和职权,各司其职,密切
配合,以形成一个高效、协调、严密的质量管理工作的体系。这就要求企业的管理者要勇
于授权、敢于放权。
2)全面质量管理的全过程

产品质量首先在设计过程中形成,并通过生产工序制造出来,最后通过销售和服务传
递到用户手中。在这里,产品质量产生、形成和实现的全过程,已从原来的制造和检验过
程向前延伸到市场调研、设计、采购、生产准备等过程,向后延伸到包装、发运、使用、用后
处理、售前售后服务等环节,向上延伸到经营管理,向下延伸到辅助生产过程,从而形成一
个从市场调查、设计、生产、销售直至售后服务的寿命循环周期全过程。此外,为了实现全
过程的质量管理,就必须建立企业的质量管理体系,将企业的所有员工和各部门的质量管
理活动有机地组织起来,将产品质量的产生、形成和实现全过程的各种影响因素和环节都
纳入质量管理的范畴,才能在日益激烈的市场竞争中及时地满足用户的需求,不断提高企
业的竞争实力。全面质量管理的全过程必须体现两个理念。

(1)预防为主、不断改进的理念。
好的产品质量是设计和生产制造出来的,而不是靠事后的检验决定的。事后的检验
面对的是已经既成事实的产品质量。全面质量管理要求把管理工作的重点从“事后把关” 
提前到“事前预防”上来;从管结果转变为管因素,做到预防为主、防患于未然。

(2)顾客至上的理念。
顾客分为内部顾客和外部顾客。外部顾客可以是最终的顾客,也可以是产品的经销
商或再加工者;内部顾客是企业的各部门和全体人员。实行全过程的质量管理要求企业

57 

所有各工作环节都必须树立为顾客服务的思想。内部顾客满意是外部顾客满意的基础。

3)全面质量管理的全面性

全面质量管理的全面性又分为两方面,即管理对象的全面性和经济效益的全面性。

(1)管理对象的全面性。
全面质量管理的对象是质量。这里的质量,不仅包括产品质量,还包括工作质量。只
有将工作质量提高,才能最终提高产品和服务质量。此外,管理对象的全面性还包括对影
响产品和服务质量因素的全面控制。影响产品质量的因素很多,包括人员、设备、材料、工
艺、检测和环境等多方面,只有对这些因素进行全面控制,才能提高产品质量和工作质量。

(2)经济效益的全面性。
一个企业首先是经济实体,在市场经济条件下,其主要目的是获取经济效益。但全面
质量管理中经济效益的全面性除保证制造企业能取得最大经济效益外,还从社会的角度
和产品寿命全过程的角度考虑经济效益问题,以社会的经济效益最大为目的,使供应链上
的生产者、储运公司、销售公司、用户和产品报废处理者均能取得最大效益。

4.2 
软件全面质量管理的含义
1.
全面质量管理由于适应科技、经济、社会的发展趋势,得到了迅速发展,在实践运用中
取得了丰硕成果。全面质量管理强调系统、集成、统一和全员性、全过程、全面性的观点。
其核心思想是,企业的一切活动都围绕着质量来进行,同时强调最佳经济和客户满意的约
束条件。

软件全面质量管理是在使企业利润最大化的基础上,并充分满足用户明确或隐含要

求的条件下,进行软件的规划、分析、设计、实施和维护活动,把研发团队的质量控制和质

量设计活动构成一体的一种有效管理体系。

软件全面质量管理主要有三个目标:一个终极目标(扩大市场占有率)和两个辅助目
标(提高客户满意度、降低软件开发成本)。无论企业采取什么样的竞争战略,其根本的目
的就是扩大市场占有率,从而获得企业的超额利润。同样,软件公司也是如此。就软件企
业的软件质量管理而言,根据本文提出的软件全面质量管理理念,可以从提高客户满意
度、忠诚度和降低软件开发成本两个维度来达成企业的终极目标。两个辅助目标的实现
应贯穿于软件质量管理的全过程。

软件全面质量管理的主要任务是使软件开发过程规范化、程序化和标准化。首先将

复杂的问题分解为若干可以实现和管理的子问题,然后对每个子问题在软件开发生命周

期的各阶段中采用相应的技术和手段开展软件开发活动和质量保证活动,最后整合整个

软件产品并保证其质量。

4.软件全面质量管理的步骤和评审
2 

本节主要讨论的软件全面质量管理分为事前质量管理、事中质量管理和事后质量管
理。软件全面质量管理中的评审工作由对软件项目计划书进行评审、对需求分析说明书

58 

进行评审、对概要设计说明书进行评审、对总体设计进行评审和测试评审五部分组成。

2.软件全面质量管理的步骤
4.1 

1. 
事前质量管理
事前质量管理是指对系统规划和分析阶段的质量管理。此阶段的质量管理分两

方面。

首先,要透彻理解用户需求。用户需求包含明确需求和隐含需求,隐含需求需要需求
分析人员努力挖掘。透彻理解用户需求的关键是清晰明了的沟通。只有在有效沟通的前
提下,才能开发出让客户满意的高品质的信息系统产品。

其次,要确定软件的关键质量属性,并明确度量质量属性的方法。关键质量属性的确
定需要用户、需求分析人员、技术人员等多方的有效沟通。在决定了哪些属性对于客户和
管理层是重要的之后,接下来需要定义这些属性的度量方式。

2. 
事中质量管理
事中质量管理是指对系统设计和系统实施阶段的质量管理。设计、开发过程中有效

的质量管理,可以引人注目地降低信息系统开发中期的成本以及后期的维护成本。产品

质量是开发过程质量的直接结果。开发过程中的缺陷与客户报告的缺陷之间的直接关系

具有高度的正相关性,因而软件维护成本是受开发过程的质量直接控制的。

事中质量管理要求树立一个理念,在设计、开发过程中有效地防止工作成果产生缺
陷,将高质量内建于设计、开发过程之中。此阶段的质量管理过程中,可以通过两条途径
来提高信息系统的质量。

(1)软件过程改进。其主要措施是不断提高技术水平和不断提高规范化水平。
(2)工作成果刚刚产生马上进行质量检验。其主要措施是进行技术评审、软件测试
和过程检查。
3. 
事后质量管理
事后质量管理是指对系统运行与维护阶段的质量管理。此阶段质量管理的重点是对
信息系统产品的质量检查、验收及评定。交付使用的管理信息系统需要在使用中不断完
善,不断提高产品质量和服务质量。事后质量管理是一项高成本的管理活动。据统计,在
系统整个生命周期中,2/3以上的经费用在维护上。事后质量管理的重要手段是质量验
收。系统质量验收需要根据质量计划中的范围划分指标要求和合同中的质量条款,遵循
相关的质量检验评定标准,对系统的质量进行质量认可评定和办理验收手续。

2.软件全面质量管理中的评审
4.2 
软件质量保证是以保证软件质量为目标,致力于对确保产品达到质量要求而提供信

59 

任的工作。软件质量保证过程不仅要对项目的最终结果负责,而且还要对整个项目过程
承担质量责任。软件全面质量管理中的评审工作如下。

(1)对软件项目计划书进行评审。主要评审软件项目计划在调配人力、物力和资源
方面是否合理,设计开发计划是否切实可行。
(2)对需求分析说明书进行评审。主要评审需求分析说明书是否符合合同要求,是
否符合国家高速公路监控系统要求,评审需求、输出、数据定义的完整性,以及各项需求指
标有无矛盾,是否具有一致性。
(3)对概要设计说明书进行评审。主要评审概要设计的完整性,审查是否覆盖了软
件需求规格说明书中描述的所有软件需求,概要设计说明中定义软件的主要外设和它们
之间的接口是否清晰,概要设计说明是否一致,是否为详细设计提供了依据。
(4)对总体设计进行评审。评审总体设计中规定的各子系统通信报文协议是否符合
网络协议标准,能否确保数据的实施性和准确性,评审详细设计与概要设计是否一致,详
细设计能否很好地编码实现,详细设计是否符合概要设计的要求和目标。
(5)测试评审。评审测试计划完整性,测试用例各功能描述是否齐全。
在各阶段评审过程中,针对发现的问题及时纠正,防止和识别工作中的偏差和错误, 
确保了项目质量与计划保持一致,从而很好地完成了质量保证任务。

4.软件全面质量管理中的团队和质量控制
3 

软件开发已经是一个团队工程项目,任何在软件全面质量管理中进行的团队管理,以
及软件全面质量管理中的质量管控是本节主要讨论的内容。

3.软件全面质量管理中的团队
4.1 
实证研究已经表明,高效的团队与高质量的产品是有正相关关系的。人是一个团队
的核心,一切的工作都是需要由人来完成的,所以要想在软件质量上有新的突破,就必须
对软件开发团队中的人进行管理和建设。

1. 
积极创造良好的学习环境
企业高层及项目经理可以从两方面来创造良好的学习环境:一是建立鼓励员工学习
的机制;二是建立保证员工学习的系统。应该记住:所有的培训和学习都能创造价值。

2. 
积极开展质量教育工作
软件全面质量管理强调用人的质量保证工作质量,用工作质量来保证软件质量。可
见,人的素质是有效进行软件质量管理的根本保证。通过质量教育,增强软件项目参与者
的质量意识,提高其思想觉悟和文化、科学、技术水平,才有可能高效、优质地完成项目。

60 

3. 
明确团队成员的责任
团队中必须形成两种责任:个人责任和团队责任。团队必须为实现它的目标负责, 
而每个成员也必须为他所承担的工作负责。团队必须成功,所有的团队成员也必须为团
队的成功做出具体的贡献,并且做彼此相当的真实工作。只有在团队成员清楚地明白各
自责任的前提下,才能使软件开发顺利进行,做到有责可依,违责必究,为提高软件质量提
供保证。

4. 
积极做好团队标准化工作
制定一套有效的软件开发团队标准化准则,能够有效地提高软件质量。软件全面质
量管理是全过程的管理。这个质量的形成过程,就是标准的制定、实施、验证、修订的过
程。只有认真制定和贯彻管理标准和质量标准,才能有效地保证软件质量标准的执行,从
而推动软件质量管理的开展和最终提供优质的软件产品。

5. 
积极完善团队绩效管理
如果没有完善的团队绩效管理制度,团队成员将没有足够的动力在系统开发过程中
不断创新和变革,努力解决系统中存在的质量问题。在某些情况下,团队成员还可能出现
怠工现象,故意制造问题,拖延系统开发周期,使团队不能按计划完成任务,进一步增加企
业的开发成本。

3.软件全面质量管理中的质量控制
4.2 
一个软件项目的质量控制应该贯穿于项目实施的全过程,范围涉及质量形成的各环
节,其目的是确保项目质量能满足质量要求。随着技术进步和开发工具的不断升级,技术
方案的不断更新和新技术的产生都给项目开发带来了或多或少的困扰。因此,坚持定期
或不定期对员工进行培训,不仅涉及新技术的应用、新开发工具的使用,也包括一些与人
沟通的培训及一些职业规划方面的内容等,从而提高了整个项目团队的能力和水平,最终
达到提高软件产品质量的目的。

在软件质量监测过程中,针对计划监测人员按照作业流程及时进行检查,以确定项目
成果或阶段成果是否符合相关的质量标准,并且分析原因,进行适宜的处置,保证不合格
的产品得到识别和有效的控制。纠正措施或预防措施制定后,对质量计划进行相应的调
整,保证项目的顺利实施。

在软件开发过程中,测试工作作为软件质量控制的重要组成部分,要贯穿于整个项目
实施的全过程。编制测试计划,对各子系统编制测试用例进行需求测试。需求测试贯穿
了整个软件开发周期,通过需求测试来指导软件测试的各阶段。在软件开发过程中,进行
单元测试;各种外设到位,对自研设备进行功能测试,主要采用黑盒测试;对软件系统进行
测试,主要进行配置测试、自底向上的集成测试;对软件硬件系统联调,对各子系统进行系
统测试、兼容性测试。测试进行的详细而且严谨,及时解决出现的问题,确保各项系统指

61 

标已经达到设计要求,系统满足用户的要求。

4.思考题
4 

1. 简述软件全面质量管理的含义。
2. 简述实施软件全面质量管理的步骤。
3. 简述软件全面质量管理中的评审工作。
4. 简述软件全面质量管理中的团队。
5. 简述软件全面质量管理中的质量控制。
62