IBM Rational SDP 助力 CMMI 流程改进唐李刚 时间:2007年08月20日
IBM SDP 简介IBM SDP 是 IBM 针对软件开发而推出的一整套解决方案平台,它的全称是 IBM Rational软件开发平台 (Software Development Platform) 。它使得软件开发组织能够更有效地开发软件产品,提高软件质量,保证开发进度、控制开发成本。 软件开发的四项基本原则IBM SDP 中集中体现了以下软件开发的基本原则: 迭代化开发:有效控制项目风险、增加项目预见性、尽早地发现软件产品中的缺陷; 以架构为中心:采用可视化建模技术来构建以构件为基础的系统框架,有效地管理系统的复杂度,增强系统的灵活性和可扩展性; 持续地质量验证:在整个产品生命周期中持续地验证软件质量,确保产品满足客户的需求,并且构造一个高性能、高可靠的软件系统; 管理软件资产和变更:在整个产品生命周期中管理好企业的软件资产,并对所有的变更请求进行管理,支持虚拟团队的并行开发。 按角色分工的工具平台IBM SDP 中包括了支撑整个软件开发生命周期所需的工具,这些工具是以开发人员的角色来组织的。
CMMI 模型简介CMMI 模型的内容CMMI 是一个应用于流程改进的模型,在 CMMI 中制定了流程改进的目标和最佳实践,它为需要提高自身开发能力的软件组织提供了一个参考标准和实践指南,并且这个标准是在前人的实践经验上总结出来的,具有很强的可实践性。 CMMI 模型的内容分为“需要的(required)”、“期望的(expected)”和“用于提供信息(informative)”三类。 需要的: CMMI 中定义了24个过程域(process area),每个过程域都有一到四个特定目标(specific goals);另外,针对于所有的过程域,也定义了一组共性目标(general goals)。 期望的:针对每一个目标,CMMI 定义了一组推荐的实践(practices),通过实施这些实践可以帮助软件组织达到相应的目标。 用于提供信息:另外,CMMI 中也提供了其他一些用于辅助提供信息的内容,如:相关过程域、典型工作产品、实践与目标关系表等。 CMMI 的表示方法由于 CMMI 是对几种不同的成熟度能力模型的集成,它的源模型有着不同的表示形式,相应的 CMMI 也有“连续式”和“阶段式”两种不同的表示方法。“连续式”模型没有规定在流程改进过程中对于过程域选择的次序,各个组织根据自己的实际情况来选择从那些过程域入手;“阶段式”模型则为流程改进提供了预定义的路线图,每一个阶都有一组相应的过程域,如果满足了某一阶段中的所有过程域目标,我们称该组织达到了该成熟度等级。 应用IBM SDP 帮助 CMMI 流程改进实践IBM SDP 为流程改进提供了工程技术手段CMMI 为软件组织的流程改进提供了一个系统的框架,但是它所提供的只是一个流程框图架,在实践过程中还需要具体工程技术的支持。如对于CMMI 中的每一个目标,CMMI 定义了一组特性实践和共性实践来达到该目标,但这些实践只是提出了在具体实践过程应该注意的事项,并没有列出具体可采用的工程技术。因为作为一个标准,它不可能局陷在某一特定的工程技术之上,不同的软件组织可以采用不同的技术手段来达到相同的目标。 IBM 的 SDP 正好作为一种特定的工程技术解决方案为 CMMI 流程改进提供了一种具体可操作的实践手段。以下以 CMMI 中两个相关的过程域“需求管理”和“需求开发”为例,展示 IBM SDP 解决方案是如何来实现每一个特定目标的。 CMMI 过程域“需求管理”的SDP 实现
CMMI 过程域“需求开发”的SDP 实现
方法和工具并重需要避免的一个常见误解是 IBM SDP 不仅仅是一个软件工程工具集合,其中更重要的是包含了一整套指导软件工程实践的方法论,具体体现在 Rational Unified Process 和 Rational SUMMIT Ascendant 这两个产品中。我们在使用 IBM SDP 中的所有工具时都离不开相关方法论的指导,在开发的过程中掌握一个好的开发方法是成功的关键,工具只有在好的开发方法的指导下才能发挥作用;反过来好的方法也需要高效的工具支持来提高工作效率和质量,两者是相辅相成的。 在 CMMI 流程改进的过程中,很多过程域目标可以通过部署工具平台来直接完成,也有一些目标需要应用 RUP 或 SUMMIT 中的流程方法来实现,尤其是一些涉及到与其他软件团队和个人协作的过程域目标,如供应商合同管理和组织级过程管理等,更多地是要实践 IBM SDP 中方法流程。 另外,CMMI 非常强调流程的制度化(Institutionalization),通过提升流程的制度化水平(”Performed” -> “Managed” -> “Defined” -> “Quantitatively Managed” -> “Optimizing”)来不断地改进现有的开发流程,这部分要求直接体现在共性目标和实践中。这就要求软件组织的各级管理层非常重视和支持相关的流程改进工作,制定各种规章制度来保证流程的实践;并且要做好全体项目开发人员的培训工作,让他们认识流程改进的目标和过程,将流程改进工作落实到项目开发的每一个环节。 总结总之,基于 CMMI 模型的流程改进是一项非常艰巨而复杂的工作,并不是应用某一些工具平台就可以达到相应的成熟度等级。在流程改进的过程中,经常需要对现有的工作流程做出一些痛苦的改动,所以取得管理层和所有相关人员的支持是一个关键。另外要明确流程改进的目的,必须把流程改进与业务目标联系起来,这样才能够取得实际有效的结果,否则易流于形式而达不到实际的效果。 |
|