由来:
RUP(Rational Unified Process)统一过程模型
是由Rational公司(现被IBM公司收购)开发的一种软件工程过程框架
是一个面向对象的基于web的程序开发方法论 
特点:
RUP既是一种软件生命周期模型
又是一种支持面向对象软件开发的工具
它将软件开发过程要素和软件工件要素整合在统一的框架中

RUP中的软件生命周期在时间上被分解为四个顺序的阶段:
初始阶段(Inception)
细化阶段(Elaboration)
构造阶段(Construction)
交付阶段(Transition)每个阶段结束于一个主要的里程碑(Major Milestones)
并在阶段结尾执行一次评估以确定这个阶段的目标是否已经满足如果评估结果令人满意的话,可以允许项目进入下一个阶段。

初始阶段 目标是为系统建立商业案例(business case)并确定项目的边界。
商业案例包括项目的验收规范、风险评估、所需资源估计、阶段计划等。要确定项目边界,需识别所有与系统交互的外部实体,并在较高层次上定义外部实体与系统交互的特性
主要包括识别外部角色(actor)、识别所有用例并详细描述一些重要的用例。阶段结束里程碑:生命周期目标(Lifecycle Objective)里程碑,包括一些重要的文档
如:项目构想(vision)、原始用例模型、原始业务风险评估、一个或者多个原型、原始商业案例等。
需要对这些文档进行评审,以确定正确理解用例需求、项目风险评估合理、阶段计划可行等。 细化阶段 目标是分析问题领域,建立健全的体系结构基础,编制项目计划,完成项目中高风险需求部分的开发。里程碑:生命周期体系结构(Lifecycle Architecture)里程碑。
包括风险分析文档、软件体系结构基线、项目计划、可执行的进化原型、初始版本的用户手册等。
通过评审确定软件体系结构已经稳定、高风险的业务需求和技术机制已经解决、修订的项目计划可行等。构造阶段将所有剩余的技术构件和稳定业务需求功能开发出来,并集成为产品,所有功能被详细测试。
从某种意义上说,构造阶段只是一个制造过程,其重点放在管理资源及控制开发过程以优化成本、进度和质量。里程碑:初始运行能力(Initial Operational Capability)里程碑。
包括可以运行的软件产品、用户手册等,它决定了产品是否可以在测试环境中进行部署。
此刻,要确定软件、环境、用户是否可以开始系统的运行。移交阶段 移交阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。里程碑:产品发布(Product Release)里程碑。
此时,要确定最终目标是否实现,是否应该开始产品下一个版本的另一个开发周期。
在一些情况下这个里程碑可能与下一个周期的初始阶段的相重合。
RUP的9个核心工作流6个核心过程工作流
商业建模(Business Modeling)
需求(Requirements)
分析和设计(Analysis & Design)
实现(Implementation)
测试(Test)
部署(Deployment) 3个核心支持工作流:
配置和变更管理(Configuration & Change Management)
项目管理(Project Management)
环境(Environment)
开发思想:
迭代增量RUP是融合了喷泉模型和增量模型的一种综合生命周期模型
喷泉模型(fountain model) 并行开发+重叠反复
增量模型(incremental model) 设计核心功能+逐步累加每一次迭代就是为了完成一定阶段性小目标而从事的一系列开发活动

RUP通过迭代增量建模思想提高了风险控制能力
这体现在:
迭代计划安排是风险驱动的,高风险因素集中在前两个阶段解决,特别是体系结构级的风险在细化阶段就得到了解决,及早降低了系统风险
每一次迭代都包括需求、设计、实施、部署和测试活动,因此,每一个中间产品都得到了集成测试,而且这个集成测试是在一个统一的软件体系结构指导下完成的
每一个阶段结束时还有严格的质量评审,保证里程碑文档的质量
由于中间版本的产品是逐步产生的,而且核心功能和性能需求已经包含在前面的版本中,所以,可以根据市场竞争的情况适时推出中间版本,降低市场风险。
RUP的最佳实践:
短时间分区式的迭代:2~6周,不鼓励时间推迟;
适应性开发:小步骤、快速反馈和调整;
在早期迭代中解决高技术风险和高业务价值的问题;
不断地让用户参与迭代结果的评估,并及时获取反馈信息,以逐步阐明问题并引导项目进展;
在早期迭代中建立内聚的核心架构;
不断地验证质量;尽早、经常和实际地测试;
使用用例驱动软件建模:用例是获取需求、制定计划、进行设计、测试、编写终端用户文档的驱动力量;
可视化软件建模:使用UML(Unified Modeling Language,统一建模语言)进行软件建模;
仔细地管理需求:不要草率地对待需求,而要有机地进行需求的提出、记录、等级划分、追踪。拙劣的需求管理是项目陷入麻烦的一个常见原因;
实行变更请求和配置管理。
RUP是一个通用的过程模板,包含了很多开发指南、工件、开发过程所涉及到的角色说明等
因此,具体开发机构在应用RUP开发项目时要做裁剪。
RUP裁剪可以分为以下几步:
⑴ 确定本项目需要的工作流。
⑵ 确定每个工作流需要的工件。
⑶ 确定4个阶段之间的演进计划。
以风险控制为原则,决定每个阶段实施的工作流,每个工作流的执行程度,生成的工件及其完成程度等。
⑷ 确定每个阶段内的迭代计划。
规划RUP的4个阶段中每次迭代开发的内容。
⑸ 规划工作流内部结构。
用活动图(activity diagram)规划工作流中涉及的角色、角色负责的活动及产出的工件。

