什么是UML,UML类图

1.什么是UML?编程

       UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的做用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。分布式

  UML的概念包括了UML语义(Semantics)和UML表示符(Notation)两个部分。UML语义定义了静态模型和动态模型。结构模型强调系统的对象结构,入对象的类、接口、属性和关系;行为模型关注的是系统对象的行为动做,如对象的方法、交互、协做和状态。UML表示符为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。重要内容由9种图来定义,包括用例图、类图、对象图、状态图、构件图、部署图、协做图、交互序列图、活动图。工具

 

      UML的特色是:开发工具

      (1)UML统一了各类方法对不一样类型的系统、不一样开发阶段以及不一样内部概念的不一样观点,从而有效地消除了各类建模语言之间没必要要的差别,它其实是一种通用的建模语言。设计

      (2)UML建模能力比其余面向对象建模方法更强。它不只适合于通常系统的开发,并且对并行、分布式系统的建模尤其适宜。3d

      (3)UML是一种建模语言,而不是一个开发过程对象

 

     UML的构成是:blog

2.UML图之类图继承

怎么画类图?用什么工具?接口

使用工具:Visio或者processon在线做图

在类图中一共包含了如下几种模型元素,分别是:类(Class)、接口(Interface)以及类之间的关系。

2.1类(Class)

  在面向对象编程中,类是对现实世界中一组具备相同特征的物体的抽象。

          

2.2 接口(Interface)                                                                                                                                                            

  接口是一种特殊的类,具备类的结构但不可被实例化,只能够被实现(继承)。在UML中,接口使用一个带有名称的小圆圈来进行表示。

                       

2.三、类图中关系(relation)

在UML类图中,常见的有如下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

1. 泛化(Generalization)

【泛化关系】:是一种继承关系,表示通常与特殊的关系,它指定了子类如何特化父类的全部特征和行为。

例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

【箭头指向】:带三角箭头的实线,箭头指向父类

 

                                                       

  2. 实现(Realization)

【实现关系】:是一种类与接口的关系,表示类是接口全部特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口。

               

                                                                         

3.关联(Association)

【关联关系】:是一种拥有的关系,它使一个类知道另外一个类的属性和方法;如:老师与学生,

丈夫与妻子关联能够是双向的,也能够是单向的。

双向的关联能够有两个箭头或者没有箭头,单向的关联有一个箭头。

【代码体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者

                         

上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。

但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

下图为自身关联:

 

                                                    

 4.聚合(Aggregation)                         

【聚合关系】:是总体与部分的关系,且部分能够离开总体而单独存在。

如车和轮胎是总体和部分的关系,轮胎离开车仍然能够存在。

聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上没法区分,必须考察具体的逻辑关系。

【代码体现】:成员变量

【箭头及指向】:带空心菱形的实心线,菱形指向总体

                                       

 5.组合(Composition)                         

【组合关系】:是总体与部分的关系,但部分不能离开总体而单独存在。

如公司和部门是总体和部分的关系,没有公司就不存在部门。

组合关系是关联关系的一种,是比聚合关系还要强的关系,

它要求普通的聚合关系中表明总体的对象负责表明部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向总体

                                                      

6. 依赖(Dependency)

【依赖关系】:是一种使用的关系,即一个类的实现须要另外一个类的协助,

因此要尽可能不使用双向的互相依赖.

【代码表现】:局部变量、方法的参数或者对静态方法的调用

【箭头及指向】:带箭头的虚线,指向被使用者

                       

 

各类关系的强弱顺序:

泛化(类与继承关系) = 实现(类与接口关系) > 组合(总体与部分的关系) > 聚合(总体与部分的关系) > 关联(拥有的关系) > 依赖(使用的关系

下面这张UML图,比较形象地展现了各类类图关系: