RUP(Rational Unified Process)是一种软件开发过程框架, Rational表示RUP是由Rational公司提出的,Unified表示RUP是最佳开发经验总结,而Process表示RUP是一个软件开发过程。RUP提供了一种结构化的方法来管理软件开发项目,旨在提高软件开发的质量和效率。它结合了面向对象的设计原则和迭代开发的理念。
RUP的核心特点
RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。
- RUP中的开发活动是用例驱动的,即需求分析、设计、实现和测试等活动都是用例驱动的。
- 以体系结构为中心,在RUP中,是采用如图4-6所示的“4+1”视图模型来描述软件系统的体系结构。在“4+1”视图模型中,分析人员和测试人员关心的是系统的行为,因此会侧重于用例视图;最终用户关心的是系统的功能,因此会侧重于逻辑视图;程序员关心的是系统的配置、装配等问题,因此会侧重于实现视图;系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题,因此会侧重于进程视图;系统工程师关心的是系统的发布、安装、拓扑结构等问题,因此会侧重于部署视图。
- 迭代和增量开发:RUP强调通过多个迭代周期逐步开发和完善软件,每个迭代都包括需求分析、设计、实现和测试等活动。
软件开发采用迭代和增量的方式有以下好处:
(1)在软件开发的早期就可以对关键的、影响大的风险进行处理。
(2)可以提出一个软件体系结构来指导开发。
(3)可以更好地处理不可避免的需求变更。
(4)可以较早地得到一个可运行的系统,鼓舞开发团队的士气,增强项目成功的信心。(5)为开发人员提供一个能更有效工作的开发过程。
*角色和职责**:RUP定义了在软件开发过程中不同角色的职责,包括项体系结构师(architect)、设计人员(designer)、实现人员(implementer)、测试员(tester)和配置管理人员(configuration manager)等。
RUP软件开发生命周期
这4个阶段如下。
● 初始(inception)阶段:定义最终产品视图和业务模型,并确定系统范围。
● 细化(elaboration)阶段:设计及确定系统的体系结构,制定工作计划及资源要求。
● 构造(construction)阶段:构造产品并继续演进需求、体系结构、计划直至产品提交。
● 移交(transition)阶段:把产品提交给用户使用。
9个核心工作流
- 业务建模(business modeling):理解待开发系统所在的机构及其商业运作,确保所有参与人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机构的影响。
- 需求(requirements):定义系统功能及用户界面,使客户知道系统的功能,使开发人员理解系统的需求,为项目预算及计划提供基础。
- 分析与设计(analysis & design):把需求分析的结果转化为分析与设计模型。
- 实现(implementation):把设计模型转换为实现结果,对开发的代码做单元测试,将不同实现人员开发的模块集成为可执行系统。
- 测试(test):检查各子系统的交互与集成,验证所有需求是否均被正确实现,对发现的软件质量上的缺陷进行归档,对软件质量提出改进建议。
- 部署(deployment):打包、分发、安装软件,升级旧系统;培训用户及销售人员,并提供技术支持。
- 配置与变更管理(configuration & change Management):跟踪并维护系统开发过程中产生的所有制品的完整性和一致性。
- 项目管理(project management):为软件开发项目提供计划、人员分配、执行、监控等方面的指导,为风险管理提供框架。
- 环境(environment):为软件开发机构提供软件开发环境,即提供过程管理和工具的支持。
RUP裁剪流程
- 确定本项目的软件开发过程需要哪些工作流。RUP的9个核心工作流并不总是需要的,可以根据项目的规模、类型等对核心工作流做一些取舍。如嵌入式软件系统项目一般就不需要业务建模这个工作流。
- 确定每个工作流要产出哪些制品。如规定某个工作流应产出哪些类型的文档。
- 确定4个阶段之间(初始阶段、细化阶段、构造阶段和移交阶段)如何演进。确定阶段间演进要以风险控制为原则,决定每个阶段要执行哪些工作流,每个工作流执行到什么程度,产出的制品有哪些,每个制品完成到什么程度等。
- 确定每个阶段内的迭代计划。规划RUP的4个阶段中每次迭代开发的内容有哪些。迭代是RUP非常强调的一个概念,可以进一步降低开发风险。
- 规划工作流内部结构。工作流不是活动的简单堆积,工作流涉及角色、活动和制品,工作流的复杂程度与项目规模及角色多少等有很大关系,这一步决定裁剪后的RUP要设立哪些角色。最后,规划工作流的内部结构,通常用活动图的形式给出。