網頁

搜尋此網誌

2010年11月30日 星期二

Unified Modeling Language 統一塑模語言

Unified Modeling Language縮寫為UML,中文普遍翻譯為「統一塑模語言」(國立編譯館學術名詞資訊網上面是「統一模型化語言」),通常我們都用UML稱之,UML和程式語言一樣是有版本區別,目前最新的版本是2.3版,2.X版的UML通稱為UML 2.0。

UML的規範(Specification )文件分成兩部分,一部分為UML infrastructure(基礎結構),定義UML語言的基礎語法。另一部分是UML Superstructure(上層結構),則是定義使用者延伸的語法。兩者互補而構成完整的UML視覺化語言(Visual Language),兩個規範文件總共大約一千頁左右,一般人大概不會去看的!所以...

這裡推薦兩本對於學習UML有助益的書籍。第一本是「UML精華第三版」,這本可說是僅寫到UML精華之處,對於初學者來說建議瀏覽過一遍有印象就好,後續學習UML更能體會作者所說的奧義,不急著第一次就看懂。第二本是「UML物件導向系統分析與設計」,雖然沒有涵蓋完整的UML內容,但是淺顯易懂平易近人,加上這本書從實務開發上介紹UML讓讀者更有感覺!

Martin Fowler著,趙光正譯,UML精華第三版:增訂嵌入式系統與工作流程概念,台北:台灣培生教育出版:碁峰資訊發行,2007。
(原書名:UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3/E)

游峰碩,UML物件導向系統分析與設計,台北:博碩文化,2010。

目前UML 2.3中定義了14種圖(Diagram),分成結構圖(Structure Diagram)行為圖(Behavior Diagram)兩大類,如下所述:
  • 結構圖(Structure Diagram)
    • 類別圖(Class Diagram)
    • 合成結構圖(Composite Structure Diagram)
    • 元件圖(Component Diagram)
    • 配置圖(Deployment Diagram)
    • 物件圖(Object Diagram),第一版是實例圖(Instance Diagram)
    • 套件圖(Package Diagram)
    • 輪廓圖(Profile Diagram)
  • 行為圖(Behavior Diagram)
    • 活動圖(Activity Diagram)
    • 使用案例圖(Use Case Diagram)
    • 狀態機圖(State Machine Diagram)
    • 互動圖(Interaction Diagram)
      • 循序圖(Sequence Diagram)
      • 通訊圖(Communication Diagram),第一版是合作圖(Collaboration Diagram)
      • 互動概圖(Interaction Overview Diagram)
      • 時序圖(Timing Diagram)
結構圖指出物件於系統中的靜態結構(與時間無關),而行為圖則用於表現物件的動態行為,UML一靜一動,其語言定義相當地有系統!不過學習UML要注意一點,每個Diagram之間其實都有關聯性,僅學習一種Diagram會造成見樹不見林的感覺,可是若學習UML全部則會有見林不見樹的感覺,我想這是學習UML必經的困惑之一。

這次推薦兩本書籍當中都有提到軟體開發流程物件導向分析與設計(屬於方法論的部分),UML存在的目的也就是應用在開發、分析與設計之中,若能應用UML於此過程中,我認為學習上將可避免只見樹或只見林的窘境!值得注意的是,UML是創始於Grady Booch, Ivar Jacobson與 James Rumbaugh三位物件導向大師之手(請參考Martin Fowler著的「UML精華第三版」書中1.3節),這是否代表UML只能應用於物件導向程式語言(OOP)之上?

上述所說的是開發方法論所用的描述語言,從工具的角度來看,目前微軟在「Visual Studio 2010 Ultimate 企業旗艦版」工具中已經支援五種最常見的UML Diagram,並且整合程式碼撰寫開發流程,我認為對於UML具有指標性意義(不是紙上談兵而已),這五種UML分別是:
使用案例圖說明使用者與軟體系統之間的關係,而活動圖說明使用案例的運作流程,循序圖則解釋活動圖運作時物件之間的互動情形。軟體系統使用元件圖將系統模組化設計,而每個元件中則包含多個類別組成,這部分由類別圖說明物件的設計。從開發上來看這五個Diagram彼此互相關聯,也難怪Visual Studio 2010會引進使用。

對於未來,期望UML可以順利發展純熟,Martin Fowler提到UML的三個使用方式:草稿(Sketch)、藍圖(Blueprint)、程式語言(Programming Language)。目前大多數都將UML使用於設計草稿,藍圖方式則有賴於友善的開發工具配合(如Visual Studio之類),最困難的就是直接將UML當作一種程式語言使用,相信這會是夢想中的軟體開發方式!

###

沒有留言:

張貼留言

熱門文章