📄 umlsemantics007.htm
字号:
<head><meta NAME="´¡ãÍâÈí¼þ¹¡è³Ì" Content="Author:Asia Alien"><title>UML语义(中文)</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body> <b><font face="Arial" size="5"><h3><font face="Arial" size="7"> <img border="0" src="i/umldilver.gif" WIDTH="606" HEIGHT="15"></font></h3> <h3></font></b><font size="5">6.<a name="6"></a> </font>结构化元素:关系 <b><a href="umlsemantics001.htm">返回目录</a></b></h3> <blockquote> <p> <font size="3"><img border="0" src="i/image7.gif" WIDTH="619" HEIGHT="479"></font></p> <b><font face="Arial" size="5"><p></font></b><font size="5">6.1 </font><a name="6.1"></a>描述</p> <p>本图描述了UML的结构化关系,包含下列元模型类:</p> <blockquote> <p>关联 关联是实例间的双向语义连接。</p> <p>关联角色 关联角色是关联中类型所扮演的角色。</p> <p>属性 属性是类型的结构化特征。属性在语义上与严格定义方向从类型到属性的组合聚集等价。</p> <p>可一般化元素 可一般化元素是可以参加一般化关系的元素。</p> <p>一般化 一般化是单向的继承关系,在超类型/子类型层次关系上组合两个以上的可一般化元素,其中子类型的实例可以替代超类型的实例。</p> <p>模型元素 参见第二节。</p> <p>包 参见第二节。</p> <p>关系 参见第三节。</p> <p>构造型 参见第二节。</p> <p>类型 参见第五节。</p> <font face="Times New Roman"><p></font> <font face="Times New Roman"></p> </blockquote> </font><p>本图中还介绍了如下关系:</p> <blockquote> <p>关联角色 关联角色是关联到其角色的组合聚集。一个关联具有两个或两个以上的关联角色。</p> <p>一般化 一般化是单向的继承关系,在超类型/子类型层次关系上组合两个以上的可一般化元素,其中子类型的实例可替代超类型的实例。超类型可以一般化为子类型。</p> <p>一般化 关联是关系的子类型。</p> <font face="Times New Roman"><p></font>关联角色是模型元素的子类型。</p> <font face="Times New Roman"><p></font>一般化是关系的子类型。</p> <font face="Times New Roman"><p></font>包是可一般化元素的子类型。</p> <font face="Times New Roman"><p></font>构造型是可一般化元素的子类型。</p> <font face="Times New Roman"><p></font>类型是可一般化元素的子类型。</p> <p>参加 参加是一种关联,表示一个实例在与其它实例的关联中扮演的角色。类型参加角色。</p> <p>强类型 强类型是一般化到类型(强类型)的组合聚集。类型是一般化的强类型。</p> <p>限定关系 限定关系是角色到其属性(限定关系)的组合聚集。属性限定角色。</p> <p>角色 角色是角色到零个或一个类型的共享聚集。类型是角色的角色。</p> </blockquote> <b><font face="Arial" size="5"><p></font></b><font size="5">6.2<a name="6.2"></a> </font>基本语义</p> <p>关系是模型元素的抽象子类型。关系的责任是在元素实例中建立语义连接。除非由子类型另外指定,与所有连接相同元素实例的关系实例关联的名字实例必须是唯一的。类似地,具有明确形式的关系实例必须连接同一个元素实例或至少两个不同的元素实例:不能存在悬空的关系实例。另外,消除连接到关系实例的倒数第二个元素实例将会消除关系实例,否则会导存在悬空的关系实例。</p> <p>一般化是关系的子类型。一般化的责任是指定一个有序的单向继承关系,其中子类型的实例可替代超类型的实例。与一般化实例关联的名字实例被称作关系的判别式。对于一个给定的超类型,可以存在多个具有相同判别式名字实例的一般化实例,表示这些同名关系将给定超类型的所有子类型超类型划分为由此判别式命名的一个集合。</p> <p>可一般化元素是一个抽象类。可一般化元素的责任是指定可以参加一般化关系的元素实例。一个给定的可一般化元素实例可以具有零个或多个超类型,可以是零个或多个子类型的超类型。给定的元素实例不可以是自己的超类型或子类型。可一般化元素的isRoot属性指定了实例是否可以具有超类型;isRoot的默认值是假,表示实例不是根,因此可以具有超类型。可一般化元素的isLeaf属性指定了实例是否可以具有子类型;isLeaf的默认值为假,表示实例不是叶子,因此可以具有子类型。可一般化元素的isAbstract属性指定了实例是否可以具有实例;isAbstract的默认值是假,表示实例不是抽象的,因此可以具有实例。</p> <p>构造型是可一般化元素的子类型。构造型的责任是提供分类法以及为它所在的元素实例建立附加语义和可视化提示,后一种责任可选。</p> <p>包是可一般化元素的子类型。包的责任是提供一种通常意义的分组机制。</p> <p>类型是可一般化元素的子类型。类型的责任是指定一个论域以及应用于论域的行为。</p> <p>强类型是一般化实例到类型实例的组合聚集。强类型的责任是指定作为一般化实例的强类型的类型实例。每个一般化实例可以具有零个或一个作为强类型的类型实例,而每个类型实例可以作为零个或一个一般化实例的强类型。</p> <p>关联是关系的子类型。关联的责任是指定实例之间双向的语义连接。与关联实例相关联的名字实例是关联的名字;对于参加多重关联实例的给定的类型实例, 这些关联实例中每个实例的名字都必须是唯一的。</p> <p>关联角色是模型元素的子类型。关联角色的责任是指定类型在关联中所扮演的角色。与关联角色相关联的名字实例是关联角色的名字。除非另外指定,关联角色实例的属性是互不相关的。关联角色的multiplicity属性指定了参加关联实例的类型实例的实例的数量;multiplicity属性的默认值为0 .. *。关联角色的isNavigatable属性指定了关联是否可通行到参加关联的类型实例,其中可通行表示可以通过关联实例直接达到给定类型实例的实例;isNavigatable属性的默认值是真,表示参加关联的类型实例是可通行的。一些与关联实例相关联的关联角色实例可以设isNavigatable为假。关联角色的isAggregate属性指定了参加关联的类型实例在整体/部分关联中是否为整体。对于所有与关联实例相关联的关联角色实例,至多有一个关联角色实例可以设isAggregate为真,将参加关联的类型实例指定为聚集的整体,而将其它的类型实例指定为聚集的部分。将至少一个作为给定关联实例的部分的关联角色实例的isAggregate被设为真时,multiplicity属性对整体和部分的生存期具有语义含义。特别是,如果整体的multiplicity不大于1,那么可以称为整体拥有部分,消除整体会导致对部分的消除。如果整体的multiplicity大于1,那么称作整体共享部分,消除整体不需要消除部分。关联角色的isChangeable属性指定了关系的可变性;isChangeable的默认值为真,表示即使参加关联的类型实例被替换为类型实例的不同实例,保留关联实例原来的语义。关联角色的isOrdered属性在关联角色实例的multiplicity大于1时有效,表示参加关联实例的实例是有序的。</p> <p>关联角色是关联实例到关联角色实例集合的有序的组合聚集。关联角色的责任是将关联角色实例集合连接到关联实例。一个给定关联实例可以具有两个或多个关联角色实例,而每个关联角色实例是且仅是一个关联实例的部分。最通常的关联实例具有两个关联角色实例;具有两个以上关联角色实例的关联实例构成多元关联。</p> <p>聚集关系指定了只包含一个关联角色实例的关联实例,其中关联角色实例的isAggregate属性为真。设置这个属性只是指定整体/部分关系(将与isAggregate属性为真的关联角色实例相关联的参加关联的类型实例指定为整体);与可通行、拥有关系或生存期无关。组合聚集是聚集的强类型,将整体的multiplicity设为不超过1,并设isChangeable为真。组合聚集的含义是整体拥有其部分,整体体现了对部分抽象层次的提高。将整体的multiplicity设为大于1的聚集关系被称作共享聚集。即,组件聚集形成部分的树形结构,而共享聚集形成图。</p> <p>参加是一种关联,表示类型实例的实例在关联实例中所扮演的角色。参加的责任是指定参加作为关联实例的部分的给定关联角色实例的类型实例。每个关联角色实例只有一个参加的类型实例,而每个类型实例可以参加零个或多个关联角色实例。</p> <p>角色是关联角色实例到属性实例集合的共享聚集。角色的责任是指定如何在关联实例的一端将类型实例的实例划分。 <font face="Times New Roman"></p> </font><p>属性实例可以限定关联实例,是指通过一个带有关联角色的multiplicity属性设置为多于一个类型实例的关联实例,限定关系可以用来指定类型实例的特定实例。</p> <b><font face="Arial" size="5"><p></font></b><font size="5">6.3<a name="6.3"></a> </font>导出语义</p> <p>模型元素和包的参见第二节。</p> <p>构造型的参见第三节。</p> <p>类型和属性的参见第七节。</p> <p>如果一个给定构造型实例的isAbstract属性为真,表示这个构造型实例不能是任何元素实例的分类。</p> <p>作为其它包实例的子类型的包实例可替代超类型,表示子类型包实例的界面符合超类型包实例的界面定义。在这个上下文环境中,界面表示包实例的类型,它由包实例拥有的所有公有元素实例组成;符合的含义是表示子类型的界面提供与超类型相同的结构和行为,尽管子类型可以提供更多的结构和行为。如果一个给定包实例的isAbstract为真,表示包实例不能不独立存在,但必须被具体的子类型求精。</p> <p>可一般化元素不是元素的子类型。</p> <p>可一般化元素的限制也可以应用于它的子类型,这样类型的子类型也可以参加一般化关系。如第五节所述,这些包含的类型、类、活动类、信号、构件和结点,都可以参加一般化关系。</p> <p>关联是指定实例间语义连接的关系的唯一的子类型;所有其它关系(依赖、一般化和迁移)指定了类型之间的语义连接。</p> <p>多元关联是允许的,尽管与投影到多元关系的视图元素实例对应的模型元素实例没有实现。</p> <p>因为关联是元素的子类型,构造型导出依赖有效,它的典型用途是表示关联关系,这种关联关系没有具体实现,但可以通过继承为参加关联实例的一些类型实例的超类型指定的关联实例得到。</p> <p>关联/链接、关联角色/链接角色和属性/值,这些关系都构成本质/现象对。</p> <p>如第五节所述,用例是类型的子类型,所以用例实例可以参加一般化关系和关联关系。用例实例可以是其它用例实例的超类型或子类型,但不能是类型的子类型。用例实例可以参加某些构造型依赖关系,这些依赖关系的参加者可以是用例实例,也可以是其它种类的类型实例,特别是主角,它是构造型的类型实例。用例实例不能参加关联关系。</p> <b><font face="Arial" size="5"><p></font></b><font size="5">6.4<a name="6.4"></a> </font>标准元素</p> <p>共有六个标准构造型应用于本图所描述的元模型类:</p> <table border="1" cellspacing="1" bordercolor="#000000" width="534" align="center"> <tr> <td width="22%">名字</td> <td width="22%">应用于</td> <td width="57%">语义</td> </tr> <tr> <td width="22%">扩展</td> <td width="22%">一般化</td> <td width="57%">扩展是一种构造型的一般化关系,其源和目标必须都是用例或类型。表示源用例(或类型)的行为扩展目标用例(或类型)的行为。</td> </tr> <tr> <td width="22%">强类型</td> <td width="22%">依赖<p>类型</td> <td width="57%">强类型是构造型依赖或类型。强类型依赖的源是一般化,目标是类型,指定了目标是源的强类型。强类型类型体现了只作为一般化的强类型的类型。</td> </tr> <tr> <td width="22%">角色</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -