UML是在多種面向對象建模方法的基礎上發展起來的建模語言,主要用于軟件密集型系統的建模。它的演化,可以按其性質劃分為以下幾個階段:最初的階段是專家的聯合行動,由三位OO(面向對象)方法學家將他們各自的方法結合在一起,形成UML 0.9。第二階段是公司的聯合行動,由十幾家公司組成的“UML伙伴組織”將各自的意見加入UML,形成UML 1.0和1.1,并作為向OMG申請成為建模語言規范的提案。第三階段是在OMG控制下的修訂與改進,OMG于1997年11月正式采納UML 1.1作為建模語言規范,然后成立任務組進行不斷的修訂,并產生了UML 1.2、1.3和1.4版本,其中UML 1.3是較為重要的修訂版。目前正處于UML的重大修訂階段,目標是推出UML 2.0,作為向ISO提交的標準提案。
在多種面向對象建模方法流派并存和相互競爭的局面中,UML樹起了統一的旗幟,使不同廠商開發的系統模型能夠基于共同的概念,使用相同的表示法,呈現彼此一致的模型風格。而且它從多種方法中吸收了大量有用(或者對一部分用戶可能有用)的建模概念,使它的概念和表示法在規模上超過了以往任何一種方法,并且提供了允許用戶對語言做進一步擴展的機制。
UML在語法和語義的定義方面也做了大量的工作。以往各種關于面向對象方法的著作通常是以比較簡單的方式定義其建模概念,而以主要篇幅給出過程指導,論述如何運用這些概念來進行開發。UML則以一種建模語言的姿態出現,使用語言學中的一些技術來定義。盡管真正從語言學的角度看它還有許多缺陷,但它在這方面所做的努力卻是以往的各種建模方法無法比擬的。
從UML的早期版本開始,便受到了計算機產業界的重視,OMG的采納和大公司的支持把它推上了實際上的工業標準的地位,使它擁有越來越多的用戶。它被廣泛地用于應用領域和多種類型的系統建模,如管理信息系統、通信與控制系統、嵌入式實時系統、分布式系統、系統軟件等。近幾年還被運用于軟件再工程、質量管理、過程管理、配置管理等方面。而且它的應用不僅僅限于計算機軟件,還可用于非軟件系統,例如硬件設計、業務處理流程、企業或事業單位的結構與行為建模。
不過UML在取得巨大成功的同時,也不斷地受到批評。來自工業界的批評主要是,它過于龐大和復雜,用戶很難全面、熟練地掌握它,大多數用戶實際上只使用它一少部分的概念;它的許多概念含義不清,使用戶感到困惑。來自學術界的批評則主要針對它在理論上的缺陷和錯誤,包括語言體系結構、語法、語義等方面的問題。
目前國內也有不少軟件企業在學習并嘗試使用UML。從總體上看,我國計算機界對UML的了解還相當初步,但是對它的崇拜程度卻遠遠超過了西方發達國家。人們在學習和使用UML遇到和國外用戶相同的疑難和困惑時,卻不太敢懷疑UML有什么問題。所以國內幾乎沒有批評的聲音,偶爾有一點,也會立即被捍衛的聲音淹沒,即使對UML一些最明顯的缺點和錯誤也是如此。
相比之下,國際上對UML的討論和評價則要客觀得多。無論是Internet上的意見交流,或是每年一次的UML研討會,還是學術期刊上發表的文章,都是既肯定其成績,又指出其缺點和錯誤,并且以積極的態度提出建設性意見。在醞釀UML下一次的重大發布和籌劃UML 2.0作為ISO標準提案的最近兩年內,圍繞UML的討論更為活躍和熱烈。
為了使我國計算機界對UML目前的狀況有較為客觀的了解,我們從大量的文獻資料中選擇了三篇最具權威性的文章,介紹給我國讀者。從這組文章中,我們可以得到關于UML現狀及未來發展的重要信息:
● UML已經取得重要成功,它已成為在軟件工業中占支配地位的建模語言,并在許多領域的軟件開發中得到應用。
● UML還存在許多問題,自它產生之日起就從未離開過批評:用戶和教師抱怨它內容龐大、難學難教而且太過復雜;學者認為它缺少一個精練的核心和定義良好的外圍,有些語義定義得不夠精確而且帶有二義性;建模實踐者認為它缺少支持自己領域建模要求的機制;工具開發商則因為規范本身的不確定性而產生理解上的偏差,它們對UML的自行詮釋有可能誤導用戶。
● UML的關鍵問題是過于龐大和復雜,以及在語言體系結構、語義等方面存在理論缺陷。產生這些問題的一個重要原因是,在形成規范的過程中不得不照顧多種方法流派的觀點和多家公司的利益。
為了UML的下一次重大發布,UML 2.0修訂的主持者正在廣泛收集各方面的意見。各界都給予了很高的關注,提出的意見涉及UML的各個方面。其中一個關鍵問題是UML是否需要簡化,以及如何使之更精練,最終大部分意見是提供一個精練的核心,而把不常用的內容放到定義良好的外圍或擴展機制中。此外,UML 2.0還將對UML的底層結構、上層結構和對象約束語言(OCL)做重大改進。
凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
、轉載請注明來處和原文作者。非常感謝。