?? umlmetametamodel003.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><font face="Times New Roman"> </font><font face="Arial" size="5"><p><img border="0" src="i/umldilver.gif" width="606" height="15"></font></p> <b><font face="Arial" size="5"><h3></font><font size="5">2.<a name="2"></a>元元模型 </font><a href="umlmetametamodel000.htm">返回目錄</a></h3> </b><font face="Times New Roman"><p></font> <font face="Times New Roman"></p> <p></font>UML元元模型描述基本的元元類型、元元屬性、元元關系,這些都用于定義UML元模型。元元模型實現了下述要求的一個基本設計:強調使用少數功能較強的建模成分,而這些成分易于組合起來表達復雜的語義。盡管在本文檔中元元模型的提出和定義 UML 元模型有關,但它被設計在一個方法和技術都相對獨立的抽象層次上。因此, 它可以用于其它用途,例如定義 庫repositories或者模型轉換格式。這些功能在<i>附錄3:UML元元模型與MOF和CDIF的一致</i>中做了進一步探討。<font face="Times New Roman"></p> </font><p>由于在四層元模型體系結構中元層次之間的關系是元遞歸的,我們需要某些基本的模型概念來定義元元模型本身。因此,我們假定已有以下的元元對象:</p> <blockquote> <blockquote> <p>元類型</p> <p>元一般化</p> <p>元關聯</p> <p>元角色</p> <p>元屬性</p> </blockquote> </blockquote> <font face="Times New Roman"><p></font><br> 與元建模的元遞歸特性相一致的,這些概念將在后面的元元模型中加以說明。</p> <font face="Times New Roman"><p></font>UML元元模型分成幾部分加以描述:</p> <blockquote> <i><p align="JUSTIFY">元元對象繼承層次(層次圖、層次結構)。</i>提供元元對象在元元模型中的分類法。</p> <i><p>元元對象。</i>描述這樣一些元元對象,它們用于定義元元模型結構上的和行為上的概念。</p> <i><p align="JUSTIFY">非對象類型</i>。描述元元模型使用的原始數據類型。</p> </blockquote> <b><font face="Arial" size="5"><p></font><font size="5">2.1<a name="2.1"></a>元元對象的繼承層次(層次圖、層次結構)<br> </font><font face="Arial" size="5"></p> </b></font> </b><p>用于元元模型的元元對象繼承層次(層次圖、層次結構) 見圖2。 元對象構成了繼承層次(層次圖、層次結構)的基礎:</p> <blockquote> <b><p>元對象</b>。元元對象的繼承層次(層次圖、層次結構)的根,它定義了一個元元屬性作為名字(屬性<i>name</i>),該名字為所有子類型公用。 元對象是抽象的,而且是元元模型的基本構造塊。元對象與元模型的模型元素相似。</p> </blockquote> <p>繼承層次(層次圖、層次結構) 中其他的元元對象分別在描述元元模型的不同部分的各小節中加以討論。<a name="chart2"></a></p> <p> <b><font size="5"><img border="0" src="i/image38.gif" WIDTH="973" HEIGHT="563"></font></p> <p><font size="5">2<a name="2.2"></a>.2 元元對象</p> </font> </b><font face="Times New Roman"><p></font> <font face="Times New Roman"></p> </font><p>元元模型中的元元對象用于定義結構的和行為的概念。大多數的元元對象被認為是結構上的定義;只有元操作和元參數被認為是行為上的定義。盡管可以避免對元操作和元參數的定義,但由于以下原因,我們仍然把它們包含了進來:1)元操作是用于定義當前元模型的;2)我們相信,行為的元元對象對于表達動態語義是很重要的,而這種能力隨著建模的進展將變得愈加重要。 <font face="Times New Roman"></p> </font><p>用于定義元元模型的元元對象見圖3。這些元元對象包括:</p> <blockquote> <b><p>元關聯</b>。元對象的一個直接子類型,它表現了元元對象之間的一種雙向的語義聯系。元關聯與元角色一起來定義兩類特殊的元元關系:元元聚集和元元組合。它與元模型中的關聯相類似。<b> <font face="Times New Roman"></p> </font><p>元限制條件</b>。元對象的一個直接子類型,它表現對一個元元對象的限制條件。元限制條件和元模型中的限制條件相類似。</p> <b><p>元成員。</b>元對象的一個直接子類型,它是一個沒有添加任何自身元元屬性的抽象類型。它從概念上把下面的元屬性和元操作子類型組織起來。元成員與元模型中的成員相類似。</p> <b><p>元屬性</b>。元成員的一個直接子類型,它表現了元元類型的一個命名了的性質。元屬性與元模型中的屬性相類似。</p> <b><p>元操作</b>。元成員的一個直接子類型,它表現了由元類型提供的一種可請求的服務。元操作可以包含零個或多個元元參數。元操作與元模型中的操作相類似。</p> <b><p align="JUSTIFY">元模型</b>。元對象的一個直接子類型,它表現了一種組合機制,以此來規定在一個元元模型中使用哪些元元對象。元元模型可以嵌套。元模型(MetaModel)與元模型(metamodel)中的模型相類似。</p> <b><p>元參數</b>。元對象的一個直接子類型,它表現了可變的值,該值在一個元元操作中被傳遞或者返回。元參數與元模型中的參數相類似。</p> <b><p align="JUSTIFY">元類型</b>。元對象的一個直接子類型,它表現了這樣一些元元實例的集合,它們共享同樣的元元操作、抽象元元屬性、元元關系和語義。一個元類型可以定義一個元元操作的規格說明而不定義元元操作的實現。作為元類型的反射元元關聯,我們定義了元元一般化關系。元類型與元模型中的類型相類似。</p> <b><p align="JUSTIFY">元類</b>。元類型的一個直接子類型,它表現了這樣一些元元對象的集合,它們共享同樣的元元屬性、元元操作、元元方法、元元關系和語義。與元類型相反,一個元類可以包含元元操作的實現(如 元元方法)。元類與元模型中的類相類似。</p> <b><p>元數據類型</b>。元類型的一個直接子類型,它表現了非對象類型,例如元數和元字符串。元數據類型與元模型中的原始類型相類似。</p> <b><p>元角色</b>。元對象的一個直接子類型,它表現了一個元元關聯中一個元元類型的特殊行為。元角色與元關聯一起來定義兩類特定的元元關系:元元聚集和元元組合。它有如下的元元屬性:</p> <blockquote> <blockquote> <font face="Times New Roman"><p align="JUSTIFY"></font>multiplicity:元多重記號。指定參與一個元關聯的元元對象的數目。</p> <font face="Times New Roman"><p align="JUSTIFY"></font>isNavigable:元布爾值。表明對于參與的元元對象來說,該元關聯是否是可通行的。</p> <font face="Times New Roman"><p align="JUSTIFY"></font>isAggregate:元布爾值。如果isAggregate = true,元元聚集關系就是有效的。 <font face="Times New Roman"></p> <p align="JUSTIFY"></font>isChangeable:元布爾值。如果附加了說明:isAggregat =true,isChangeable = false及source的multiplicity = 0..1,那么元元組合關系是有效的。 <font face="Times New Roman"></p> <p align="JUSTIFY"></font>isOrdered:元布爾值。如果isOrdered = true,有序的元元關聯成為有效的。 <a name="chart3"></a><font face="Times New Roman"></p> </blockquote> </blockquote> </blockquote> <p></font> <b><font size="5"><img border="0" src="i/image39.gif" WIDTH="943" HEIGHT="528"></font></p> <p><font size="5">2.<a name="2.3"></a>3 非對象類型</p> </font> </b><font face="Times New Roman"><p align="JUSTIFY"></font> <font face="Times New Roman"></p> </font><p align="JUSTIFY">用于定義元元模型的原始數據類型的非對象類型見圖4。這些非對象類型包括:</p> <blockquote> <b><p align="JUSTIFY">元布爾值(MetaBoolean)</b>。其值為真或假的枚舉。</p> <b><p align="JUSTIFY">元枚舉</b>。 一系列命名的值的列表(列出),作為一個特定的屬性類型的取值范圍。 <font face="Times New Roman"></p> </font><b><p align="JUSTIFY">元表達式</b>。 一個字符串,經計算可得到一個特定類型的值。 <font face="Times New Roman"></p> </font><b><p align="JUSTIFY">元多重記號(Meta</b>Multiplicity)。一個規格說明,規定了一個集合的基數的允許取值范圍。本質上,MetaMultiplicity是非負整數的一個子集(可能是無窮集)。 <font face="Times New Roman"></p> </font><b><p align="JUSTIFY">元名字</b>。用于區分元元對象的字符串。 <font face="Times New Roman"></p> </font><b><p align="JUSTIFY">元數(MetaNumber)</b>。對于所有類型的數的一種概括表示。 <font face="Times New Roman"></p> </font><b><p align="JUSTIFY">元點(MetaPoint)</b>。以元組(x,y,z)形式表示的空間的一個位置。</p> <b><p align="JUSTIFY">元字符串</b>。一個文本字符的序列。</p> <b><p align="JUSTIFY">元時間(MetaTime)</b>。一個值,它代表時間上一個絕對的或相對的時刻。</p> <b><p>元未解釋的</b>(MetaUninterpreted)。一個沒有實現的元類型的占位符。每一個元未解釋的值有一個與之對應的元字符串表示。<a name="chart4"></a></p> </blockquote> <p><img border="0" src="i/image40.gif" WIDTH="907" HEIGHT="353"></p> <font face="Times New Roman"><p></font><br> <a href="umlmetametamodel000.htm">返回目錄</a></p> </body>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -