UML类图符号简介

合集下载

UML中类图的一些基本知识

UML中类图的一些基本知识

UML中类图的⼀些基本知识⼀.类类(class)封装了数据和⾏为,是⾯向对象的重要组成部分,他是具有相同操作、属性、关系的对象集合的总称。

在软件运⾏时,类被实例化成对象(object),对象对应某个具体的事物,是类的实例(instance)类图(class diagram)使⽤出现在系统中的不同类来描述系统的静态结构,它⽤来描述不同的类以及它们之间的关系。

在系统分析和设计阶段,类通常可以分为三种,分别是实体类(Entity class)、控制类(Control Class)和边界类(Boundary Class)。

1)实体类:对应系统中的每个实体,它们通常需要保存在永久存储体中,⼀般使⽤数据库或⽂件表来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。

实体类来源于需求说明中的名词,如学⽣、商品等。

2)控制类:⽤于体现应⽤程序的执⾏逻辑,提供相应的业务操作,将控制类抽象出来可以降低界⾯和数据库之间的耦合度。

控制类⼀般是由动宾结构的短语(动词加名词)转化来的名词,⽐如增加商品类,⽤户注册类。

3)边界类:⽤于对外部⽤户和系统之间的交互对象进⾏抽象,主要包括界⾯类,如对话框、窗⼝、菜单。

⼆.类的UML表⽰⼀般是长⽅形(分三格),类名在最上⾯那格,中间是成员变量(属性),最下⾯是成员函数(⾏为)。

属性格式:可见性名称:类型 [ = 缺省值]⾏为格式:可见性名词(参数列表) [ : 返回类型]关于可见性: + public,- private,# protected例如:三.类与类之间的关系在软件系统中,类表⽰孤⽴存在的,类与类之间存在各种关系,UML提供不提供表⽰⽅式。

1.关联关系(Association):最常⽤的⼀种关系,它是⼀种结构化关系,⽤于表⽰⼀类对象和另⼀对象之间有联系。

在UML类图中,⽤实线连接有关联关系的对象所对应的类。

实际的场景:class A有⼀个成员对象b,b的类型是class B。

类图当中各个符号的含义

类图当中各个符号的含义

类图当中各个符号的含义
1 虚线加箭头,表⽰的依赖关系,⼀个类的实现需要借助另⼀个类当中的⽅法。

------->
2 实线加箭头表⽰的是⼀种关联的关系,表⽰两个类都需要调⽤对⽅的⽅法。

———>
3 实线加△,表⽰的泛化的关系,即⼦类继承的⽗类,虚线加△,表⽰实线的关系,⼦类对⽗类的纯虚函数进⾏了实现。

4 空⼼◇加实线表⽰的是⼀种聚合关系,但是聚合类可以单独的存在。

5 实⼼的◇加实线表⽰的是⼀种组合的关系,组合关系下其中的类不能够单独的存在。

总结:箭头表⽰关联的关系,三⾓形表⽰的是继承的关系,菱形表⽰的是包含的关系,即⼀个类当中包含另⼀个类。

UML类图,常用符号小计

UML类图,常用符号小计

UML类图,常用符号小计UML类图,常用符号小计1、首先看该图中的动物矩形框,它代表的是一个类,类图分三层,第一层是类名(动物),第二层是特性(通常我们说的属性或是字段),第三层是操作(通常我们说的方法或行为),注意特性和操作前面的+,“+”代表public,“-“代表private,“#”代表protected。

在这里需要注意一下,动物类的名称是斜体,这就表示该类是抽象类。

同样的鸟类也是抽象类。

2、再看左下角的飞翔,它是一个接口图,与类图的不同就在于,顶部有一个<<interface>>,第一行是接口名称,第二行是接口方法。

接口还有一种表示方法是棒棒糖表示法,如图中的唐老鸭实现讲人话的接口。

3、鸟继承自动物类,鸭继承自鸟类,唐老鸭又继承自鸭类,继承的关系用空心三角形+实线来表示。

4、大雁实现了飞行的接口,接口用虚线+空心三角来实现5、企鹅需要了解天气情况,气候的变化,那么如果一个类“知道”另一个类时,可以用关联(association)。

关联关系要用实线箭头来表示6、一个雁群可以包括很多只雁,但雁并不是雁群的一部分,像这样的关系就满足聚合(aggregation)关系,聚合是一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。

聚合关系用空心菱形+实线表示。

7、合成(composition)是一种强的拥有关系,体现的严格的部分与整的关系,部分和整的生命周期一样。

