在底部区域中我们可以看到Flight类有两个操作【

2019-09-14 14:19 来源:未知

图 10:Professor类和Student类完毕Person接口的类图实例

越来越多的涉嫌 
在上头,作者谈谈了双向关联和单向关系。以往,我将会介绍剩下的三类别型的关联。

在底部区域中我们可以看到Flight类有两个操作【七龙珠超宇宙2】。只能1个

七龙珠超宇宙2 1

含义

七龙珠超宇宙2 2

在底部区域中我们可以看到Flight类有两个操作【七龙珠超宇宙2】。在类图上显得全数暗中同意值的特定属性,不经常是卓有功效的(举个例子,在银行账户应用程序中,一个新的银行账户会以零为开端值)。UML 标准允许在属性列表节中,通过应用如下的标识作为暗许值的标志:

3

*

接口 
在本文的前方,作者建议你以类来考虑分类器。事实上,分类器是四个极度相似的定义,它回顾数据类型和接口。

三个类和八个接口分歧:二个类能够有它造型的诚实实例,可是二个接口必须至少有二个类来兑现它。在 UML 第22中学,一个接口被感觉是类建立模型成分的特殊化。由此,接口就象类那样绘制,但是长方形的最上端区域也可能有文件“interface”,如图 10 所示。 5

七龙珠超宇宙2 3

0个或三个

http://www.ibm.com/developerworks/cn/rational/rationaledge/content/feb05/bell/

类的 UML 表示是四个圆柱形,垂直地分为八个区,如图 1 所示。最上端区域呈现类的名字。中间的区域列出类的个性。尾部的区域列出类的操作。当在二个类图上画贰个类成分时,你无法不要有下面的区域,上面包车型地铁一个区域是可挑选的(当图描述仅仅用于展示分类器间事关的高层细节时,下边包车型地铁三个区域是不必要的)。图 1 展现叁个航空线班机怎么着作为 UML 类建立模型。正如大家所能见到的,名字是 Flight,大家可以在中等区域看到Flight类的3个属性:flightNumber,departure提姆e 和 flightDuration。在底部区域中大家得以看来Flight类有多少个操作:delayFlight 和 getArrivalTime。

聚合 
聚拢是一种特意类型的涉及,用于描述“总体到有个别”的关联。在着力的会集关系中, 部分类 的生命周期独立于 整体类 的生命周期。

表示

  • 假定建立模型者决定在大纺锤形中展现软件包的分子,则具有的那一个成员 4 亟需被放置在正方形里面。别的,全数软件包的名字供给放在软件包的相当小正方形之内(如图 8 的展现)。

  • 设若建立模型者决定在大的圆锥形之外呈现软件包成员,则装有将会在图上显示的成员都亟待被放到星型之外。为了显得属于软件包的分类器属于,从各类分类器画一条线到个中有加号的圆圆,那些圆周粘附在软件包之上(图9)。

图 7: 单向关系叁个实例:OverdrawnAccountsReport 类 BankAccount 类,而 BankAccount 类则对事关一窍不通。

类名

基础

表 3: 多种值和它们的象征

下边包车型大巴表 2 中Flight类操作的炫彩。

5到15个

在图中留存三种艺术表示软件包。并从未法则必要利用哪一类标志,除了用你个人的推断:哪类更便利阅读你画的类图。两种办法都以由贰个一点都不大的圆柱形(用于固定)嵌套在二个大的星型中初始的,如图 8 所示。可是建立模型者必需决定包的积极分子如何表示,如下:

在底部区域中我们可以看到Flight类有两个操作【七龙珠超宇宙2】。0..1

类操作记录在类图圆柱形的第八个(最低的)区域中,它也是可挑选的。和总体性同样,类的操作以列表格式展现,每一个操作在它自个儿线上。操作使用下列记号表现:

七龙珠超宇宙2 4

当文书档案化操作参数时,你大概行使三个可选用的提示器,以显示参数到操作的输入参数、或输出参数。那一个可挑选的提醒器以“in”或“out”出现,如图3中的操作区域所示。一般的话,除非将选择一种早先时代的顺序编制程序语言,如Fortran ,那些提醒器恐怕会具备扶助,不然它们是不须要的。不过,在 C++和Java中,全体的参数是“in”参数,并且遵照UML规范,既然“in”是参数的私下认可类型,大许多人将会遗漏输入/输出提示器。

