UML規(guī)約的新版本將很快提交給OMG,新的改動(dòng)希望能夠簡(jiǎn)化模型驅(qū)動(dòng)的開(kāi)發(fā)。
Rational公司新加坡分部的高級(jí)軟件工程專(zhuān)家,Mark Hermeling認(rèn)為:UML2.0根據(jù)工業(yè)界使用UML1.x的經(jīng)驗(yàn)作了相應(yīng)改進(jìn),目的就是為了幫助簡(jiǎn)化模型驅(qū)動(dòng)的開(kāi)發(fā)。
UML的目前版本是1.4,它提供了方便開(kāi)發(fā)團(tuán)隊(duì)在分析設(shè)計(jì)、需求管理等活動(dòng)中進(jìn)行交流的整套工具,以及一個(gè)軟件開(kāi)發(fā)生命周期模型。
有人將UML描述為交流的符號(hào)集,這意味著可以直接寫(xiě)在紙上或者畫(huà)在白板上。但大多數(shù)用戶(hù)還是選擇使用工具,目前業(yè)界的ling dao是Rational,它和其它的工具提供商一起提供各種UML產(chǎn)品。
1996年,UML剛誕生的時(shí)候,廣受歡迎。在UML之前,建模方法非常多,這大大阻礙了基于模型的設(shè)計(jì),而UML實(shí)現(xiàn)了建模語(yǔ)言一定程度上的統(tǒng)一。
進(jìn)行面向?qū)ο笤O(shè)計(jì)的時(shí)候,第一步就要對(duì)現(xiàn)實(shí)世界進(jìn)行建模,UML正是為之定義的一套標(biāo)準(zhǔn)符號(hào),它由三種面向?qū)ο蟮姆治鲈O(shè)計(jì)方法發(fā)展并整合而來(lái):Grady Booch 描述對(duì)象及其相互關(guān)系的方法、James Rumbaugh的對(duì)象建模技術(shù)(OMT) 以及 Ivar Jacobson的方法,在Ivar Jacobson的方法中引入了use case方法的使用。
經(jīng)過(guò)多年的發(fā)展,在Rational 公司的Booch、Rumbaugh、Jacobson 三友以及其它專(zhuān)家的努力下,UML中還融入了很多其它的思想,現(xiàn)在,UML已經(jīng)成為OMG認(rèn)可的標(biāo)準(zhǔn)。
盡管UML只是幫助參與開(kāi)發(fā)的所有人員對(duì)模型進(jìn)行交流的一套符號(hào)系統(tǒng)。但Martin Fowler在其著作《UML Distilled》中指出,UML是由描述開(kāi)發(fā)過(guò)程和有關(guān)模型的使用的方法論發(fā)展而來(lái)的。盡管目前沒(méi)有被廣泛接受的統(tǒng)一過(guò)程,UML的使用者使用的方法實(shí)際上都非常相似。UML規(guī)約中有關(guān)建模的概念是對(duì)象、類(lèi)、關(guān)聯(lián)、職責(zé)、活動(dòng)、接口、use case、包、順序、協(xié)作和狀態(tài)。
在使用當(dāng)前版本進(jìn)行UML模型驅(qū)動(dòng)的架構(gòu)時(shí),使用者發(fā)現(xiàn)還缺少一些支持,如bug修復(fù)等,UML2.0中將增加這部分內(nèi)容,它將成為適用于企業(yè)建模和數(shù)據(jù)建模的龐大而靈活的符號(hào)語(yǔ)言。在UML2.0中,將對(duì)語(yǔ)意部分進(jìn)行增強(qiáng),這一點(diǎn)可以幫助UML模型更好地生成代碼,以得到更加實(shí)用的模型。在即將推出的版本中,還將包括增強(qiáng)的組件處理、對(duì)商業(yè)過(guò)程模型的支持,并更好地支持元數(shù)據(jù)交換。這些努力都是為了使UML作為一種勝過(guò)大多數(shù)文本語(yǔ)言的高層次的語(yǔ)言,能夠生成代碼和進(jìn)行反工程,甚至直接生成某些可執(zhí)行的UML模型。
目前,在各種工具之間進(jìn)行模型交換時(shí),只能保存非圖形化的信息,而象繪制的各種圖、尺寸、坐標(biāo)這樣的內(nèi)容都會(huì)丟失。在UML2.0中,將提供保留圖形信息的能力。
來(lái)自Rational公司的Hermeling認(rèn)為,工程師與開(kāi)發(fā)人員將越來(lái)越多地看到對(duì)建模的需求。他認(rèn)為,對(duì)于一個(gè)較大的開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō),需要有一個(gè)可視化的模型以保證所有人員都能理解總體的設(shè)計(jì)思路,建模的需求是顯而易見(jiàn)的。
利用業(yè)務(wù)過(guò)程建模,應(yīng)用UML可以得到業(yè)務(wù)的可視化模型,其作用類(lèi)似于建筑工程中的結(jié)構(gòu)圖。這個(gè)可視化模型可以使你在構(gòu)造整個(gè)軟件系統(tǒng)之前,就可以理解并預(yù)知設(shè)計(jì)的一些關(guān)鍵特性,判斷設(shè)計(jì)是否可行。事實(shí)上,除了軟件工程,在眾多工程領(lǐng)域中,建模都是非常關(guān)鍵的規(guī)避風(fēng)險(xiǎn)的技術(shù)。
但是,在Fowler眼里,軟件工程和其它工程是不同的。
首先,對(duì)建筑工程來(lái)說(shuō),工程師一般都有多年的經(jīng)驗(yàn)并且對(duì)所用的各種工程符號(hào)了如指掌,而UML的設(shè)計(jì)可能在紙上畫(huà)出來(lái)看著很好,真正編程時(shí)卻會(huì)發(fā)現(xiàn)很多問(wèn)題。另外,在建筑工程上,關(guān)鍵設(shè)計(jì)都是可以經(jīng)過(guò)數(shù)學(xué)分析進(jìn)行驗(yàn)證的;而在UML設(shè)計(jì)中,類(lèi)似的手段只有同行評(píng)審,雖然有一定作用,卻并不能避免錯(cuò)誤的發(fā)生。
另外,在成本比例方面,軟件設(shè)計(jì)和其它領(lǐng)域的工程也是截然不同的。舉修橋的例子來(lái)說(shuō)吧,設(shè)計(jì)成本可能也就占全部成本的 10%,而在軟件設(shè)計(jì)中,這個(gè)比率是50%。
UML最早是由Rational公司提出的,但已經(jīng)被很多公司使用,這里面最重要的就是OMG。公眾對(duì)UML的接受刺激了以模型為中心的開(kāi)發(fā),OMG提供了支持這種開(kāi)發(fā)的一系列標(biāo)準(zhǔn)的框架MDA(Model-Driven Architecture)。MDA的關(guān)鍵特點(diǎn)就是軟件開(kāi)發(fā)的重點(diǎn)和輸出不再是程序,而是各種模型,開(kāi)發(fā)人員的工作是不斷拓展模型,只有到了最后階段才會(huì)考慮將其實(shí)現(xiàn)。
OMG認(rèn)為,利用MDA可以得到更好的“高層抽象”設(shè)計(jì)框架,更好地得到針對(duì)今天各種語(yǔ)言的“通用化”代碼。和正在醞釀之中的基于XMI的數(shù)據(jù)交換一樣,基于MDA的數(shù)據(jù)交換方法將給開(kāi)發(fā)商和用戶(hù)雙方帶來(lái)好處。
XMI(XML Metadata Interchange)試圖通過(guò)XML語(yǔ)言為程序員和其它用戶(hù)提供一種交換元數(shù)據(jù)信息的標(biāo)準(zhǔn)途徑。XMI希望能夠幫助使用各種語(yǔ)言和開(kāi)發(fā)工具的UML開(kāi)發(fā)人員zi you地交換數(shù)據(jù)模型,另外,XML也可以用于數(shù)據(jù)倉(cāng)庫(kù)信息的交互;最重要的是,XMI制定了描述各種元數(shù)據(jù)定義的統(tǒng)一標(biāo)準(zhǔn),并要求跨行業(yè)和跨操作環(huán)境的用戶(hù)使用一致的方法讀取數(shù)據(jù)。
今年6月,包含OMG MDA標(biāo)準(zhǔn),促進(jìn)模型交互的UML基礎(chǔ)庫(kù)修改版已經(jīng)正式提交討論。參與討論的包括用戶(hù)熟悉的很多開(kāi)發(fā)商,包括I-Logix, Oracle, Rational, Telelogic and Computer Associates等等。
UML2.0中還將包括對(duì)組件建模的改進(jìn)。近幾年來(lái),隨著J2EE和微軟的.NET技術(shù)的出現(xiàn),組件技術(shù)得到很大發(fā)展。這方面,UML2.0中將考慮如下內(nèi)容:如何更好地描述組件描述的語(yǔ)意以及構(gòu)建.NET和企業(yè)JavaBeans的專(zhuān)門(mén)模塊。
Jim Duggan ,artner公司的副總裁和研發(fā)總監(jiān),認(rèn)為UML2.0中要處理的首要問(wèn)題就是保證標(biāo)準(zhǔn)的擴(kuò)展性,他認(rèn)為現(xiàn)行的標(biāo)準(zhǔn)中擴(kuò)展機(jī)制定義得不夠,導(dǎo)致各開(kāi)發(fā)商使用了不同的擴(kuò)展方法。另外,還必須提供對(duì)組件開(kāi)發(fā)、面向服務(wù)的框架以及web services的支持。
有人提倡,UML的發(fā)展應(yīng)該是向下兼容的,要保證過(guò)去基于UML1.x的用戶(hù)和工具開(kāi)發(fā)商所做的努力不會(huì)全部作廢。UML2.0中應(yīng)該提高精確度,可以選擇加入少量的一些新特性,要避免導(dǎo)致“語(yǔ)言膨脹”的困境。而現(xiàn)在有一個(gè)不妙的苗頭: UML將變得越來(lái)越大,而在最初,OMG聲稱(chēng)的目標(biāo)本來(lái)是簡(jiǎn)單化的。
Gartner公司的Duggan認(rèn)為,“新的規(guī)約正在變得越來(lái)越復(fù)雜,變得非常大,難以管理、理解和實(shí)施。標(biāo)準(zhǔn)委員會(huì)曾經(jīng)說(shuō)過(guò)將要把物理模型和邏輯模型分開(kāi)。但是,一旦規(guī)約復(fù)雜化了,要做到這一點(diǎn)就不大可能,而且規(guī)約本身也開(kāi)始失去作用。”
Alistair Cockburn,Humans and Technology的顧問(wèn),在他的論文中表達(dá)了同樣的意思。“在軟件開(kāi)發(fā)中把人也當(dāng)成了非線性的、第一位的組件”,Cockburn認(rèn)為那些重量級(jí)的開(kāi)發(fā)方法中試圖為一切建模,這是導(dǎo)致成功率不高的重要原因。他認(rèn)為在軟件開(kāi)發(fā)中人是最重要的,在設(shè)計(jì)符號(hào)中把人當(dāng)成一個(gè)組件,就是最大的失敗之源。
其它公司,如Telelogic也在致力于利用UML2.0從圖形化的用戶(hù)模型中自動(dòng)生成代碼。Telelogic在新加坡和亞洲其它地區(qū)創(chuàng)建了開(kāi)發(fā)中心,力圖提供幫助從概念模型轉(zhuǎn)化到組件的軟件。Scott Raskin(如圖),Telelogic公司亞太地區(qū)總裁,認(rèn)為亞洲是這方面增長(zhǎng)最快的地區(qū)。“UML允許組織從計(jì)劃到嵌入式系統(tǒng)實(shí)現(xiàn)的全部生命周期實(shí)現(xiàn)自動(dòng)化”但是,對(duì)于有些程序員而言,并不需要UML,他們完成的代碼中通常都很難找到相似的地方,對(duì)他們來(lái)說(shuō),模型是多余的。
Gartner公司的Dugguan警告說(shuō),“要記住,UML只是一種符號(hào),并不是什么方法論”。但事實(shí)上,幾乎所有的面向?qū)ο蠓治雠c設(shè)計(jì)(OOAD)工具和業(yè)務(wù)模型都是使用的UML。Dugguan指出,根據(jù)Gartner公司的估計(jì),在所有項(xiàng)目中,使用OO A&D方法論的大概有10%到12%,和過(guò)去使用CASE工具的峰值數(shù)值幾乎相同。Dugguan認(rèn)為這個(gè)數(shù)字還會(huì)繼續(xù)增加到15%到20%。在數(shù)據(jù)建模領(lǐng)域,IDEF符號(hào)還在廣泛使用,但UML也開(kāi)始進(jìn)入。
Dugguan認(rèn)為,設(shè)計(jì)工具的總體使用率還是很低,在項(xiàng)目中使用設(shè)計(jì)驅(qū)動(dòng)開(kāi)發(fā)方式的大概有10%,通常是那些對(duì)質(zhì)量和持久性要求很高的項(xiàng)目。而數(shù)據(jù)建模工具在項(xiàng)目中使用的比率大概是35%,大多數(shù)情況下都是由DBA使用。
盡管UML可以和白板一起使用,但它還是復(fù)雜了些。Gartner公司認(rèn)為有以下原因?qū)е铝薝ML的低使用率。首先,在小的短期項(xiàng)目和開(kāi)發(fā)周期中根本不用設(shè)計(jì),都是采取的快速開(kāi)發(fā)和演進(jìn)。Dugguan說(shuō),“根本不需要最佳實(shí)踐,能用的實(shí)踐就夠了。”第二個(gè)原因是大多數(shù)遺留的程序都是面向過(guò)程的,不需要UML或者什么工具。但他又加了一句:“新的事件驅(qū)動(dòng)和對(duì)象驅(qū)動(dòng)的程序開(kāi)發(fā)技術(shù)可以從UML工具中受益,新的開(kāi)發(fā)人員很多都學(xué)過(guò)這些符號(hào),而且會(huì)用相關(guān)工具”。
事實(shí)上,UML正在將工具開(kāi)發(fā)商們凝聚在一起,很多公司都參與了UML2.0的修改過(guò)程。除了Rational之外, Microsoft、Sun、IBM、Oracle、Borland、Telelogic等公司也都是UML協(xié)會(huì)的成員。
(2002/10,UMLChina摘自computerworld,袁峰 譯,僅供學(xué)習(xí)交流,不得轉(zhuǎn)載用于商業(yè)用途)
新聞熱點(diǎn)
疑難解答
圖片精選