概述
RUP的二维空间
用例图
用于定义系统的功能需求,描述了系统的参与者与系统提供的用例之间的连接关系。其中,参与者可以人,也可以另一个系统。用例图仅从参与者使用系统的角度描述系统中的信息。
- 依赖:uses a,使用了某个对象,依赖于某个对象,扩展了某个对象。
图形: 使用方 ----use----> 被使用方
- 聚合:has a,包含某个对象,就可以说是聚合了某个对象。
图形: 包含方 <>----has----- 被包含方
- 继承(泛化):is a,(本质)是某个类,就可以说是继承了某个类。
图形:子类 ----is----|> 父类
类图、包图
用来描述系统中的类以及类与类之间的静态关系。
关联关系示例: 泛化关系示例:
依赖和实现关系示例: 抽象类示例:
接口示例:
对象图
用来描述特定时刻实际存在的若干对象以及它们之间的关系。一个系统的模型中可以包含多个对象图,每个对象图描述了系统在某个特定时刻的状态。
组件图(Component Diagram)
用来建模系统的各个组件(包括源代码文件、二进制文件、脚本、可执行文件)之间的关系,它们是通过功能或者位置(文件)组织在一起的。
使用组件图有助于对系统感兴趣的人了解某个功能单元位于软件包的什么位置,以及各个版本的软件包各包含哪些功能。
组件、接口和依赖关系
组件1实现了接口,组件2使用了接口
部署图(Deployment Diagram)
帮助系统的有关人员了解软件中各个组件驻留在什么硬件上,以及这些硬件之间的交互关系。另外,部署图还可以用来描述哪一个软件应该安装在哪一个硬件上。
节点和关联关系
活动图
用来描述工作流,其中每个活动都代表工作流中一组动作的执行。
主要的标记组件:活动、状态、转移和(判断、分叉、汇合、泳道和对象流等)多种标记符
事件和触发器 父活动与子活动
泳道
流程步骤:
顺序图
描述了一个相互作用、在以时间为次序的对象之间的通讯集合。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。它着重显示了参与相互作用的对象和所交换消息的顺序。
顺序图和协作图表达了相似的信息,但是它们以不同的方式显示。
- alt——选择。有多重片段供选择,且必选其一,只有当其保安条件为真的片段才被执行。
- opt——任选。有多重片段供选择,只有当其保安条件为真的片段才被执行。
- par——并行。每个片段都并发执行。
- loop——循环。片段可重复执行,保安条件给出执行条件。
- region——临界区域。片段只有一个线程对它立即执行。
- neg——否定。片段指明一次无效的交互。
- ref——引用。引用在其它图上定义的一个交互。
流程步骤:
通信图
顺序图按照时间顺序布图,而通信图按照空间组织布图。顺序图着重于对象间消息传递的时间顺序,通信图着重于表达对象之间的静态连接关系。
对象角色(3种类型的对象实例)
迭代 自调用和回调
时序图
显示系统内各对象处于某种特定状态的时间,以及触发这些状态发生变化的消息。
状态机图
用于指定对象的行为以及根据不同的当前状态行为之间差别。同时,它还能说明事件是如何改变一个类对象的状态。
对象、状态、事件、转移和动作
决策点(分支) 同步(并发)
组合状态
顺序子状态 并发子状态
同步状态 历史状态