从CMM软件开发流程的理念、流程这两个方面概括介绍一下CMM。
CMM软件开发流程试图将几十年来风险比较不可控的软件开发用一个规范的流程控制起来,变成一个类似
传统工业化生产流程的工业。
CMM理念
CMM主要理念之一就是加强过程控制,认为只要开发的过程按照规定动作执行,就可以很大程度上降低软件开发的质量、进度风险。而过程质量控制的主要手段就是检视。
CMM的理念之二是根据经验数据指导新的软件开发项目。CMM定义了监控软件开发过程是否规范的一系列指标,如软件生产率、检视缺陷密度、遗留缺陷密度等,并总结了同业的一些经验数据。当执行实际项目时,以这些经验数据指引开发过程,尽量使开发的关键质量指标落入经验数据区间。同时进行进一步分析总结,对质量目标进行修正,用以指导后续的新项目。通过在一个个的项目逐渐总结修正,最终得到一套适合自己的质量目标。
CMM的理念之三,也可以说是本质,是基于传统的瀑布软件开发模型的。
CMM全流程
CMM软件开发规范的流程。CMM规范基于瀑布软件开发模型,没有体现基于原型逐步求精的思想,这也是近年来在实施中为人所诟病的一个方面。下面结合IPD流程阐述一下CMM流程在公司实际的应用。
CDP-Charter
CDP即Charter开发项目,主要的责任主体是Marketing团队和SE,目标是定义一个产品版本所要解决的主要目标和时间点,交付件是Charter。Charter要通过BMT,即业务管理团队的批准。Charter需要回答这些问题:版本的Top N需求和主要竞争需求,主要目标客户,完整的包需求,版本的里程碑时间点,应用的时间窗口以及在版本火车中所处的位置。
Charter-TR1
TR1即产品概念完成里程碑,主要的责任主体是SE团队,同时Marketing配合完成需求的细化、澄清和修订。这个阶段的目标是输出设计需求。相比包需求,设计需求粒度更细,能够清晰的描述每一个需求,包括每个需求的输入、输出参数,并输出低保真界面原型。
CDCP
CDCP即Concept Decision Check Point,近年来大部分项目都裁剪,具体作用不明。
TR1-TR2
TR2即产品设计完成里程碑,主要的责任主体是SE团队。这个阶段的输出是设计规格。相比设计需求,设计规格从系统架构的角度将每个设计需求分配到每个子系统,并定义每个子系统之间新增、修改的接口。接口必须详细定义到足以指导开发人员实现的程度,可能部分没有注意到的细节可以在后续开发过程中澄清,但总体的接口设计是不允许在后续随意更改的。同时TR2还要输出高保真界面原型。
PDCP
PDCP即Plan Decision Check Point,项目计划里程碑。虽然Charter决策时已经定出了版本代码规模、关键时间点和人力需求,但经过TR1和TR2的分析和细化,不可避免的会出现一些变更。TR2是项目从构想到实现,从混沌到清晰的一个关键时间点。相比TR2前比较不可控的的研讨、分析,TR2以后主要是执行的一个过程,因此在TR2前后有必要将版本代码规模、关键时间点和人力需求进一步明确固化下来,以便后续开发团队按照一个严格的计划来执行。除了以上提到的,PDCP时还要确定质量目标,由开发代表给各项目经理下发SOW(工作任务书)。SOW中明确了各个开发项目组在TR2-TR4之间应该完成的开发任务,是开发组完成开发任务的依据。
TR2-TR3
这个阶段开发组完成软件需求规格说明书(SRS)的写作,以及按照大瀑布模型,完成系统测试用例的写作(STC)。SRS基于软件设计需求(DS)分解细化,用描述性的语言阐述每个典型用户操作/业务流程的实现过程,包括每个子系统如何协作通讯。
TR3-TR4
这个阶段开发组依次完成软件概要设计(HLD)和集成测试用例(ITC)、软件详细设计(LLD)和单元测试用例(UTC)、编码。HLD的交付标准是定义到函数接口级别,LLD的交付标准是写出伪码。但由于瀑布模型的固有缺陷,如果花了大量的时间在文档协作上,编码时间很短,重大的风险无法提前识别,只能到编码时菜暴露,对项目进度影响大。近年来大部分项目都将HLD和LLD合二为SD——软件设计说明书,而且弱化了伪码协作。
ITC根据项目的需求而定,如果项目本省不需要专门的集成测试,就可以裁减了。如果基于xUnit进行单元测试,则UTC文档可以裁减,或至少部分裁减。
TR4-TR4A
这个阶段开发组要完成UT/IT/ST/BBIT,TR4A时开发组要向测试组交付版本进行测试。BBIT是指Building Block Integrated Test,一般是指跨团队的子系统间的集成测试。
TR4A-TR5
这个阶段测试部会完成2+1的测试,即完成两个版本的完整测试,外加1个版本的回归测试。根据CMM的经验,2+1的测试可以达到版本功能稳定的程度。TR5结束即意味着版本开发阶段的结束。对于直接交付给客户的产品,下一阶段就是实验局阶段。对于交付给下游的中间件,产品开发基本结束,准备过TDCP。
TDCP
TDCP即Technology Decision Check Point。这个里程碑意味着产品主要开发活动的结束。开发代表需要邀请下游用户、测试等相关干系人员参与评审。评审的标准是产品的遗留缺陷。各域的代表会关心这些遗留缺陷是否确实影响用户的使用,有没有规避的方法。
TR5-TR6
对于直接交付给客户的产品,这个阶段就是实验局阶段。管理团队会挑选适当的客户来使用新版本,并根据暴露出来的问题进一步优化、改进。TR5-TR6之间的版本也会用于入网测试。很多新的特性本来就是应某些入网测试的需求开发的。
TR6-GA
这个阶段是维护阶段,对各种缺陷进行修改,发布新版本。这些缺陷可能是内部测试、外部测试、客户使用过程中暴露出来的。这个阶段只在控制范围内限量接收小的新需求,接收与否的依据是是否对架构影响大,是否确实紧急。
GA
GA意味着产品主要生命周期的结束。过了GA点以后,基本不会基于这个主版本在发布新版本,不接纳新需求。
分享到:
相关推荐
《CMM3标准开发流程模板》是一套完整的软件开发过程模型,旨在提升组织的软件开发质量和效率。这一标准由21个章节组成,涵盖了项目管理的各个关键阶段,旨在实现更高效、更有序的软件开发流程。以下是各章节主要内容...
《CMM模板之立项管理详解》 立项管理是软件开发过程中的重要环节,它涉及到项目的启动、规划和准备工作,确保项目能够顺利进行并达到预期目标。CMM(Capability Maturity Model,能力成熟度模型)是一种评估和改进...
【IPD CMM_V30_DESIGNFLOW】是华为软件研发流程管理体系的一个版本,它基于集成产品开发(Integrated Product Development, IPD)理念,并结合了能力成熟度模型(Capability Maturity Model, CMM)的实践。...
总结来说,CMM是提升软件开发管理水平的重要工具,通过规范化的流程管理和持续改进,可以有效地提高软件质量,降低开发成本,增强企业的市场竞争力。在全球范围内,CMM已经成为评价和提升软件组织能力的通用标准,...
3. **持续改进流程**:阐述CMM5中的持续改进流程,包括对现有过程的定期评估、问题识别、解决方案制定和实施。 4. **数据驱动决策**:讨论如何收集、分析和利用数据,以支持决策制定,确保决策基于事实而非直觉或...
总结起来,CMM3标准是软件开发组织提升管理水平和能力的重要参考框架。通过遵循这一标准,组织能够实现更高效的软件开发,提高软件质量,降低项目风险,从而增强市场竞争力。然而,实施CMM3并非一蹴而就,它需要时间...
变更控制确保任何项目变动都经过适当的审批流程,性能报告评估项目的执行情况,问题跟踪日志用于管理并解决问题。 5. **收尾阶段**:项目结束时,需要完成项目总结报告、客户满意度调查、归档材料等。项目总结报告...
总结来说,CMM1.1标准中文版是一个关键的学习资源,对于中国软件行业的从业者来说,深入理解和应用这一标准,有助于推动组织过程的规范化,提高软件开发的成熟度,实现可持续发展。通过阅读和实践文件中的内容,可以...
**CMM手册详解** ...总结来说,CMM/CMMI是一种强大的工具,用于提升软件开发组织的过程成熟度和整体能力。通过理解和实施CMM/CMMI,企业可以实现更高效、更可靠的软件开发,从而在竞争激烈的市场环境中保持优势。
总结来说,CMMI标准文档模板是帮助组织达到CMMI3级过程成熟度的关键工具,通过规范化的流程、质量保证、性能测量和项目管理,提升软件开发的质量和效率。使用这些模板,组织可以系统地改进其软件开发过程,实现更...
【CMM-CMMI实施过程】CMM(Capability Maturity Model,能力成熟度模型)和CMMI(Capability Maturity Model Integration,集成能力成熟度模型)是SEI(Software Engineering Institute,软件工程研究所)提出的软件...
- **目的与意义:**该文档旨在为读者提供关于软件开发过程管理和改进的原则性指导,并通过CMM框架帮助理解和管理软件开发流程。 #### 二、CMM概述 - **定义:**能力成熟度模型(Capability Maturity Model,简称CMM...
企业应定期进行内部审计和过程改进,通过数据分析和经验总结,找出存在的问题并提出改进措施,确保CMM的有效实施。 总的来说,我国中小型软件企业在CMM实施过程中需要克服理论理解、资源限制、文化转变和体系构建等...
SSE-CMM(System Security Engineering...总结来说,SSE-CMM3.0提供了一套结构化的系统安全工程方法,通过规范化的流程、实践和文档管理,帮助组织提高其系统安全工程的能力,降低风险,确保信息系统的安全性和可靠性。
华为软件质量管理部IPD-CMM V3.0设计流程管理体系 IPD-CMM V3.0设计流程管理体系是华为软件质量管理部制定的软件开发项目管理流程标准。该流程标准规定了软件开发项目从项目计划开始到项目完成的整个生命周期中的...
3. **已定义级**:定义一套完整的语法分析流程,包括输入规范、解析算法和错误处理策略,提高整个编译过程的标准化。 4. **已管理级**:采用统计和度量来监控语法分析的性能,确保质量和效率,并进行持续改进。 5. *...
软件能力成熟度模型(CMM)是一种用于评估软件开发过程成熟度的方法论,它为改进组织内的软件开发流程提供了一个框架。CMM最初由美国卡内基梅隆大学软件工程研究所(SEI)开发,旨在帮助软件组织识别并改善其内部...