上图中鸟和翅膀就是合成的关系,其中图中标注的1,2被称为基数。

表明这一端的类可以有多个实例,鸟肯定是两个翅膀喽,一个是没法飞的,哈哈。

8、动物与氧气、水之间是依赖的关系,没有氧气和水,动物(当然也包括人)根本是无法生存的,所以嘛。

不管是动物还是植物还是高级动物人也好,都要依赖于氧气和水的,依赖(dependency)关系,用虚线箭头来表示。

或许还有好多好多其他的常用符号,欢迎朋友们和我一起沟通。

UML各种图详解

UML各种图详解

父用例通常是抽象的。

1一个类和一个接口不同:一个类可以有它形态的真实实例,然而一个接口必须至少有一个类来实现它。

在 UML 2 中,一个接口被认为是类建模元素的特殊化。

因此,接口就象类那样绘制,但是长方形的顶部区域也有文本“interface”。

2》UML 支持的可见性类型的标志3》多重值和它们的表示4》类图之间的关系有:泛化(继承),依赖,关联,聚合/组合。

1.聚合/组合聚合是一种特别类型的关联,用于描述“总体到局部”的关系。

在基本的聚合关系中,部分类的生命周期独立于整体类的生命周期。

举例来说,我们可以想象,车是一个整体实体,而车轮轮胎是整辆车的一部分。

轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。

在这个实例中,Wheel类实例清楚地独立地Car类实例而存在。

然而,有些情况下,部分类的生命周期并不独立于整体类的生命周期-- 这称为合成聚合。

举例来说,考虑公司与部门的关系。

公司和部门都建模成类,在公司存在之前,部门不能存在。

这里Department类的实例依赖于Company类的实例而存在。

·基本聚合(聚合)有聚合关系的关联指出,某个类是另外某个类的一部分。

在一个聚合关系中,子类实例可以比父类存在更长的时间。

为了表现一个聚合关系,你画一条从父类到部分类的实线,并在父类的关联末端画一个未填充棱形。

图中清楚的表明了类Car对象包含了另一类Wheel的4个实例,这两者在概念上是密不可分的,其中的一个类是另一个类的构成成分。

菱形表示“包含”,箭头表示被包含的对象,数字4表示包含的数目。

·组合聚合(组合)组合聚合关系是聚合关系的另一种形式,但是子类实例的生命周期依赖于父类实例的生命周期。

注意:组合关系如聚合关系一样绘制,不过这次菱形是被填充的。

2.依赖依赖可以说是要完成C5里的所有功能,一定要有C6的方法协助才行3.关联可以分为单向关联,双向关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。

UML类图基本元素符号

UML类图基本元素符号

UML类图基本元素符号1. 类(Classes)类包含3个组成部分。

第⼀个是Java中定义的类名。

第⼆个是属性(attributes)。

第三个是该类提供的⽅法。

属性和操作之前可附加⼀个可见性修饰符。

加号(+)表⽰具有公共可见性。

减号(-)表⽰私有可见性。

#号表⽰受保护的可见性。

省略这些修饰符表⽰具有package(包)级别的可见性。

如果属性或操作具有下划线,表明它是静态的。

在操作中,可同时列出它接受的参数,以及返回类型,如下图所⽰: 2. 包(Package)包是⼀种常规⽤途的组合机制。

UML中的⼀个包直接对应于Java中的⼀个包。

在Java中,⼀个包可能含有其他包、类或者同时含有这两者。

进⾏建模时,你通常拥有逻辑性的包,它主要⽤于对你的模型进⾏组织。

你还会拥有物理性的包,它直接转换成系统中的Java包。

每个包的名称对这个包进⾏了惟⼀性的标识。

3. 接⼝(Interface)接⼝是⼀系列操作的集合,它指定了⼀个类所提供的服务。

它直接对应于Java中的⼀个接⼝类型。

接⼝既可⽤下⾯的那个图标来表⽰(上⾯⼀个圆圈符号,圆圈符号下⾯是接⼝名,中间是直线,直线下⾯是⽅法名),也可由附加了<<interface>>的⼀个标准类来表⽰。

通常,根据接⼝在类图上的样⼦,就能知道与其他类的关系。

关 系:1. 依赖(Dependency)实体之间⼀个“使⽤”关系暗⽰⼀个实体的规范发⽣变化后,可能影响依赖于它的其他实例。

