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)等。

相关推荐
2601_962218475 小时前
万象生鲜系统区块链溯源技术帮助生鲜企业搭建食品安全数字化体系
大数据·运维·微服务·云原生·架构
ZGIAI5 小时前
ZGI Workflow:条件分支走错时先查哪一层
人工智能·架构
ZGIAI5 小时前
ZGI 文件产物:生成报告后怎样交付
人工智能·架构
新时代牛马5 小时前
Linux 内核入门地图:架构、源码目录与五大子系统
linux·运维·架构
智购科技无人售货机厂家5 小时前
2026自动售货机制冷系统维护指南:从散热器清洁到压缩机换油的工程实践~YH
运维·redis·物联网·缓存·架构
wangruofeng6 小时前
Phosphor Icons 官网源码拆解:URL 即存储、水波动画与 7362 Star 图标库的架构实践
前端·架构·github
wangruofeng6 小时前
AI 画架构图总差点意思,archify 给它加了一条验收流水线
架构·github·aigc
叶落方知秋7 小时前
大模型学习笔记:排序怎么帮公司赚钱、多方怎么博弈
架构
叶落方知秋8 小时前
大模型学习笔记:模型怎么练出来、数据怎么存起来
架构
叶落方知秋8 小时前
大模型学习笔记:AI 学什么数据,决定了它能有多聪明
架构