图 6:在一个Flight类和Plane类之间的双向关联的实例

关联 
当你系统建立模型时,特定的目的间将会互相关系,并且那一个涉及本人须求被清楚地建立模型。有各样关系。在这一有的中,我将谈判论它们中的三个-- 双向的关系和单向的涉嫌,并且作者将会在Beyond the basics部分研讨剩下的二种关系类型。请留神,关于曾几何时该应用每类别型涉及的详实座谈,不属于本文的限定。相反的,笔者将会把第一聚焦在种种关系的用途,并表明怎样在类图上画出涉及。

图 1: Flight类的类图

继承

在作业类图中,属性类型一般与单位符合,那对于图的可能读者是有含义的(举个例子,分钟,卢比,等等)。然则,用于转移代码的类图,必要类的习性类型必得界定在由程序语言提供的种类之中,或带有于在系统中落实的、模型的品类之中。

类操作列表

比方来讲,大家可以虚拟, 是四个完整实体,而 车轮 轮胎是整辆车的一部分。轮胎能够在安置到车时的前几个星期被创设,并放置于商旅中。在这一个实例中,Wheel类实例清楚地独自地Car类实例而留存。但是,有些情形下, 部分 类的生命周期并 在底部区域中我们可以看到Flight类有两个操作【七龙珠超宇宙2】。 独立于 整体 类的生命周期

那称之为合成聚合。譬释尊说,思量公司与部门的涉嫌。 集团和机构 都建立模型成类,在百货店存在以前,部门无法存在。这里Department类的实例重视于Company类的实例而存在。

让大家更进一竿研究基本聚合和烧结聚合。

着力聚合 
有汇聚关系的涉及提出,有些类是另外某些类的一部分。在三个汇集关系中,子类实例能够比父类存在越来越长的光阴。为了展现贰个群集关系,你画一条从父类到部分类的实线,并在父类的关联末端画二个未填充棱形。图 12 突显车和轮胎间的联谊关系的例证。

七龙珠超宇宙2 5

图 12: 叁个汇聚关联的例证

构成聚合 
重组聚合关系是汇合关系的另一种格局,可是子类实例的生命周期注重于父类实例的生命周期。在图第13中学,彰显了Company类和Department类之间的三结合关系,注意组合关系如聚合关系同样绘制,不过本次菱形是被填充的。

七龙珠超宇宙2 6

图 13: 一个结合关系的例子

在图 第13中学的关系建立模型中,一个Company类实例至少总有二个Department类实例。因为关乎是整合关系,当Company实例被移除/销毁时,Department实例也将电动地被移除/销毁。组合聚合的另贰个生死攸关职能是有个别类只可以与父类的实例相关(比方来讲,大家例子中的Company类)。

反射关联 
今天大家已经探究了有着的关联类型。就像是您或者注意到的,大家的全部例子已经体现了多少个分裂类之间的涉嫌。不过,类也得以运用反射关联与它自个儿相关联。起始,那说不定没有趣,不过切记,类是抽象的。图 14 显示三个Employee类如何通过manager / manages剧中人物与它自个儿有关。当四个类关联到它本人时,那并不意味类的实例与它本身有关,而是类的贰个实例与类的另贰个实例相关。

七龙珠超宇宙2 7

图 14:多个反光关联关系的实例

图 14 描绘的关系说可瑞康(Karicare)(Karicare)个Employee实例恐怕是其余四个Employee实例的经纪。但是,因为“manages”的涉及剧中人物有 0..*的多种性描述;三个雇员只怕不受任何另外雇员管理。

可见性 
在面向对象的宏图中,存在属性及操作可知性的符号。UML 识别各个类型的可知性:public,protected,private及package。

UML 标准并不供给品质及操作可知性必得出示在类图上,但是它供给为各样属性及操作定义可知性。为了在类图上的显得可知性,放置可知性标识于属性或操作的名字以前。纵然UML 内定多种可知性类型,可是事实上的编制程序语言大概扩张额外的可知性,或不帮衬UML 定义的可知性。表4展现了 UML 帮忙的可知性类型的分裂标记。

表 4:UML 协理的可知性类型的标记

标志 可见性类型
+ Public
# Protected
- Private
~ Package

当今,让大家看多个类,以表达属性及操作的可知性类型。在图 15中,全部的性质及操作都以public,除了 updateBalance 操作。updateBalance 操作是protected。

