项目 | CMM/CMMI | RUP | MSF | XP |
周期 | 螺旋模型。 | 演进式迭代周期,过程框架 | 瀑布模型和螺旋模型的结合 | 演进式迭代周期。软件开发方法学 |
核心 | 过程改进 | 架构、迭代 | 里程碑、迭代 | 以代码为中心。 |
范围 | 需求严格而极少变化的项目。 | 适合不同类型的项目 | 适合不同类型的项目 | 进度紧、需求不稳定的小项目、小型发布和小团队 |
组织 | 个人(PSP)、团队(TSP)和组织的3个层次,组间协作、培训 | 跨团队协作 | 强调产品的愿景,6种基本角色 | 以团队为基础,小团队、团队成员能力相当 |
技术 | 传统结构化方法 | 面向对象技术 | 综合技术 | 面向对象技术 |
管理 | 侧重于过程的定义、度量和改进。一切用数字和文档说话。 | 从组织角度出发,侧重于过程建模、部署。 | 业务建模、部署、过程管理等概念。 | 侧重于具体的过程执行和开发技术,计划设计。 |
活动 | 通过过程域来定义活动 | 整个团队在整个过程中关注质量 | 项目管理、风险管理和就绪管理 | 以人为本,如每周40小时工作制、结对编程 |
实践 | 各类级别的关键实践。 重视关键基础设施。 | 满足了CMM 2-3 级KPA 的要求,而基本上没有涉及CMM 4-5 级的KPA | 代码复审、版本管理方法、文档管理、人员招聘、重测试和重风险管理等。 | 编码和设计活动融为一体,弱化了架构。 用例、单元测试、迭代开发和分层的架构。 |
其它 | 通用性强,但复杂、高成本。
| 强调风险驱动,以保障可用产品的持续性交付为前提,尽量减少不必要的过程工件,使度量、文档最小化以获得弹性和应变能力。 | 提供了一系列指南,用于规划企业的基础技术设施,流程化商业的运作过程,并鼓励重用性。 | 拥抱变化,强调人性化、简单、沟通。尽量减少文档。 个体和交互胜过过程和工具。 |
目前的流行的软件开发过程模式(CMMI/RUP/XP/MSF)的对比
由于篇幅和时间有限,在这里,可以将目前的流行的过程模式进行一个对比分析,大家就会对不同的软件过程的优缺点,一目了然。