UML分行为图和结构图两种,其中常用的行为图4种,结构图6种。
常用的结构图:类图、对象图、包图、组件图、部署图、组合结构图
常用的行为图:交互图(交互概览图、时间图、顺序图、通信图)、活动图、状态机图、用例图
本文对UML中常用的十种图进行了总结梳理,参考书籍为清华大学出版社《UML软件建模入门与提高》活动图、顺序图、通信图、组件图、部署图的内容在我的下一篇博客:浅谈UML中常用的十种图(二)
1.用例图
- 概念:描述了人们希望如何使用一个系统,包括用户希望系统实现什么功能,以及用户需要为系统提供哪些信息。
- 组成元素:用例、系统、参与者、关系。
用例:人们需要通过软件系统实现的功能(大型系统用例数目多不易组织建模,UML使用包来归纳功能和目录相似的用例)。
系统:由一个或多个用例构成的软件系统,可以是软件系统的分支;
参与者:与系统有关联的对象,可以是用户、硬件设备或其他的系统。
关系:描述用例图各部分构成之间的联系。
- 用例图中的关系:泛化、关联、包含、扩展
考点:1、关联关系不能够用于描述用例与用例间的关系;
2、泛化关系可以是用例间的,也可以是参与者之间的;
3、 包含关系和扩展关系都是用虚线箭头表示的;
包含关系(include):
扩展关系(extend):
- 如何发现用例?
- 选择系统边界;
- 确定主要参与者——通过使用系统的服务实现其目标的那些人或事物
- 确定每个主要参与者的目标;
- 定义满足用户目标的用例,根据其目标对应用例命名;
2.类图
- 概念:类图展现了一组对象、接口、协作和它们之间的关系。类图给出了系统的静态设计视图,在面向对象系统建模中,类图是经常建立的一种图。
- 组成元素:类与接口等模型元素、它们之间的关系。
- 类的关系:依赖、泛化、实现、关联、聚合、组合。
- 类图中各种关系的符号表示:
强弱关系:泛化=实现>组合>聚合>关联>依赖
类图之间的关系即应用具体介绍在我的上一篇博客:类图关系及应用
3.对象图
- 概念:展示了一组对象以及它们之间的关系。对象图是类图的实体,是类图的一个实例,它与类图的不同之处在于:对象图的是类的多个对象实例而不是实际的类。
- 组成元素:对象、链(对象是类的实例,链是关联的实例)。
- 对象图建模的一般步骤:
- 确定参与交互的各个对象的类,可以参照相应的类图和交互图;
- 确定类之间的关系,例如依赖、泛化关系等;
- 针对交互在某特定时刻各对象的状态,使用对象图为这些对象建模;
- 在进行建模时,系统分析师要根据建模的目标,绘制对象的关键状态和关键对象之间的连接关系。
对象图与类图的区别:
类图是描述类、接口、协作以及它们之间关系的图;对象图则描述参与交互的各个对象在交互过程中某一时刻的状态。
4.包图
- 概念:包图通常用于描述系统的逻辑架构——层、子系统、包等。层可以建模为UML包。UML包用一大一小两个矩形组合而成。如果内部显示了其成员,则包名称标在上面的小矩形内,否则可以标在包内。
- 包的主要作用:
1.对语义上的相关元素进行分组。
2. 定义模型中的“语义边界”。
3. 提供配置管理单元。
4. 在设计时提供并行工作的单元。
5. 提供了封装的命名空间,而所有的命名空间名称都必须具有唯一性。 - 包的元素:包自身拥有的元素(例如类、接口、协作、组件、节点和用例等)、从另一个包中合并或导入的元素、另外一个包所访问的元素。
- 包图构成元素:包和关系。
- 包之间的关系:依赖、泛化。
- 常用包图:用例包图、类包图。
5.状态机图
- 概念:用于描述系统的状态变化,通过对象的状态变化来描述对象的一个生命周期。
在状态机图中,状态之间的变化称为转移;事件的发生会触发状态间的转移,导致对象从一种状态转化到另一种新的状态; - 构成元素:状态、转移、事件、活动、动作。
- 动作的5个基本类型:entry、exit、do、include、event。
顺序图、通信图:描述多个对象间的交互。
状态机图:描述单个对象的状态及引起状态变化的原因。