对统一软件开发过程(RUP)的认识

RUP与UML的关系架构

1.UML的构成框架

    UML做为一种半形式化的规约语言,提供了:工具

    (1)支持建模的术语(表)单元测试

      ①该术语表中的术语跨越了问题空间到目前“运行平台”之间;测试

      ②该术语表支持不一样抽象层的创建;spa

      ③该术语表支持以面向对象的观点,创建系统模型。设计

  (2)支持建模的表达格式对象

      为了表达概念模型和软件模型,UML提供了14种图形化工具,即:blog

      用于概念模型和软件模型的静态结构方面:类图、对象图、构件图、包图、部署图、组合结构图。生命周期

      用于概念模型和软件模型的动态结构方面:use case图、活动图、状态图、顺序图、通讯图、交互概观图、定时图。

      总之,UML是一种可视化的建模语言,给出了一些可用于定义软件开发各抽象层的术语(符号),给出了各层表达模型的工具。

 

2.UML与RUP的关系

    做为一种软件开发方法学,为了支持软件活动开发,至少应涉及三方面的内容:

    (1)支持定义各抽象层,即给出各层的一些术语;

    (2)给出各层的模型表达;

    (3)给出如何把一个抽象层的模型映射为另外一个抽象层的模型,即过程指导。

     RUP和UML是“统一”的方法学。

 

RUP的本质和突出特色

1.RUP的本质

   RUP(Rational Unified Process)是IBM Rational software提出的软件工程实施过程,是当前最为成功的软件工程方法论之一。它是一种以迭代的、以架构为中心的、用例驱动的软件开发方法。RUP是一种具备明肯定义和结构的软件工程过程,它明确规定了人员的职责、如何完成各项工做以及什么时候完成各项工做,以及软件开发生命周期的结构,定义了主要里程碑和决策的关系。RUP比较完整地定义了将用户需求转换成产品所须要的活动集,并提供了活动指南以及对产生相关文档的要求。

 

2.RUP的突出特色

   是一种以用况(Use Case)为驱动的、以体系结构为中心的、迭代、增量式开发。

    (1)以用况为驱动

      意指在系统的生存周期中,以用况做为基础,驱动有关人员对所要创建系统之功能需求进行交流,驱动系统分析、设计、实现和测试等活动,包括制定计划、分配任务、监控执行和进行测试等,并将它们有机地组合为一体,使各阶段中均可以回溯到用户的实际需求。

    (2)以体系结构为中心

      意指在系统的生存周期中,开发的任何阶段(RUP规定了四个阶段,即初始阶段、细化阶段、构造阶段和移交阶段)都要给出相关模型视角下的有关体系结构的描述,做为构思、构造、管理和改善系统的主要制品。

      起始阶段——构建最终产品的设想和业务案例,肯定项目范围

      细化阶段——计划必要的活动资源,详细肯定功能并设计架构

       构造阶段——构建产品,直到一个可交付用户的产品完成

       移交阶段——产品交付用户,包括制造、交付、培训、支持、维护等

     (3)迭代、增量式开发

      意指经过开发活动的迭代,不断产生相应的增量。在RUP中,规定了四个开发阶段:初始阶段、细化阶段、构造阶段和移交阶段。每次迭代都要按照专门的计划和评估标准,经过一组明确的活动,产生一个内部的或外部的发布版本。两次相邻迭代所获得的发布版本之差,称为一个增量,所以增量是系统中一个较小的、可管理的部分(一个或几个构造块)。

     综上可知,RUP的迭代增量式开发,是演化模型的一个变体,但它规定了“大”的迭代数目——四阶段和每次迭代的目标:

 

RUP的8个核心工做流

1.商业建模:理解待开发系统的组织结构及其商业运做,确保全部参与人员对待开发系统有共同的认识。

2.需求分析:定义系统功能及用户界面,是客户了解系统的功能、开发人员了解系统的需求,为项目预算及计划提供基础。

3.分析与设计:把需求分析的结构转化为实现规格。

4.实现:定义代码的组织结构、实现代码、单元测试和系统集成。

5.测试:校验各子系统的交互与集成,确保全部的需求被正确实现并在系统发布前发现错误。

6.发布:打包、分发、安装软件、升级旧系统;培训用户及销售人员,并提供技术支持,制定并实施beta测试。

7.配置管理:跟踪并维护系统全部Artifacts的完整性和一致性。

8.项目管理:为计划、执行和监控软件开发项目提供可行性指导;为风险管理提供框架和环境;为组织提供过程管理和工具支持。