1.UML简介

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

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

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

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

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

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

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

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

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

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

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

UML——在Visual Studio 2013/2015中设计UML类图的更多相关文章

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

    [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...

  2. [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图

    [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图  1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...

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

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  4. 在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

    Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装 ...

  5. Visual Studio 2013 Preview 高清多图先睹为快

    Visual Studio 2013 Preview已经发布.大家可以下载试用了哦: 选项加载明显比之前版本要快很多.

  6. Visual Studio 2013/2015/2017快捷键(转)

    英文原文:19 Must-Know Visual Studio Keyboard Shortcuts 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = ...

  7. Visual Studio 2013/2015/2017快捷键(转载)

    本文为转载文章,原文:[心存善念]  [Fonour] 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示 Solution Explorer(解 ...

  8. visual studio 2013 生成依赖项关系图出错

    开始是说无法连接到sql服务器,我安装卸载localdb http://www.microsoft.com/zh-cn/download/details.aspx?id=29062 下载 CHS\x6 ...

  9. Visual Studio 2015中设计UML类图

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

随机推荐

  1. 如何合理优化WEB前端 高效提升WEB前端性能

    对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...

  2. [SharePoint]SharePoint Claim base Authentication的一个比较好的介绍

    User identity in AD DS is based on a user account. For successful authentication, the user provides ...

  3. IOS开发基础知识--碎片29

    1:心跳效果,并可去除心跳 - (void)initScaleLayer { self.view.backgroundColor=[UIColor blueColor]; UIButton *myTe ...

  4. Fragment与ViewPager

    众所周知,为了实现滑动界面,经常让Fragment与ViewPager一起结合使用,每一个ViewPager的页面就是一个Fragment,我们可以在fragment中实现丰富的功能.它的基本用法可以 ...

  5. xCode5 在ios7模拟器中出现__cxa_throw _pthread_exit错误

    xCode5 在ios7模拟器中出现__cxa_throw _pthread_exit错误 2013年10月28日 ⁄ 综合 ⁄ 共 233字 ⁄ 字号 小 中 大 ⁄ 评论关闭   在项目中用模拟器 ...

  6. TFS 10周年生日快乐 – TFS与布莱恩大叔的故事

    今天看了一下Brian Harry大叔的博客,才发现2016年3月17日,是Team Foundation Server的10岁生日. Today marks the 10th anniversary ...

  7. #研发解决方案介绍#Tracing(鹰眼)

    郑昀 最后更新于2014/11/12 关键词:GoogleDapper.分布式跟踪.鹰眼.Tracing.HBase.HDFS. 本文档适用人员:研发   分布式系统为什么需要 Tracing?   ...

  8. Visual Studio 2013 Update 2 RTM 发布

    今天,微软再Visual Studio Blog发布了开放Visual Studio 2013 Update 2 RTM 下载的文章. 原来安装RC版本的同志们可以直接安装,提供在线安装和ISO下载安 ...

  9. SQL SERVER 作业浅析

    作业介绍 SQL SERVER的作业是一系列由SQL SERVER代理按顺序执行的指定操作.作业可以执行一系列活动,包括运行Transact-SQL脚本.命令行应用程序.Microsoft Activ ...

  10. SQL SERVER 2000通过链接服务器发送邮件出现错误

    案例环境: 服务器A系统: Windows Server 2000 数据库版本 : Microsoft SQL Server  2000 - 8.00.2282 (Intel X86) 服务器B系统: ...