七龙珠超宇宙2 8

图 15:一个 BankAccount 类表达它的质量及操作的可知性




回页首

UML 2 补充

既然如此大家已经覆盖了基础和高端核心,大家将覆盖一些由UML 1. x日增的类图的新标记。

实例 
当三个系统结创设立模型时,显示例子类实例一时候是有效的。为了这种结创设模,UML 2 提供 实例规范 成分,它显得在系统中选拔例子(或具体)实例的值得注意的音讯。

实例的标志和类同样,可是代表最上部区域中只有的类名,它的名字是经过拼接的:

Instance Name : Class Name

举个例子来说来讲:

Donald : Person

因为显示实例的目标是呈现值得注意的或相关的音讯,没须求在您的模子中隐含全部实体性质及操作。相反地,仅仅突显感兴趣的性质及其值是完全适用的。如图16所陈述。

七龙珠超宇宙2 9

图 16:Plane类的贰个实例例子(只浮现感兴趣的属性值)

而是,仅仅呈现有些实例而从不它们的涉嫌不太实用;由此,UML 2 也同目的在于实体层的涉及/关联建立模型。绘制关联与一般的类关系的条条框框平等,除了在建立模型关联时有一个叠合的要求。附加的限量是,关联关系必需与类图的涉嫌相平等,况且关乎的剧中人物名字也不可能不与类图相平等。它的二个事例展现于图 17 中。在那些事例中,实例是图 6 中类图的例证实例。

七龙珠超宇宙2 10

图 17:图 6 中用实例替代类的例子

图 17 有Flight类的二个实例,因为类图提议了在Plane类和Flight类之间的涉及是 0或多。因而,我们的例证给出了多个与NX0337 Plane实例相关的Flight实例。

角色 
建立模型类的实例一时比期望的越来越详细。不时,你只怕只是想要在叁个非常多的形似档次做类关系的模子。在这种气象下,你应该运用 角色 记号。角色暗记类似于实例记号。为了创造类的剧中人物模型,你画三个方格,并在个中放置类的剧中人物名及类名,作为实体暗记,然则在这一场合你无法加下划线。图 18 呈现二个由图 14 中图描述的雇员类扮演的剧中人物实例。在图 1第88中学,大家得以感到,固然雇员类与它自个儿有关,关系实在是关于雇员之间扮演高管及团伙成员的角色。

七龙珠超宇宙2 11

图 18:二个类图突显图第114中学饰演分化剧中人物的类

瞩目,你不能够在纯粹类图中做类剧中人物的建立模型,固然图 18体现你可以这么做。为了选拔剧中人物暗记,你将会需求采纳下边探究的内部结构暗记。

在这之中的布局 
UML 2 结构图的更有效的功能之一是新的内部结构旗号。它同意你展现二个类或别的的多个分类器怎么着在中间整合。那在 UML 1. x 中是不容许的,因为暗记限制你不得不显示四个类所享有的聚合关系。现在,在 UML 2 中,内部的布局暗记让您更明了地出示类的依次部分怎么样保持关系。

让我们看二个实例。在图 1第88中学大家有三个类图以表现一个Plane类怎样由两个引擎和多个调节软件对象组成。从那么些图中省略的事物是显得关于飞机部件怎么样棉被服装配的局地消息。从图 18 的图,你不恐怕表达,是种种调控软件对象说了算四个引擎,照旧四个调节软件对象说了算四个引擎,而另七个垄断(monopoly)贰个斯特林发动机。

七龙珠超宇宙2 12

图 19: 只展现对象之间关系的类图

绘制类的内在结构将会立异这种情况。起初时,你通过用三个区域画三个方格。最顶上部分的区域包括类名字,而异常低的区域满含类的内部结构,显示在它们父类中顶住区别剧中人物的片段类,角色中的每一种部分类也提到到其余类。图 19 展现了Plane类的内部结构;注意内部结构怎么样澄清混乱性。

七龙珠超宇宙2 13

图 20:Plane类的内部结构例子。

在图 20 中Plane有五个ControlSoftware 对象,并且每种调控一个引擎。在图侧面上的 ControlSoftware(control1)调整引擎 1 和 2 。在图右侧的 ControlSoftware(control2)调节引擎 3 和 4 。 

0到5个

只能3个

七龙珠超宇宙2 14

