1. CMMI技术概要 (1) CMM (Capability Maturity Model for software,软件能力成熟度模式) 是美国国防部在1984年因当时该机构软件标案委外承作时,无法评估软件公司对软件标案的承接及执行能力,故委托美国卡内基美隆大学 (Carnegie Mellon University) 的软件工程学院 (Software Engineering Institute, SEI) 所进行的一项研究成果,试图于软件产业建立一套工程制度,使个人及组织在软件发展上能有持续改善的依据,其目的是用来评估及改善软件发展公司的软件开发过程及软件开发能力,并且协助软件开发者持续改善软件流程成熟架构及软件品质,进而提升软件开发项目及软件发展公司的软件开发管理能力,达成软件发展的功能正确、缩短开发时程、降低成本及确保品质等目标。 CMM目前已成为许多大型软件业者于改善组织内部软件工程所采行的软件评估标准,CMM亦陆续应用系统工程及软件采购方面,成为国际间认同且广泛通用的一种软件生产程序标准。其认证共分为五级(第一级:初始(Initial)、第二级:可重覆(Repeatable)、第三级:已定义(Defined)、第四级:已管理(Managed)、第五级:最佳化(Optimizing))。 由于CMM应用日渐广泛,陆续发展出不同的CMM模式,包括:软件能力成熟度 (Software Capability Maturity Model, SW-CMM) 、系统工程能力成熟度模式 (Systems Engineering Capability Maturity Model, SE-CMM) 、整合产品发展能力成熟度模式 (Integrated Product Development Capability Maturity Model, IPD-CMM) 、人力资源管理能力成熟度模式 (People Capability Maturity Model, P-CMM) 等应用模式;且SEI于2000年12月公布能力成熟度整合模式 (Capability Maturity Model - Integrated, CMMI),更进一步将能力成熟度模式整合,逐渐取代现行的CMM标准。 (2) CMMI (Capability Maturity Model - Integrated, CMMI) 是SEI继CMM成功发展后的新修订版本,目的在发展一个共通性的整合架构,以支援整合不同专业领域的特定能力成熟度模式及相关产品,并致力提供系统工程及软件工程的指导原则,期许在任何架构下的组织,皆能促进其流程改善,CMMI不仅提高每一级别成熟度要求的门槛,亦同时扩充能力成熟度评估适用范围,使得软件工程、系统工程的专业领域及整合性产品与流程发展的环境,皆能运用CMMI为软件开发流程提供持续改善的指引,对软件生产力与品质的提升亦有显著的实质效益,并确保所有发展的产品,能与国际标准组织/国际电技协会 (ISO/IEC) 15504软件流程评估技术报告相容并一致。 其认证共分为五级 (以分段式表述而言)为第一级:初始(Initial)、第二级:已管理(Managed)、第三级:已定义(Defined)、第四级:数量化管理(Quantitatively Managed)、第五级:最佳化(Optimizing)。 (3) CMMI的相关产品 * CMMI-SE/SW/IPPD/SS V1.1 Continuous/Staged * CMMI-SE/SW/IPPD V1.1 Continuous/Staged * CMMI-SE/SW/ V1.1 Continuous/Staged * CMMI-SW V1.1 Continuous/Staged * Appraisal Requirements for CMMI,V1.1 * Standard CMMI Appraisal Method for Process Improvement(SCAMPI) V1.1:Method Definition Document (4) CMMI与国际“软件发展标准”关连图 (5) 名词说明 SW-CMM Capability Maturity Model (CMM) for Software SA-CMM Software Acquisition Capability Maturity Model SE-CMM System Engineering Capability Maturity Model People CMM People Capability Maturity Model IPD-CMM Integrated Product Development Capability Model SECM System Engineering Capability Model DOD IPPD DOD Guide to Integrated Product and Process Development CMMI Capability Maturity Model Integrated MIL-STD 1679 Weapon System Software Development DOD-STD-2167A Defense Systems Software Development DOD-STD-2168 Defense System Software Quality Program DOD-STD-7935A DOD Automated Information System Documentation Standards MIL-STD-498 Software Development and Documentation MIL-STD-499B System Engineering IEEE Stds IEEE Software Engineering Standards IEEE/EIA 12207 Industry Implementation of International Standard SA-CMM1996 SE-CMM1996 SW-CMM1993 People CMM1993 IPD CMM EIA/IEEE J-STD-016 Standard for Information Technology, Software Life Cycle Process, Software Development, Acquirer-Supplier Agreement EIA 632 EIA Interim Standard 632, System Engineering ISO/IEC 12207 Information Technology-Software Life Cycle Processes ISO 15504 Information Technology-Software Process Assessment ISO 9000 ISO 9000Standards Trillium Telecommunications Product Development and Support Capability SDG Software Development Guidelines 2. 模式架构 流程是组织持续改善的掌控点。CMMI的目的是提供指导原则,产品(或服务)的发展、采购及维护改善组织的流程及改善管理的能力。CMMI将已认可的执行方法放在一个架构下,以帮助组织评估它的组织成熟度或流程领域能力,藉此建立改善的优先顺序以落实改善。 组织可用CMMI模式,来设定流程改善的目标、优先顺序、改善流程,并提供指导原则以确保稳定、适任及成熟的流程。CMMI能当作组织自我改善的指引。 在CMMI模式的两种表述中,包含有流程领域、特定目标、特定执行方法、一般目标、一般执行方法、典型的工作产品、详细执行方法、注解、专业领域强化、一般执行方法详细说明与参考资料。 (1) Maturity Levels 成熟度 组织成熟度提供在某些特定的专业领域下,预测组织未来绩效表现的方法。经验显示,在组织改善的过程中,流程领域的复杂性会不断增加,若组织能专注于一组可掌握的流程领域,将会有最佳的绩效表现。 成熟度是经过定义的进阶式流程改善的指标。每一成熟度是稳定组织流程的重要部分。每达成一级成熟度,即代表组织流程能力的增进。 共有由一到五个成熟度阶段,每一阶段成熟度都是下一阶段流程改善的基础: A. 成熟度第二级的流程领域 包含如下: (A) 需求管理(Requirements Management)管理项目产品与产品组件的需求,并且界定项目计划、工作产品与需求这两者的间,是否有不一致的情形。 (B) 项目规划(Project Planning)建立并维护定义项目活动的计划。 (C) 项目监控(Project Monitoring and Control)提供对项目进度的了解,使得当项目绩效明显偏离原先计划时,能采取适当的矫正措施。 (D) 供应商协议管理(Supplier Agreement Management)管理和项目有正式协议的供应商的产品与服务的采购。 (E) 度量与分析(Measurement and Analysis)发展并维护支援管理资讯所需的度量能力。 (F) 流程与产品品质保证(Process and Product Quality Assurance)提供员工和管理阶层,对于流程与相关工作产品客观的观察 (G) 配置管理(Configuration Management)建立并维护藉由配置识别、配置管制、配置状态记录及配置稽核,使工作产品具完整性。 B. 成熟度第三级的流程领域 包含如下: (A) 需求发展(Requirements Development produces)提供客户、产品与产品组件的需求与分析,这些是发展与了解所需的。 (B) 技术解决方案(Technical Solution)用以发展、设计与实作对于需求的解决方案。解决方案、设计与实作,适当地涵盖产品、产品组件以及产品相关单一或组合的流程。 (C) 产品整合(Product Integration)将产品组件组合成产品,确保产品已经整合、运作正常,并交付客户。 (D) 验证(Verification)确保工作产品符合特定的需求。 (E) 确认(Validation)证明产品或产品组件,于特定的环境下,确实能发挥特定的功能。 (F) 组织流程专注(Organizational Process Focus)建立并维护组织流程与流程资产的了解,并且界定、规划及执行组织流程改善活动。 (G) 组织流程定义(Organizational Process Definition)建立并维护可使用的组织流程资产。 (H) 组织训练(Organizational Training)发展人员的技巧与知识,使他们能有效地执行其角色。 (I) 整合的项目管理(Integrated Project Management),根据调适组织标准流程得的整合的已调适流程,建立并管理项目和其关键人员。它也涵盖建立项目共同愿景及整合团队结构,以完成项目目标。 (J) 风险管理(Risk Management)界定风险发生前的潜在问题,使在达成目标的前的生命周期期间,在有需要时,能规划风险处理活动,以降低不利的冲击。 (K) 决策分析与解决方案(Decision Analysis and Resolut)于作决策时,使用结构化的方法,依照已建立的准则,评估各备选方案。 (L) 适于整合的组织环境(Organizational Environment for Integration)提供整合的项目管理的基础环境,并管理人员以利整合。 (M) 整合团队合作(Integrated Teaming)形成并维持整合的团队以发展工作产品。 C. 成熟度第四级的流程领域 包含如下: (A) 组织流程绩效(Organizational Process Performance)建立并维护组织标准流程绩效的量化了解,并提供流程绩效的资料、基准与模式,以数量化管理组织的项目。 (B) 数量化项目管理(Quantitative Project Management)数量化管理项目的已调适流程,以达成该项目所建立的品质与流程的绩效目标。 D. 成熟度第五级的流程领域 包含如下: (A) 组织创新与推展(Organizational Innovation and Deployment)选择与推展渐进的与创新的改善活动,可度量地改善组织的流程与技术。这种改善,支援由组织经营目标所衍引的组织品质与流程绩效目标。 (B) 原因分析与解决方案(Causal Analysis and Resolution)界定缺失的原因与其他的问题,并采取预防措施,避免这些缺失在未来再发生。 (2) Specific Goals 特定目标 特定目标仅适用于单一的流程领域,并强调此唯一的特徵,说明有哪些是必须要执行以符合该流程领域。目标是必要的模式组件,在评估时,用于确定某流程领域是否能符合目标。 (3) Specific Practices 特定执行方法 特定执行方法是对应于特定目标的活动,对达成特定目标是重要的。特定执行方法说明一组活动,这组活动被期望可以达成流程领域的特定目标。 (4) Generic Goals 一般目标 一般目标可适用于所有的流程领域。各流程领域中,一般目标的达成与否,代表各流程领域的执行与制度化,是否为有效、可重复与持久的。一般目标和一般执行方法将在第四章中说明。 (5) Common Features 共通特性 四个共通特性组成了各流程领域的一般执行方法。共通特性的名称是助益的模式组件。这种组合只是提供一种方式,来表现一般执行方法。在模式中的每一共通特性,都用缩写字来代表。 A. 执行承诺(CO):集合所有与制定政策和确保支援有关的一般执行方法,以寻求流程改善的努力。 B. 执行能力(AB):集合所有用来确保组织及/或项目有充分资源的一般执行方法,以寻求流程改善。 C. 督导实行(DI):集合所有与搜集、度量和资料分析有关的一般执行方法。其目的在于观察流程的绩效。 D. 验证实行(VE):集合所有验证项目及/或组织活动有关的一般执行方法,以验证其是否符合需求、流程与程序。 (6) Generic Practices 一般执行方法 一般执行方法适用于任何流程领域,因为原则上,它们可以改善任何流程的绩效与控制。一般执行方法,提供制度化的特性,确保流程领域为有效、可重复与持久的。一般执行方法是期望的模式组件。 (7) Typical Work Products 典型的工作产品 典型的工作产品是助益的模式组件,提供执行方法的产品范例。这些范例,所以称为典型的工作产品,是因为还有其他的工作产品是有效的,只是未被列出而已。 (8) Subpractices 详细执行方法 详细执行方法提供指引,对特定或一般执行方法的详细说明。详细执行方法可说成是命令式的,但实际上是助益的模式组件,也就是说,详细执行方法仅提供意见,可用来或不用来做流程改善,并不具强制性。 (9) Discipline Amplifications 专业领域强化 专业领域强化是助益的模式组件,包含与特殊专业领域或者特定执行方法相关的资讯。例如:若在CMMI-SE/SW模式,你想找软件工程的专业领域强化,你可以去找“软件工程适用”的标签。 (10) Generic Practice Elaborations 一般执行方法的详细说明 一般执行方法详细说明是助益的模式组件,出现在各流程领域,其目的在于说明一般执行方法,要如何应用于流程领域。例如:一般执行方法的“依需要训练人员,以执行或支援已规划流程”,被整合至配置管理流程领域时,就是说明如何进行配置管理的特定训练。 3. 模式应用 (1) 流程改善与建立基准的评估 流程评估首重认定改善的机会。组织应依经营与流程改善目标,以及经营与技术结合,而订定其优先顺序。评估小组依CMMI模式的引导界定并列出发现事实的优先顺序。所发现的事实,与模式的执行方法所提供的指引,将被(如:工程流程团队)用于规划组织改善的策略。另外,多数组织为内在的目的与外部的客户及供应商,找到从事流程改善与基准化其进度的价值认知。 对于组织需要评估多种专业领域(例如,软件工程和系统工程),整合后的CMMI做法,容许在模式训练与评估训练内使用较经济的做法。一套评估方法能呈现多种专业领域独立运作或合并使用的结果。 另外,组织也许希望使用,例如,有限的B或C级评估方法,以连续式的表述致力于有经营价值意义的单独流程领域。接著,基于较不寻常状况下,可能采用A级分段式的流程改善的标准CMMI评估方法(SCAMPI)对整个组织作其基准化的评估。 |