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