更具体地说,它可转换为对不在实例作⽤域内的⼀个类或对象的任何类型的引⽤。

其中包括⼀个局部变量,对通过⽅法调⽤⽽获得的⼀个对象的引⽤(如下例所⽰),或者对⼀个类的静态⽅法的引⽤(同时不存在那个类的⼀个实例)。

也可利⽤“依赖”来表⽰包和包之间的关系。

由于包中含有类,所以你可根据那些包中的各个类之间的关系,表⽰出包和包的关系。

2. 关联(Association)实体之间的⼀个结构化关系表明对象是相互连接的。

UML类图——精选推荐

UML类图——精选推荐

UML类图类图类图⽤于表⽰类的静态内容以及它们之间的关系,在其中可以显⽰出类的成员变量和成员函数,以及类之间的继承和引⽤关系。

类的UML表⽰是⼀个长⽅形,垂直地分为三个区,顶部区域显⽰类的名字,中间的区域列出类的属性,底部的区域列出类的操作。

分类类interfaceutilityabstract(斜体表⽰)可见性+ public# protected- private~ package类的属性类的属性节在分隔线上列出每⼀个类的属性。

属性节是可选择的,要是⼀⽤它,就包含类的列表显⽰的每个属性。

在业务类图中,属性类型通常与单位相符,这对于图的可能读者是有意义的。

然⽽⽤于⽣成代码的类图,要求类的属性类型必须限制在由程序语⾔提供的类型之中,或包含于在系统中实现的模型的类型之中。

name : attribute typeflightNumber : Integer属性关联类型属性名称属性类型flightNumber IntegerdepartureTime DateflightDuration Minutes属性默认值name : attribute type = default value类的操作类的操作记录在类图长⽅形的第三个区域中,它也是可选择的。

和属性⼀样,类的操作以列表格式显⽰,每个操作在它⾃⼰线上。

操作使⽤下列记号表现name(parameter list) : type of value returned操作名称返回参数值类型N/AdelayFlightName TypenumberOfMinutes MinutesgetArrivalTime N/A Date继承关系继承指的是⼀个⼦类继承⼀个⽗类的功能,并增加它⾃⼰的新功能。

为了在⼀个类图上建模继承,从⼦类拉出⼀条闭合的单键头(或三⾓形)的实线指向⽗类。

在上图中,继承关系由每个⽗类的单独的线画出,这是在IBM Rational Rose和IBM Rational XDE中使⽤的⽅法。

UML图--类图

UML图--类图

UML图--类图统⼀建模语⾔(Unified Modeling Language)分为:⽤例图,类图,对象图,组合结构图,活动图,顺序图,通信图,定时图,组件图,部署图类图在UML类图中,类⼀般由三部分组成:•类名:每个类都必须有⼀个名字,类名是⼀个字符串。

•属性(Attributes):属性是指类的性质,即类的成员变量。

类可以有任意多个属性,也可以没有属性。

•操作(Operations):操作是类的任意⼀个实例对象都可以使⽤的⾏为,操作是类的成员⽅法。

关联关系•关联关系(Association)是类与类之间最常⽤的⼀种关系,它是⼀种结构化关系,⽤于表⽰⼀类对象与另⼀类对象之间有联系。

•在UML类图中,⽤实线连接有关联的对象所对应的类,在使⽤Java、C#和C++等编程语⾔实现关联关系时,通常将⼀个类的对象作为另⼀个类的属性。

•在使⽤类图表⽰关联关系时可以在关联线上标注⾓⾊名。

双向关联单向关联⾃关联•在系统中可能会存在⼀些类的属性对象类型为该类本⾝,这种特殊的关联关系称为⾃关联。

public class Node{private Node subNode;……}ü重数性关联•重数性关联关系⼜称为多重性关联关系(Multiplicity),表⽰⼀个类的对象与另⼀个类的对象连接的个数。

在UML中多重性关系可以直接在关联直线上增加⼀个数字表⽰与之对应的另⼀个类的对象的个数。

表⽰⽅式多重性说明1..1表⽰另⼀个类的⼀个对象只与⼀个该类对象有关系1..*表⽰另⼀个类的⼀个对象与⼀个或多个该类对象有关系0..1表⽰另⼀个类的⼀个对象没有或只与⼀个该类对象有关系m..n表⽰另⼀个类的⼀个对象与最少m、最多n个该类对象有关系 (m<=n)聚合关系•聚合关系(Aggregation)表⽰⼀个整体与部分的关系。

