UML,Unified Modeling Language
統一塑模語言。用圖解呈現程式架構與互動,促進軟體開發溝通品質
UML是統一塑模語言的縮寫,主要應用在軟體工程領域,它的概念是透過一系列視覺化圖形規範,表達系統架構的組成元件、關係與互動方式等概念。

UML的誕生與物件導向程式開發息息相關。在UML出現之前,物件導向軟體工程在分析、設計上有許多不同的表達方式,例如Booch方法、OMT(Object Modeling Technique)、Objectory等,這些表達方式各有長處,例如OMT適合在物件導向分析階段,而Booch方法一般認為在物件導向設計階段也很具優勢,因此各有支持者,便發生「各唱各的調」的情況,對系統開發產生溝通上的負面影響。

也因此,在1994年,Grady Booch、Ivar Jacobson、James Rumbaugh三人開始研議物件導向開發的共同言語,並向中立單位OMG(Object Management Group)建議UML。在1997年,OMG正式推出UML 1.1版,讓物件導向開發有了「書同文、車同軌」的契機。UML目前最新的版本是在2007年推出的2.1.1版。

目前UML常用來表達軟體設計與模式的語言,但它也能被應用在許多不同的領域,例如商業流程、組織架構、系統工程等。文⊙黃天賜

3 amigos
UML三友
Amigo源自西班牙語中的好友,3 amigo指的是Booch、Jacobson、Rumbaugh三人。最早提出計畫將紛亂的物件導向開發方法論統一的人,是在Rational(後來由IBM併購)公司的Booch,而Rumbaugh在加入Rational之後,兩人開始合作,後來Jacobson也帶著使用案例的觀念加入,而成為知名的3 amigo,與設計開發模式知名的四人幫(Gang of Four,Gof)有異曲同工之妙。

Composite Structure Diagram
合成結構圖
合成結構圖是UML 2.0才引進的圖解,用來處理日益複雜的元素關係。它在概念上連結了類別圖和元件圖。合成結構圖的重點在展現系統內的元件如何結合,以實現複雜的模式的表現方式。

合成結構與套件的觀念有相似的地方,這有時容易成造成適用性上的混淆。其中一個可參考的判別方法是將套件當作是編譯時期的群組,而將合成結構視為執行時期的群組。

Diagram
圖解、示圖
雖然UML這項標準用語言來命名,但在呈現上,其實是利用一系列的圖型,用來描述物件導向系統的組成與運作方式。實務上,UML的圖可以當作是程式開發過程中的草稿,作為開發的溝通語彙,這時UML的繪製通常較精簡。另外,UML也能作為程式開發的藍圖,這時就必須盡可能詳細,讓程式開發人員只需按圖索驥,即可完成大部分的程式架構,甚至是透過工具產生程式碼。

Methodology
方法論
開發工作的進行,從一開始收集與分析需求,到匯集資訊後整合到程式開發中,通常會有開發流程的方法論來指導,這便是程式開發的方法論,例如常見的瀑布式(Waterfall)或反覆式(Iterative)的開發流程等。由於UML獨立於方法論之外,任何方法論都能結合UML使用。在OMG的建議中,在專案中使用UML,一開始須視專案情況找出適用的方法論,之後才是選擇適合的UML工具。

MDA,Model Driven Architecture
模型驅動架構
MDA是由OMG制定的規格,主要的概念是將UML繪製的圖型轉換成程式碼,此種方式的出現,不但讓UML搖身一變為程式開發語言,也能讓軟體工程的設計與開發階段結合得更為緊密。理論上只要開發工具廠商依循MDA規格去設計開發環境,圖形的UML就能轉換成程式碼,進而提高UML的相容性與流通性。與此概念相似的是可執行的UML(Executable UML),它並沒有使用所有UML標準,但相形之下更容易明瞭。

Multiplicity
多重性
UML定義的類別屬性中,具有多重性這個性質,它用來說明讓屬性可能存在多少個實體。由於UML的超模型(supermodel)中,預設多重性的值是1,因此使用者如果沒有特別指定多重性,便會自動內定為1。

在指定多重性時,除了明確個數之外,也可以用範圍的方式來指定,在上限與下限值之間用「..」隔開。此外,也可以使用「*」符號代表「無上限」的意義。

OCL,Object Constraint Language
物件規範語言
物件規範語言在先前的UML版本中已經出現,但在UML 2.0版中,給予更正式的規範。它提供塑模時在模型中表達規範和邏輯的方法,例如用來表現先決條件、後決條件、不變的值、警戒狀況等,以實例而言,例如「訂購金額必須大於500,才能有免運費的優惠」就可以透過物件規範語言加以表達。不過它是一種只限查詢的語言,不能用來修改模型或執行系統。

Nested Classifier
巢狀分類器
UML 2.0版導入了巢狀分類器的概念。在UML中,基本塑模元素便是分類器,用來表示一群具有共同屬性的事物。例如類別、元件、使用案例等。在UML 2.0中,使用者可以在一個分類器中加入多層的結構,例如在元件中加入類別,或是將行為(behavior)置入於類別或元件之中。巢狀分類器能用來表達更為複雜的概念,也擴展了應用面向,例如可將企業商務流程與系統流程透過巢狀分類器,表達出兩者的關聯性。

Stereotype
刻版、模版
UML提供分類器的擴展機制,透過在元素上增加額外資訊的方法達成,可用的方式包含有刻版、標籤值與規範。刻版用來對模型元素進行分類,例如在類別上利用刻版標示這個類別的性質,不但有助於提升閱讀性,對於CASE工具廠商而言,刻版也是達成模型驅動架構的重要方法,例如透過刻版改變類別的圖示。刻版必須寫在雙角括號(<< >>)當中,在當元素在附加刻版時,同時可以使用一個以上的刻版。

熱門新聞

Advertisement