类的属性节(中部区域)在分隔线上列出每二个类的属性。属性节是可挑选的,如若一用它,就包罗类的列表显示的每一种属性。该线用如下格式:

图 9:贰个经过连接线表现软件包成员的软件包例子

关于哪一天、以及如何飞速地在系统结构图中央银行使数据类型和接口的欧洲经济共同体钻探,不在本文的座谈范围以内。既然那样,作者怎么要在此处聊起数据类型和接口呢?你只怕想在结构图上模拟这个分类器类型,在这年,使用正确的号子来表示,只怕至少知道那一个分类器类型是最主要的。不得法地绘制这么些分类器,很有相当的大可能率将使您的构造图读者认为混乱,现在的系统将不能够适应要求。

双向(标准)的关联 
涉嫌是四个类间的连通。关联合国善后救济总署是被假定是双向的;那意味着,五个类互相掌握它们间的关联,除非您限定一些任何种类的涉及。回想一下Flight 的例证,图 6 展现了在Flight类和Plane类之间的二个标准项目标关系。

0..*

七龙珠超宇宙2 15

图 4: 承袭通过指向超类的一条闭合的,单箭头的实线表示。

balance : Dollars = 0

七龙珠超宇宙2 16

0个或七个

name : attribute type = default value

单向关系 
在贰个单向关系中,七个类是相关的,可是独有一个类知道这种沟通的留存。图 7 展现单向关系的透支财经报告的叁个实例。


图 2:展现默感觉0澳元的balance属性值的银行账户类图。

在图 4 中,承接关系由种种超类的独自的线画出,这是在IBM Rational 罗斯和IBM Rational XDE中应用的方法。但是,有一种叫做 树标记的图谋方式能够画出传承关系。当存在多个或更加多子类时,如图 4 中所示,除了继续线象树枝同样混在共同外,你能够选取树形暗号。图 5 是重绘的与图 4 同样的一连,不过本次使用了树形暗记。

5..15

想必的多种值描述

图 8:在软件包的圆柱形内展现软件包成员的软件包成分例子

到此截止,笔者一度介绍了类图的根基,然则请继续往下读!在底下的有个别中,笔者将会教导你到你会利用的类图的更首要的地点。那一个回顾UML 2 职业中的接口,另外的三种关系类型,可知性和任何补偿。

譬释尊讲:

在图 11 中显得的类图中,在Flight类和 FrequentFlyer 类之间的涉及,发生了称得上MileageCredit的关联类。那象征当Flight类的一个实例关联到 FrequentFlyer 类的一个实例时,将会生出 MileageCredit 类的贰个实例。

    name(parameter list) : type of value returned

1个或小编个

七龙珠超宇宙2 17

来得属性默许值是可挑选的;图 2 展现三个银行账户类具备三个名称叫 balance的品类,它的私下认可值为0。

0个或1个

  • 接口

  • 数据类型

  • 组件

类属性列表

关联类 
在关乎建立模型中,存在部分处境下,你须要包罗另外类,因为它含有了关于关联的有价值的音讯。对于这种景况,你会动用 关联类 来绑定你的着力关系。关联类和一般类同样表示。分裂的是,主类和关联类之间用一条相交的点线连接。图 11 展现贰个航空工业实例的关联类。

七龙珠超宇宙2 18

表 2:从图 2 酷炫的Flight类的操作

属性名称 属性类型
flightNumber Integer
departureTime Date
flightDuration Minutes
操作名称 返回参数 值类型
delayFlight
Name Type
numberOfMinutes Minutes
N/A
getArrivalTime N/A Date

在面向对象的宏图中三个万分关键的概念,继承,指的是二个类(子类)继承另外的四个类(超类)的一律功效,并追加它本身的新效率(三个非手艺性的比如,想象自个儿继续了自个儿老妈的一般的音乐力量,不过在自家的家里,作者是独一贰个玩电吉他的人)的力量。为了在二个类图上建立模型承袭,从子类(要三番五次行为的类)拉出一条闭合的,单键头(或三角形)的实线指向超类。思考银行账户的品种:图 4 突显 CheckingAccount 和 SavingsAccount 类怎么样从 BankAccount 类承袭而来。

然则,超类(父类)不必然要是抽象类。标准类作为超类是例行的。

UML 为这么些项目起了八个专程的名字:“分类器”。日常地,你能够把分类器当做类,但在技艺上,分类器是愈来愈广阔的术语,它如故援用上面包车型地铁别的三连串型为好。

