最近做毕业设计,用到了libcitygml开源库,获取到一张citygml的UML图,就顺便简单了解一下它!
一、简介
UML(Unified Modeling Language),直接翻译就是统一建模语言。
二、UML的作用
UML可以帮助我们做软件需求分析和软件设计的工作
三、UML分类
UML有很多种图,大体可以分为两类:结构型的图和行为型的图。
(1)结构型的图(描述的是某种行为,这种结构在某段时间内应该是稳定的、“静态”的)
类图
对象图
构件图
部署图
包图
(2)行为型的图(涉及大量的流程、过程等,内容是动态的)
活动图
状态机图
顺序图
通信图
用例图
时序图
四、如何看MUL图
(以下内容来自UML图应该怎么看)
1、问:在UML类图中如何表示一个类?
答:通常用一个三层结构的矩形来表示一个类
如下图:
第一层:类的名称,如果类的名称为斜体,则该类为抽象类
第二层:类的属性,比如人类有年龄、性别、身高,体重等,注意:如果属性前边用 + 号标识,则意味着该属性为共有属性(Public)。用 - 号标识,则该属性为私有属性(Private)。用 # 号标识,则该属性为保护的(Protected)
第三层:类的操作、方法或行为,比如人类可以吃饭,也会睡觉,还会说话等,注意:如果行为前边用 + 号标识(Public)。则意味着该行为为共有属性(Private)。用 - 号标识,则该行为为私有属性(Protected)
2、如果表示类与类之间的继承关系?
答:用空心三角加实线来表示
如下图:
鸟继承动物抽象类
3、问:类和类之间的依赖关系用什么表示?
答:用带有箭头的虚线来表示
如下图:
如上图所示:动物无论是新陈代谢还是繁殖都需要依赖氧气、水、食物等
依赖关系代码展示(动物依赖氧气和水):
4、问:类和类之间的关联关系用什么表示?
答:用带有箭头的实线来表示
如下图:
企鹅是特殊的鸟,不会飞会游泳,而且随着气候的变化,他们要进行集体迁徒,也就是说,当气候发生变化时,他们就会长途跋涉到另一个地方,因此:企鹅是和气候是有关联的!
人类何尝和钱没有关联,当地上有100W时,想必大多数人都会弯腰捡钱(马云除外)
关联关系代码展示:
企鹅继承鸟类,但企鹅和大雁等都和气候相关,因此,在关联关系中,我们可以把被关联的类对象写成私有的!毕竟并不是所有的鸟都随着气候变化而长途跋涉‘’;
5、问:如何表示类继承/实现接口?
答:用空心三角加虚线来表示
如下图:
大雁都会飞,因此,大雁可以实现飞翔接口
代码如下:
大雁实现 IFly 接口
6、问:如何展示一个接口?
答:展示接口图示有以下两种
顶端有<>标识的矩形
如下图:
代码如下:
棒棒糖展示法
如下图:
代码如下:
7、问:如何展示类与类之间的聚合关系?
答:用空心的菱形加带有箭头的实线来表示
如下图:
所谓聚合关系,在此说明一下:聚合关系表示一种弱的‘拥有’关系,体现的是 A 对象可以包含 B 对象,但是 B 对象不是 A 对象的一部分。
比如:大雁是群居动物,一个大雁群可以有很多只大雁。类似于这种情况,即可视为他们之间拥有聚合关系。
代码如下:
8、问:如何展示类与类之间的组合关系?
答:用实心的菱形加带有箭头的实线来表示
如下图:
所谓组合关系和聚合关系可理解为:聚合关系多你一个不多,少你一个不少。组合关系是有严格的整体,缺一不可!
因此:大雁群众少一个大雁无伤大雅,但鸟没有了翅膀就不行了!因此,组合关系可理解为严格的整体,缺一不可!
因此,在构建鸟类时,也一定要完成翅膀的构建,
代码如下:
至此,UML基本类图就说完了!
关于更复杂的类图,大家可自行参考其他资料!
最后,贴出一张完成的类图