什么是RUP?
1、RUP是风险驱动的、基于Use Case技术的、以架构为中心的、迭代的、可配置的软件开发流程 2、我们可以针对RUP所规定出的流程,进行客户化定制,定制出适合自己组织的实用的软件流程。 因此RUP是一个流程定义平台,是一个流程框架。
RUP相当于计划,为开发提供步骤。所以说RUP是面向过程的。
RUP的宗旨:高效、准时满足需求
为什么产生RUP?
软件危机推动了RUP的产生。软件危机面临的问题有难以满足需求、难以定义需求、最后发现错误、质量差等问题。而RUP可以缓解这些问题,故产生了RUP.那么RUP是如何解决这些问题呢?这要从RUP的思路:Implementing Best Practices说起。
什么是Implementing Best Practices?
Implementing Best Practices是RUP的最佳实践。最佳实践的措施有:迭代式开发Develop Iteratively、管理需求Manage Requirements、使用构建架构Use Component Architectures、可视化建模Model Visually、检验质量Verify Quality、控制变更Control Changes。
从最佳实践措施可以看出,管理需求可以缓解难以满足用户需求,难以定位需求的问题;迭代式开发可以避免最后发现错误;检验质量可以保证软件开发的质量。
RUP的好处?
提高了团队生产力。在开发过程中,为每个开发人员提供了必要的模板、准则和指导,并确保每个成员共享知识基础(共享同一个知识库、共享同一个开发过程、共享可视化建模、共享同一个建模语言)。
RUP的特征?
迭代式增量开发、用例驱动(use case-driven) 、以软件体系结构为中心
迭代式的优点:减低了开发风险、更好的跟踪需求、加快了工作进度。
(“迭代”,我们如何去理解呢?每次迭代都经历瀑布模型的过程,看似每次都一样,但迭代不同于重复。迭代并不是从零开始,而每次迭代都是对上一次迭代的细化,是在上一次的基础之上进行的。)
RUP的开发过程?通过下图来理解。
横轴是时间轴,即RUP的生命周期。初始阶段(Inception)、细化阶段(Elaboration)、构建阶段(Construction)和交付阶段(Transition)
初始阶段为了建立业务模型用例,明确项目的范围。
细化阶段为了分析问题域,建立一个健全的、合理的体系结构基础,明确项目中高风险元素,制定一个合理的项目开发计划。
构建阶段为了开发一个完整的软件系统,准备给用户使用。
交付阶段为用户安装部署软件。
纵轴是工作流。
工作流分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。
下图即为核心过程工作流的六个步骤:
核心支持工作流:配置和变更管理Configuration & Change Management、项目管理Project Management、环境environment。
每个阶段完成相应的目标,详细见百度。
小结:RUP为什么在UML课程内讲述呢?他和UML之间有什么关系呢?我们已经知道了UML是软件计划的画图工具,而RUP是为软件计划提供步骤,指导软件计划。
RUP具有更强的计划性、可预见性,迭代式开发方式,使RUP坦然的重新开始,坦然面对中间制品的“不美观”,RUP要求尽早开发高风险项目,把困难工作放在开始。从这些观念中,我们同样可以学习到做人的道理。