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