本文定义并描述ISO 9000和IEEE软件标准,以及SEI能力成熟度模型集成(CMMI)的开发、服务和获取评估模型。
软件工程协会(SEI Software Engineering Institute)将标准定义为 "制定并用于规定获取、开发或服务的一致方法的正式要求,"(SEI 2010)。标准通过对规则、要求、指南或特征的说明,为软件开发和其他活动定义了一种有规律的、一致的方法。标准旨在促进社区或组织的最佳利益,并应以科学、技术和实践经验的综合成果为基础。
在指定、开发、审查、审计、评估或测试一个系统、过程或产品时,标准被用作比较的基础。当一个组织和/或其人员将标准中所说的应该做的事情与该组织和/或其人员实际所做的事情相比较时,就符合了标准。当标准要求的内容与产品的实际特性、内容或状态相匹配时,产品就符合了标准。一个标准通常是由标准实践规定的,或者是由指定的标准机构(ISO、IEC、IEEE、OMG等)定义的。标准可以指定对项目或活动的要求,包括。
- 大小:例如,一个外部接口标准可能规定通信包的大小为32字节。
- 内容 :。例如,IEEE关于系统和软件工程配置管理的标准828(IEEE 2012)规定了配置管理计划应包括的内容
- 价值:例如外部接口标准可能会规定在该接口上传输的错误代码的价值。
- 质量:例如,建模和编码标准提供了生产高质量软件工作产品的工艺标准,ISO 9001:2015标准(ISO 2015)规定了有效实施质量管理体系(QMS)的要求。
在组织层面,标准使专业人员更容易在组织内的项目和产品团队之间流动,减少了培训所需的努力。通过使用标准,组织内不同小组开发的软件更加一致和统一,因此更容易集成和重复使用。事实上,每个人都知道并理解获取、开发和/或维护软件产品的标准方式,这就允许用统一的方法来审查产品和项目的状态。
在行业层面上,标准可以通过提供良好的实践机会来提高学科的专业性,这些实践是由软件行业有经验的从业者定义的。许多公司以ISO和IEEE标准为基准,作为改进自己的流程和实践的基础。标准还可以帮助将新的技术和方法引入软件行业。例如,来自对象管理小组(OMG 2015)的系统建模语言(SysML)标准帮助引入了一种一致的方法,可用于指定、分析、设计、验证和确认系统和系统中的面向对象的需求和设计。
应该注意的是,指南(guidelines)与标准不同。标准和指南通常都是由一些权威机构发布的。然而,标准定义了要求,而指南定义了建议的实践、建议、方法或程序,被认为是良好的实践,但不是强制性要求。
模型是对一个项目或过程从一个特定角度的抽象表述。一个模型表达了一个项目或过程的某些方面的基本内容,而没有给出不必要的细节。模型的目的是使有关人员能够思考、讨论和理解这些基本要素,而不被过多或复杂的细节所困扰。与标准不同,模型是沟通的工具,而不是强制性要求。用于开发的能力成熟度模型集成(CMMI)(SEI 2010)和生命周期模型(瀑布式、V型或螺旋式)是模型的例子。
ISO 9000
国际标准化组织(ISO)是一个由国家标准机构(ISO成员机构)组成的全球联盟"(ISO 2015)。ISO制定了9000系列标准,以定义质量管理和质量保证领域的良好做法。这些标准定义了质量管理系统的基本、第一层次。它们的实施并不能保证高质量。
在ISO 9000系列中,核心标准包括。
- ISO 9000:2015质量管理体系-基础和词汇
- ISO 9001:2015质量管理体系-要求
- ISO 9004:2009 为组织的持续成功而管理--质量管理方法
ISO还提供了一套辅助标准/指南,以帮助组织建立和改进其质量管理体系、流程或活动。这些支持性标准/指南的清单包含在ISO 9001:2015标准(ISO 2015)的附件B中。
ISO 9000系列标准基于七项质量管理原则,适用于任何组织,包括软件、制造和/或服务,包括。(ISO 2015; ISO 2015a)
- 以客户为中心
- 领导力
- 人员参与
- 过程方法
- 改进
- 基于证据的决策
- 关系管理
ISO 9001:2015标准定义了一套具体的质量管理体系要求,这些要求被注册机构用来审核和认证组织。ISO 9001:2015采用过程方法,其中包含了计划-执行-检查-行动(PDCA Plan-Do-Check-Act )循环和基于风险的思考。
一些行业对ISO 9000系列标准做出了特定的解释,或称附加条款。这样做是为了规范其行业对ISO 9001:2015的解释和/或增加行业特定的额外要求。这些特定行业的解释也有助于确保审核员接受培训并了解这些行业的具体需求。行业特定标准的例子包括。 - ISO/IEC 90003:2014 软件工程--ISO 9001:2008对计算机软件的应用指南,截至本书出版之日,尚未更新为ISO 9001:2015版本
- 用于航空、航天和国防的AS9100(以及针对可交付软件的AS9115)。
- 用于汽车行业的ISO/TS 16949
- 电信业的TL9000
- 医疗设备的ISO 13485和医疗设备软件的ISO 62304
- 石油、石化和天然气的ISO/TX 29001
- 核电的NQA 1
IEEE软件工程标准
IEEE计算机协会的软件和系统工程标准委员会制定并维护一套软件和系统工程标准。这套IEEE标准并不总是被逐字逐句地使用,但它们被广泛地用作基准、模板和行业良好实践的例子,各组织根据自己的具体要求进行调整。对于确定其软件流程的组织,这些标准可以提供指导,最大限度地减少时间和精力。这些标准也可以作为检查清单,帮助验证重要项目不被忽视。
ISO 9001:2015和CMMI模型为良好的软件质量工程实践集提供了路线图,而IEEE的软件和系统工程标准则提供了更详细的 "如何做 "的信息和指导。截至本出版物发布之日,IEEE软件和系统工程标准的当前列表包括以下与注册软件质量工程师(CSQE)知识体系主题密切相关的标准。请参阅IEEE软件和系统工程标准网站,了解这些和其他IEEE软件和系统工程标准的最新版本。
- 730-2014-软件质量保障流程
- 828-2012-系统和软件工程的配置管理
- 829-2008-软件和系统测试文件
- 982.1-2005-《软件可依赖性方面的标准衡量标准》。
- 1008-1987(2009年重申)--软件单元测试
- 1012-2012-系统和软件核查与验证
- 1016-2009-系统设计-软件设计说明
- 1028-2008-软件审查和审计
- 1044-2009-软件异常情况的标准分类
- 1061-1998(2009年重申)--软件质量度量方法学
- 1062-2015--软件采购的推荐做法
- 1220-2005(2011年重申)--系统工程过程的应用和管理
- 1228-1994(2010年重申)--软件安全计划
- 1320.1-1998 (2004年重申) - 功能建模语言-IDEF0的语法和语义
- 1320.2-1998(2004年重申)-概念建模语言-IDEF1X97(IDEFobject)的语法和语义
- 1490-2011-采用项目管理协会(PMI®)标准--《项目管理知识体系指南》(PMBOK®指南)--第四版
- 1517-2010-系统和软件生命周期过程-重用过程
- 1633-2008-软件可靠性的推荐实践
- 12207-2008-系统和软件工程-软件生命周期过程
- 14102-2010-采用ISO/IEC 14102:2008《信息技术--CASE工具的评估和选择指南
- 14471-2010-采用ISO/IEC TR 14471:2007《信息技术--软件工程--CASE工具采用指南》。
- 14764-2006-ISO/IEC软件工程国际标准-软件生命周期过程-维护
- 15026-n-采用ISO/IEC 15026-1《系统和软件工程-系统和软件保证》的标准
- 第1-2014部分。概念和词汇
- 第2-2011部分。保证案例
- 第3-2013部分。系统完整性等级
- 第4部分-2013年。生命周期中的保证
- 15288-2015-ISO/IEC/国际标准--系统和软件工程--系统寿命周期过程
- 15289-2015-ISO/IEC/国际标准--系统和软件工程--生命周期信息产品(文档)的内容
- 15939-2008-标准采用ISO/IEC 15939:2007-系统和软件工程-测量过程
- 16085-2006-ISO/IEC 16085:2006-软件工程-软件生命周期过程-风险管理
- 16326-2009-ISO/IEC/International Standard 系统和软件工程-生命周期过程-项目管理
20000-n-标准-采用ISO/IEC 20000-1:2011,信息技术-服务管理- 第1-2013部分。服务管理系统要求
- 第2-2013部分。服务管理系统的应用指南
- 24748-n-指南--采用ISO/IEC TR 24748系统和软件工程--生命周期管理
- 第1-2011部分。生命周期管理指南
- 第2-2012部分。ISO/IEC 15288(系统生命周期流程)应用指南
- 第3-2012部分。ISO/IEC 12207(软件生命周期流程)应用指南
- 24765-2010-系统和软件工程-词汇表
- 24774-2012-指南-采用ISO/IEC TR 24474:2010系统和软件工程--流程描述的生命周期管理指南
- 26702-2007-ISO/IEC系统工程-系统工程过程的应用和管理
- 29119-n-软件和系统工程-软件测试
- 第1-2013部分。概念和定义
- 第2-2013部分。测试过程
- 第3部分-2013。测试文件
- 第4-2015部分。测试技术
- 29148-2011-系统和软件工程-生命周期过程-需求工程
- 42010-2011-ISO/IEC系统和软件工程-架构描述
应该注意的是,除了ISO 9000系列标准外,还有许多ISO/IEC信息技术、软件工程、系统和软件工程标准通过ISO/IEC JTC 1/CS 7编写/正在编写。这些标准中的一些已经被IEEE采用,另一些可能在未来取代上面列出的现行IEEE标准。目前的ISO/IEC标准的清单可以在http://www.iso.org/iso/home/store/catalogue_tc/catalogue_tc_browse.htm?commid=45086 上找到)。
能力成熟度模型集成(CMMI
软件工程协会(SEI)推动软件工程从一种临时的、劳动密集型的活动演变为一门由技术管理和支持的学科。根据SEI的网站,SEI的主要工作领域包括。
- "软件工程管理实践。这项工作的重点是组织在获取、构建或增强软件系统时预测和控制质量、进度、成本、周期时间和生产力的能力。"
- "软件工程技术实践。这项工作的重点是软件工程师分析、预测和控制软件系统选定属性的能力。这一领域的工作涉及在获取、构建或增强软件系统时必须做出的关键选择和权衡"。
作为这项工作的一部分,SEI建立了CMMI模型(现在由CMMI协会支持),其目的是传达一套良好的实践,供追求企业范围内流程改进的组织使用。由此产生的CMMI框架允许生成多个CMMI模型,这取决于表现形式(阶段性或持续性)和学科。
能力成熟度模型集成(CMMI)用于开发(CMMI-DEV)(SEI 2010)。为组织提供良好实践的路线图,以改善他们的产品开发实践,从而生产出高质量的产品,满足客户、用户和其他利益相关者的需求。
服务的能力成熟度模型集成(CMMI)(CMMI-SVC)(SEI 2010a)。为有意为客户和用户提供高质量服务的组织提供良好实践路线图用于采购的能力成熟度模型集成(CMMI)(CMMI-ACQ)(SEI 2010b)。为组织提供良好实践的路线图,以改善其产品和服务获取实践,从而启动和管理高质量产品和服务的获取,满足客户、用户和其他利益相关者的需求。
在阶段性表述中,三个CMMI模型中的每一个都被细分为五个级别(或阶段),用来衡量组织的成熟度。每个模型都包括一个四级结构(2到5级)的良好实践,旨在提高产品和服务质量,以及项目绩效。在这三个CMMI模型的阶段性表示中,从2到5的每个级别都是由过程领域组成的。
每个CMMI过程领域都是用详细的要求、期望和信息组件来定义的,包括。
- 必要组件。
- 具体目标:每个过程领域都有一个或多个专门适用于该过程领域的目标,组织需要在该过程领域实现这些目标。
- 通用目标:该模型还包括一组通用目标,组织必须为每个过程领域实现这些目标。每个过程领域的描述都解释了这些通用目标以及它们如何适用于该过程领域。
- 预期的组成部分。
- 具体实践 : 每个具体的目标都有相关的实践,专门适用于该过程领域的该目标。组织应该实施模型中记录的具体实践,或可接受的替代实践,从而实现相关的具体目标。
- 一般性实践。每个通用目标都有适用于该通用目标的相关实践。组织应该实施模型中记录的通用实践,或可接受的替代实践,从而实现相关的通用目标。
- 信息化部分。
- 每个流程领域都有一个目的声明,定义了该流程领域的目的,以及介绍性说明,描述了该流程领域所涵盖的主要概念,还有一个相关流程领域的列表,并定义了具体的联系。
- 每个具体的实践都有子实践、相关的注释、例子和参考资料,它们提供了解释和实施具体实践的细节。
- 每个通用实践都有子实践,提供解释和实施通用实践的细节。每个通用实践都有一个关于该通用实践如何适用于所规定的流程领域的详细说明。
举例来说,CMMI的发展测量和分析过程领域的具体目标(SG)和具体实践(SP)是。(SEI 2010)
- SG 1:调整测量和分析活动
- SP 1.1: 建立测量目标
- SP 1.2:指定测量方法
- SP 1.3: 明确数据收集和存储程序
- SP 1.4: 明确分析程序
- SG 2: 提供测量结果
- SP 2.1: 收集测量数据
- SP 2.2: 分析测量数据
- SP 2.3: 存储数据和结果
- SP2.4:交流结果
所有三个CMMI模型都有相同的2级和3级通用目标(GG)及其相关的通用实践(GP)。(SEI 2010; SEI 2010a; SEI 2010b)
-
第2级。GG 2:将管理的流程制度化
- GP 2.1: 建立一个组织政策
- GP 2.2: 规划流程
- GP 2.3: 提供资源
- GP 2.4: 指派责任
- GP 2.5: 培训人员
- GP 2.6: 控制工作产品
- GP 2.7: 识别并让相关的利益相关者参与进来
- GP 2.8: 监测和控制过程
- GP 2.9: 客观地评估遵守情况
- GP 2.10: 与更高级别的管理层一起审查状态
-
第3级。GG3: 将确定的流程制度化
- GP 3.1: 建立一个明确的程序
- GP 3.2: 收集改进信息
在评估一个组织的成熟度水平时,阶段性表示中的过程领域是累积的。一个组织要达到2级成熟度,就必须。
通过实施所有相关的具体实践或可接受的替代实践,实现所有2级流程领域的所有具体目标。
通过实施所有相关的通用实践或可接受的替代实践,实现每个2级过程领域的所有2级通用目标。
为了向前迈进并达到3级成熟度,哪个组织将不得不。
通过实施每个二级流程领域的所有相关通用实践或可接受的替代实践,为每个通用目标增加实现所有三级通用目标的机会
通过实施所有相关的具体做法或可接受的替代做法,实现所有三级过程领域的所有具体目标。
通过实施每个3级过程领域的所有相关通用做法或可接受的替代做法,实现每个3级过程领域的所有2级和3级通用目标。
由于在分阶段表述中没有通用的4级或5级目标,为了向前迈进并达到4级成熟度,一个组织必须通过实施所有相关的具体实践或可接受的替代实践来实现所有4级流程领域的所有具体目标。为了向前迈进并达到5级成熟度,一个组织必须通过实施所有相关的具体实践或可接受的替代实践,来实现所有5级流程领域的所有具体目标。
到目前为止,我们只讨论了CMMI的阶段性表示。在连续表示法中,使用了相同的过程领域。然而,在连续表示法中,每个过程领域被独立地评估为能力水平,指定为0级到3级,并描述如下,而不是组织被评估为成熟度水平。
- 能力水平-0,不完整。流程能力的初始水平,表明该流程根本没有被执行,或其相关的一个或多个具体目标没有被实现。
- 能力水平-1,已执行。一个具有第1级的过程领域已经通过实施所有相关的具体实践或可接受的替代实践,实现了其所有的具体目标。
- 能力水平-2,管理。具有第2级的过程领域,除了实现第1级的所有具体目标外,还通过实施每个通用目标的所有相关通用做法或可接受的替代做法,实现了所有第2级通用目标。
- 能力3级,已定义。一个达到3级的过程领域,除了实现其1级的所有具体目标和2级的通用目标外,还通过实施每个通用目标的所有相关的通用做法或可接受的替代做法,实现了所有3级的通用目标。
实现高成熟度是通过同等的阶段性概念来实现的。一旦所有的2级和3级过程领域的分阶段表示达到了3级能力,4级高成熟度则通过组织过程绩效和量化项目管理过程领域达到3级能力来实现。一旦达到4级高成熟度,5级高成熟度将通过在因果分析和解决以及组织绩效管理方面达到3级能力而达到。
人员能力成熟度模型
除了三个CMMI模型之外,还有一个人员能力成熟度模型(P-CMM)(SEI 2009)。该模型提供了一个良好实践的路线图,以帮助组织解决其关键的人员问题,并改善管理和发展组织的员工队伍的过程。