前言
UML中的图是UML结构中的基本构造块的一部分,图是体现UML思想的关键,每
一种图都会将UML中的事物,关系,规则和公共机制有所表现。可以说有了图的深
入理解,那些理论化的层面自然就会变得简单。下面就让小编带大家来认识一下
吧!
基本介绍
一、九种图的概念和特点
认识一下UML中有九种图如下:
1、用例图
描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使
用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用
例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。其中用例图中
特有的包含(include)和扩展(extend)关系见博客《再谈包含、扩展和泛化、
2、类图
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确
编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一
种静态模型类型。
3、对象图
与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际
的类。它描述的不是类之间的关系,而是对象之间的关系。
4、活动图
描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。
能够演示出系统中哪些地方存在功能。
5、状态图
描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对
象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事
件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来
影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的
类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示
哪些事件将会改变类的对象的状态。状态图是对类图的补充。
6、序列图(顺序图)
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模
型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在
消息序列上,即强调消息是如何在对象之间被发送和接收的。
7、协作图
和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,
协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺
序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互
图。
8、构件图 (组件图)
描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及
其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,
构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
9、部署图
是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。
部署图的使用者是开发人员、系统集成人员和测试人员。
二、标准建模语言UML--五类图
1.用例图:从用户角度描述系统功能,并指出各功能的操作者。
2.静态图:包括类图和对象图。
3.行为图:描述系统的动态模型和组成对象间的交互关系,包括状态图和活动
图。
4.交互图:描述对象间的交互关系,包括时序图(顺序图)和协作图。
5.实现图:包括组件图和部署图。
三、不同的划分标准
1.从系统的角度来说,UML可以完整的从各个方面来描述它,这是一个功能强大的
工具。
ps:系统的硬件模型和软件模型,外部模型和内部模型,整体模型和局部模型,静
态模型和动态模型等等;
硬件模型由部署图实现,外部模型由部署图、构件图、用例图、包图实现,内部
模型由类图、活动图、状态图、顺序图协作图实现;动态模型由行为图和交互图
实现,静态模型由类图、对象图、包图、构件图、部署图和用例图完成。可见,
UML的九种图可以满足所有的模型要求。
2.从用户的角度来考虑问题。
系统的用户包括两部分,系统开发者和系统使用者。
>>>系统使用者只需要简单的整体使用说明即可,所以系统使用者的要求需要部署
图和构件图;
>>>对于系统开发者来说,比较复杂,因为系统开发人员分为很多类,各类人员对
于系统的层次要求是不一样的,系统的分析员需要用到用例图和类图、顺序图、
协作图、状态图、活动图;系统设计人员需要用到类图、包图;系统实施人员则
需要用到类图;测试人员需要用到类图、包图、构件图、协作图。系统开发者和
使用者需要使用用例图进行交流。
3.从软件工程的角度来分析这些图。
--从需求开始,需求了解需要用用例图和客户交流,以确定系统功能;
--系统分析需要使用类图描述系统静态结构,行为图和交互图来描述系统动态行
为,通过系统分析来明确系统细节;
--系统设计需要使用类图和包图,这个阶段需要设计类的接口并就系统的细节问
题给出解决方案;
--实现阶段需要用到类图,程序员需要将类用面向对象语言实现;
--测试阶段会用到类图、包图、构件图、协作图、用例图,不同的测试阶段,测
试内容和测试用途也不一样。
结语
以上是UML的九种图的宏观介绍,从全局的角度了解各种图,可以帮助我们在每一种
图的运用方面更好的实现其作用。