4.2、统一过程软件(RUP)

1.RUP简介

本质:

是“一般的过程框架”

  • 为软件开发,进行不同抽象层之间“映射”,安排其开发活动的次序,指定任务和需要开发的志平,提供了指导
  • 为对项目中的制品和活动进行监控与度量,提供了相应的准则

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

  • 以用况为驱动
  • 以体系结构为中心
  • 迭代、增量式开发
    规定了四个开发阶段
  • 初始阶段(the inception phase)
  • 精化阶段(the elaboration phase)
  • 构造阶段(the construction phase)
  • 移交阶段(the transition phase)

2.需求获取的目标及其基本途径

需求获取面临的挑战

  • 问题空间理解
  • 人与人之间的交流
  • 需求的不断变化

需求获取技术特征

  • 方便通讯(使用易于理解的语言)
  • 提供定义系统边界的方法
  • 提供划分、抽象、投影等方法
  • 允许采用多种可供选择的设计方法
  • 适应需求的变化
  • 支持使用问题空间术语,思考问题和编制文档
    .......

需求获取的目标

对大系统的开发来说,需求一般包括需求获取和需求分析

需求获取的目标:客观问题(系统) => 系统需求获取模型 体系结构描述 Use Case模型

实现需求获取目标的基本途径

实现实际问题到软件开发需求获取层的映射,即从软件开发的角度-实现第一次抽象

需求获取层的术语(概念)及表达模型的工具

  • Use Case
  • actor
  • 4个表达关系的概念:关联、包含、扩展、泛化

如何映射--需求工作流

要做的工作

产生的制品

列出候选的需求

特征列表

理解系统语境

领域模型或业务模型

捕获功能需求

Use Case模型

捕获非功能需求

补充需求或针对一些特定需求的Use Cases

  • 特征:一个新的项及相关的简要描述称为特征
  • 领域模型或业务模型:
  • 领域模型:捕获了系统语境中的一些重要对象类型
    领域类的三种形态:
  • 业务对象:表示被哪些业务所操纵的事务,例如订单、账目
  • 实在对象和概念:例如飞机、火箭
  • 事件:例如飞机到达、飞机起飞
  • 业务模型:
  • 业务 use case 模型:抽象一个特定业务
  • 业务对象模型:一个业务的内部模型
  • Use Case模型
  • 用来表达客户认可的需求-系统必须满足的条件和能力
  • 作为客户和开发人员之间的一种共识
  • 是一个系统的一种模型,包括actors use cases 以及它们之间的关系

3.需求分析的目标及其基本途径

分析类的种类

  • 边界类(Boundary classes):用于模型化系统和其他actors之间的交互
  • 实体类(Entity classes):用于模型化哪些需要长期驻留系统的对象
  • 控制类(Control classes):用于模型化系统的动态性
  • 用于表达协同、定序、事务以及其他对象的控制
  • 用于封装哪些与特定有关的控制
  • 用于表达复杂的推导和计算

分析包

分析包提供了一种组织分析制品的手段,形成一些课管理的部分

分析包可包含分析类、use case 细化以及其他分析包

分析包的主要特征

  • 高内聚、低耦合
  • 表达了对所需要分析问题的一种分离
  • 对具有领域知识的人来说,是可以阅读、理解的
  • 很有可能成为一些子系统或成为一些子系统的组成部分

体系结构分析

  • 任务1:标识分析包
  • 任务2:处理分析包之间的共性
  • 任务3:标识服务包
  • 任务4:定义分析包的依赖
  • 任务5:标识重要的实体类
  • 任务6:标识公共的特定需求

Use Case 分析

目标:

  • 标识哪些在use case事件流的执行中所需要的对象和类
  • 将use case 的行为,分布(Distribute)到交互的分析对象
  • 捕获use case细化上的特定需求

4.设计的目标及其基本途径

目标:设计的基本输入是分析的结果,定义满足分析所需的结构

设计层的术语

  • 设计类:是对系统实现中一个类或类似构造一个无缝抽象
  • 用况细化:是设计模型中的一个协作
  • 设计子系统:提供了一种组织设计制品的手段。成为一些更容易管理的部分
  • 接口:用于规约由设计类和设计子系统提供的操作

设计模型、部署模型

  • 设计模型:是设计子系统的层次结构,包含了设计类、use case细化和接口
  • 部署模型:是一个对象模型,描述了系统的物理发布

设计工作流

实施准备:

  • 非功能需求
  • 有关对程序设计语言的限制
  • 数据库技术
  • 用况技术
  • 事务技术

包含哪些活动:

  • 体现结构设计
  • 目标:给出设计模型和部署模型,以及这两个模型视觉下的体系结构描述

任务:

  • 任务1:标识结点和它们的网络配置
  • 任务2:标识子系统和它们的接口
  • 任务3:标识在体系结构方面具有意义的设计类和它们的接口
  • 任务4:标识处理一般性的设计机制
  • 用况Use case 设计
    方法:
  • 标识参与用况细化的设计类
  • 标识参与用况细化的子系统和接口
  • 类的设计:进行类的设计,完成在use case 细化中的角色
    包括:
  • 类的操作
  • 类的属性
  • 参与的关系
  • 类方法
  • 类的状态
  • 对一般设计机制的依赖
  • 与现实有关的需求
  • 所提供的那些接口的细化

任务:

  • 任务1:概括描述设计类
  • 任务2:标识操作
  • 任务3:标识属性
  • 任务4:标识关联和聚合
  • 任务5:标识泛化
  • 任务6:描述方法
  • 任务7:描述状态
  • 子系统的设计:
    目标:
  • 确保子系统尽可能独立于其他子系统或它们的接口
  • 确保子系统提供正确的接口
  • 确保子系统实现了它的目标

任务:

  • 任务1:维护子系统依赖
  • 任务2:维护子系统所提供的接口
  • 任务3:维护子系统的内容

5.RUP 设计小结

RUP设计方法,由三部分组成:

  • 给出用于表达设计模型中基本成分的四个术语;包括:子系统、设计类、接口和用况细化
  • 规约了设计模型的语法,指导模型的表达
  • 给出了创建设计模型的过程以及相应的指导