通常在定义⼀个整体类后,再去分析这个整体类的组成结构,从⽽找出⼀些成员类,该整体类和成员类之间就形成了聚合关系。

UML类图中的符号解释

UML类图中的符号解释

UML类图中的符号解释在UML的定义中,描述类和对象之间的关系,包括以下⼏种⽅式:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和实现(Realization)。

现分别说明如下:1. 依赖(Dependency)在uml中,“依赖”表⽰为带箭头的虚线,箭头指向被依赖的元素。

是类与类之间的连接,表⽰为⼀个类依赖于另⼀个类的定义,其中⼀个类的变化将影响另⼀个类。

依赖总是单向的,不应该存在双向依赖,这⼀点要特别注意。

更具体的说,依赖可以理解为:⼀个类(A)对不在其实例作⽤域内的另⼀个类或对象(B)的任何类型的引⽤。

⼤致包含以下⼏种情况:(1)局部变量;(2)⽅法的参数;(3)静态⽅法的调⽤;下⾯是依赖关系的uml⽰意图:2. 关联(Association)在uml中,关联表⽰为带箭头的实线。

关联可以是单向的,也可以是双向的。

如果是双向关联,则可以表⽰为双向箭头,或者没有箭头。

⼀般来说,系统设计应表现为单向关联,这样利于维护。

⼀个关联可以附加“多重性”的修饰符,表⽰两个类之间的数量关系。

关联可以理解为:⼀个类(A)持有另⼀个类或对象(B)。

具体表现为:(1)成员变量下⾯是关联关系的uml⽰例图:上⾯的关联表⽰,⼀个Employee持有(has)0个或多个TimeCard。

3. 聚合(Aggregation)在uml中,聚合关系表⽰为空⼼的菱形箭头线。

聚合关系是关联关系的⼀种,表⽰⼀种“强”关联关系。

对⽐与关联关系,两个类是处于同⼀个层次的。

⽽聚合关系,两个类处于不同的层次,强调了⼀个整体/局部的关系。

例如⼀辆汽车有⼀个引擎,4个轮胎。

在聚合关系中,体现了⼀种“弱拥有”的概念。

也就是说,对象A拥有对象B,但B并不是A的组成部分。

更具体的表现为,如果A由B聚合⽽成,则A包含B的全局对象,但B对象可以不在A对象创建时创建。

UML各种图例—用例图、类图、状态图、包图、协作图、顺序图

UML各种图例—用例图、类图、状态图、包图、协作图、顺序图

UML各种图例——用例图、类图、状态图、包图、协作图、顺序图面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.∙决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.每个类图包括类,关联和多样性表示.方向性和角色是为了使图示得更清楚时可选的项目.包和对象图为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型. dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.。

UML的9种图例的定义、用途、画法总结

UML的9种图例的定义、用途、画法总结

1UML 的9种图例的总结一、 用例图1、 定义用例定义:用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。

(这是UML 对用例的正式定义,可以这样去理解,用例是参与者想要系统做的事情,用例在画图中用椭圆来表示,椭圆下面附上用例名称)。

用例图定义:由参与者(Actor )、用例(Use Case )以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。

2、 用途用例图(User Case )是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。

3、 组成元素以及元素之间的关系说明用例图由参与者(Actor )、用例(Use Case )、系统边界(用矩形表示—注明系统名称)、箭头组成,用画图的方法来完成。

参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。

因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。

还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。

系统边界是用来表示正在建模系统的边界。

边界内表示系统的组成部分,边界外表示系统外部。

系统边界在画图中用方框来表示,同时附上系统的名称,参与者画在边界的外面,用例画在边界里面。

因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。

箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。

箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。

元素之间的关系:用例图中包含的元素除了系统边界、角色和用例,另外就是关系。

关系包括用例之间的关系,角色之间的关系,用例和角色之间的关系。

角色之间的关系:角色之间的关系。

UML类图符号简介

UML类图符号简介

1. 类(Class):使用三层矩形框表示。

第一层显示类的名称,如果是抽象类,则就用斜体显示。

第二层是字段和属性。

第三层是类的方法。

注意前面的符号,…+‟表示public,…-‟表示private,…#‟表示protected。

2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示。

第一行是接口名称。

第二行是接口方法。

3. 继承类(extends):用空心三角形+实线来表示。

