UML參考手冊 第二部分 基 本 概 念 第11章 擴 展 機 制

來源:互聯網
上載者:User
UML參考手冊  

  第二部分 基 本 概 念  

第11章 擴 展 機 制

11.1 概述
  UML提供了幾種擴充機制,允許建模者在不用改變基本建模語言的情況下做一些通用的擴充。這些擴充機制已經被設計好,以便於在不需理解全部語義的情況下就可以儲存和使用。由於這個原因,擴充可以作為字串儲存和使用。對不支援擴充機制的工具來說,擴充只是一個字串,它可以作為模型的一部分被匯入、儲存,還可以被傳遞到其他工具。我們期望後端工具設計成能夠處理各種擴充,這些工具會為它們需要理解的擴充定義特定的文法和語義。
  這種擴充的方法很可能不能滿足出現的多種要求,但是它以一種易於實現的簡單方式容納建模者對UML裁製的大部分要求。
  擴充機制包括約束、標記值和構造型。
  一定要記住擴充是違反UML的標準形式的,並且使用它們會導致相互影響。在使用擴充機制之前,建模者應該仔細權衡它的好處和代價,特別是當現有機制能夠合理工作時。典型地,擴充用於特定的應用域或編程環境,但是它們導致了UML方言的出現,包括所有方言的優點和缺點。
11.2 約束
  約束是用文字運算式表示的語義限制。每個運算式有一種隱含的解釋語言,這種語言可以是正式的數學符號,如set-theoretic表示符號;或是一種基於電腦的約束語言,如OCL;或是一種程式設計語言,如C++;或是虛擬碼或非正式的自然語言。當然,如果這種語言是非正式的,那麼它的解釋也是非正式的,並且要由人來解釋。即使約束由一種形式語言來表示,也不意味著它自動為有效約束。
  約束可以表示不能用UML標記法來表示的約束和關係。當陳述全域條件或影響許多元素的條件時約束特別有用。
  約束用大括弧內的字串運算式表示。約束可以附加在表元素、依賴關係,或注釋上。圖11-1表示了幾種約束。

圖11-1 約束
11.3 標籤值
  標記值是一對字串—一個標記字串和一個值字串—儲存著有關元素的一些資訊。標記值可以與任何獨立元素相關,包括模型元素和表達元素。標記是建模者想要記錄的一些特性的名字,而值是給定元素的特性的值。例如,標記可以是author,而值是對元素負責的人的名字,如Charles Babbage。
  標記值可以用來儲存元素的任意資訊,對於儲存專案管理資訊尤其有用的,如元素的建立日期、開發狀態、到期日和測試狀態。除了內部元模型屬性名稱外,任何字串可以作為標記名(這是因為標記和屬性在一起會被認為是一個元素的屬性並且可以被工具一起訪問),而一些標記名已經被預定義了。見第14章)。
  標記值還提供了一種方式將獨立於實現的附加資訊與元素聯絡起來。例如,代碼產生器需要有關代碼種類的附加資訊以從模型中產生代碼。通常,有幾種方式可以用來正確地實現模型,建模者必須提供做出何種選擇的指導。有些標記可以用做標誌告訴代碼產生器使用哪種實現方式。其他標記可為加入工具使用,如專案計劃產生器和報表書寫器。
  標記值也可以用來儲存有關構造型模型元素的資訊(我們將在下面討論)。
  標記值用字串表示,字串有標記名、等號和值。它們被規則地放置在大括弧內(11-2)。在圖表中標記值經常被省略,只顯示在下拉表格中。

圖11-2 標籤值
11.4 構造型
  許多建模者希望為了一種特定的應用域裁製一種建模語言,這帶來一些風險,因為被裁製的語言不易普遍為人理解,但人們仍然試圖這麼做。
  構造型是在一個已定義的模型元素的基礎上構造的一種新的模型元素。構造型的資訊內容和形式與已存在的基本模型元素相同,但是含義和使用不同。例如,商業建模領域的建模者希望將商業對象和商業過程作為特殊的建模元素區別開來,這些元素的使用在特定的開發過程中是不同的。它們可以被看作特殊的類—它們有屬性和操作,但是在它們與其他元素的關係上和它們的使用上有特殊的約束。
  構造型建立在已存在的模型元素基礎上,構造型元素的資訊內容與已存在的模型元素相同。這樣便可允許工具以相同的方式儲存和使用新元素和已存在的元素。構造型元素可以有它自己的區別符號,並且這很容易由工具所支援。例如,一個“商業組織”可以有一個看起來像一組人的表徵圖。構造型也可以有一組適用於它的使用的約束。例如,一個“商業組織”可能只能與另一個“商業組織”,而不能與任何其他類聯合。不是所有的約束都能被多用途工具自動地確定,但是它們可以被用手動執行或被理解構造型的加入工具確定。
  構造型可以用標記值來儲存不被基本模型元素所支援的附加特性。
  構造型用雙角括弧內的文字字串表示,它可以放在表示基本模型元素的符號的裡邊或旁邊。建模者也可以為特殊的構造型建立一個符號,這個符號替代了原來的基本模型元素的符號。

圖11-3 構造型
11.5 裁製UML
  約束的擴充機制、標記值和構造型使得為了特殊的應用域而裁製UML輪廓成為可能。已經形成了幾種輪廓,其描述見附錄C。此外使用者還提出了其他。這種裁製建模語言的能力意味著應用域的使用者可以使建模語言適應應用域的需要,還能夠共用在所有領域中通用的概念。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.