什么是UML?
- 统一建模语言(Unified Modelling Language)的简称
- 是面向对象系统分析设计时常用的一种标准化标记方法
- 由OMG(Object Management Group)软件标准化组织进行统一标准化的
- 仅仅只是一种描述语言,规定了一些表示方法,和具体的开发语言以及开发过程没有任何关系
例子:
系统由房主在安装时配置,通过系统控制窗口和键盘功能与房主交互进行。系统可以监控所有连接的传感器。
在安装过程中,每个传感器可以设置编号和类型,系统的启动和关闭必须有主人密码控制;传感器事件发生时,软件激活系统上的警报器,在设定的时间延时后,软件自动拨打设定的电话号码,并提供位置信息和事件性质,电话号码将每隔20秒重拨一次,直至电话接通。
系统运行时,系统控制窗口显示提示信息和系统状态。通过键盘可以控制系统运行。
分析:
房主:启动和使用系统的主动参与者
传感器 : 系统监控的主要参与者
警报器 :系统操纵的参与者
电话:同上
控制窗口:虽然是标准设备,但有特殊定义
功能有:系统配置,开系统,关系统,传感器事件(开启和恢复)
得到用例图:
-
用例图
◆ 表示的是从外部看到的系统所具有的功能。
◆ 主要在需求分析阶段使用。根据从用户收集来的需求,明确开发对象时使用。
◆ 组成要素:
- 参与者(actor)
- 用例(usecase)
- 系统边界(可选)
解释:房主为系统的参与者开始再启动系统前先对系统进行配置,对系统配置进行扩展,可以分别进行传感器配置、电话号码配置和密码配置(整段功能中需要配置的部分),然后可以启动系统和关闭系统,在这两个功能都包括密码验证,在执行这两个功能时都必须通过密码验证。一般系统在运行过程中传感器持续监测,等到传感器出现问题,会通过传感器、报警器、显示窗和电话通知用户。 -
类图
◆ 类就是问题域的静态概念。
◆ 类由类名,属性和操作三部分组成。
◆ 类图用来描述系统的静态结构。
解释:系统包括控制台和传感器,报警器,电话。其中控制台是1:1的关系,传感器、报警器和电话都是是1:n的关系。系统通过系统控制窗口和键盘功能与房主交互进行,而这些都在控制台中,系统还包含着多个报警器和多个电话与用户进行交互。其中传感器可能会产生多个传感器事件。 -
顺序图
◆ 交互图的一种,描述系统的动态行为- 按照时间顺序来描述生命线(对象,组件实例)之间的消息交换
◆ 顺序图的组成部分 - 生命线
- 消息交互
解释:使用系统的一个流程图。其中就是指在系统/控制台/传感器自身显示不需要和别的部分进行交互。
- 按照时间顺序来描述生命线(对象,组件实例)之间的消息交换
-
对象图
◆ 对象图描述在某一时刻系统内对象的状态。
◆ 可用来辅助决定类图中类和类之间的多重度关系。
5. 状态图
◆ 描述某个对象在生命周期内随着外部事件的触发而进行的状态变化的图。
- 着眼于一个对象,描述该对象在生命周期内的状态迁移变化情况。
◆ 状态图的组成部分
- 状态(初始状态,终了状态)
- 事件
解释:其中表示开始的意思
表示结束。播放磁带总共有三个状态:停止、播放和倒带。而这三个状态通过三种方式连接
6. 通信图
◆ 交互图的一种,用来描述系统的动态行为
- 以生命线之间的连接关系为中心来描述消息交换的。
◆ 通信图的组成部分
- 生命线
- 消息
解释:通信图主要是消息的传递。例如只有通过对于书名的检索才可以得到图书清单
7. 活动图
◆ 描述系统业务流程,用例流程的图
◆ 活动图的组成部分
- 开始节点,终了节点
- 活动
- 判断节点和监护条件
- fork节点
- join节点
- 参与者
解释:
表示开始
表示分叉
表示判断
表示结束
- 构件图
◆ 描述构成系统的软件构件的结构及其相互关系的图- 构件为构成软件系统的可以再利用的部品。
- 在设计阶段使用
◆ 构件图的组成部分: - 构件
- 构件之间的关系
- 部署图
◆ 描述软件运行时的硬件,配置在硬件上的软件和硬件节点之间关系的图。
◆ 部署图的组成部分:
- 节点
- 节点之间的关系
- 包图
◆ 对构成系统的模型元素进行分组整理的图
◆ 包图的组成部分:- 包(package)
- 包之间的关系
- 时序图
◆ 从左至右按时间顺序表示生命线状态变化的图- 也可像顺序图那样表示多个生命线之间的消息交互。
◆ 时序图的组成部分: - 生命线
- 状态
- 事件
- 也可像顺序图那样表示多个生命线之间的消息交互。
- 交互概览图
◆ 用活动图来表示多个交互之间的控制关系的图
- 交互概览图中的每一个交互可以是一个顺序图或者是通信图。
◆ 交互概览图的组成部分: - 交互
- 交互调用
- 条件分支
- 组合结构图
◆ 用来表示类或者组件内部结构的图
◆ 组合结构图的组成部分:
- 组合结构类别
- 组成部分(part)
- 连接(connect)