UML 中的公共機制

2021-09-27 09:45:17 字數 2124 閱讀 4688

通過與具有公共特徵的模式取得一致,可以使一座建築更為簡單和更為協調。

對於  uml 也是如此。

由於在 uml 中有 4 種貫穿整個語言且一致應用的公共機制,因此使得 uml 變得較為簡單。

這 4 種機制是:

(1)詳述

(2)修飾

(3)通用劃分

(4)擴充套件機制

詳述

uml 的詳述提供了語義底版,它包含了乙個系統的各個模型的所有部分,各部分以一致的方式相互聯絡。

因此,uml 的圖只不過是對底版的簡單視覺投影,每個圖展現了系統的乙個特定的關注方面。

修飾uml 中的大多數據元素都有唯一的和直接的圖形表示符號,這些符號對元素的最重要的方面提供了視覺化的表示。

uml 表示法中的每乙個元素都有乙個基本符號,可以把各種修飾細節加到這個符號上。 

通用劃分

在物件導向系統建設中,通常有幾種劃分方法。

第一種方法是對類和物件的劃分。

類是一種抽象,物件是這種抽象的乙個具體表現。

在uml 中,可以對壘和物件建立模型,在圖形上,uml是這樣辨別物件的:

用與類同樣的圖形符號來表示物件,並且在物件名下面畫一道線。

在這個圖中,有乙個名稱未 customer 的類,它由 3 個物件,分別為 jan (它被明確地標記為 customer 的物件),:customer (匿名的 customer 物件)和 elyse (它在詳述中被說明為是一種 customer 物件,儘管在這裡沒有明確地表示出來)。

uml 的每乙個構造塊幾乎都存在像類/物件這樣的二分法。

例如,可以有用況和用況執行、構件和構件例項、節點和節點例項等。

第二種方法是介面和實現的分離。

介面宣告了乙個合約,而實現則表示了對該合約的具體實施,它負責如實地實現介面的完整語義。

在uml 中,既可以對介面建模又可以對它們的實現建模,如:

在這個圖中,有乙個名稱為 spellingwizark.dll的構件,它實現了介面 iunknown 和 介面 ispelling,並且還需要乙個由其他構件提供的名為 idictionary 的介面。

幾乎每乙個 uml 的構造塊都有象介面 / 實現這樣的二分法。例如,用況和實現它們的協作,操作和實現它們的方法。

第三種方法是型別和角色的分離。

型別宣告了實體的種類(如物件、屬性和引數),角色描述了實體在語境中的含義(如類、構件或協作等)。

任何作為其他實體結構中的一部分的實體(例如屬性)都具有兩個特性:從它固有的型別派生出一些含義,從它在語境中的角色派生出一些含義,如下圖:

擴充套件機制

uml 提供了一種繪製軟體藍圖的標準語言,但是一種閉合的語言即使表達能力再豐富,也難以表示出各種領域中的各種模型在不同時刻所有可能的細微差別。

由於這個原因,uml 是目標開放的,使人們能夠以受控的方式來擴充套件語言。

uml 的擴充套件機制包括:

衍型 (stereotype)擴充套件了 uml的詞彙,可以用來創造新的構造塊,這個新構造塊既可從現有的構造塊派生的,又專門針對要解決的問題。

標記值 (tagged value)擴充套件了uml 衍型的特性,可以用來建立衍型的詳細新資訊。

如上圖,在類eventqueue 上明確標記了版本和作者,這樣就對該類進行了擴充套件。

約束 (constraint)擴充套件了 uml 構造塊的語義,可以用來增加新的規則或修改現有的規則。

例如,可能想約束類 eventqueue,以使所有的增加都按序排列。

如上圖,對操作 add 增加了乙個約束,及,以明確標示這一規則。

UML中的規則和公共機制

不能簡單地把uml的構造塊按隨機的方式放在一起。像任何語言一樣,uml有一套規則,這些規則描述了乙個結構良好的模型看起來應該像什麼,uml有用於描述如下事物的語義規則 命名 為事物 關係和圖起名。範圍 給乙個名稱以特定含義的語境。可見性 怎樣讓其他人使用或者看見名稱。完整性 事物如何正確 一致地相互...

UML中的事物

uml用來描述模型,從期結構入手,其內容主要分為三部分,分為事物 關係 圖。這三部分的內容具體劃分如下圖。現在我們先對該結構中的事物進行詳細的介紹。從上圖可以看出,uml中的事物包括結構事物,行為事物,組織事物和輔助事物 也成為注釋事物 結構事物主要包括七種,分別是類 class 介面 inte c...

UML中的關係

關係就是事物之間的聯絡。在物件導向的建模中,最重要的關係就是依賴 泛化 關聯和實現。一 依賴 是一種使用關係,說明乙個事物使用另乙個事物的資訊和服務,但反之未必可以行得通。圖形表示為一條有向的虛線。依賴的關係是所有關係當中最弱的,其他的在概念上都算是一種依賴關係,所以,依賴關係要少用,這樣才能更清楚...