4. 实现接口(implements):用空心三角形+虚线来表示5. 关联(Association):用实线箭头来表示,例如:燕子与气候6. 聚合(Aggregation):用空心的菱形+实线箭头来表示聚合:表示一种弱的…拥有‟关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工组合(Composition):用实心的菱形+实线箭头来表示组合:部分和整体的关系,并且生命周期是相同的。

例如:人与手7. 依赖(Dependency):用虚线箭头来表示,例如:动物与氧气8. 基数:连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。

如果一个类可能有无数个实例,则就用…n‟来表示。

关联、聚合、组合是有基数的类之间的关系UML把类之间的关系分为以下5种.● 关联:类A与类B的实例之间存在特定的对应关系● 依赖:类A访问类B提供的服务● 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成● 泛化:类A继承类B● 实现:类A实现了B接口关联(Association)关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。

按照类之间的数量对比,关联可以分为以下三种:● 一对一关联● 一对多关联● 多对多关联注意:关联还要以分为单向关联和双向关联依赖(Dependency)依赖指的是类之间的调用关系,在UML中用带虚线的箭头表示。

UML类图符号 各种关系说明以及举例

UML类图符号 各种关系说明以及举例

UML类图符号各种关系说明以及举例UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。

∙依赖(Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关系,但由于其有更特殊的用途,所以被单独描述。

uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。

∙泛化(Generalization):通常所说的继承(特殊个体is kind of 一般个体)关系,不必多解释了。

uml中用带空心箭头的实线表示Generalization关系,箭头指向一般个体。

∙实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。

这个关系最常用于接口。

uml中用空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。

∙关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。

uml中用实线表示Association关系,箭头指向被依赖元素。

∙聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体has a 部分)的关系。

uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。

∙组合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。

如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。

uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。

其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。

UML类图简介[1]

UML类图简介[1]

UML 类图简介一、UML简介UML(Unified Modeling Language)即统一建模语言,是OMG(Object Management Group)发表的图标式软件设计语言。

UML的功能可视化:使用图表的形式来表现业务关系或者物理关系,可以促进对问题的理解和解决。

说明: UML提供了一种通用的、精通的、没有歧义的通信机制进行。

建造: UML通过自己的语法规则使得可以通过使用建模工具软件将设计模式映射到一种语言上。

建文档:使用UML进行设计可以同时产生系统设计文档。

UML包括:用例图(Use case diagrams)类图(Class diagrams)序列图(Sequence diagrams)合作图(Collaboration diagrams)状态图(Statechart diagrams)活动图(Activity diagrams)构件图(Component diagrams)部署图(Deployment diagrams)(蓝色为较重要并且常用的图)类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。

类图最基本的元素是类或者接口。

二、类图1. 类(Class)一般包含3个组成部分。

