软件工程 统一过程软件(RUP) 第5篇随笔
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设计方法,由三部分组成:
- 给出用于表达设计模型中基本成分的四个术语;包括:子系统、设计类、接口和用况细化
- 规约了设计模型的语法,指导模型的表达
- 给出了创建设计模型的过程以及相应的指导
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)