UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)
2017-08-01 19:30
405 查看
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 泛化【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.【箭头指向】:带三角箭头的实线,箭头指向父类
上图,表示企业和员工的关联关系,员工都属于一个企业除此之外,关联关系允许互相关联,比如夫妻关系,可以互相关联。也允许自关联,即自己也是自己的成员之一。
3.vs2013\2015 中Uml类图的操作 在.NET开发中,我们可以使用VS自有的功能方便设计类图,VS2013旗舰版和VS2015企业版都有建模工程,下面介绍一下如何使用VS建模(1)在VS中新建,选择”建模项目“,如下:
(2)打开建模项目,增加一个UML类图
(3)打开新建的UML类图文件,通过工具栏建立类、接口等,并创建关系
(4)将设计好的UML类图,生成代码
(5)查看生成代码
(6)逆向(由代码生成类图)在VS中,我们可以将代码很方便的生成UML类图,如下
4.总结 主要介绍了uml多种图的初步介绍,在着重介绍了下UMl类图,后面会和大家在依次介绍一些常用的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 泛化【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父类的所有特征和行为. 例如:老虎是动物的一种, 即有老虎的特性也有动物的共性.【箭头指向】:带三角箭头的实线,箭头指向父类
2.2 实现(Realization)
【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.【代码体现】:类实现接口成员 【箭头指向】:带三角箭头的虚线,箭头指向接口2.3 关联(Association)
【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法; 【代码体现】:成员变量 【箭头及指向】:带普通箭头的实心线,指向被拥有者上图,表示企业和员工的关联关系,员工都属于一个企业除此之外,关联关系允许互相关联,比如夫妻关系,可以互相关联。也允许自关联,即自己也是自己的成员之一。
2.4 聚合(Aggregation)
【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。 聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。 【代码体现】:成员变量 【箭头及指向】:带空心菱形的实心线,菱形指向整体2.5 组合(Composition)
【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。 组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。 【代码体现】:成员变量 【箭头及指向】:带实心菱形的实线,菱形指向整体2.6 依赖(Dependency)
【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖. 【代码表现】:局部变量、方法的参数或者对静态方法的调用 【箭头及指向】:带箭头的虚线,指向被使用者 例如:程序员需要依赖计算机3.vs2013\2015 中Uml类图的操作 在.NET开发中,我们可以使用VS自有的功能方便设计类图,VS2013旗舰版和VS2015企业版都有建模工程,下面介绍一下如何使用VS建模(1)在VS中新建,选择”建模项目“,如下:
(2)打开建模项目,增加一个UML类图
(3)打开新建的UML类图文件,通过工具栏建立类、接口等,并创建关系
(4)将设计好的UML类图,生成代码
(5)查看生成代码
(6)逆向(由代码生成类图)在VS中,我们可以将代码很方便的生成UML类图,如下
4.总结 主要介绍了uml多种图的初步介绍,在着重介绍了下UMl类图,后面会和大家在依次介绍一些常用的Uml图。
相关文章推荐
- 转: UML类图关系大全 (http://www.cnblogs.com/riky/archive/2007/04/07/704298.html)
- 终于记住回车和换行cr lf的来由和含义了 -参考: http://www.cnblogs.com/me115/archive/2011/04/27/2030762.html
- 在asp.net中做视频转换,将各种视频文件转换成.flv格式【转:http://www.cnblogs.com/seebook/archive/2007/09/25/aspnet.html】
- http://www.cnblogs.com/justinw/archive/2010/05/04/1727295.html
- WindowsPhone问题笔记-- 正确选择build action 解决媒体资源无法读取问题 转:http://www.cnblogs.com/qinxg/archive/2012/07/17/2594503.html
- http://www.cnblogs.com/dajiang02/archive/2011/08/13/2136929.html
- elphi之self http://www.cnblogs.com/keycode/archive/2010/10/16/1853128.html
- System V共享内存资料,转载自http://www.cnblogs.com/xiaobaigang/archive/2011/07/16/2108042.html
- .Net Remoting (转载)(转自http://www.cnblogs.com/JimmyZhang/archive/2008/07/26/1252183.html)
- Html中的map标签(http://www.cnblogs.com/china-chang/archive/2012/03/27/2419734.html)
- 漫游红黑树之插入篇 http://www.cnblogs.com/xuqiang/archive/2011/05/16/2047001.html
- 工作需要用到C++中的正则表达式,所以就研究了以上三种正则。 http://www.cnblogs.com/pmars/archive/2012/10/24/2736831.html
- HBase Coprocessor 剖析与编程实践(转载http://www.cnblogs.com/ventlam/archive/2012/10/30/2747024.html)
- HTML解析原理http://www.cnblogs.com/NetSos/archive/2010/11/29/1891194.html
- 转载TortoiseSVN的使用详解2(http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html)
- Invoke and BeginInvoke(转载:http://www.cnblogs.com/worldreason/archive/2008/06/09/1216127.html)
- StringBuffer类和String类(原文地址 : http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.html)
- 设计模式网站 http://www.cnblogs.com/justinw/archive/2007/02/06/641414.html
- Unity3D界面功能操作讲解【转http://www.cnblogs.com/fortomorrow/archive/2012/10/28/unity01.html】
- http://www.cnblogs.com/kaka/archive/2013/03/06/2945514.html