rup:RUP(统一过程)

一、UP与RUP

UP(Unified Process,统一过程)是一种通用过程框架,可以广泛用于各种软件系统,包括不同应用领域、组织架构的系统,也不分系统的性能水平,项目规模。UP基于构件,使用UML建模。所谓的统一,是因为UP:

1)提供在开发组织中分派任务和责任的纪律化方法,确保进度和成本的前提下,高质量地满足用户需求,方法统一;

2)对所有的关键开发活动,为所有团队成员提供了使用准则、模板和工具指导,知识统一;

3)在项目建设过程中,确保全体成员对相同基础知识有一致的理解,共享相同的知识、过程和开发软件的视图,思想和见解统一。

RUP(Rational Unified Process)是Rational公司开发和维护的过程产品。它完全兼容UP,但比UP更加完整、详细。或者说,Rational实现了让UP落地。请注意,Rational公司也是UML的创造者。基本上,可以将UP与RUP等同。以下统称为RUP。

二、RUP的三个特点

RUP具有三个显著的特点:

1)用例驱动

2)以架构为中心

3)迭代和增量

1、用例驱动

用例是RUP方法论中一个非常重要的概念。简单地说,一个用例就是系统的一个功能。在系统分析和系统设计中,用例被用来将一个复杂的庞大系统分割、定义成一个个小的单元,这个小的单元就是用例。然后以每个小的单元为对象进行开发。按照RUP过程模型的描述,用例贯穿整个软件开发的生命周期。在需求分析中,客户或用户对用例进行描述;系统分布和系统设计过程中,设计师对用例进行分析;开发实现过程中,开发编程人员对用例进行实现;测试过程中,测试人员对用例进行检验。

2、以架构为中心

构架设计是系统设计的一个重要组成部分。在构架设计过程中,设计师必须完成对技术和运行平台的选取、整个项目的基础框架的设计、对公共组件的设计,如审计系统、日志系统、错误处理系统、安全系统等。设计师必须对系统的可扩展性( Extensibility)、安全性(Security)、可维护性( Maintainability)、伸缩性(Scalability)、可重用性(Reusability)和运行速度(Performance)提出可行的解决方案。

所以说,要开发出用户满意的软件并不是件容易的事,软件架构师必须全面把握各种需求、仔细权衡,分门别类地将不同需求一一满足。1995年,Philippe Kruchten在《IEEE Software》上发表了题为《The 4+1 View Model of Architecture》的论文,引起了业界的极大关注,并最终被RUP采纳。Philippe Kruchten提出的4+1视图方法为软件架构师“征服需求”提供了良好基础,如图所示。

这个架构视图是从某一视角看到的系统的简化描述,描述涵盖了系统的某一特定方面,而省略了与此方面无关的实体。也就是说,架构要涵盖的内容和决策实在是太多了,超过了人脑"一蹴而就"的能力范围,因此采用"分而治之"的办法,从不同视角分别设计;同时,它也为软件架构的理解、交流和归档提供了方便。

3、迭代和增量

RUP强调软件开发是一个迭代模型,它定义了四个阶段:初始、细化、构建、交付。其中每个阶段都有可能经历从需求分析、系统设计、编码测试等一系列步骤,只是侧重点不同,例如构建阶段编码和测试部分就多一些,实际上这是一个二维模型,下文继续有分析。

三、RUP的四个阶段

1、技术评审

RUP中的软件过程在时间上被分解为初始、细化、构建和移交4个阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下一阶段。正因为RUP可以及早发现各种错误和遗漏,所以才受到许多大公司的追捧。

2、迭代模型

如前所述,RUP的软件过程是一个迭代过程。通过初始、细化、构建、移交4个阶段就是一个开发周期,每个周期即产生一代软件。循环往复地重复这4个阶段,产品将演化出新一代产品,直至产品退役。当然每个周期的侧重点将放在不同的阶段。

3、初始阶段

任务是为系统建立业务模型并确定项目的边界。识别所有与系统交互的外部实体,定义系统与外部实体交互的特性,关注项目风险。实现过程如下:

1)明确项目规模,确定项目边界,制订验收标准,了解环境、主要需求及约束条件,识别关键用例。

2)评估项目风险

3)评估项目进度、人员配备、成本,制订项目计划。

4)阶段技术评审,检查初始阶段的目标是否完成,并决定项目是继续进行还是取消。

4、细化阶段

分析问题领域,建立完善的架构,淘汰项目中最高风险的元素。架构需要对范围、主要功能和非功能需求做出决策,并搭建项目环境。打造可执行原型,其中必须包含关键用例。

实现过程如下:

1)确定架构

2)制订构建阶段计划,并建立基线

3)建立支持环境,包括开发环境、开发流程等

4)选择构件

5)阶段技术评审,检验系统目标和范围,架构选择,风险解决方案等

5、构建阶段

开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。

本阶段的开发工作,尽量拆分构件开发,并行进行。

阶段结束时进行技术评审,评审产品是否可以进行beta测试。

6、移交阶段

本阶段重点是确保软件对最终用户是可用的。需要进行beta测试,制作发布版本,文档定稿,人员培训,收集反馈等。技术评审评审目标是否已实现,用户是否满意,有无必要开启新一轮迭代和演化?

  • 二维模型

  • 这个二维模型应该怎么理解呢?我是这么理解的:

    初始、细化、构建和移交4个阶段是一个迭代。每个阶段侧重点不一样,比如初始阶段,任务是确定项目边界,评估项目风险,制订项目计划,但在其他阶段,随着项目的推进,认识的加深和变化,可能又要回过头来重新评估一下风险,或修订计划。即每个阶段的工作内容在一个迭代周期里都有可能会反复进行,大的迭代里又有小的迭代。

    四、RUP的优缺点

    1、优点

    1)RUP将项目管理、业务建模、分析与设计等统一起来,贯穿整个开发过程;

    2)为团队成员提供了使用准则、模板和工具指导,形成最佳实现方案,并基于共同的基础知识,使所有团队成员思想统一,沟通更易,这是项目成功的关键因素;

    3)增强开发人员的预见性,提高了软件质量,并缩短了开发时长

    4)RUP可用于开发所有类型的软件系统,应用广泛

    2、缺点

    过于庞大和复杂,不能快速适应需求变化,每各需求变更都要经历复杂的过程和许多额外的工作。对于较小的公司和项目,敏捷方法可能更合适。

    原文链接:https://blog.csdn.net/leftfist/article/details/122747780

    相关推荐

    相关文章