软件工程----统一过程模型RUP

统一过程RUP是一种以用例驱动、以体系结构为核心、迭代和增量的软件开发过程,由UML方法和工具支持,广泛应用于各类面向对象项目。

RUP本身支持可裁剪性,可应付给类领域软件和不同的项目规模

RUP蕴含了大量优秀的实践方法,如:迭代式软件开发、需求管理、基于构件的架构应用、建立可视化的软件模型、软件质量验证、软件变更控制等。

RUP把整个软件开发生命周期分为多个循环,每个循环由四个阶段组成,每个阶段完成确定的任务,结束前有一个里程碑评估本阶段的工作。

统一过程模型

工作流程:初始---细化---构件---交付

业务建模:

需求:

分析设计:

实施:

测试:

部署:

配置与变更管理

项目管理

环境:

RUP二维结构

横轴按时间组织,显示RUP的动态特征,通过迭代式软件开发的周期、阶段、迭代和里程碑等动态信息表示。

纵轴按内容组织,显示RUP的静态特征,通过过程的构件、活动、工作流、产品和角色等静态概念来描述系统

每个工作流的高度体现随时间变化工作量的变化,早期的迭代趋向于更多的需求和设计,后期则减少这方面的工作。

RUP静态结构

6个核心工作流:业务建模、需求、分析设计、实现、测试、部署;

3个核心支持工作流:配置与变更管理、项目管理和环境;

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

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

分析与设计(Analysis & Design):把需求分析的结果转换为分析与设计模型

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

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

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

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

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

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

RUP的四个阶段

初始阶段:定义最终产品视图和业务模型,并确定系统范围。大体上的构想,业务案例,范围,和模糊评估。定义系统的业务模型,确定系统的范围,完成后建立目标里程碑。

细化阶段:设计及确定系统的体系结构,指定工作计划及资源要求。已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。完成系统的体系结构设计,完成系统开发计划。建立里程碑。

构建阶段:构造产品并继续演进需求、体系结构、计划直至产品提交。对遗留下来的风险较低和比较简单的元素进行迭代实现,准备部署。构造产品,并继续演进需求、体系结构和计划,直至产品完成。

移交阶段:把产品移交给用户使用。进行系统部署,系统测试,最终移交给用户。最后建立发布里程碑。

核心概念:

角色(Role):Who的问题。角色描述某个人或一个小组的行为与职责。RUP预先定义了很多角色,如体系结构师(Architect)、设计人员(Designer)、实现人员(Implementer)、测试员(Tester)和配置管理人员(Configuration Manager)

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

制品(Artifact):What的问题:制品是活动生成、创建或修改的一段信息

工作流(Workflow):When的问题:工作流描述了一个有意义的连续的活动序列,每个工作流产生一些有价值的产品,并显示了角色之间的关系。

相关推荐
嘿黑嘿呦16 天前
chap 8排序
算法·蓝桥杯·排序算法·软件工程
旧曲重听116 天前
2026前端技术从「夯」到「拉」
前端·程序人生·职场和发展·软件工程
承渊政道16 天前
飞算JavaAI 智能引导背后的多 Agent 协作机制解析:从老旧 Java 后台升级到可运行工程
java·开发语言·spring boot·安全·intellij-idea·软件工程·ai编程
apcipot_rain16 天前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
lisw0517 天前
【计算机科学技术】路由器(route):概念、历史、内容与战略!
机器学习·智能路由器·软件工程
培培说证17 天前
大数据、人工智能、计算机、软件工程,到底怎么选?
大数据·人工智能·软件工程
文艺倾年18 天前
【强化学习】MDP、贝尔曼方程与CartPole 编程,20W字总结(二)
人工智能·软件工程·强化学习
郝学胜-神的一滴18 天前
CMake 017:彩色日志输出实战
linux·c语言·开发语言·c++·软件工程·软件构建·cmake
小程故事多_8018 天前
AI软件工程范式革命,终结五十年的“手工伪工程”时代
人工智能·软件工程
精益数智小屋19 天前
项目管理看板如何拆解任务进度?项目管理看板解决跨部门协作难题
大数据·人工智能·数据分析·云计算·软件工程