[.net 面向对象程序设计深刻](1)UML——在Visual Studio 2013/2015中设计UML类图

[.net 面向对象程序设计深刻](1)UML——在Visual Studio 2013/2015中设计UML类图 

1.UML简介

Unified Modeling Language (UML)又称统一建模语言或标准建模语言。html

简单说就是以图形方式表现模型,根据不一样模型进行分类,在UML 2.0中有13种图,如下是他们的主要用途简介:git

1.用例图:对系统的使用方式分类.程序员

2.类图:显示类和它们的相互关系。github

3.对象图:只显示对象及它们的相互关系。编程

4.活动图:显示人或对象的活动,其方式相似于流程图。工具

5.状态机图:显示生命周期比较有趣或复杂的对象的各类状态。post

6.通讯图:显示在某种情形下对象之间发送的消息。测试

7.顺序图:显示与通讯图类以的信息,但强调的是顺序,而不是链接。编码

8.包图:显示相关的类如何组合,对开发人员有用。spa

9.部署图:显示安装已完成系统的机器、过程和部署制品。

10.组件图:显示可重用的组件(对象或子系统)及期接口。

11.交互总图:使用顺序图喧赤活动的务个步骤。

12.时间图:显示消息和对象状态的准确时间限制。

13.复合结构图:显示对象在聚合或复合中的相互关系,显示接口和协做的对象 

经常使用的 UML 图可分静(态)图、动(态)图两类,静态图主要描绘软件的静态结构,而动态图主要描绘软件的动态行为。
经常使用 UML 动态图(5 个):用例图,活动图,状态机图,序列图,通讯图。
经常使用 UML 静态图(4 个):类图,包图,部署图,构件图。  

2.UML类图

在全部UML图中,类图是使用频率最高的UML图。

类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。

类图主要关系有:泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

定义:显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。

类型:静态图

应用:设计阶段

2.1 泛化(Generalization)

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

【代码体现】:类继承另外一个类

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

2.2 实现(Realization) 

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

【代码体现】:类实现接口成员 

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

 2.3 关联(Association) 

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

【代码体现】:成员变量 

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

上图,表示企业和员工的关联关系,员工都属于一个企业

除此以外,关联关系容许互相关联,好比夫妻关系,能够互相关联。也容许自关联,即本身也是本身的成员之一。 

2.4 聚合(Aggregation) 

【聚合关系】:是总体与部分的关系,且部分能够离开总体而单独存在。如车和轮胎是总体和部分的关系,轮胎离开车仍然能够存在。 

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

【代码体现】:成员变量 

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

 

2.5 组合(Composition) 

【组合关系】:是总体与部分的关系,但部分不能离开总体而单独存在。如公司和部门是总体和部分的关系,没有公司就不存在部门。 

                   组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中表明总体的对象负责表明部分的对象的生命周期。 

【代码体现】:成员变量 

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

 

2.6 依赖(Dependency) 

【依赖关系】:是一种使用的关系,即一个类的实现须要另外一个类的协助,因此要尽可能不使用双向的互相依赖. 

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

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

例如:程序员须要依赖计算机

 

下面这张图是从网上下载的上面各类关系的一个综合图:

 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 

3.类图中细节符号含义

UML是一种统一建模语言,在使用过程当中就有统一的细节表示,下面是几种通用的表示方法,不论你使用什么工具,整体表示差别不大。

类:

抽象类,类名使用用斜体显示。 
字段、属性、方法:
‘+’表示public

‘-’表示private

‘#’表示protected。 

接口:

与类图的区别主要是顶端有<<interface>>显示 ,见上面的示例。

4.在Visual Stodio 2013/2015中建立UML类图

在.NET开发中,咱们可使用VS自有的功能方便设计类图,VS2013旗舰版和VS2015企业版都有建模工程,下面介绍一下如何使用VS建模

(1)在VS中新建,选择”建模项目“,以下:

 

(2)打开建模项目,增长一个UML类图

(3)打开新建的UML类图文件,经过工具栏创建类、接口等,并建立关系

(4)将设计好的UML类图,生成代码

(5)查看生成代码

(6)逆向(由代码生成类图)

在VS中,咱们能够将代码很方便的生成UML类图,以下

5.UML类图工具 

UML工具比较多,经常使用的三大UML建模工

(1)PowerDesign
(2)Rose
(3)Visio

还有一些免费的工具备:

(1)UMLet

(2)ArgoUML 

(3)JUDE

(4)BOUml

(5)Visual Paradigm

在线建工具:

https://www.processon.com

根据本身爱好选用吧。 

6.总结

本篇主要介绍了UML统一建模语言在面向对象程序设计中如何使用,几种关系的UML类图示例,最后介绍了在.NET开发中,使用VS2013/2015创建UML类图及生成代码。主要介绍的是其使用方法,具体使用,须要在不断的了解业务需求的基础上,才能设计出合格的UML图。 

7.源代码下载:   

GitHub:https://github.com/yubinfeng/BlogExamples 

 

==============================================================================================

返回目录

<若是对你有帮助,记得点一下推荐哦,若有有不明白或错误之处,请多交流>

<对本系列文章阅读有困难的朋友,请先看 《.net 面向对象编程基础》 和 《.net 面向对象程序设计进阶》 >

<转载声明:技术须要共享精神,欢迎转载本博客中的文章,但请注明版权及URL>

.NET 技术交流群:467189533 .NET 程序设计

==============================================================================================

相关文章
相关标签/搜索