你想要的干货,都在这里哟算法
最全面的UML教程
声明,本篇博文部分资料摘自维基百科
和Calvinsily的UML教程
,博文不涉及高深技术,旨在分享相关技术,节省大部分朋友学习的时间成本,望与诸君共同进步!编程
UML 核心
UML 的核心是图表,大体能够将这些图归类为结构图和行为图。segmentfault
一个系统的静态和动态特性是经过使用这些图的可视化。
编程语言
类图是使用面向对象的社会最流行的 UML 图。它描述了在一个系统中的对象和他们的关系,可以让咱们在正确编写代码之前对系统有一个全面的认识。
一个单独的类图描述系统的一个具体方面,收集类图表示整个系统。基本上,类图表示系统的静态视图。svg
类图是惟一能够直接映射到面向对象的语言UML图。所以,它被普遍应用于开发者社区。
对象图是类图的一个实例
。所以,一类图的基本要素是相似的。对象图是由对象和连接。在一个特定的时刻,它捕获该系统的实例。
对象图用于原型设计,逆向工程和实际场景建模。工具
用例图是从用户角度描述系统功能,并指出各功能的操做者,用来捕捉系统的动态性质。
一个高层次的设计用例图是用来捕捉系统的要求,所以它表明系统的功能和流向。虽然用例图的正向和反向工程是否是一个很好的选择,但他们仍然在一个稍微不一样的方法来模拟它。学习
交互图,用于捕获系统的动态性质。
交互图包括序列图
和协做图,其中:序列图显示对象之间的动态合做关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互
;协做图描述对象间的协做关系,协做图跟时序图类似,显示对象间的动态合做关系。spa
状态图是一个用于模拟系统的动态性质的五个图。这些图用来模拟一个对象的整个生命周期。
一个对象的状态被定义为对象所在的条件下,特定的时间和对象移动对其余状态,在某些事件发生时。状态图还用于正向和反向工程。
状态图着重描述从一个状态到另外一个状态的流程,主要有外部事件的参与。设计
活动图描述知足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。code
以上就是UML的相关概念了,其实说白了就说画图,至于怎么画,下面就让咱们一块儿来学习吧
在这里我不会也不太可能将UML的各类元素都介绍一遍,我只介绍类图中各个类之间的关系;能看懂类图中各个类之间的线条、箭头表明什么意思后,也就足够应对 平常的工做和交流了;
类图是面向对象式的建模。他们通常都被用于概念建模(conceptual modelling)的系统分类的应用程序,并可将模型建模转译成代码。
一个类有三个区域
先从一个示例开始
请看下面这张类图,主要看类之间的关系:
泛化(Generalization),即继承的反方向,指的是一个类(称为父类、父接口)具备另外的一个(或一些)类(称为子类、子接口)的共有功能。子类可视为其父类的特例,并能够增长新功能。用带空心三角形箭头的实线表示。
实现(Realization)指的是一个class类实现interface接口(能够是多个)的功能;在Java中此类关系经过关键字implements明确标识。用带空心三角形箭头的虚线表示。
依赖关系(Dependency)能够简单的理解为一个类A使用到了另外一个类B," ... uses a ...",被依赖的对象只是做为一种工具在使用,而并不持有对它的引用。而这种使用关系是具备偶然性、临时性的、很是弱的,可是B类的变化会影响到A;表如今代码层面,为类B做为参数被类A在某个method(方法)中使用。用带燕尾箭头的虚线表示。表示一个类依赖于另一个类的定义;依赖关系仅仅描述了类与类之间的一种使用与被使用的关系。
关联关系使一个类知道另一个类的属性和方法;某个对象会长期的持有另外一个对象的引用,关联的两个对象彼此间没有任何强制性的约束,只要两者赞成,能够随时解除关系或是进行关联,它们在生命期问题上没有任何约定。被关联的对象还能够再被别的对象关联,因此关联是能够共享的。 在代码层面上,被关联类以类属性的形式出如今关联类中,也多是关联类引用了一个类型为被关联类的全局变量。目前定义有五种不一样类型的关联。双向(Bi-directional)和单向(uni-directional)的关联是最多见的。
聚合(Aggregate)是表示总体与部分的一类特殊的关联关系,是“弱”的包含(" ... owns a ..." )关系,成分类能够不依靠聚合类而单独存在,能够具备各自的生命周期,部分能够属于多个总体对象,也能够为多个总体对象共享(sharable)。例如,池塘与(池塘中的)鸭子。再例如教授与课程就是一种聚合关系。又例如图书馆包含(owns a) 学生和书籍。即便没有图书馆,学生亦能够存在,学生和图书馆之间的关系是汇集。汇集可能不涉及两个以上的类。图形以空心的菱形箭尾与实线来表示。
关于UML 的相关介绍和其中最重要的类图就介绍到这里了,相信你此时已经入门UML了,也许你还想再更深刻的了解TA,不要紧,
我已经为你准备了一份很是全面的学习资料,请点击文章末尾连接领取.
最全面的UML教程
PS: 感谢Calvinsily整理分享的UML教程,你们能够去点个赞哦!
更多精彩文章请关注