UML是Unified Modeling Language的缩写,它是一种建模语言,是用来设计软件蓝图的可视化建模语言。它支持面向对象系统的分析、设计、实现和交付等各个环节,可以用于系统的理解、设计、浏览、维护和信息控制。UML是由3部分构成的,其中基本构造块中的图是UML中最重要的部分。
我先介绍一下这九种图的概念:
(1)、用例图(use case diagrams):用来描述用户的需求,从用户的角度描述系统的功能,并指出个功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
( 2)、类图(class diagrams):用于定义系统中的类,包括描述类的内部结构和类之间的关系。类图主要用于描述系统的静态结构。
(3)、对象图(object diagrams): 对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。
(4)状态图(statechart diagrams):用来描述类的对象所有可能的状态以及事件发生时状态的转移条件。
(5)活动图(activity diagrams):用来描述满足用例要求所要进行的活动以及活动间的约束关系,使用活动图有利于识别系统的并行活动。
(6)序列图(sequence diagrams):描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程。
(7)协作图(collaboration diagrams):描述对象之间的合作关系,更侧重于说明哪些对象之间有消息的传递。
(8)、构件图(component diagrams):构件图用来描述代码构件的物理结构以及各构件之间的依赖关系。一个构件可以使一个资源文件、一个二进制文件或者一个可执行文件。
(9)、实施图(deployment diagrams):部署图定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及它们之间的连接关系。
概念说完了,下面我来说一下它们之间的联系吧:
(1)类图和对象图:首先它们都是静态图,其中对象图是类图的一个实例。它们的区别主要有以下几点:
类图 | 对象图 |
类具有3个分栏:名称、属性和操作 |
对象只有两个分栏:名称和属性 |
在类的名称分栏中只有类名 |
对象的名称形式为“对象名:类名”,匿名对象的名称形式为“:类名” |
类的属性分栏定义了所有属性的特征 |
对象则只定义了属性的当前值,以便用于测试用例或例子中 |
类中列出了操作 |
对象图中不包括操作,因为对于同属于同一个类的对象而言,其操作是相同的 |
类使用关联连接,关联使用名称、角色、多重性以及约束等特征定义。类代表的是对对象的分类所以必须说明可以参与关联的对象的数目。 |
对象使用链连接、链拥有名称、角色,但是没有多重性。对象代表的是单独的实体,所有的链都是一对一的,因此不涉及到多重性。 |
(3)序列图和协作图:它们都属于交互图,交互图是用来描述对象之间的交互关系的图。同样是从概念上来看它们的区别:序列图着重体现了对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时也显示对象之间的交互过程;而协作图也像序列图一样传递相同的信息,但它不关心什么时候消息被传递,只关心对象的角色。
小结:
学习UML是为了更好的进行软件开发,UML视频的学习已经基本完成,但是这还远远不够,对UML的学习最重要的是实践。