⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umlsemantics004.htm

📁 软件开发文档大全
💻 HTM
📖 第 1 页 / 共 2 页
字号:
    <p>标志值是UML三个可扩展性机制中的第二个,它允许建模者采用可控制的方式扩展UML元模型中类的属性。特别是,特征为标志值实例T的元素实例E和具有新属性的元模型类E在语义上等价,其中E的属性的名字和类型与T的名字和值相同。UML中每个预定义标志值都可以被明确地写成它所对应的元模型类中的新属性。由此可以很自然地得出,UML可以不定义任何属性,而元模型类的所有特征可以导出为标志值的实例。这在技术上也是正确的,但实际上也是不可行的。所以,UML的思想是这样的:所有充分体现感兴趣语义的元模型类的基本特征都被表达为不同的属性。</p>               <p>特征是元素实例到零个或多个标志值实例的组合聚集。特征的责任是将标志值实例集合附着到元素实例上。每个元素实例可以有零个或多个标志值实例,而每个标志值实例可以附着到零个或一个元素实例上。这个聚集由标志值实例的名字确认,就是说,附着到给定元素实例上的每个标志值实例可以通过其名字唯一地被访问。</p>               <p>标志集是标志值实例到标志值实例的组合聚集。组合的标志值实例被看作标志集,因为它体现了标志值实例的集合。标志集的责任是为相关标志值实例的集合命名。每个标志值实例或者直接是元素实例的特征,或者是标志集的成员。这是一种递归的关系:标志值实例可以定义标志集,而这些标志集的成员也可以定义标志集。这个聚集由标志值实例的名字确认,就是说,标志集中的每个标志值实例可以通过其名字唯一地被访问。标志值定义了命名空间,表示在由标志值实例定义的标志集中的所有标志值实例必须有唯一的名字。</p>               <p>关系是模型元素的抽象子类型。关系的责任是在元素实例之间建立语义连接。</p>               <p>依赖是关系的子类型,是由源(一个或多个)到目标(一个或多个)的单向的使用关系。依赖的责任是命名一种使用关系,其中源元素实例依赖于目标元素实例的语义。依赖是类型之间的一种多对多的关系。依赖实例的名字是可选的,但一旦存在,就不能为空。依赖的mapping属性是未解释的,用于记录由目标到源的特征的绑定。建立源和目标之间的依赖实例可以建立由源到目标的单向语义连接,也就是说,如果目标被消除,或者它的语义被修改,那么源会受到影响,这些影响取决于依赖特定的构造型。对于简单的依赖实例,如果全部的源或全部目标被消除,依赖实例就会被消除;不存在悬空的依赖实例。</p>               <p>附注是模型元素的子类型。附注的责任是为元素实例或元素实例集合提供注释。附注实例没有语义效果,但建模者可以使用它将概念上重要的信息附到元素实例上。附注实例没有名字,其value属性是未解释的。由于附注是元素的子类型,它可以参加依赖关系。附注实例可以通过依赖实例附着到其它元素实例上,其中附注实例是源,而它所附着的元素实例是依赖实例的目标。这样,图中附注和元素之间的依赖关系不是明确的,而是为元素定义的依赖关系导出的。</p>               <p>限制条件是模型元素的子类型。限制条件的责任是为元素实例或元素实例集合提供条件或约束。限制条件实例具有语义效果,建模者可以用它将新的语义限制条件限制条件加到元素实例中。限制条件实例没有名字,其value属性是未解释的。由于限制条件是元素的子类型,它可以参加依赖关系。限制条件实例可以通过依赖实例加到其它元素实例上,其中限制条件实例是源,而它所附着的元素实例是依赖实例的目标。这样,图中限制条件和元素之间的依赖关系不是明确的,而是为元素定义的依赖关系导出的。限制条件实例具有语义效果,某些限制条件在UML中预定义,其它由用户定义,预定义限制条件的语义在UML中指定,用户定义限制条件的语义无法由UML指定。</p>               <p>限制条件是UML三个可扩展性机制中的第三个,它允许建模者采用可控制的方式扩展UML的语义。特别是,带有限制条件实例C的元素实例的元素实例E和具有与C有相同语义值的新语义的元模型类E在语义上等价。UML中的每个语义概念都可以被明确地写为限制条件值对应的元模型类上的新的限制条件。由此可以很自然地得出,UML可以定义最小的语义,而所有其它语义可以导出为限制条件的实例。这在技术上是正确的,但实际上是不可行的。所以,UML的思想是这样的:所有充分感兴趣的元模型类的基本语义都被表达为不同的语义。</p>               <b><font face="Arial" size="5"><p></font></b><font size="5">3<a name="3.3"></a>.3 </font>导出语义</p>               <p>元素和模型元素的语义参见第二节。</p>               <p>如第二节所述,元素定义了命名空间。因此,所有以给定元素实例为源或目标的依赖实例必须有唯一的名字。没有名字的依赖实例通常被看作具有一个唯一的名字,以区别于其它没有名字的依赖实例。类似地,所有为给定元素实例建立特征的标志值实例必须有唯一的名字。如第二节所述,构造型实例在系统实例的上下文中定义,所以,系统内的所有构造型实例可以确信具有唯一的名字。</p>               <p>关于每个元素实例可以具有不超过一个构造型实例的规则可以简化可扩展性机制的语义,因为它基于元模型中的单继承。如第六节所述,构造型实例可以参加一般化关系,这样,建模者就可以建立构造型实例的网格,并借此在元模型内部实现多重继承的效果。通过限制元素实例使之至多具有一个构造型实例但允许构造型实例的网格,多重构造型实例的语义就与创建构造型实例的元模型相关,而与使用这些实例的建模者无关。</p>               <p>标志值实例通常用来建立由模型元素实例到传统程序设计语言的映射的语义。</p>               <p>关系具有有五个具体的子类型,其中三个子类型(关联、依赖和一般化)是结构化元素,另外两个(迁移和链接)是行为化元素。关联和一般化的语义参见第六节,迁移的语义参见第十节,链接的语义参见第十一节。</p>               <p>依赖是元素的子类型,所以如第二节所述,依赖实例可以被包实例拥有或引用。源和目标为同一个包实例的依赖实例被这个包实例自身拥有。依赖实例不需要被拥有其源和目标的包实例所拥有。这样,依赖实例可以被包含其源和目标的最小的命名空间所拥有。根据第二节中介绍的可视性的语义,依赖实例只可以建立在可见的源和目标之间。另外,至少一个源或目标被其它包实例所拥有的依赖实例可以跨越所属的包实例。这就介绍了包实例之间更多的依赖关系:如果所有拥有依赖实例的源或目标的包实例被消除,那么依赖实例也会被消除。</p>               <p>如第五节和第七节所述,依赖的mapping属性在依赖的不同的构造型中扮演相同的角色。</p>               <p>可以看到,附注可以被用来投影模型的性质。在这种情况下,图实例可以投影附注实例,这些附注实例并非系统实例的部件,但作为其它元素实例性质的文本或图形化投影的容器而存在。例如,附注可以在图实例中显示标志值实例或限制条件实例。</p>               <p>构造型、标志值、依赖、附注和限制条件都是元素的子类型,所以,它们本身也具有构造型、标志值、依赖、附注和限制条件实例。</p>               <p>预定义的构造型、标志值和限制条件构成了UML的标准元素,这些标准元素将在每节的第四小节中介绍,将在第十三节中作总结。</p>               <b><font face="Arial" size="5"><p></font></b><font size="5">3.4 </font><a name="3.4"></a>标准元素</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%">附注</td>                   <td width="57%">需求是表示责任或义务的构造型附注。</td>                 </tr>                 <tr>                   <td width="22%"> </td>                   <td width="22%"> </td>                   <td width="57%"> </td>                 </tr>               </table>               <p>有一个同义词应用于本图所描述的元模型类:</p>               <table border="1" cellspacing="1" bordercolor="#000000" width="534" align="center">                 <tr>                   <td width="22%">同义词</td>                   <td width="78%">定义</td>                 </tr>                 <tr>                   <td width="22%">性质</td>                   <td width="78%">性质是元素的部件。</td>                 </tr>               </table>                 <p><b><a href="umlsemantics001.htm">返回目录</a></b></p>        </body>        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -