統(tǒng)一建模語言UML概念和功能簡介
本節(jié)向大家介紹一下統(tǒng)一建模語言UML,主要包括UML基本概念和功能兩大部分內容,希望通過本節(jié)的學習大家能夠掌握統(tǒng)一建模語言UML的一些基本知識。
統(tǒng)一建模語言UML概述
1.基本概念
UML(統(tǒng)一建模語言,UnifiedModelingLanguage)是OMG(ObjectManagementGroup)組織在1997年發(fā)表的圖標式軟件設計語言,是一個繪制軟件概念圖的圖形化記法(notation)。人們可以用它繪制圖形,用這些圖形來表示一個計劃進行的軟件設計的問題域,或者用這些圖來表示一個已經(jīng)完成的軟件實現(xiàn)。
統(tǒng)一建模語言UML綜合了當時很多種已存在的面向對象的建模語言、方法和過程,主要包括:
BoochMethod
Object-OrientedSoftwareEngineening
Schlaer-Mellor
Coad-Yourdon
ObjectModeingTechnique
UML可分為三個種不同的層次:概念層(Conceptual)、規(guī)格說明層(Specification)和實現(xiàn)層(Implementation)
概念層上的圖形與源代碼沒有什么嚴格的關系,它們與人類自然語言相關。它們是用來描述有關已經(jīng)存在的人類的問題領域的概念和抽象的速記。它們無須遵從嚴格的語義規(guī)則,因此它們的意思理解會有歧義、主題可被解釋。
規(guī)格說明層和實現(xiàn)層的圖形與源代碼有明顯的關系,實際上,規(guī)格說明層的圖是準備用來轉換成成源代碼的,類似地,實現(xiàn)層的圖是打算用來描述已經(jīng)存在的源代碼的。在這些層次的圖形,有許多規(guī)則和語義學要遵從,這些圖較少有歧義,基本上都有嚴格的格式。
舉例:一條狗(Dog)是一只動物(Animal)。
表示這句話的一個概念層次的統(tǒng)一建模語言UML圖如下
這個圖描繪了通過泛化(generalization)關系連接起來的稱為Animal(動物)和Dog(狗)的兩個實體。Animal是Dog的泛化,一條Dog是一種特定的Animal。這是所有這張圖的意義了,沒有什么其他意思可以從中推斷出來了。這個概念模型沒有涉及任何有關計算機、數(shù)據(jù)處理和程序。我們可以聲稱,我們的寵物狗是一只動物,我們或者可以談到屬于動物界的生物學的分類上去。因此,這張圖是主題可解釋的。
不過,這張圖在規(guī)格說明層次和實現(xiàn)層次上有更明確的意思:
這些代碼定義了通過繼承關系連接的Animal類和Dog類,這個規(guī)格說明模型描述了程序的一部分。
一個概念層次上的圖沒有定義源代碼,也不應該去定義源代碼。一個描述了某個問題解決方法的規(guī)格說明層次的圖,也不會去尋找任何像概念層那樣的問題的描述。
2.統(tǒng)一建模語言UML的功能
對一個軟件系統(tǒng)來說,UML具有以下主要功能[BOOCH99]:可視化功能;說明功能;建造功能和文檔化功能。
可視化(Visualizing)功能
這是非常有價值的,從一個可視化的圖上去評估一個系統(tǒng)的依存結構比從代碼中去評估容易多了。
可視化可以促進對問題的理解,并且方便設計師彼此交流和溝通。
可以比較容易的發(fā)現(xiàn)設計圖中可能存在的邏輯錯誤,避免和減少意外發(fā)生。
說明(Specifying)功能
提供了一種通用的,精確的,沒有歧義的機制,來對一個軟件系統(tǒng)進行說明。
建造(Costructing)功能
UML提供了自己的標準語法規(guī)則,可以使用建模工具軟件對一個系統(tǒng)設計模型進行解釋,并將設計模型映射到計算機語言(如Java)上。也就是說,可以加快系統(tǒng)的設計,實現(xiàn)過程。
通過統(tǒng)一建模語言UML可以反映系統(tǒng)的總貌。這樣,當系統(tǒng)設計首先完成后,可以比較容易的發(fā)現(xiàn)可以復用的部分,從而降低開發(fā)成本。
文檔化(Documenting)功能
使用統(tǒng)一建模語言UML進行設計可以同時產生系統(tǒng)設計文檔。文檔可以幫助開發(fā)人員更快的熟悉系統(tǒng),節(jié)省學習時間。
【編輯推薦】