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

📄 umlsemantics009.htm

📁 软件开发文档大全
💻 HTM
字号:
<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></b><font size="5">8. </font><a name="8"></a>结构化元素:类&nbsp;&nbsp;    <b><a href="umlsemantics001.htm">返回目录</a></b></h3>          <blockquote>            <p>            <font size="3"><img border="0" src="i/image9.gif" WIDTH="620" HEIGHT="479"></font></p>           <b><font face="Arial" size="5"><p></font></b><font size="5">8.1 </font><a name="8.1"></a>描述</p>             <p>本图描述了UML中类的语义,包含下列元模型类:</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>     <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>       <p>实现       实现是构件到模型元素集合的共享聚集。构件实现模型元素。</p>       <p>成员       成员是类型到成员集合的组合聚集。这些成员是类型的成员。</p>     </blockquote>     <b><font face="Arial" size="5"><p></font></b><font size="5">8.2<a name="8.2"></a> </font>基本语义</p>             <p>类的责任是提供类型的实现。这是UML中说明/实现结构的基础。</p>             <p>方法是操作的子类型。方法的责任是提供操作实例的实现。方法实例的body属性未解释,表示方法实例的实现,最典型的实现是用UML范围外的程序设计语言。</p>             <p>由类到方法的组合聚集未具体实现,但可以从定义于类型和操作之间的成员关系导出。正因为一个类型实例可以有一些关联的操作实例,所以一个类实例也可以有一些关联的方法实例。在某种情况下,类型实例可以只有成员操作实例(并非方法实例)。在类似的情况下,类实例可以只有成员方法实例(而并非操作实例)。</p>             <p>关系的责任是指定元素之间连接的语义。</p>             <p>关联类是关联实例和类实例之间的关联。关联类的责任是使关联具体化。类实例具体化关联,这样,类实例是关系的关联类。每个关联实例可以与零个或一个类实例相关联,而每个类实例可以与零个或一个关联实例相关联。关系实例和类实例的名字实例必须匹配。</p>             <p>构件是类的子类型。构件的责任是指定一种可复用的部件,提供模型元素实例的物理包装。构件的语义体现了抽象层次中的转移:除构件(和结点)外的每个模型元素体现了逻辑抽象,构件体现了物理抽象,即对其它模型元素实例的物理实现的抽象。</p>             <p>实现是构件实例到模型元素实例集合的共享聚集。构件实例不能实现其它的构件或结点实例。一个构件实例可以实现零个或多个模型元素实例,而每个模型元素实例可以被零个或多个构件实例实现。</p>             <p>结点是类的子类型。结点的责任是指定构件实例可以分布其上的物理部件。在这里,分布表示将一个构件实例分配给一个设备,构件实例可以在这个设备上存在、动作或被操作。结点的语义体现了抽象层次中的转移:除结点(和构件)外的每个模型元素体现了逻辑抽象,结点体现了物理抽象,即对构件实例物理分布的抽象。</p>             <p>分布是结点实例到构件实例集合的共享聚集。一个结点实例可以分布零个或多个构件实例,而每个构件实例可以分布在零个或多个结点实例上。</p>             <p>一个模型元素实例在一个或多个构件实例             上的实现和一个构件实例在一个或多个结点实例上的分布体现了模型元素或构件的定位。在语义上,构件和结点实例分别定义了模型元素实例和构件实例的定位。</p>             <p>操作的责任是指定类型实例的行为化特征。操作实例的concurrency属性是一种枚举,它指定了行为的并发语义。concurrency属性的默认值是线性,表示操作实例的语义只在单控制流的情况下可以保证。警戒和同步都可以在多线程控制中保证操作实例的语义,但二者对这些线程的同步激励机制有不同的语义             。警戒表示类型实例包含对类型实例的所有实例有效的一个迁移条件(对在类型范围内的操作实例,表示类型实例的其它迁移条件),以使类型实例的实例所调用的所有警戒激励是线性化的。同步表示每个独立的激励是线性化的。</p>             <p>可能有不同并发语义的操作实例作为相同类型实例的成员实例。另外,这些并发语义应用于类型的所有子类型。</p>             <p>活动类是类型的子类型。活动类的责任是指定独立的控制流。活动类实例的实例是与类型的其它子类型实例相似的实例,但具有附加的语义,每个活动类实例体现了独立控制流(因而是并发控制流)的根。这里控制流的范围和一些类型实例相同:在相同范围内活动类实例的所有实例体现了对等控制流,而每个这样的实例可以成为一个整体,它的部分是这些独立控制流。对于组合实例,这些流表示活动类实例的继承子实例;而对于共享实例,这些流体现了与共享实例的所有者处于相同范围中的所有控制流的对等控制流。</p>             <b><font face="Arial" size="5"><p></font></b><font size="5">8.3<a name="8.3"></a> </font>导出语义</p>             <p>模型元素的语义参见第二节。</p>             <p>关系的语义参见第六节。</p>             <p>类型和操作的语义参见第七节。</p>             <p>类是类型的子类型,所以类的实例与类型实例具有相同的性质,它们之间的根本区别在于类型实例指定界面,而类实例指定这些界面的实现。这是UML中基本的说明/实现结构。类型实例只能有成员操作实例,而类实例只能有成员方法实例(即使方法是操作的子类型而使得方法实例有语义可替代性)。类型和类的实例都有成员属性实例。</p>             <p>在动态方面,             一个类实例可以接收信号实例或操作实例,但不能同时接收。</p>             <p>如第5.4节所述,类实例和类型实例之间的关系可以被明确地模型化为求精依赖。另外,如第七节所述,如果一个给定的类实例不是任何类型实例的求精,那么这个类实例的类型和类相同。</p>             <p>求精的语义应用于类的所有子类型。活动类、构件和结点实例可以是类型实例的求精,表示类型实例指定了抽象的界面,而相应的活动类、构件和结点实例提供了它们的实现(分别体现控制流、包装的物理部件和分布的物理部件)。</p>             <p>求精的语义也应用于方法实例:方法实例和操作实例的关系可以被明确地模型化为求精依赖。如果一个给定的方法实例不是任何操作实例的求精,那么这个方法实例的操作和方法相同。</p>             <p>方法实例的实现可以有两种手段:明确地通过提供它的body属性值(通常使用UML之外定义的程序设计语言)来实现;或隐含地由与方法实例相关联的行为实例通过相应协同实例的表现导出。</p>             <p>如第九节所述,类型和操作实例都可以被协同实例实现。由于类和方法分别是类型和操作的子类型,所有类和方法实例也可以由协同实例体现。</p>             <p>关系实例具体化为类实例影响命名空间的语义。如第六节所述,关系实例的名字实例相对于它所连接的元素实例必须唯一。与类实例相关联的名字实例在它的命名空间中必须唯一,如第二节所述。这样,当一个关系实例被具体化为关系类时,与关系实例相关联的名字实例必须满足更强的唯一性。</p>             <p>如第五节所述,构件和结点都是类型的子类型。所以,构件和结点参加UML的说明/实现结构。构件和结点的实例都可以是类型实例的求精,表示可以指定构件或结点的界面。</p>             <p>作为类型的子类型,构件和结点实例都具有与类型协同的性质。但是,构件和结点实例没有信号或与信号相关联的成员。</p>             <p>类似地,如第六节所述,类型实例可以参见一般化关系和关联关系。由于构件和结点都是类型的子类型,构件和结点实例也可以参加这些关系。</p>             <p>线程的语义和状态机实例的语义相互作用,参见第十节。每个活动类实例有一个与之相关联的事件队列,其中附在活动类实例和线程范围内的所有其它实例上的事件是线性化的。UML预定义了一些操作实例,这些操作实例是活动类实例的隐含成员实例;这些操作实例被用来操作活动类实例的事件队列。</p>             <b><font face="Arial" size="5"><p></font></b><font size="5">8.4<a name="8.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%">构件</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>               <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="22%">值</td>                 <td width="22%">应用于</td>                 <td width="35%">语义</td>               </tr>               <tr>                 <td width="22%">定位</td>                 <td width="22%">构件<p>结点</td>                 <td width="22%">模型元素<p>构件</td>                 <td width="35%">定位是由构件实例集合上模型元素实例的实现以及结点实例上构件实例的实现的导出值。</td>               </tr>             </table>           </blockquote>              <p><b><a href="umlsemantics001.htm">返回目录</a></b></p>   </body>    

⌨️ 快捷键说明

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