因此,值得注意的是在UML 2.0中定義所使用的精確程度已經增強了。它是通過以下方法完成的:
一種元模型架構的主要重建: UML 2.0架構是由一組低層次的建模概念和模式所組成的,它們在大多數的案例中要么過于初級,要么太抽象,以至于不能直接地在建模軟件應用程序中使用。然而,它們相對的簡單性使得它們在其語義和形成的規則上更加精確。這些優化后的概念,以不同的方法結合產生了更加復雜的用戶級別的建模概念。例如,在UML 1中,在所有權角度上(即,元素包含另外一些元素),命名空間的概念(也叫唯一命名的元素集合)與分類器的概念(元素是能根據它們的屬性進行分類的)上,都與單個的復雜語義概念綁定在一起。(注意這同樣意味著如果沒有包含另外兩個而使用其中的任意一個的話,那是不可能的。)在新的UML 2.0架構中,這些概念被分離開,并且它們的語法和語義也被單獨的定義?蓴U展的和更加精確的語義描述:UML 1模型概念語義的定義在許多方法都存在問題。它所描述的層次有些地方具有某些廣泛的和詳細的描述(例如,狀態機),但是非常不平均,而其它的一些地方幾乎沒有解釋。UML 2.0規范主要強調了語義,尤其是在基本行為動態的關鍵領域中(如下所述)。對于一個更加詳細的UML 2.0語義的討論,請參考資源部分中的[Selic04]。一種清晰定義的動態語義框架: UML 2.0規范澄清了一些在老版本中的嚴重語義缺陷。圖一描述了這個框架,至于更多的細節在資源中有所描述。[Selic04]。此外,下面的問題將通過這個框架詳細的描述出來: 在運行期間的鏈接和實例的結構化語義結構和行為之間的關聯語義的基礎或因果關系模型通過所有當前在UML中的高級行為形式(即狀態機,活動,交互)所共享。這同樣也確保了那些通過不同的形式表達行為的對象可以相互的交互。新的語言架構
UML 2.0 在精確度方面的提升所造成的最直接的結果之一,就是即使不算它所新增的建模能力部分,這種語言的定義也變得更大了。特別是對于最初的UML,曾被批評過于龐大(以至于學習和使用起來太麻煩),對于現在更加龐大的定義,這點通常又將被關注。
這樣的批評典型地忽略了一個事實,那就是UML原本就是用來表述一些現在最復雜的軟件問題,這樣的問題當然需要功能充分強大的工具。(成功的科技——如同汽車和電子學,從來沒有變得簡單;對機器持續不斷的要求是人類的本性之一,這就造成了最終越來越復雜的工具。例如,沒有人會企圖用基本的手工建造現代的摩天大廈。)
不過,由于有了這些顧慮,UML2.0 在某種程度上進行了模塊化,允許有選擇性的使用一些語言模塊,以便解決語言復雜度的問題。這種結構的通常形式如圖2所示。一些像類和關聯這樣的共享概念組成了它的基礎部分,頂部是垂直的子語言或語言單元的一個集合,集合中的每個單元都很適合用來對某個具體的方面進行建模(Table 1)。這些垂直的語言單元一般都是相互獨立的,因此你可以單獨地使用它們。(注意:這在UML1中是不行的,在UML1中,活動的形式完全是基于狀態機的形式。)
圖 2. UML 2.0的語言架構
此外,垂直語言單元按級別組織成三層,通過在那些可用的層上增加建模能力可以形成相互連續的更高層。這就對模塊性提供了更多的空間,即使對一個已給定的語言單元,你也有可能只使用某些特定的子集。
文章來源于領測軟件測試網 http://www.kjueaiud.com/