目前,使用最多的软件过程改进模型包括 CMM、CMMI、ISO9000 和 ITIL 等系列标准。
1.CMM
W-CMM(软件能力成熟度模型)为软件企业的过程能力提供了一个阶梯式的进化框架, 阶梯共有五级。
(1)初始级。初始级的软件过程是未加定义的随意过程,项目的执行是随意甚至是混 乱的。
(2)可重复级。根据多年的经验和教训,人们总结出软件开发的首要问题不是技术问 题而是管理问题。因此,第二级的焦点集中在软件管理过程上。一个可管理的过程则是一个 可重复的过程,一个可重复的过程则能逐渐进化和成熟。第二级的管理过程包括了需求管理、 项目管理、质量管理、配置管理和子合同管理五个方面。其中项目管理分为计划过程和跟踪 与监控过程两个过程。实施这些过程,从管理角度可以看到一个按计划执行的且阶段可控的 软件开发过程。
(3)定义级。在第二级仅定义了管理的基本过程,而没有定义执行的步骤标准。在第 三级则要求制定企业范围的工程化标准,而且无论是管理还是工程开发都需要一套文档化的 标准,并将这些标准集成到企业软件开发标准过程中去。所有开发的项目需根据这个标准过 程,剪裁出与项目适宜的过程,并执行这些过程。过程的剪裁不是随意的,在使用前需经过 企业有关人员的批准。
(4)管理级。第四级的管理是量化的管理。所有过程需建立相应的度量方式,所有产 品的质量(包括工作产品和提交给用户的产品)需有明确的度量指标。这些度量应是详尽的, 且可用于理解和控制软件过程和产品。量化控制将使软件开发真正变成一种标准的工业生产 活动。
(5)优化级。第五级的目标是达到一个持续改善的境界。所谓持续改善是指可根据过 程执行的反馈信息来改善下一步的执行过程,即优化执行步骤。如果一个企业达到了这一级, 那么表明该企业能够根据实际的项目性质、技术等因素,不断调整软件生产过程以求达到最 佳。
2.CMMI
CMMI(Capability MaturityModel Integration),即能力成熟度模型集成。CMMI 是 CMM 模型的最新版本。CMMI 与 CMM 最大的不同点在于:CMMISM-SE/SW/IPPD/SS 1.1 版本有 四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可 以应用集成产品和过程开发方面(IPPD)的内容,如果涉及供应商外包管理可以相应地应用
SS(Supplier Sourcing)部分。
CMMI 有两种表示方法,一种是和软件 CMM 一样的阶段式表现方法,另一种是连续式
的表现方法。这两种表现方法的区别是:阶段式表现方法仍然把 CMMI 中的若干个过程区 域分成了 5 个成熟度级别,帮助实施 CMMI 的组织建议一条比较容易实现的过程改进发 展道路。而连续式表现方法则通过将 CMMI 中过程区域分为四大类:过程管理、项目管理、 工程及支持。对于每个大类中的过程区域,又进一步分为基本的和高级的。这样,在按照连 续式表示方法实施 CMMI 的时候,一个组织可以把项目管理或者其他某类的实践一直做到 最好,而其他方面的过程区域可以完全不必考虑。
3.ISO 9000
ISO 9001 和 CMM 非常相似的是,两者都共同着眼于质量和过程管理,而且它 们都是基于戴明博士的全面质量管理 TQM 产生的,因此不存在任何矛盾的地方。但是,它 们的基础是不同的:ISO9001(ISO9000 标准系列中关于软件开发和维护的部分)确定一个 质量体系的最少需求,而 CMM 强调持续过程改进。
4.ITIL
ITIL(信息技术基础设施库)是英国政府中央计算机与电信管理中心(CCTA)在 20 世 纪 90 年代初期发布的一套 IT 服务管理最佳实践指南。