通过看视频,对于UML也有了一些初步的了解。前面也介绍了UML的三个基本块、规则和机制,不过这些东西就像是一个个机器的零部件,要组合起来才能发挥作用。所以,实例才是验证自己学习好坏标准,下面我结合机房收费系统画了UML的九个实例图,如有觉得不合适的地方,请大家多多指教:
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识,在系统的整个生命周期都是有效的。实例如下:
对象图所使用的表示符号与类图几乎完全相同,它是类图的实例,它们的不同点在于对象图只是显示类的对象实例,而不是实际的类。一个对象是类图的一个实例,由于对象存在生命周期,因此对象图只能在系统某一时间段存在。对象图是类图的一种实例化图,描述系统在某个时刻可能包含的对象和相互关系。实例如下:
它从用户角度描述系统的功能。说明的是谁要使用这个系统,以及他们使用该系统可以做些什么。用例图描述了一系列的角色和使用案例及它们之间的关系。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。实例如下:
描述为满足用例要求所要进行的活动以及活动间的约束关系有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。活动图是使用例图所描述的行为具体化。实例如下:
描述一类的对象的所有可能的状态以及事件发生时状态的转移条件。通常状态图是对类图的补充,实际上并不需要为所有的类绘制状态图,而只需要为那些有多个状态、并且其行为受外界环境的影响而会发生改变的类绘制状态图。可以捕捉对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。实例如下:
用于显示对象间的动态合作关系。它强调对象之间消息发送的顺序,同时也显示对象之间是如何交互的(交互过程),它强调的是时间和顺序。实例如下:
和序列图相似,它也显示对象间的动态合作关系,不过,除了显示信息交换外,协作图还显示对象以及它们之间的关系,它强调的是通信关系(如何通信的)。可以看成是类图和顺序图的交集。实例如下:
描述用来建模的软件构件(如:代码部件,jar文件、EJB文件等)的物理结构以及各部件之间的依赖关系。一个部件可能是一个资源代码部件、产品、文件、一个二进制部件或一个可执行部件。构件图有助于分析和理解部件之间的相互影响程度。这些图由构件标记符和构件之间的关系构成。实例如下:
描述一个系统的拓扑结构,定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象,以显示节点跟可执行软件单元之间的对应关系。例如计算机和设备,以及它们之间是如何连接的。部署图的使用是开发人员、系统集成人员和测试人员。实例如下:
这九种图在软件开发中负担着各自的作用,开发的不同阶段,可能会用到不同的UML图。这就需要对它有足够的熟悉,才可以很好的去完成一个系统的完整的UML图。所以,我只是每个图画了一个小例子,认知有限,希望大家多多指导。