什么是 UML?
-
UML 是一种为面向对象开发系统的产品进行说明、可视化、和编制文档的标准语言;
-
UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现;
-
UML 是不同于其他常见的编程语言,如C + +,Java中,COBOL等,它是一种绘画语言,用来做软件蓝图;
-
UML 不是一种编程语言,但工具可用于生成各种语言的代码中使用UML图;
常用的图表
UML 的核心是图表,大致可以将这些图归类为结构图和行为图。
- 结构图是由静态图,如类图,对象图等静态图;
- 行为图是由像序列图,协作图等动态图;
常见的图表有:用例图,类图,顺序图,协作图、活动图、状态图、部署图、组件图等。
用例图
描述用例一般包括以下几个方面:
- [1]名称;
- [2]标识符(可选)
- [3]参与者(可选)
- [4]状态(可选):通常用例的状态有进行中、等待审查、通过审查或未通过审查
- [5]频率:参与者使用此用例的频率次数
- [6]前置条件
- [7]后置条件
- [8]假设(可选)
- [9]基本操作流程(事件流)
- [10]可选操作流程
- [11]修改历史记录(可选)
组成:用例(UseCase)、参与者(Actor)、系统、关系等。
绘制方式:一般需要确定系统涉及到总体信息、确定系统的参与者、确定系统的用例、构造用例模型
类图
类图是使用面向对象的社会最流行的 UML 图。它描述了在一个系统中的对象和他们的关系,能够让我们在正确编写代码以前对系统有一个全面的认识。 一个单独的类图描述系统的一个具体方面,收集类图表示整个系统。基本上,类图表示系统的静态视图。
类的选择,类一般是对同一类型事物的抽象。可以是人、物、事件。
类包括:名称、属性、操作
组成:类、接口、关系等。
顺序图(时序图)
顺序图主要注重的是交互作用中的时间顺序,强调时间
组成:角色、对象、生命线、控制焦点(激活)、消息符号等。
协作图(通信图)
协作图主要注重的是对象间的关系,强调消息(空间)
组成:对象、消息、链等。
(协作图和顺序图可以相互转换)
活动图
概述
活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。
-
描述系统的动态行为。
-
包含活动状态(ActionState),活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。
-
活动图适合描述在没有外部事件触发的情况下的系统内部的逻辑执行过程;否则,状态图更容易描述。
-
类似于传统意义上的流程图。
-
活动图主要用于:业务建模时,用于详述业务用例,描述一项业务的执行过程; 设计时,描述操作的流程。
活动图与流程图的区别为:
- ①活动图着重表现的是系统的行为;流程图着重的是处理过程;
- ②活动图能够表示并发活动的情形;流程图做不到;
- ③活动图是面向对象的;流程图是面向过程的。
组成:活动、起点、终点、对象流、发送信号、接收信号、泳道等。
关系:迁移、分支与合并、分叉与汇合。
状态图
- 说明对象在它的生命期中响应事件所经历的状态序列,以及它们对那些事件
的响应。
- 状态图用于揭示Actor、类、子系统和组件的复杂特性。为实时系统建模。
组成:初始状态、终止状态、状态、转移、守护条件(判定)、事件、动作等。
组件图
组件图用于静态建模,是表示组件类型的组织以及各种组件之间依赖关系
组件图通过对组件间依赖关系的描述来估计对系统组件的修改给系统可能带来的影响
组成:组件、接口、关系等。
部署图
部署图用于静态建模,是表示运行时过程节点结构、构件实例及其对象结构的图。如果含有依赖关系的组件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。部署图的两种表现形式:实例层部署图和描述层部署图
组成;节点、组件、节点、关系等。