软件开发过程RUP,CMM,XP
考虑目前国内项目现况:需求调研先行,但需求不明确导致需求变更。中小公司缺乏过程规范指导,基本在CMM1即混乱状态。所以BSP采用的是X Process = CMM的体系+RUP的过程+XP的最佳实践软件开发过程并同时引用敏捷开发过程。应用X Process开发模式,使本系统开发过程达到CMM2-3。
20.3.1 应用RUP的过程BSP软件过程由项目启动、细化、构建、交付四个阶段组成。
(1) 启动阶段
启动阶段定义项目计划、风险分析、项目前景、范围、约束;确定Actor、涉众及收益;确定概要需求;作一个原型,实现关键用例。
(2) 细化阶段
细化阶段确定用户需要、产品特性并确认优先级、风险;确定80%需求,编写需求规格书。制定迭代计划,需求基线;完成重要用例的设计及实现,由此确定系统架构及第三方组件。已制定迭代计划。同时编写对应用例的测试用例。
(3) 构建阶段
构建阶段按计划迭代开发。在每个迭代里采用小瀑布的方式,应用部分XP的最佳实践,每个迭代为一个里程碑,提交给客户确认,由此得到需求变更,分析后调整迭代计划。
(4) 交付阶段
交付阶段提交客户测试,作小的修改。编写产品说明,用户培训,上线运行。项目总结、关闭报告。
在BSP开发过程中,在XP阶段应用迭代内的过程,合并细化程序的功能,这个阶段为设计编程期,在这期间,启用“保持设计灵活”、编码规范、代码审核(结队编程)、持续集成、测试驱动、重构的最佳实践。
在RUP的四个阶段中,应用CMM的关键域来保证各种产出的质量。这四个阶段如下:
(1) 先启阶段:项目计划、项目过程控制、配置管理、培训计划(设计、编码规范)
(2) 细化阶段:体系规范、同行评审(需求、设计、代码评审)、需求管理、质量管理
(3) 构建阶段:编码规范、设计、代码评审、需求变更管理
(4) 交付阶段:体系规范。
RUP、CMM、XP三者的关系如下:
1.RUP:是由用例驱动、迭代增量开发的过程,主要定义了各个阶段应该做什么,做到什么程度。
2. CMM:是一套评估标准,提供了一些关键实现域(需求管理等),对每一个产出提出了质量要求。
3. XP:主要关注编码阶段的一些最佳实践。是一个提倡敏捷的轻量级软件开发方法。强调“交流;简单;反馈;实事求是”。强调客户参与,简单设计(灵活设计)、允许需求变更等。