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

📄 umlsemantics003.htm

📁 软件开发文档大全
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<head><meta NAME="&acute;&iexcl;&atilde;&Iacute;&acirc;&Egrave;&iacute;&frac14;&thorn;&sup1;&iexcl;&egrave;&sup3;&Igrave;" 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><font size="5"><a name="_Toc377282225"></a><a name="_Toc377437663"></a><a name="2">2. 核心概念:公共元素</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;       </font><a href="umlsemantics001.htm">返回目录</a></h3>           <blockquote>         <blockquote>           </b><p><font size="3"><img border="0" src="i/image3.gif" WIDTH="620" HEIGHT="479"></font></p>          </blockquote>        </blockquote>                <blockquote>          <blockquote>            <b><font face="Arial" size="5"><p></font><font size="5"><a name="_Toc377282226"></a><a name="_Toc377437664"></a><a name="2.1">2.1 </a></font> </b>描述</p>             <p>本图描述了UML的基本构成单位,并且包括下列元模型类:</p>             <blockquote>               <p>依赖 依赖是一种由源到目标的单向关系。</p>               <p>元素 元素是构成模型的最小单位。</p>               <p>模型 模型是对系统完整的语义抽象。</p>               <p>模型元素 模型元素是由模型化系统中提取的一种抽象。</p>               <p>名字 名字是一个字符串。</p>               <p>拥有               拥有是包到元素集合的组合聚集,包拥有元素。可视性表示包中的元素在包外部的可见程度。</p>               <p>包 包是将元素组织为语义相关的组的一种一般机制。</p>               <p>引用 引用是包到元素集合的共享聚集,包引用元素。alias(别名)是新的名字,而visibility(可视性)是元素在其引用中的新的可视性。</p>                <p>构造型                构造型是对一个元素的分类。构造型具有语义效果。某些构造型在UML中预定义;而其他的构造型则由用户定义。</p>                <p>系统 为完成特定目的而组织起来的相关单元的集合。系统                可以通过由不同视点得到的一个或多个模型来描述。</p>                <p>视图元素 视图元素是模型元素的文本或图形方式的投影。</p>                <p>可视性                可视性是一个枚举,其值(公有、保护、私有或实现)表示元素在其命名空间之外可见的程度。</p>              </blockquote>              <p>本图同时介绍了下列几种关系:</p>              <blockquote>                <p>抽象 抽象是系统到模型集合的组合聚集,模型是系统的抽象。</p>                <p>定义 定义是系统到构造型集合的组合聚集,系统定义构造型。</p>                <p>一般化 模型是元素的子类型。</p>                <blockquote>                  <p>模型元素是元素的子类型。</p>                  <p>包是模型元素的子类型。</p>                  <p>系统是元素的子类型。</p>                  <p>视图元素是元素的子类型。</p>                </blockquote>                <p>命名 命名是元素到名字的组合聚集。名字是对元素的命名。</p>                <p>拥有 拥有是包到元素集合的组合聚集。包拥有元素。</p>                <p>投影                投影是视图元素到模型元素集合的共享聚集。投影使用视图元素为每个模型元素的体现提供了位置和样式。</p>                <p>引用 引用是包到元素集合的共享聚集。包引用元素。</p>                <p>体现 体现是模型到最顶层的包的关联。最顶层的包体现模型。</p>                <p>从属                从属是系统到系统集合的共享聚集。从属系统是系统的子系统。</p>                <p>追踪                追踪是系统到依赖集合的组合聚集,其中每个依赖都体现了一个元素在不同模型中的踪迹。依赖由元素追踪到元素。</p>              </blockquote>            </blockquote>          </blockquote>                    <blockquote>            <blockquote>              <b><font face="Arial" size="5"><p></font></b><font size="5">2<a name="2.2"></a>.2 </font>基本语义</p>              <p>元素是UML中大部分构件的抽象基类。元素的责任是为公共机制提供可以附着的位置。每个元素实例可以与多个名字实例相关联,这些名字实例可以在包含元素实例的命名空间中对元素实例唯一地进行命名。带有名字的元素实例的默认名为空。</p>              <p>元模型中的某些元素实例具有属性;所有元素实例都参与不同的关系。对于形式明确的模型,每个元素实例的每个属性值必须具有定义明确的值。因此,必须为所有属性给定本文档所描述的默认值;这些值可以为空值。在实现中,可以通过在预定义枚举类型的尾部添加枚举来自由地扩充元模型中使用的枚举类型类型,也可以自由地标记未指定的属性值或关系,尽管这样的模型不完整并且不具有明确的形式。</p>              <p>即使在它们的名字实例具有相同的值的时候,元素实例也仍是相互独立的。这就是说,除非特别说明,在一个模型实例中,所有元素实例都与引用有关,而与名字无关。这样,改变与一个元素实例关联的名字实例不会导致对元素实例引用的改变(尽管改变了被调用的元素实例)。但在各模型实例之间,元素实例是与名字相关的。另外,在转换部分模型时,使用名字匹配(不使用引用匹配)会断开这些模型与其它模型之间的关系。通过这种方式,可以使输出元素实例而无须转换所有其它相关元素实例的传递闭包成为可能。</p>              <p>模型元素的责任是表达由模型化系统中提取出的抽象              。视图元素的责任是为模型元素实例集合提供文本的和图形化的投影。模型元素和视图元素都是元素的抽象子类型,而且实际上,只有它们是元素的直接子类型。投影提供了由模型元素实例到视图元素实例的映射。每个模型元素实例可以投影到零个或多个视图元素实例,而每个视图元素实例可以是一个或多个模型元素实例的投影。</p>              <p>包是模型元素的子类型。包的责任是提供一种通常意义的分组机制。包实例所拥有或引用的所有元素实例被称为包实例的内容。一个包实例定义一个命名空间,也就是说包实例的直接内容必须具有对于各类内容都唯一的名字或别名。包实例在语义上没有意义,即包实例只用于在模型实例的上下文中划分元素实例集合,而这种划分在可执行的系统中不存在。</p>              <p>拥有是包实例相对于元素实例集合的组合聚集。一个给定的包实例可以拥有零个或多个元素实例,而每个元素实例只能被不超过一个包实例拥有。由于包是模型元素的子类型,一个包实例可以拥有或引用其它包实例。只有一个元素实例              不被包实例所拥有,就是表示模型实例的最顶层的包实例。</p>              <p>拥有的责任是确立一个给定的元素实例相对于它所在包实例之外的元素实例的可见性。拥有的visibility属性可以将元素实例指定为公有、保护、私有或实现。如果没有特殊说明,被拥有的元素实例具有公有的可视性。</p>              <p>引用是包实例相对于元素实例集合的共享聚集。一个给定的包实例可以引用零个或多个元素实例,而每个元素实例可以被零个或多个包实例引用。在这里,引用表示被引用的元素实例在为此元素提供内接口的包实例中可见,并且可以看作被这个包实例所拥有。删除一个包实例将会同时删除它所拥有的元素实例,但并不会删除它所引用的元素实例(尽管这些引用会被删除)。</p>              <p>引用的责任是为重命名一个被引用的元素实例提供一种机制,并确立一个给定的元素实例相对于它所在包实例之外的元素实例的可见性。引用的alias属性为被引用的元素实例指定了一个新的名字,最典型的是指定一个含义更丰富的名字或者用于解决命名冲突。alias是重新命名,因此不是引入同义词,就是说原来的简单名字不可以在引用的包实例中直接使用。引用的visibility属性将元素实例指定为公有、保护、私有或实现。一个给定的被引用元素实例可以被赋予一个可视性,这个可视性等于或更严格于拥有此元素实例或被此元素实例引用的包实例中的可视性。如果没有特殊说明,被引用的元素实例不被重命名,而且其可视性等于该元素实例在拥有此元素实例或被此元素实例引用的包实例中时的可视性。</p>              <p>可视性是一个枚举。可视性的责任是列举元素实例在闭合的命名空间之外的可见程度。UML从限定最少到限定最严格定义了四种程度的可视性;UML的给定实现可以扩充可视性的值。可视性实例的默认值为公有。</p>              <p>在包实例中,可以在可见元素实例上建立隐含或确定的关系实例。包实例的公有成分对于包实例之外的任何元素实例均可见。另外,包实例在其内部成分的周围创建了一堵围墙,这样,包实例的外部对内部成分不可见,除非进行隐含或明确的内引。</p>              <p>实现可视性表示相应的元素实例对拥有或引用它的包实例不可见,对内引此元素实例的包实例的内部成分不可见,甚至对与给定的包实例具有友元依赖的包实例同样不可见。私有可视性表示相应的元素实例对拥有或引用它的包实例不可见,但对内引此元素实例的包实例的内部成分和与给定的包实例具有友元依赖的包实例是可见的,这里友元是构造型依赖。用这种方式,友元依赖实例可以把一个包实例内部成分的隐含或确定的内接口的可视性扩充到另一个包实例内部成分的内接口。保护可视性表示相应的元素实例对拥有或引用它的包实例不可见,但对相对于此包实例具有一般化关系的包实例的内部成分可见,而且对隐含或确定地内部调用包实例以及与包实例具有友元依赖关系的包实例的内部成分可见。用这种方式,一般化实例可以建立起一个包实例内部成分到另一个包实例内部成分的隐含的内接口。公有可视性表示相应的元素实例对包实例外部的元素实例可见,对与包实例具有友元依赖关系、一般化关系或者内接口依赖关系的包实例的内部成分可见,这里内接口是构造型依赖。</p>              <p>包实例的内部成分可以包含其它包实例,这种嵌套可以建立起内层包实例的内部成分到外层包实例的隐含内接口。这样,可视性的语义是可传递的。例如,包实例P3拥有公有包实例P1和私有包实例P2,另一个包实例P4与P3具有内接口依赖关系。P1和P2之间公有成分互相不可见(因为两者之间不存在隐含或确定的内接口关系)。而P1和P2的公有成分对P3的其它直接成分可见(因为嵌套建立了一个隐含的内接口)。另外,P3的公有成分对P4的内部成分可见(因为P4明确地内引了P3);这里P3的公有成分包含了P1及其公有成分(因为可视性是可传递的),但不包含P2(因为它与P3私有相关)。</p>              <p>模型是元素的子类型,表示对系统进行完整的语义抽象。模型对组合起来对系统进行抽象的感兴趣的元素实例集合进行命名,这些元素实例基本上和其它元素实例无关。这里“感兴趣”的含义完全是概念性的,只与项目开发者如何看待给定的模型实例有关。模型实例在语义上是完整的,其元素实例与外界几乎不相关,可以认为这些元素实例与外界隔离,而且不同模型实例的元素实例之间只存在一种关系,即追踪依赖关系,这里追踪是一种构造型依赖。模型实例的默认名字为空。</p>              <p>体现是模型实例到最顶层包实例的共享聚集。体现的责任是将一个模型实例连接到唯一的最顶层包实例,并将此连接传递到顶层包实例的内部成分。</p>              <p>系统是元素的子类型,表示为了完成特定目的而组织起来的相关单元的集合,可以通过由不同视点得到的一个或多个模型来描述。系统的责任是命名真实世界中的论域,这个论域可以被抽象为零个或多个模型实例,可以容纳各模型实例之间所有的追踪依赖实例,并且可以定义应用于表示模型实例的元素实例上的所有构造型实例。系统实例的概念性边界完全取决于系统开发者如何看待本系统,而且从一个角度看到的系统可能只是从另一个角度看到的系统的子系统。系统实例的默认名字为空。</p>              <p>抽象是系统实例到模型实例集合的组合聚集。每个模型实例是对一个系统实例的抽象,而每个系统实例              可以被抽象为零个或多个模型实例。</p>              <p>从属是系统到系统集合的共享聚集。从属的责任是指定一个系统的子系统。</p>              <p>一个系统实例定义一个命名空间,表示系统实例中所包含的追踪依赖实例s必须具有独立的名字,而且系统实例定义的构造型实例也必须具有独立的名字。追踪是系统实例到依赖实例集合的组合聚集,定义是系统实例到构造型实例集合的组合聚集。</p>            </blockquote>          </blockquote>                    <blockquote>            <blockquote>              <b><font face="Arial" size="5"><p></font></b><font size="5">2<a name="2.3"></a>.3 </font>导出语义</p>              <p>名字的语义参见第四节。</p>              <p>构造型和依赖的语义参见第三节。</p>              <p>所有模型元素的子类型的语义参见第五节到第十一节。所有视图元素的子类型和投影聚集的语义参见第十二节。</p>              <p>如第三节所述,元素实例可以参加由依赖定义的关系。另外,构造型、标志值、附注和限制条件实例可以附在任何元素实例上。即,任何模型元素或视图元素实例可以参加这些依赖实例并具有这些成分,因为模型元素和视图元素都是元素的子类型。如第六节所述,模型元素的某些子类型适用另外一些类型的关系。</p>              <p>由于包是模型元素的子类型,包实例可以参加依赖实例。涉及到包实例的唯一有意义的依赖实例类型是友元、内接口和追踪依赖实例。如第六节所述,包被指定为可一般化元素的子类型(但并不参加关联关系),所以包实例也可以参加一般化实例。包的一般化的语义参见第六节。</p>              <p>包实例可以拥有和引用元素实例;然而,并非所有类型的元素实例都可以被包实例所拥有或引用。特别是模型和系统,它们是元素的子类型,但没有任何包实例可以拥有或引用它们。通常,包实例只可以拥有或引用类型、关系、行为和协同的实例(包括这些元模型类的子类型)。如第五节所述,例如,用例和类都是类型的子类型;这样,包实例可以拥有或引用用例实例。与包实例相关联的用例实例必须和与包实例内部成分相关的低级用例实例保持一致。另外,低级的用例实例对高级用例实例可以是可追踪的。</p>              <p>如下所述,内引是包实例之间确定的构造型依赖。但不存在相应的外联关系。不过,包实例可以说隐含地外联了它所拥有或引用的所有可见的元素实例。</p>              <p>作为元素的子类型,模型和系统实例可以具有构造型、标志值、依赖、附注和限制条件实例。</p>          

⌨️ 快捷键说明

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