CMM的每个成熟级别由关键过程区域(KPA)组成,每个KPA确定一组相关活动。为了有效地进行这些活动, 需要在整个软件开发过程中引入相关工具,帮助软件企业或开发团队实施CMM。一般来说,实施CMM需要以下主要工具:软件开发过程框架、需求管理工具、面向对象的分析设计工具、配置管理工具、变更管理工具和软件测试工具。
1.软件开发过程框架
CMM是一种软件过程控制和评估框架,它列出了每个级别需要完成的目标以及判定条件,但并没有叙述如何实现这些目标。软件开发过程框架工具的目标就是为开发团队建立一个清晰的、可重复执行的流程,以帮助团队成员按时完成项目各阶段的工作。
Rational公司的RUP(Rational Unified Process)就是这样一个完整的软件开发过程框架,它包括3000个HTML文档、近一百万字的流程指南,其中文版本RUP-C已经在中国市场正式发布。
RUP对CMM实施的主要帮助体现在以下方面:
凝结了全球软件行业的最佳开发经验,以指南、模板和示例的形式为开发团队提供流程指导。
1 建立统一的软件开发标准,改善团队成员之间的沟通。
2 降低软件开发风险,增加软件开发的可预测性。
3 赋予项目经理对进度和交付期限的控制能力。
可以说,RUP-C是每一个计划实施CMM项目组的最佳起点,它对CMM涉及的每个KPA都有帮助。
2.需求管理
需求是软件客户的要求,它决定了软件系统的工作内容,是整个开发活动的基本出发点和最终目标。在整个项目生命周期内,要想有效地协作,就需要对重要的需求信息提供访问权限,使跨功能团队的所有成员都能掌握必要的详细信息。需求管理的目的是在客户和相应的软件项目之间建立共同的理解,并最终形成估计、
策划和跟踪整个软件生命周期内软件项目活动的基础。
需求管理是CMM2级(可重复级)的关键过程领域之一,其主要工作包括两点:其一,通过与涉众(Stakeholder)的交流来获取需求,并进行有效的组织和记录;其二,使客户和项目团队在系统变更需求上达成一致。
一个优秀的需求管理工具可以在保证有效管理需求的前提下提高需求管理工作流程的自动化程度,使需求管理可以真正在项目实施中得到有效的推行。Rational公司为需求管理提供了AnalystStudio需求工作包,它具有以下主要特点:
1 结合业界认可的RUP方法,提供完整的需求分析及管理流程。
2 以Web方式获取反馈,加强团队之间的有效沟通。
3 用追踪图直观展现需求变化带来的影响。
AnalystStudio除了可用于CMM2级的“需求管理”外,还可以对以下KPA提供帮助:“软件项目规划”、“软件项目跟踪与监督”、“软件子合同管理”、“软件产品工程”、“组间协作”
、“同级复审”和“定量过程管理”。
3.面向对象的分析设计工具
在CMM3级的“软件产品工程”(Software Product Engineering)KPA中,对软件设计提出了明确的要求,要求软件设计遵循一定的设计语言、采用面向对象的方法、使设计结果可复用等。
为什么要采用面向对象的分析设计方法?主要原因有3点:
1 通过分析和设计,使开发者可以先关注问题的领域,再关心具体的设计和编程问题,从而有利于降低整个过程的复杂性,提高分析模型和设计模型的质量。
2 生成的分析模型和设计模型形成文档的主体,从根本上解决“先写代码、再补文档”的老问题,并能帮助团队规避因人员流动带来的不良影响。
3 分析模型和设计模型将成为团队内部以及团队之间有效沟通的桥梁,消除误解,进一步解决“系统集成难”的顽症,同时也可以促进团队之间的软件复用。
Rational Rose是Rational公司开发的可视化建模工具,它采用“统一建模语言(UML)”的表示方法,在同一个模型中实现业务建模、对象建模和数据建模,使所有参与项目的成员都可以在统一的语言环境中工作于同一个模型之上,有利于改善成员之间的沟通;其次,它支持多种语言的代码生成及双向工程,可实现代码和模型的互相转换,并且可以将遗留代码引入模型中;第三,它带有对设计元素进行测试的模块工具(Quality
Architect),可以尽早发现设计中的问题,真正实现“质量从头抓起”。
Rational Rose除了可帮助实施CMM3级的“软件产品工程”外,还可以对“组间协作”和“同级复审”KPA提供帮助。
4.配置管理和变更管理
软件配置管理(SCM)是CMM2级中一个非常重要的KPA,它的目的是在软件项目的生命周期内建立并维护软件项目产品的完整性。在CMM标准中,明确规定了软件配置管理(SCM)以及变更请求管理(CRM)的相关工作,它包括以下两方面:
1 配置管理的主要工作包括通过创建软件配置管理库、定义配置项(包括需求、分析设计模型、代码、文档、测试用例、测试数据等)以及建立和维护软件的基线。
2 变更请求管理的主要工作包括控制和记录配置项内容的变更,建立和维护一个系统并使其追踪和管理变更请求及问题报告。
Rational 的ClearCase和ClearQuest是相当成熟的配置管理和变更管理工具,它们已经连续四年被IDC评为业界最佳的配置管理工具,并在众多的国内外企业中得到了应用,国内的华为、中兴、大唐、东信等企业都选用了这两个工具。ClearCase的主要作用体现在三个方面:其一,帮助项目组利用版本对象库(VOB)完整地保存整个项目的开发历史,实现对软件资产的有效管理;其二,利用版本对象库(VOB)的安全机制,灵活地控制不同人员对不同配置项的检出和读取的权利,有效地保护企业的核心机密;第三,帮助团队实现并行开发,避免合并版本等工作阻碍其他开发工作,保证项目进度。
ClearQuest的主要作用是加强开发团队与外界的沟通,用户、测试人员与市场销售人员可以直接通过Web提交变更请求,包括“缺陷”或“功能扩充请求”。
可以毫不夸张地说,配置管理和变更管理是软件工程的基础。ClearCase和ClearQuest除了对CMM2级的“软件配置管理”KPA有帮助外,还可以对以下KPA提供帮助:“需求管理”、“软件项目跟踪与监督”、“软件质量保证”、“软件产品工程”以及“定量过程管理”。
5.测试工具
“软件质量保证”是CMM2级中另一个重要的KPA,软件测试水平的高低直接影响软件产品质量的好坏与开发周期的长短。综观现阶段诸多软件开发组织在软件测试方面的状况,我们不难发现,多数组织存在以下问题:
1 没有进行单元测试,或单元测试不彻底。
2 由于需求不准确,导致测试缺乏计划。
3 测试工作大多依赖手工进行,没有有效的自动化测试工具,致使软件测试效率低下,测试周期较长,不能在软件开发的各个周期进行完整的测试。
4 缺乏有效的跟踪机制跟踪解决软件测试中发现的缺陷,致使有的问题得不到及时、恰当的解决。
针对这些问题,Rational提供了一系列测试工具,帮助用户解决上述问题。这些工具包括用于单元测试的RQA(Rose Quality Architect)、Purify、Pure
Coverage和Quantify 以及用于测试管理、回归测试和性能管理的Rational TeamTest。
特别需要说明的是回归测试。目前,对大型软件系统来说,迭代式开发已经成为一种主流的开发模式,我们需要在开发的每个迭代周期内对软件功能进行确认,这就是回归测试。如果依靠人工测试的办法,这将是一个烦琐、耗时的过程。Rational
TeamTest采用面向对象的记录技术,将对系统的功能测试动作记录在测试脚本中,当系统进入下一个迭代周期时,我们只需回放这个测试脚本,就可以自动地进行软件功能的确认,这种方法可以极大地提高软件测试的效率,保证软件功能测试的完整性。
以上工具可以单独使用,解决个别问题,但是对于一个想在CMM实施中获得较高级别评估的软件组织来说,则需要尽可能广泛地进行有效的规划与部署,将这些工具有机地结合起来,满足企业在软件质量方面的较高要求。为此,Rational提供了一个完整的解决方案——TestStudio,它包括用于单元测试的PQC(Purify、Quantify、Pure
Coverage)、提供全面功能测试和性能测试的TeamTest、进行差错跟踪的ClearQuest,以及一些对软件开发管理提供支持的基础工具,并将这些工具紧密地结合在一起。
6.需要注意的问题
从CMM1级到CMM2级,对一个软件企业来说已经是一个很大的挑战。因为,CMM2级中已经包括了需求管理、配置管理、质量保证等工作,而且在实施过程中,往往需要对组织机构和软件开发过程进行重构,还需要开发人员掌握各种工具的使用方法。因此,企业应确定重点,分阶段实施CMM2级,具体步骤如下:
1 确定本企业软件开发工程中最急待解决的问题以及为解决这些问题需要完成的工作目标,这些目标应该与CMM中各KPA的目标相吻合。
2 确定试点项目,在该项目内以RUP-C为蓝本,实施过程改善并推广相关工具的使用,以积累经验。
3 根据CMM2级对各目标的判定条件,对试点项目进行自查,以判断确立的目标是否已达到。
4 将试点项目的经验在全企业推广。
5 当CMM2级的所有目标都达到之后,才开始正式的评估。
经验数据表明,CMM1级到2级往往需要2年左右的时间,所以企业应该为进行CMM2级评估设定合理的时间期限,切忌急功近利。
|