类图的使用类图?uml绘制-如何绘制UML类图
本文目录
类图的使用类图
(Class)
一般包含3个组成部分。第一个是类名;第二个是属性(attributes);第三个是该类提供的方法( 类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。类名部分是不能省略的,其他组成部分可以省略。
类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。
属性和方法书写规范:修饰符
属性和方法之前可附加的可见性修饰符:
加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。
如果属性或方法具有下划线,则说明它是静态的。
描述信息使用 《《 开头和使用 》》 结尾。
类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法类似。 (Package)
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。 (Inte***ce)
接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口的表示有大概两种方式。具体画法见下例: 常见的关系有:继承(Inheritance),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency)。
其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)。
一般关系表现为继承或实现关系(is a),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。
一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系。
表示方法: 用一个空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。
关联关系:类与类之间的联接,它使一个类知道另一个类的属性和方法。
表示方法:用 实线+箭头, 箭头指向被使用的类。
聚合关系:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。
表示方法:空心菱形+实线+箭头,箭头指向部分。
合成关系:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。
表示方法:实心菱形+实线+箭头,
依赖关系:是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
表示方法:虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量。
uml绘制-如何绘制UML类图
uml类图关系怎么画
类图画法
1、类图的概念
A、显示出类、接口以及它们之间的静态结构和关系
B、用于描述系统的结构化设计
2、类图的元素
类、接口、协作、关系,我们只简单介绍一下这四种元素。
同其他的图一样,类图也可以包含注解和限制。
类图中也可以包含包和子系统,这两者用来将元素分组。
有时候你也可以将类的实例放到类图中。
3、类
A、类是对一组具有相同属性、操作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),见下图。
B、类属性的语法为:
可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”
类操作的语法为:
可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”、包内公有(Package)“~”
参数表:
定义方式:“名称:类型”;若存在多个参数,将各个参数用逗号隔开;参数可以具有默认值;
属性字符串:
在操作的定义中加入一些除了预定义元素之外的信息。
4、接口
在没有给出对象的实现和状态的情况下对对象行为的描述。
一个类可以实现一个或多个接口。
使用两层矩形框表示,与类图的区别主要是顶端有《》显示:
也可以用一个空心圆表示:
5、协作
协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。使用类图来可视化这些类和他们的关系。
6、关系
这篇文章的重点,详见第二部分。
二、类之间的几种关系
1、泛化(Generalization)
A、是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为,描述了一种“isakindof”的关系。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
B、用带空心箭头的实线表示,箭头指向父类,如下图:
2、实现(Realization)
A、是一种类与接口的关系,表示类是接口所有特征和行为的实现。
B、用带空心箭头的虚线表示,箭头指向接口,如下图:
3、关联(Association)
A、一般关联
a、关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法,指明了事物的对象之间的联系,如:老师与学生、丈夫与妻子。关联可以是双向的,也可以是单向的,还有自身关联。
b、用带普通箭头的实心线表示。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,如下图:
B、聚合(Aggregation)
a、它是整体与部分(整体hasa部分)的关系,且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
b、用带空心菱形的实线表示,菱形指向整体,如下图:
C、组合(Composition)
a、它是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
b、用带实心菱形的实线表示,菱形指向整体,如下图:
4、依赖(Dependency)
A、元素A的变化会影响元素B,那么B和A的关系是依赖关系,B依赖A。要避免双向依赖,一般来说,不应该存在双向依赖。关联、实现、泛化都是依赖关系。
B、用带箭头的虚线表示,箭头指向被依赖元素。
5、总结
各种关系的强弱顺序如下:
泛化=实现》组合》聚合》关联》依赖
下面这张UML图,比较形象地展现了各种类图关系:
如何绘制UML顺序图1.在VP官网下载。
2.在VisualParadigm中打开已下载的vpp文件。通过工具栏中的Project》Open可打开这个项目。
3.打开类图Registration,通过对图表内容的查看,我们了解到这里有三个类——RegistrationUI、RegistrationController和User。
4.现在我们想要对在运行时这些类的对象实例间的交互进行建模。由于***类负责控制登记流程,因此添加一个它的子顺序图。将鼠标指针移动到RegistrationController,点击底部右下角的资源图标然后从弹出菜单中选择NewDiagram...。
5.在NewDiagram窗口,选择SequenceDiagram,然后点击Next。保持默认图标名称不变,然后点击OK进行确认。
6.一个空的UML顺序图创建以后,从图表工具栏中选择BoundaryLifeLine(B)。
7.点击图表创建生命线的分界线。
8.输入registrationUI作为生命线名称,然后敲击回车键进行确认。
9.右键点击生命线,然后从弹出菜单中选择electClass》SelectClass...。
10.在SelectClass窗口,选择RegistrationUI类,然后点击OK进行确认。
然后所绘制的生命线就:
11.创建一个控制生命线(ControlLifeLine):registrationController:RegistrationController和一个实体生命线(EntityLifeLine):user:User。不要忘了为它们选择合适的类。所绘制的图表如下图所示:
12.让我们为生命线之间所调用的方法进行建模,将鼠标指针移动到生命线registrationUI。
13.按住资源ResourceCatalog,然后进行拖动。
14.移动到生命线registrationController,然后释放鼠标按钮。
15.从ResourceCatalog中选择Message。
16.这会弹出一个可供你选择的新的序列信息的列表名称。你可以看到这些选项都是classRegistrationController的操作,在其中选择createUser(name,password)。
17.关联生命线registrationController和user,我们可以看到是registrationController创建了user生命线。因此,我们需要创建一条信息来关联这两者。将鼠标指针移动激活生命线registrationController。
18.按住资源ResourceCatalog进行拖动。
19.在生命线user处放开鼠标指针。
20.从ResourceCatalog中选择CreateMessage。
于是信息就被创建好了,所得的图像如下图所示:
21.创建从生命线registrationController到user的信息setName和setPassword,到目前为止,图表如下图所示:
22.您还可以指定操作的参数,以信息createUser(name,password)为例。右键点击它,然后从下拉菜单中选择OpenSpecification...。
23.通过点击按钮上的省略号对行为属性进行,跳转到Actiontype。
24.在CallActionSpecification窗口,点击Add》Text...添加参数。在本例中,点击Add》Text...添加参数peter。再次点击Add》Text...添加参数mypwd。注意,这里的两个参数指的是两个通过操作赋予的参数,如果你再添加第三个参数,它将被自动忽略(因为只定义了两个操作)。
25.点击OK关闭窗口,然后返回图表。添加的参数被呈现在了图表上
如何绘制UML类图?类图的属性和方法是指类本身的属性和行为,类及其属性和方法是在程序设计过程中产生的,类图只是用Visio绘制出来,用于项目团队成员间或项目干系人之间的沟通和交流。例如:如果要设计一个关于销售苹果的程序,苹果就可以看作一个实体(类),其基本属性有颜色、形状、味道、种类等,行为有开花、落果、膨大、成熟等行为。
下面给出绘制苹果类图的方法和步骤:
第一步:启动Visio2010或更高版本,如下图:
第二步:在模板类别中选择“软件和数据库”,进入选择模板窗口,如下图:
第三步:选择“UML模型图”,并用鼠标双击“UML模型图”图标,进入UML绘图窗口,如下图:
第四步:选择“UML静态结构”,如下图:
第五步:按下鼠标左键,拖动“类图标”,到工作区域窗口,如下图:
第六步:双击工作区域窗口的类框图,如下图:
第七步:在UML类属性窗口,可以修改类的名称,添加属性(特性)和操作(方法)
第八步:在UML类属性窗口,修改类名为“苹果”,如下图:
第九步:在UML类属性窗口,选择特性,分别输入苹果的颜色、形状、味道等属性,类型为数据类型,可以选择字符串、整型等,如下图:
第十步:在UML类属性窗口,选择操作,分别输入苹果的行为开花、落果、膨大、成熟方法,样例中方法名称用的中文,实际应用应该采用英文,如下图:
绘制完成的UML类图
VS 生成的类图太简单了,如何生成详细的类图
Thinkphp调用Image类生成缩略图的方法具体分析如下:
Thinkphp的Image类 在ThinkPHP/Extend/Library/ORG/Util/Image.class.php中。
调用方法如下:
?1234567 import("ORG.Util.Image"); $Img = new Image();//实例化图片类对象 $image_path = ’./图片路径’; //若当前php文件在Thinkphp的中APP_PATH路径中 //’./’就是index.php的上一级文件。 //因为APP_PATH是通过index.php定义和加载的。 $image_info = $Img::getImageInfo($image_path);//获取图片信息
getImageInfo方**获取图片的width,height,type,size,mime等信息。
缩略图的生成很简单。
参数需要img_path(原图路径),thumb_name(缩略图名,包含路径),thumb_type(图片类型),Max_width(宽),Max_height(高):
?12 //生成缩略图: $Img::thumb2($img_path,$thumb_name,$thumb_type,$Max_width,$Max_height);
需要注意的是,缩略图的宽和高不能比原图的大,不然就会生成失败
UML中状态图在哪些方面与类图,对象图,用例
标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:
·第一类是用例图
从用户角度描述系统功能,并指出各功能的操作者.
·第二类是静态图(Static
diagram)
包括类图、对象图和包图.其中类图描述系统中类的静态结构.不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作).类图描述的是一种静态关系,在系统的整个生命周期都是有效的.对象图是类图的实例,几乎使用与类图完全相同的标识.他们的不同点在于对象图显示类的多个对象实例,而不是实际的类.一个对象图是类图的一个实例.由于对象存在生命周期,因此对象图只能在系统某一时间段存在.包由包或类组成,表示包与包之间的关系.包图用于描述系统的分层结构.
·第三类是行为图(Behavior
diagram)
描述系统的动态模型和组成对象间的交互关系.其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件.通常,状态图是对类图的补充.在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图.而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动.
·第四类是交互图(Interactive
diagram)
描述对象间的交互关系.其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系.除显示信息交换外,合作图还显示对象以及它们之间的关系.如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图.这两种图合称为交互图.
·第五类是实现图(
Implementation
diagram
).其中
构件图描述代码部件的物理结构及各部件之间的依赖关系.一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件.它包含逻辑类或实现类的有关信息.部件图有助于分析和理解部件之间的相互影响程度.
配置图定义系统中软硬件的物理体系结构.它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性.在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系.
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为.其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制.其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系.它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制.因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类.
怎么用rational rose做类图的实例
使用Rational Rose 创建用例(Use Case)如图:
右击browser框中的Use Case View包,弹出快捷菜单;
选择New——Use Case项;
输入用例的名字;(如出错,可用Rename命令更改)
如果文档窗口不可见,选择屏幕上方的View—— Documentation菜单;
在browser框中选中所需用例;
将光标置于文档框中,输入相应文档。
通过上面的学习我们了解了使用Rational Rose创建图的具体操作步骤,其他几种图的创建方法类似,记住相应的单词就可以了。
用例图:Use Case Diagram
类图:Class Diagram
对象图:Object Diagram
状态图:State Diagram
顺序图:Sequence Diagram
协作图:Collaboration Diagram
组件图:Component Diagram
部署图:Deployment Diagram
活动图:Activity Diagram
uml中的类图
统一建模语言UML
软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。
在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。采用UML作为我国统一的建模语言是完全必要的:首先,过去数十种面向对象的建模语言都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。
统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。
首先,也是最重要的一点,统一建模语言融合了Booch、OMT和OOSE方法中的概念,它是可以被上述及其他方法的使用者广泛采用的一门简单、一致、通用的建模语言。
其次,统一建模语言扩展了现有方法的应用范围。特别值得一提的是,UML的开发者们把并行分布式系统的建模作为UML的设计目标,也就是说,UML具有处理这类问题的能力。
第三,统一建模语言是标准的建模语言,而不是一个标准的开发流程。虽然UML的应用必然以系统的开发流程为背景,但根据我们的经验,不同的组织,不同的应用领域需要不同的开发过程。举个例子来说,开发错综复杂的软件是非常有趣的工作,但开发这种软件与构造严格实时的航空电子系统是大不一样的,后者是性命攸关的大事。因此我们首先把精力集中在设计通用的元模型上(统一不同方法的语义),其次是建立通用的表示法(提供对这些语义的形象化的表达)。虽然UML的开发者们将继续倡导从用例驱动到体系结构为中心最后反复改进、不断添加的软件开发过程,但实际上设计标准的开发流程并不是非常必要的。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
面向对象技术和UML的发展过程可用上图来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
标准建模语言UML的内容
首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。
作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:
·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。
·第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
·第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
·第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。
·第五类是实现图( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
更多文章:
bigdecimal除法精度(请问各位大侠,想实现double保留5位小数,不四舍五入,应该怎么实现)
2026年3月28日 23:00
c***t char 和char(c语言char和c***t char区别)
2026年3月28日 22:40
vb round函数怎么使用(vb 数据四舍五入取到小数点后两位)
2026年3月28日 22:20
使用plsql导入dmp文件(从plsqldev导入oracle dmp数据库步骤!)
2026年3月28日 20:00






