📄 umlsemantics010.htm
字号:
<head><meta NAME="´¡ãÍâÈí¼þ¹¡è³Ì" Content="Author:Asia Alien"><title>UML语义(中文)</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><link REL="stylesheet" HREF="../../newcss.css" TYPE="text/css"></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">9. </font><a name="9"></a>结构化元素:协同 <b><a href="umlsemantics001.htm">返回目录</a></b></h3> <blockquote> <p> <font size="3"><img border="0" src="i/image10.gif" WIDTH="620" HEIGHT="479"></font></p> <b><font face="Arial" size="5"><p></font></b><font size="5">9.1<a name="9.1"></a> </font>描述</p> <p>本图描述了UML中协同的语义,包含下列元模型类:</p> <p>行为类 行为类是有明显影响的事件。</p> <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> </font><p>本图还介绍了下列关系:</p> <p>行为 行为是协同到行为集合的组合聚集。行为是协同的行为。</p> <p>协同参量 协同参量是协同到值集合的组合聚集。值是模板协同参数的协同参量。</p> <p>协同参数 协同参数是协同到参数集合的组合聚集。参数是模板协同的模板参数。</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">9.2<a name="9.2"></a> </font>基本语义</p> <p>协同是模型元素的子类型。协同的责任是指定一种由结构化元素和行为化元素组成的机制。协同实例体现了 一个相互协同的类型实例的集合,这样组织是因为它命名了一个重要的概念性集合。</p> <p>协同实例与包实例的语义的差异很大。虽然它们都是结构化机制,但是,包实例只是结构化的,而协同实例即是结构化的,又是行为化的。另外,协同实例的内容可以超出包实例的边界。</p> <p>与协同实例相关联的名字属性体现了协同实例的名字;名字不能为空。协同的isTemplate属性是一个布尔值,它表示协同实例是否是模板。模板协同是类属化协同,它没有具体实现,而必须先被实例化。模板协同实例可以有参数,但不能有参量,而非模板协同实例可以有参数,也可以(或不能)有参量(仅当非模板协同实例体现模板协同实例的实例化时它才可以有参量)。isTemplate的默认值为假。</p> <p>参数是无界的表达式。协同参数是协同到参数集合的组合聚集。只有isTemplate属性为真的协同实例可以有模板参数。协同参数中的每个参数实例是零个或一个协同实例的一部分。而每个协同实例可以有零个或多个参数实例。参数实例的名字实例成为对模板协同实例可见的名字,可以在符合参数实例的类型的条件下被用在模板的范围内。</p> <p>值是表达式的有界值。协同参量是协同到值集合的组合聚集。只有非模板协同实例可以有协同参量,而且必须在协同实例体现模板协同实例的实例化时。协同参量的责任是提供绑定非模板协同实例实例化的模板协同实例的无界的协同参数的值实例集合。非模板协同实例的协同参量值实例必须和模板协同实例的协同参数实例依次匹配,且必须类型相符(但不须名字相符)。另外,非模板协同实例的协同参量值实例只能包括对非模板协同实例可见的类型实例。</p> <p>协同实例共享结构化元素,包含类型、关系、限制条件和附注实例,并且拥有行为化元素。</p> <p>协同实例的结构化尺度由类型、关系、限制条件、附注和实例等关系中得出,它们是由协同实例分别到类型、关系、限制条件、附注和实例集合的共享聚集。每个协同实例可以共享零个或多个这些元素实例,而每个这样的元素实例可以由零个或多个协同实例的共享。即,相同的协同实例在结构上包含相互协同的类型实例集合,每个这样的类型实例可以参加多个不同的协同实例。因为是共享聚集,所以创建和消除协同实例不影响它所包含的元素实例的生存期,虽然消除一个共享的元素实例会删除这个元素实例和它通过协同实例共享部件的传递闭包。协同实例可以包含它声明范围中的任何类型、关系、限制条件、附注和实例的实例。</p> <p>协同实例的动态尺度来自行为(?),行为是协同实例到行为类实例集合的组合聚集的关系。每个协同实例可以有零个或多个行为类实例,而每个这样的行为类实例属于零个或一个协同实例。</p> <p>体现是类型或操作和体现它们的协同之间的关联。体现是抽象层次结构中的基本转移。给定一个类型或操作实例以及体现它们的协同实例,在较低的抽象层次看,协同实例可以称为体现给定的类型或操作实例。每个协同实例是零个或一个类型或操作实例的体现,而每个类型和操作实例可以被零个或多个协同实例体现。协同实例可以独立存在,表示它不是任何类型或操作的体现。</p> <p>协同实例有本质/现象结构,但这种结构并未具体实现;鉴于这点,协同从效果上看是类型,且其实例是隐含的。它与模板的区别在于:协同实例可以参数化。协同参数是协同到参数集合的组合聚集。协同参量是协同到值集合的组合聚集。 <font face="Times New Roman"></p> </font><b><font face="Arial" size="5"><p></font></b><font size="5">9.3 </font><a name="9.3"></a>导出语义</p> <p>模型元素的语义参见第二节。</p> <p>附注和限制条件的语义参见第三节。</p> <p>实例的语义参见第五节。</p> <p>类型、操作、值和参数的语义参见第七节。</p> <p>行为类的语义参见第九节和第十节。</p> <p>与协同实例相关联的行为类实例既包括状态机实例,又包括交互作用实例。如第十章所定义,状态机实例指定协同实例的行为,也就是指定所有可能行为。如第十一章所定义,交互作用实例反映协同实例的行为,也就是记录原型行为。协同实例可以包括这两种类型的行为实例,以获得动态尺度。前一种类型(状态机实例)本质上是建构性的:指定所有可能的行为路径,而后一种类型(协同实例)本质上是原型化的:每个实例都是在行为路径上指定的。这样,这两种视图必须互补:对于给定的类型实例,状态机指定的行为必须是协同实例中行为的超集,并且所有这样的协同实例组成的集合必须遵从可能的行为。</p> <p>协同实例可以有零个或多个与之相关联的行为类实例。因为行为类是元素的子类型,行为类实例可以有相关联的构造型实例(而且,所有第三节中定义的通用机制对行为类实例也适用)。通常使用构造型实例来区别不同类型的行为类实例,例如基本行为和后续行为。</p> <p>协同实例体现类型和类型的任意子类型。即协同实例可以体现类型、类、活动类、构件、结点和用例实例。</p> <p>协同实例应用于体现类型、类或类实例的子类型时允许对该元素实例的语义进行声明。它可以是外部视图,指定元素实例的意义,而不规定其实现,也可以是内部视图,指定其实现行为。在前种情况下,协同实例的结构化尺度中包含有描述类型用语的元素实例。在后种情况下,协同实例的结构化尺度包含来自成员实例和该类型的相邻类型的元素实例。并且,协同实例的行为化尺度允许用例实例与类型实例(及其子类型,但大多数情况下只适用于类)相关联:如上所述,协同实例可有类型实例。如第五节所述,用例是类型的子类型,因此,协同实例可有用例实例。与类型实例关联的用例实例必须与可能连到该类型实例的某些部分的任意更低级别的用例实例相一致。</p> <p>协同实例应用于用例实例时允许对该用例实例的语义进行声明。如第五节所述,用例是类型的子类型,因此,用例继承类型的所有属性,包括指定体现用例实例的协同实例的能力。这样将用例实例和实现它的协同实例分开,使得用例语义的规格说明和体现明显分开。用例语义与实例的交互作用参见第五节。用例实例可以与用来指定与用例实例关联的所有可能行为的行为类实例相关联,而体现一个用例实例的实例类的实例是一个场景, 表示一个动作流程。这样,该实例可以有关联的行为类实例,此行为类实例体现这个流程,且从在用例实例中指定的所有可能的行为中抽取。</p> <p>协同实例应用于操作实例时允许对操作的语义进行声明。如第八节所述,方法是操作的子类型,所以该语义也适用于方法实例。</p> <p>如第5. 4节所述,求精是构造型依赖关系,其源是类型、类、协同或方法实例,其目标是类型、协同或操作实例。从类型实例到协同实例,从操作到协同实例的体现关系是求精关系。</p> <p>协同是元素的子类型,因此,如第三节所述,协同实例可以有关联的构造型、标志值、依赖、附注和限制条件实例。协同实例可以只参加依赖关系。</p> <b><font face="Arial" size="5"><p></font></b><font size="5">9.4 </font><a name="9.4"></a>标准元素</p> <p>有两个标准的构造型应用于本图所描述的元模型类,即:求精(参见第5.4节)和绑定(参见第7.4节)。</p> <p>有两个同义词应用于本图所描述的元模型类:</p> <table border="1" cellspacing="1" bordercolor="#000000" width="534" align="center"> <tr> <td width="28%">同义词</td> <td width="72%">定义</td> </tr> <tr> <td width="28%">框架</td> <td width="72%">框架是主要由模式组成的包。</td> </tr> <tr> <td width="28%">模式</td> <td width="72%">模式是模板协同。</td> </tr> </table> </blockquote> <p><b><a href="umlsemantics001.htm">返回目录</a></b></p> </body>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -