RUP(Rational Unified Process)

一、前言

       在UMl中RUP算是一个特别重要的知识点,进行对整个软件的开发周期分析,以及提出一系列的解决问题,还有面对不同的人之间对不同的软件需求做出回答。从而让我们在学习的过程中认识到RUP的特征是什么样的,用文字和图解的方式总结出来。现将视频讲解的内同总结如下:

 

二、什么是RUP

Rational统一过程(Rational Unified Process,RUP),它是由Rational软件公司推出的一种完整而且完美的软件过程(关于什么是软件过程点击这里)。它可以作为软件开发的良好开端。

RUP最重要的它有三大特点:

1)软件开发是一个迭代过程。

2)软件开发是由Use Case驱动的。

3)软件开发是以架构设计(Architectural Design)为中心的。

RUP总结了经过多年商业化验证的6条最有效的软件开发经验,这些经验被称为“最佳实践”

三、内容提纲

  • 软件面临的危机

  • RUP介绍:implementing Best Practices

  • RUP的思路

  • RUP的基本特征

  • RUP软件开发生命周期

  • ROP带来的观念变化

 

四、主要内容

软件危机的主要特征

  • 软件开发周期大大超过规定日期(由于软件的复杂性,以及开发人员自身的原因。)
  • 软件开发的成本严重超标
  • 软件质量难以保证

软件开发面临的问题

  • 不能满足用户或商业的要求
  • 不能良好的定位需求
  • 模块难于集成
  • 到最后才发现错误
  • 对于终端用户来说质量较差
  • 负载时性能差
  • 没有协调团的努力
  • 不断地修改—发布问题

RUP介绍

RUP使得开发团队成员将共享

  • 同一个知识库
  • 同一个开发过程
  • 同一个开发视图
  • 同一种建模语言

RUP的思路

RUP达到最佳实践的集中措施

  • 迭代式开发
  • 管理需求
  • 使用构件构架
  • 可视化建模
  • 质量检测
  • 控制变更

  1. 迭代式开发:(如瀑布模型)
  2. 迭代式开发的优点

降低风险

得到早期用户的反馈

持续测试和继承

适应变更

提高复用性

迭代式开发示意图

分析设计基本都在最中间,所以说分析设计是做重要的。

迭代开发详述:

—迭代式一种技术,用来吧系统功能传递到一系列连续的增量的完整版本。

—每个版本都在一个特定固定的时间段被开发,该时间段称之为迭代。

—迭代的成果是一个可执行产品的版本,是最终系统产品的一个子集。

—通过多次迭代连续增加和精化系统,在每个迭代过程中逐步增加信息,进行细化,

—每次迭代都选择目钱对风险影响最大的实例进行,以分解和降低风险。

迭代开发的特征

—在经行大规模的投资之前就解决了关键的风险问题

—使得早期用户反馈信息始终迭代中就能出现

—连续进行测试和集成

—各个目标里里程碑提供了短期的焦点

—对过程的测量是通过对现实的评定来进行的

—可以对局部的实现进行部署。

  • 风险分析

  • 需求分析

每个人的理解是不同的,由于不同的理解让用户投入很大。

需求管理是一种用于查询,记录,组织和跟踪系统需求变更的系统化方法。

—确保能够:解决正确的问题,建立正确的系统。

—需求管理包括

  • 提取,组织系统的功能和约束,并将他们写成文档
  • 估计需求的变化并评估他们会产生的影响
  • 跟踪需求的实现。

使用构建架构

  • 采用构建构架的优势:

—对体系结构及进行在上而下的设计,实现和测试

—用一种系统化的做法来定义好的体系结构

—采用定义明确的接口来使得变更更有弹性

—采用现成的和通过逆向工程得到构件。

—由高级的用例来驱动

—易于直观上的理解。

 

  • 可视化的建模

—描述体系结构特点和结构

—描述系统里的各个元素如何组合在一起

—保证设计和实现上的一致性

—保证没有歧异的沟通

  • 质量检验(五个评测的方面)

 

—为每个关键模块创建测试用例并测试,从而保证所有的需求被正确的实现

—不可接受的应用性能和不能接受的可靠性对一个软件的影响同等重要

—验证软件的可靠性,例如:内存泄漏,性能瓶颈。

—对每一次迭代进行测试。

管理那些变更?

—控制,追踪和监控项目的所有变更,从而启动每次迭代,

—为每个开发者建立安全的工作空间

—对不同工作空间的改动提供隔离机制

—控制所有的软件制品:模型,代码,文档等。

RUP的基本特征

  • 迭代式增量开发

受控的迭代式增量开发:

—将软件开发分为一系列小的迭代过程,在每个迭代过程中逐步增加信息,进行细化

—根据具体情况决定迭代的次数,每次迭代延续的时间以及迭代工作流。

—每次迭代都选择目前对风险影响最大的用例进行,以分解和降低风险。

  • 用例(Use case—driven)
  • 以软件体系结构为中心

 

时间:

—周期(cycles):一个RUP可以分为若干个周期

  • 阶段(Phases):起始,演化,构造,提交

   —迭代(Iterations):每个阶段进行若干次

 

  • 核心工作流(Core Workflow)

 —工作流:(workflow):对应于特定的迭代的连续活动

  •  活动(Activities):需求定义,分析,设计,实现和测试

    —中间制品(Artifacts):活动的结果

RUP软件开发生命周期:分为四个阶段

—Inception(起始阶段)—为项目建立一个业务案例。

—Elaboration(细化阶段)—建立工程计划和合理的体系

—Construction(构件阶段)—建造系统

—Transition(提交阶段)—把系统提供给最终用户

 

迭代与阶段之间的关系

—每个阶段可以分解成多个迭代

-一个迭代是一个完整的开发循环,它将产生一个可执行的发布版本,这个版本构成最终产品的一个子集,然后迭代的得到最终系统。

 

RUP带来的观念变化

更强的计划性:迭代开发意味着有更强的预见性和计划性,阶段性划分,阶段内的迭代都需要仔细规划。这要求项目管理者承担更大的责任,而所换来的则是开发任务的具体化和可预见性。

 

坦然面对迭代过程中一部分之间制品的推到重来:不要恐惧这样的现实,由于迭代过程的细化和相应工具的支持,其影响是可以控制的。

 

尽早进行困难的工作

 

把软件放在首位:过分强调规格说明(问题空间的描述)的作用是不恰当的

 

坦然面对之间制品的不美观

 

加强开发过程中监控与质量化管理

 

确定迭代的数量,持续时间和内容

 

既需要好的管理者,也需要好的系统结构设计师