第一个是类名;第二个是属性(attributes);第三个是该类提供的方法(类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。

类名部分是不能省略的,其他组成部分可以省略。

类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。

属性和方法书写规范:修饰符[描述信息] 属性、方法名称[参数] [:返回类型|类型] 属性和方法之前可附加的可见性修饰符:加号(+)表示public;减号(-)表示private;#号表示protected;省略这些修饰符表示具有package(包)级别的可见性。

如果属性或方法具有下划线,则说明它是静态的。

UML的基本符号与意义解析

UML的基本符号与意义解析

UML的基本符号与意义解析UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的符号和图形表示方法,用于描述系统的结构、行为和交互。

在软件开发过程中,UML被广泛应用,它可以帮助开发者更好地理解和设计系统,提高开发效率和质量。

本文将对UML的基本符号进行解析,探讨其意义和用途。

1. 类图符号类图是UML中最常用的图形表示方法之一,用于描述系统中的类、接口、关系和属性。

在类图中,类被表示为矩形框,框中包含类的名称、属性和方法。

类与类之间的关系可以用不同的箭头和线条表示,如继承关系、关联关系、聚合关系和依赖关系。

这些关系的表示方法不仅可以帮助开发者理清类之间的关系,还可以指导系统的设计和实现。

2. 顺序图符号顺序图是描述对象之间交互的图形表示方法,它展示了对象之间的消息传递和时间顺序。

在顺序图中,对象被表示为矩形框,框中包含对象的名称。

对象之间的消息传递可以用实线箭头表示,箭头上方标注了消息的名称和参数。

顺序图可以帮助开发者理解系统中对象之间的交互过程,分析系统的行为和逻辑。

3. 用例图符号用例图是描述系统功能和用户需求的图形表示方法,它展示了系统的用例、参与者和其之间的关系。

在用例图中,用例被表示为椭圆形,椭圆内包含用例的名称。

参与者被表示为矩形框,框中包含参与者的名称。

用例与参与者之间的关系可以用实线箭头表示,箭头上方标注了关系的名称。

用例图可以帮助开发者理解系统的功能和用户需求,指导系统的设计和开发。

4. 活动图符号活动图是描述系统流程和行为的图形表示方法,它展示了系统中的活动、决策和并发。

在活动图中,活动被表示为矩形框,框中包含活动的名称。

决策被表示为菱形,菱形内包含决策的条件。

并发被表示为垂直虚线,虚线上方标注了并发的名称。

活动图可以帮助开发者理解系统的流程和行为,优化系统的性能和效率。

5. 状态图符号状态图是描述系统状态和状态转换的图形表示方法,它展示了系统中的状态、事件和转换。

UML类图各符号含义

UML类图各符号含义

UML类图各符号含义类图基本符号可拆分为虚线,箭头,实线,空⼼右三⾓,实⼼右三⾓,空⼼菱形和实⼼菱形。

由这些基本的图形进⾏组合构成了类图的基本符号。

这⾥要注意这⼏个符号的顺序,代表了类与类之间关系的耦合程度。

越向右耦合度越⾼。

其中虚线+箭头是表⽰即依赖的关系依赖关系: 是⼀种使⽤的关系, 即⼀个类的实现需要另⼀个类的协助, 所以要尽量不使⽤双向的互相依赖.指C5可能要⽤到C6的⼀些⽅法,也可以这样说,要完成C5⾥的所有功能,⼀定要有C6的⽅法协助才⾏。

C5依赖于C6的定义,⼀般是在C5类的头⽂件中包含了C6的头⽂件。

ROSE对依赖关系不产⽣属性。

形式上⼀般是A中的某个⽅法把B的对象作为参数使⽤(假设A依赖于B)。

实线+箭头表⽰关联的关系关联关系: 是⼀种拥有的关系, 可以分为双向关联, 单向关联和⾃⾝关联.双向关联是指双⽅都拥有对⽅的引⽤, 都可以调⽤对⽅的公共属性和⽅法.单向关联是指只有某⼀⽅拥有另⼀⽅的引⽤, 这样只有拥有对⽅者可以调⽤对⽅的公共属性和⽅法.⾃⾝关联是指拥有⼀个⾃⾝的引⽤.C3->C4:表⽰相识关系,指C3知道C4,C3可以调⽤C4的公共属性和⽅法。

没有⽣命期的依赖。

⼀般是表⽰为⼀种引⽤。

实线+空⼼右三⾓表⽰的是泛化,即类的继承关系。

如果两个类存在泛化的关系时就使⽤,例如⽗和⼦,动物和⽼虎,植物和花等。

泛化关系: 是⼀种继承关系, 表⽰⼀般与特殊的关系, 它指定了⼦类如何特化⽗类的所有特征和⾏为.实现(Realization)实现关系: 是⼀种类与接⼝的关系, 表⽰类是接⼝所有特征和⾏为的实现泛化和实现的区别就在于⼦类是否继承了⽗类的实现, 如有继承则关系为泛化, 反之为实现.实线+空⼼菱形表⽰的是聚合的关系聚合:表⽰C9聚合C10,但是C10可以离开C9⽽独⽴存在(独⽴存在的意思是在某个应⽤的问题域中这个类的存在有意义。

)实线+实⼼菱形则表⽰组合的关系组合(也有⼈称为包容):⼀般是实⼼菱形加实线箭头表⽰,如上图所⽰,表⽰的是C8被C7包容,⽽且C8不能离开C7⽽独⽴存在。

UML类图详解

UML类图详解

89/103
9包
90/103
9.1 什么是包
91/103
9.1 什么是包
92/103
9.1 什么是包
93/103
9.2 包的版型
94/103
9.2 包的版型
95/103
9.3 包的关系
96/103
9.3 包的关系
97/103
9.3 包的关系
98/103
9.4 包图
99/103
9.4 包图
53/103
边界对象只能与控制对象和用例的参与者进行交互(即 不能直接访问实体对象)。 实体对象只能与控制对象进行交互。 控制类对象可以和边界类对象交互,也可以和实体对象 交互,但不能和用例的参与者直接进行交互。
5 用例分析
54/103
5 用例分析
55/103
6 绘制类图
56/103
6 绘制类图
6.5 实例
69/103
6.5 实例
70/103
6.5 实例
71/103
6.5 实例
72/103
6.5 实例
73/103
6.5 实例
74/103
6.5 实例
75/103
6.5 类图应用说明
76/103
6.5 类图应用说明
77/103
6.5 类图应用说明
78/103
7 复合结构图
44/103
5 用例分析
45/103
5 用例分析
46/103
5 用例分析
47/103
5 用例分析
48/103
5 用例分析
49/103
5 用例分析
50/103
5 用例分析
51/103

UML详解-类图(格式整齐)

UML详解-类图(格式整齐)
注释
{
约束}
高级材料
15
类的关系
四类基本关系:
关联(association) 泛化(generalization) 实现(realization) 依赖(dependency)
高级材料
16
关联名
关联
导航性(navigability)
从一个类(对象)可以找到另外一个,反过来却不 可。
2007-10-8
高级材料
19
关联
关联约束(constraint) /依赖(dependency)
高级材料
20
关联
聚合(aggregation)
整体和部分的关系,个体可以属于多个整体;
组合(composition)
整体和部分的关系,个体唯一属于一个整体;
高级材料
21
自反关联
关联
高级材料
22
关联
派生(Derived)关联
高级材料
88
操作
标准格式:
[可见性] 操作名 [(参数列表)] [:返回类型][{特性}]
例:
+ display() # create() -attachXWindow(xwin:XWindowPtr) + getname() : String
高级材料
9
类图
❖ UML用类图(class diagram)表示类、接 口及其关联。
类图
高级材料
1
类的定义 类图
类图的阅读 类的关系 高级概念
本章内容
2007-10-8
Copy R高igh级t X材.S料hi, DHU
22
面向对象思想
类的定义
高级材料

第4章 UML的符号

第4章  UML的符号

20
状态: 状态: 历史状态
Recording start H Pause pause Pre-process Sampling
Compress stop Store
21
状态: 状态:并发子状态
22
跃迁
跃迁是两个状态间的一种关系,它表示对象在第一个 状态将执行某些动作,当规定的事件发生或满足规定 的条件时,对象进入第二个状态。 跃迁表示了从活动(或动作)到活动(或动作)的控 制流的传递。 跃迁由以下部分组成:
<<interface>> Interface Interface
Interface
14
接口
接口与类之间的关系
KeyListener
UserInterface MouseListener
HandleEvent
ActionListener
15

包是一个用来将模型单元分组的通用机制。 包可以用在任何一个UML图中,但一般多用于 用例图和类图,它就象文件夹一样,可以将模 型元素分组隐藏,从而简化UML图,使得UML 图更易理解。
ClassName attribute : AttributeType = initialValue operation(arg : ArgumentType) : ReturnType
7

边界类
边界类处理系统环境与系统内部之间的通信,边界 类为用户或另一个系统(即参与者)提供了接口。 边界类的UML符号表示
<<boundary>> Class Class
Class
8

实体类
实体类是模拟必须被存储的信息和其关联行为的类。 实体类的UML符号表示

UML图 符号的意义

UML图 符号的意义

UML图符号的含义类(Class)类(图A)是对象的蓝图,其中包含3个组成部分。

第一个是Java中定义的类名。

第二个是属性(attributes)。

第三个是该类提供的方法。

属性和操作之前可附加一个可见性修饰符。

加号(+)表示具有公共可见性。

减号(-)表示私有可见性。

#号表示受保护的可见性。

省略这些修饰符表示具有package(包)级别的可见性。

如果属性或操作具有下划线,表明它是静态的。

在操作中,可同时列出它接受的参数,以及返回类型,如图A的“Java”区域所示。

图A包(Package)包(图B)是一种常规用途的组合机制。

UML中的一个包直接对应于Java中的一个包。

在Java中,一个包可能含有其他包、类或者同时含有这两者。

进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。

你还会拥有物理性的包,它直接转换成系统中的Java包。

每个包的名称对这个包进行了惟一性的标识。

图B接口(Interface)接口(图C)是一系列操作的集合,它指定了一个类所提供的服务。

它直接对应于Java中的一个接口类型。

接口既可用图C的那个图标来表示,也可由附加了<<interface>>的一个标准类来表示。

通常,根据接口在类图上的样子,就能知道与其他类的关系。

图C关系后面的例子将针对某个具体目的来独立地展示各种关系。

虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。

依赖(Dependency)实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。

更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。

其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。

也可利用“依赖”来表示包和包之间的关系。

由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

UML类图符号简介
1. 类(Class):使用三层矩形框表示。

第一层显示类的名称,如果是抽象类,则就用斜体显示。

第二层是字段和属性。

第三层是类的方法。

注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示。

第一行是接口名称。

第二行是接口方法。

3. 继承类(extends):用空心三角形+实线来表示。

4. 实现接口(implements):用空心三角形+虚线来表示
5. 关联(Association):用实线箭头来表示,例如:燕子与气候
6. 聚合(Aggregation):用空心的菱形+实线箭头来表示
聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如:公司和员工
组合(Composition):用实心的菱形+实线箭头来表示
组合:部分和整体的关系,并且生命周期是相同的。

例如:人与手
7. 依赖(Dependency):用虚线箭头来表示,例如:动物与氧气
8. 基数:连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。

如果一个类可能有无数个实例,则就用‘n’来表示。

关联、聚合、组合是有基数的
类之间的关系
UML把类之间的关系分为以下5种.
● 关联:类A与类B的实例之间存在特定的对应关系
● 依赖:类A访问类B提供的服务
● 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成
● 泛化:类A继承类B
● 实现:类A实现了B接口
关联(Association)
关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。

按照类之间的数量对比,关联
可以分为以下三种:
● 一对一关联
● 一对多关联
● 多对多关联
注意:关联还要以分为单向关联和双向关联
依赖(Dependency)
依赖指的是类之间的调用关系,在UML中用带虚线的箭头表示。

如果类A访问类B 的属性或者方法,
或者类A负责实例化类B,那么可以说类A依赖类B。

和关联关系不同,无须在类A 中定义类B类型的属性。

聚集(Aggregation)
聚集指的是整体与部分之间的关系,在UML中用带实线的菱形箭头表示。

聚集关系还可以分为两种类型:
● 被聚集的子系统允许被拆卸和替换,这是普通聚集关系。

● 被聚集的子系统不允许被拆卸和替换,这种聚集称为强聚集关系,或者组成关系。

注:强聚集(组成)可用带实线的实心菱形箭头表示。

泛化(Generalization)
泛化指的是类之间的继承关系,在UML中用带实线的三角形箭头表示。

实现(Realization)
实现指的是类与接口之间的关系,在UML中用带虚线的三角形箭头表示。

以下是GOF设计模式中的描述:
箭头和三角表示子类关系。

虚箭头线表示一个类实例化另一个类的对象,箭头指向被实例化的对象的类。

普通的箭头线表示相识(acquaintance也叫关联或者引用),意味着一个对象仅仅知道另一个对象。

相识的对象可能请求彼此的操作,但他们不为对方负责,它只标示了对象间较松散的耦合关系。

尾部带有菱形的箭头线表示聚合(aggregation),意味着一个对象拥有另一个对象或者对另一个对象负责。

一般我们称一个对象包含另一个对象,或者是另一个对象的一部分。

聚合意味着聚合对象和其所有者具有相同的生命周期。

抽象类名以斜体表示,抽象操作也以斜体表示。

图中可以包括实现操作的伪代码,代码将出现在带有褶角的框中,并用虚线将该褶角框与代码所实现的操作相连。

图一:
此实线箭头表示, 继承, 从一个非接口类的继承.
图二:
那条连线表示双向关联:
看左边, Flight扮演assignedFights角色, 有0到1个Plane跟他关联(一个航班要么取消了没有飞机,要么只能对应一架飞机)
看右边, Plane扮演着assignedPlane角色, 有0到多个Flight跟他关联(一个飞机可以参与多个航班, 也可以停在仓库里面烂掉)
图三:
那条连线表示单向关联:
基本的意义跟上面的是一样的, 唯一不同的是, 右边的类对左边的类是一无所知的. 图四:
那个大的包围的框叫软件包, 名字为Account, 就一些可以归类的类包装起来.
图五:
如此虚线的箭头表示实现一个接口.
图六:
水平的连线还是表示上面所说的关联, 但从关联连线中引伸出来的虚线, 这意味当Flight类的一个实例关联到FrequentFlyer 类的一个实例时,将会产生MileageCredit 类的一个实例.
图七:
带菱形的箭头表示基本聚合, 由上图知道, Wheel类扮演wheels角色, 聚合4个到Car对象里面去,
空心的菱形表示Wheel对象并不随Car的创建而创建,销毁而销毁.
图八:
意义和上面类似, 唯一不同的是, 实心菱形表示Department对象随Company对象的创建而创建,销毁而销毁.
图九:。

相关文档
最新文档