新型软件生命周期模型-RUP统一过程模型 迭代增量相关推荐

  1. 软件生命周期模型知识点总结(瀑布模型、演化模型、增量模型、V模型、W模型、螺旋模型、构件组装模型、RAD模型、RUP模型、极限编程模型)

    软件生命周期模型 基本概念 --PDCA循环(戴明环) --软件工作过程 --软件生命周期 --软件过程模型 传统软件生命周期模型 --瀑布模型 --演化模型 --增量模型 --喷泉模型 --V模型 ...

  2. 【软件工程(一)】软件工程概述+软件生命周期模型

    文章目录 软件工程概述 软件的定义 软件的分类 软件工程要素.目标和原则 软件工程知识体系知识域 软件生命周期模型 工程过程 传统模型种类 瀑布模型 演化模型 增量模型 喷泉模型 V模型和W模型 螺旋 ...

  3. 软件过程模型(software process model)传统软件生命周期模型

    软件过程模型也称做软件生命周期模型 从一个特定角度提出的对软件过程的简化描述 (模型不代表具体实现,对过程的简化描述)对软件开发实际过程的抽象 (模型即抽象)它包括构成软件过程的各种活动.软件工件(a ...

  4. 【软件工程】软件生命周期模型 --- 瀑布模型、快速原型模型、增量模型、螺旋模型及喷泉模型

    软件生命周期模型是跨越整个生存期的系统开发.运作和维护所实施的全部过程.活动和任务的结构框架. 下面介绍几种常见的软件生命周期模型: 瀑布模型 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接 ...

  5. mcq 队列_MCQ | 软件生命周期模型

    mcq 队列 Q1. Which of the following models is best suited when the requirements of the software are no ...

  6. 软件工程生命周期模型_软件生命周期模型比较| 软件工程

    软件工程生命周期模型 软件生命周期模型 (Software Lifecycle Models) There are five software lifecycle models that are co ...

  7. 软件生命周期模型 -------- 瀑布模型 和 原型模型

    文章目录 瀑布模型(Waterfall Model) 模型概述: 核心思想: 模型特点: 优点: 缺点: 分类: 1.传统瀑布模型: 2.加入迭代的瀑布模型: 原型模型: 优点: 缺点: 瀑布模型(W ...

  8. 软件开发生命周期中的设计阶段_什么是软件生命周期模型?软件测试和软件开发的关系分析!...

    软件生命周期这个词,对于大部分人应该比较陌生,但却不容忽视!正因为它的重要性,才有许多不同的软件开发生命周期模型,但是它们都有一个共同的特点,那就是在生命周期中的某一时刻,软件都会被测试.今天我就和大 ...

  9. 什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的使用范围。

    软件生命周期模型是跨越整个生存期的系统开发.运作和维护所实施的全部过程.活动和任务的结构框架. 瀑布模型  优点:它提供了一个模板,这个模板使得分析.设计.编码.测试和支持的方法可以在该模板下有一个共 ...

  10. 1.7 什么是软件生命周期模型?试比较瀑布模型,快速原型模型,增量模型和螺旋模型的优缺点,说明每种模型的适用范围

    软件生命周期模型:是从一个特定角度提出的对软件过程的简化描述,是对软件开发实际过程的抽象,它包括构成软件过程的各种活动.软件工件以及参与角色等. 瀑布模型的优点: 有利于大型软件开发过程中人员的组织. ...

最新文章

  1. 谈 三层结构与MVC模式的区别
  2. Virtual Box 工具栏(菜单栏)消失的解决方法
  3. matlab扩充内存,matlab扩大内存的方法
  4. php代码加注释_怎么在php中添加注释
  5. 【原型设计】第二节:Axure RP9制作自己的元件库的操作教程
  6. laravel created_at 时间戳_Laravel 单行为控制器设计的魅力
  7. Celery使用数据库代替rabbitmq
  8. 2017-2018-1 20155314 20155323 实验二 固件程序设计
  9. linux考试中的7654_7654支持的未启用卡指的是()
  10. 用Excel制作条形码
  11. ChatGPT 带火的「提示工程师」岗,不用写代码,也能获得年薪数百万?
  12. 面试中怎样谈自己的缺点?
  13. 阿里api文档链接地址
  14. Google Chrome源码剖析
  15. Android - TextView Ellipsize属性
  16. 阿里云LNMP环境搭建
  17. 四则运算《安卓版》04
  18. IntelliJ Idea 常用10款插件
  19. ABP (.Net Core) 使用MySQL数据库
  20. Zemax优化过程中的Rings和Arms

热门文章

  1. 一阶低通滤波器方程_一阶有源低通滤波电路与最经典一阶低通滤波器电路图
  2. 【软件应用】数学公式插件TeXsword应用教程
  3. matlab——取整函数
  4. Android信息处理机制
  5. 必备!Mac上的硬盘测速专家Blackmagic Disk Speed Test
  6. 杰里之AC696 系列 2M 的 SDK 开蓝牙一拖二出现奇怪的问题【篇】
  7. 这个 bug,硬是让我折腾了一周
  8. doc 问卷调查模板表_Word制作电子版问卷调查模板表「教你方框内打钩」
  9. (十二)GA-RPN----2019CVPR论文解读
  10. 计算机信息安全认识实习报告