RUP:用例驱动、以架构为中心的迭代增量开发模式

1 RUP特点

Rational Unified Process(RUP),即Rational统一过程,二维的开发模型,涉及九大工作流,是一种为了满足这些需求而生的开发模式。RUP是一个用例驱动、以架构为中心的迭代增量开发模式,可以帮助我们更好地进行软件开发

用例驱动

在RUP中,用例是驱动软件开发的主要力量。用例是一种以用户的视角描述系统功能的方法,通常以一组交互的形式表达,定义了系统如何响应外部事件。通过对用例的描述和分析,开发者可以明确系统必须提供的功能,并通过这些用例来驱动设计、实现和测试。

以架构为中心

架构是系统的基础。一个好的架构可以为系统提供稳定、可扩展、可维护的基础。RUP强调以架构为中心进行开发,这意味着在开发过程的早期阶段,就需要定义并达成一致的系统架构,之后的开发工作都围绕这个架构展开。

迭代增量开发

在RUP中,软件开发被划分为多个小的、可管理的部分,这些部分被称为迭代。每个迭代都包含了需求分析、设计、实现、测试等所有的开发步骤。通过这种方式,开发团队可以逐步增加功能,不断修正和改进系统,而不是一次性完成所有开发工作。

2.RUP的生命周期

RUP软件开发生命周期是一个二维的软件开发模型,RUP中有9个核心工作流, 这9个核心工作流如下。'

(1)业务建模(business modeling):理解待开发系统所在的机构及其商业运作,确保 所有参与人员对待开发系统所在的机构有共同的认识,评估待开发系统对所在机 构的影响。

(2)需求(requirements):定义系统功能及用户界面,使客户知道系统的功能,使开 发人员理解系统的需求,为项目预算及计划提供基础。

(3)分析与设计(analysis & design):把需求分析的结果转化为分析与设计模型。

(4)实现(implementation):把设计模型转换为实现结果,对开发的代码做单元测试, 将不同实现人员开发的模块集成为可执行系统。

(5)测试(test):检查各子系统的交互与集成,验证所有需求是否均被正确实现,对 发现的软件质量上的缺陷进行归档,对软件质量提出改进建议。

(6)部署(deployment):打包、分发、安装软件,升级旧系统;培训用户及销售人员, 并提供技术支持。

(7)配置与变更管理(configuration & change Management):跟踪并维护系统开发过 程中产生的所有制品的完整性和一致性。

(8)项目管理(project management):为软件开发项目提供计划、人员分配、执行、 监控等方面的指导,为风险管理提供框架。

(9)环境(environment):为软件开发机构提供软件开发环境,即提供过程管理和工 具的支持。

需要说明的是表示核心工作流的术语discipline,在RUP 2000以前用的是core workflow这个术语,但在最新的版本中已改为用discipline.discipline的中文意义较多, 根据RUP的定义,discipline是相关活动的集合,这些活动都和项目的某一个方面有关, 如这些活动都是和业务建模相关的,或者都是和需求相关的,或者都是和分析设计相关 的等等。

RUP把软件开发生命周期划分为多个循环(cycle),每个cycle生成产品的一个新 的版本,每个cycle依次由4个连续的阶段(phase)组成,每个阶段完成确定的任务。 这4个阶段如下。

初始(inception)阶段:定义最终产品视图和业务模型,并确定系统范围。

细化(elaboration)阶段:设计及确定系统的体系结构,制定工作计划及资源 要求。

构造(construction)阶段:构造产品并继续演进需求、体系结构、计划直至产品 提交。

移交(transiticm)阶段:把产品提交给用户使用。

每一个阶段都由一个或多个连续的迭代(iteration)组成。迭代并不是重复地做相同 的事,而是针对不同用例的细化和实现。每一个迭代都是一个完整的开发过程,它需要 项目经理根据当前迭代所处的阶段以及上次迭代的结果,适当地对核心工作流中的行为 进行裁剪。

在每个阶段结束前有一个里程碑(milestone)评估该阶段的工作。如果未能通过该 里程碑的评估,则决策者应该做出决定,是取消该项目还是继续做该阶段的工作。

3.RUP中的核心概念

RUP中定义了如下一些核心概念,理解这些概念对于理解RUP很有帮助。

角色(Role)~who的问题:角色描述某个人或一个小组的行为与职责。RUP预 先定义了很多角色,例如体系结构师(architect)、设计人员(designer)、实现人 员(implementer)、测试员(tester)和配置管理人员(configuration manager)等, 并对每一个角色的工作和职责都做了详尽的说明。

活动(activity) how的问题:活动是一个有明确目的的独立工作单元。

制品(artifact) what的问题:制品是活动生成、创建或修改的一段信息。也

有些书把artifact翻译为产品、工件等,和制品的意思差不多。

工作流(workflow) when的问题:工作流描述了一个有意义的连续的活动

序列,每个工作流产生一些有价值的产品,并显示了角色之间的关系。

RUP 2003对这些概念有比较详细的解释,并用类图描述了这些概念之间的关系,除 了 role、activity、artifact和workflow这4个核心概念外,还有其他一些基本概念,如工 具教程(tool mentor)、检查点(checkpoints)、模板(template)和报告(report)等。

相关推荐
Hacker_Fuchen14 分钟前
天融信网络架构安全实践
网络·安全·架构
ProtonBase27 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
工业甲酰苯胺9 小时前
分布式系统架构:服务容错
数据库·架构
Java程序之猿11 小时前
微服务分布式(一、项目初始化)
分布式·微服务·架构
小蜗牛慢慢爬行13 小时前
Hibernate、JPA、Spring DATA JPA、Hibernate 代理和架构
java·架构·hibernate
思忖小下15 小时前
梳理你的思路(从OOP到架构设计)_简介设计模式
设计模式·架构·eit
一个儒雅随和的男子21 小时前
微服务详细教程之nacos和sentinel实战
微服务·架构·sentinel
腾讯云开发者1 天前
AI时代,需要怎样的架构师?腾讯云架构师峰会来了!
架构
Hello Dam1 天前
面向微服务的Spring Cloud Gateway的集成解决方案:用户登录认证与访问控制
spring cloud·微服务·云原生·架构·gateway·登录验证·单点登录