在 UML 第22中学,通晓类图的基础更为首要。那是因为类图为富有的其他组织图提供基本的创设块。如组件或对象图(仅仅是举了些例子)。

图 3:Flight类操作参数,满含可挑选的“in”标记。

图 11:扩大关联类 MileageCredit

1..*

是因为对那个在关系后面部分大概出现的多重值描述以为思疑,上边的表3列出了有个别多种值及它们含义的事例。

三个双向关联用八个类间的实线表示。在线的任一端,你放置贰个角色名和多重值。图 6 显示Flight与一个特定的Plane相关联,况且Flight类知道那几个关系。因为剧中人物名以Plane类表示,所以Plane承担关联合中学的“assignedPlane”剧中人物。紧接于Plane类前面包车型地铁多种值描述0...1意味,当多个Flight实体存在时,能够有贰个或未有Plane与之提到(也等于,Plane可能还未曾被分配)。图 6 也显示Plane知道它与Flight类的涉嫌。在这么些关系中,Flight承担“assignedFlights”剧中人物;图 6 的图告诉我们,Plane实体能够不与flight关联(举个例子,它是一架全新的飞机)或与没有上限的flight(比如,一架已经服兵役5年的飞机)关联。

抽象类及操作 
有心人的读者会注意到,在图 4 和 图5中的图中,类名BankAccount和withdrawal操作使用斜体。那意味,BankAccount 类是一个抽象类,而withdrawal方法是空泛的操作。换句话说,BankAccount 类使用withdrawal规定抽象操作,并且CheckingAccount 和 SavingsAccount 多少个子类都分别地实践它们分别版本的操作。

1

在图 10中显示的图中,Professor和Student类都落到实处了Person的接口,但并不从它延续。大家领略这点是由于下边八个原因:1) Person对象作为接口被定义 -- 它在对象的名字区域中有“interface”文本,况且大家看看由于Professor和Student对象依照画类对象的法则(在它们的名字区域中并未有额外的分类器文本)标示,所以它们是 目的。 2) 我们知晓承接在这里未有被出示,因为与带箭头的线是点线并不是实线。如图 10 所示,一条带有闭合的单向箭头的 线意味着完结(或实践);正如大家在图 4 中所见到的,一条带有闭合单向箭头的线意味着继续。

超越基础

七龙珠超宇宙2 19

0..5

name : attribute type

flightNumber : Integer

图 5: 贰个施用树形暗记的持续实例

七龙珠超宇宙2 20

如先前所涉嫌的,类图的指标是体现建立模型系统的连串。在大部的 UML 模型中这个项目富含:

软件包 
不可幸免,借令你正在为贰个大的类别或大的职业领域建立模型,在您的模型上校会有无数两样的分类器。管理全体的类将是一件令人生畏的职责;所以,UML 提供三个叫做 软件包的协会成分。软件包使建立模型者能够组织模型分类器到名字空间中,这有个别象文件系统中的文件夹。把一个系统一分配为七个软件包使系统成为轻便掌握,特别是在种种软件包都表现系统的二个特定部分时。 3

八个一方面包车型的士关系,表示为一条带有指向已知类的吐放箭头(不闭馆的箭头或三角形,用于标记承接)的实线。就像是规范提到,单向关系满含七个剧中人物名和叁个多种值描述,但是与规范的双向关联分歧的时,单向关系只含有已知类的剧中人物名和多种值描述。在图 7 中的例子中,OverdrawnAccountsReport 知道 BankAccount 类,何况知道 BankAccount 类扮演“overdrawnAccounts”的剧中人物。可是,和标准提到分化,BankAccount 类并不知道它与 OverdrawnAccountsReport 相关联。 2

问询基础首要性



回页首

表 1:具备关联类型的Flight类的天性名字

图3呈现,delayFlight 操作有三个Minutes类型的输入参数 -- numberOfMinutes。可是,delayFlight 操作未有返回值。 1 当一个操作有参数时,参数被放在操作的括号内;每一个参数都应用那样的格式:“参数名:参数类型”。

接轨大家的Flight类的事例,我们可以使用品质类型音信来说述类的性子,如表 1 所示。

TAG标签:
版权声明:本文由美高梅网站发布于七龙珠超宇宙2,转载请注明出处:在底部区域中我们可以看到Flight类有两个操作【