專(zhuān)家課堂 UML基礎(chǔ)知識(shí)全面剖析
本節(jié)和大家學(xué)習(xí)一下UML的用法,主要包括UML的適用范圍,UML的統(tǒng)一性和起源等內(nèi)容,希望本文的介紹會(huì)讓對(duì)你UML這一名詞有全面的了解。下面是有關(guān)UML的詳細(xì)介紹。
什么情況下不需要或不適合用UML?
對(duì)于一個(gè)特定的軟件公司或開(kāi)發(fā)團(tuán)隊(duì),在下列情況下建議不采用UML:
1)傳統(tǒng)的做法已完全適用,對(duì)OOAD的要求也不高,項(xiàng)目非常成功,無(wú)任何改進(jìn)的必要;
2)開(kāi)發(fā)的系統(tǒng)比較簡(jiǎn)單,直接用源碼配上少量的文字就能解決問(wèn)題,軟件開(kāi)發(fā)文檔也無(wú)需添加圖形來(lái)輔助說(shuō)明;
3)開(kāi)發(fā)人員更習(xí)慣于直接閱讀源碼,用源碼交流,這樣做不影響工作效率和質(zhì)量;
4)開(kāi)發(fā)的系統(tǒng)本身不屬于OO方法、UML適用范圍。
什么情況下應(yīng)該用UML?
對(duì)于一個(gè)特定的軟件公司或開(kāi)發(fā)團(tuán)隊(duì),在下列情況下建議采用UML:
1)OO方法是項(xiàng)目決定采用的方法論,是整個(gè)項(xiàng)目或產(chǎn)品成功的關(guān)鍵;
2)開(kāi)發(fā)人員感覺(jué)用源碼說(shuō)明不了真正的問(wèn)題,希望利用可視化建模語(yǔ)言簡(jiǎn)化文檔,提高交流的效率,準(zhǔn)確抓住問(wèn)題的本質(zhì);
3)系統(tǒng)的規(guī)模和設(shè)計(jì)都比較復(fù)雜,需要用圖形抽象地表達(dá)復(fù)雜的概念,增強(qiáng)設(shè)計(jì)的靈活性、可讀性和可理解性,以便暴露深層次的設(shè)計(jì)問(wèn)題,降低開(kāi)發(fā)風(fēng)險(xiǎn);
4)公司希望記錄已成功項(xiàng)目、產(chǎn)品的公共設(shè)計(jì)方案,在開(kāi)發(fā)新項(xiàng)目時(shí)可以參考、重用過(guò)去的設(shè)計(jì),節(jié)省投入,提高成功率。
促進(jìn)UML普及和應(yīng)用對(duì)于加強(qiáng)我國(guó)軟件業(yè)的實(shí)力有什么重要意義?
OO方法自上世紀(jì)80年代以來(lái)已經(jīng)成為軟件開(kāi)發(fā)的主流技術(shù),標(biāo)準(zhǔn)OO建模語(yǔ)言UML的問(wèn)世說(shuō)明OO技術(shù)的發(fā)展達(dá)到了一個(gè)新的高峰。推廣普及UML的應(yīng)用可以使我國(guó)軟件開(kāi)發(fā)人員、軟件企業(yè)和客戶(hù)乃至整個(gè)行業(yè)都從中獲益:
1)個(gè)人
UML相關(guān)知識(shí)體系蘊(yùn)含了非常豐富的當(dāng)代軟件工程先進(jìn)知識(shí)。軟件開(kāi)發(fā)人員通過(guò)學(xué)習(xí)和掌握UML概念、表示法及相關(guān)的軟件過(guò)程、軟件工程技術(shù),能夠加深對(duì)OOAD原則、方法的理解,提高抽象思維能力,從而站在更高的層次上分析問(wèn)題、解決問(wèn)題,這是一條快速提高個(gè)人軟件設(shè)計(jì)能力的有效途徑。
2)企業(yè)
對(duì)軟件企業(yè)內(nèi)部,用好UML,不但能直接提升企業(yè)的軟件設(shè)計(jì)開(kāi)發(fā)能力,而且由于UML能形象直觀地記錄軟件設(shè)計(jì)的核心思想,可以使軟件開(kāi)發(fā)管理透明
化,促進(jìn)企業(yè)知識(shí)資產(chǎn)的保護(hù)和增值,促進(jìn)軟件重用和整體效益的提升。對(duì)外,由于UML是通行的軟件行業(yè)國(guó)際標(biāo)準(zhǔn),企業(yè)在業(yè)務(wù)交往中有效運(yùn)用UML,無(wú)論對(duì)于開(kāi)拓國(guó)內(nèi)外產(chǎn)品市場(chǎng)還是保障工程承接、項(xiàng)目外包等業(yè)務(wù)的順利開(kāi)展都大有裨益。
3)行業(yè)
積極采用國(guó)際通行的軟件描述和設(shè)計(jì)語(yǔ)言UML,一方面能增加信息透明度,顯著降低軟件企業(yè)之間、客戶(hù)與開(kāi)發(fā)商之間的溝通成本,減少項(xiàng)目失敗的風(fēng)險(xiǎn),另一方面能促進(jìn)行業(yè)市場(chǎng)的規(guī)范化和標(biāo)準(zhǔn)化,增進(jìn)國(guó)際技術(shù)交流,整體提高我國(guó)軟件業(yè)的技術(shù)水平和參與國(guó)際市場(chǎng)競(jìng)爭(zhēng)的能力。據(jù)悉,與UML有關(guān)的國(guó)家級(jí)標(biāo)準(zhǔn)目前正在考慮制定過(guò)程當(dāng)中。
UML的統(tǒng)一性表現(xiàn)在哪些方面?
UML的統(tǒng)一性至少表現(xiàn)在以下幾個(gè)方面:
1)隨著OO技術(shù)的蓬勃發(fā)展,到上世紀(jì)90年代初OO方法已經(jīng)多達(dá)50余種,它們之間既有很多共通之處也存在許多沒(méi)有必要的細(xì)節(jié)差異,這妨礙了技術(shù)進(jìn)步,不利于產(chǎn)業(yè)的發(fā)展。UML統(tǒng)一了多種互補(bǔ)的、最具代表性、最受業(yè)界歡迎的主流OO方法,這既是歷史的必然,也OO方法成熟的一個(gè)重要標(biāo)志。UML及與其配套的OO統(tǒng)一過(guò)程(RUP)在實(shí)現(xiàn)“合并同類(lèi)項(xiàng)”的基礎(chǔ)上又向前邁出了一大步,不愧為當(dāng)代OO建模方法的集大成者。
2)UML適用于各個(gè)行業(yè)的信息化工程,包括電信、銀行、保險(xiǎn)、稅務(wù)、辦公自動(dòng)化、電力、電子、國(guó)防、航天航空、制造、工業(yè)自動(dòng)化、醫(yī)療、交通、商業(yè)、電子商務(wù)等諸多領(lǐng)域的業(yè)務(wù)建模和軟件分析設(shè)計(jì),尤其適合對(duì)大中型、復(fù)雜、分布式應(yīng)用系統(tǒng)或軟件產(chǎn)品建模,在這些廣泛的領(lǐng)域中都可以統(tǒng)一使用一套標(biāo)準(zhǔn)的建模語(yǔ)言。
3)作為一種獨(dú)立于具體實(shí)現(xiàn)的、抽象的表述方式,UML廣泛地適用于各種現(xiàn)代程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)和開(kāi)發(fā)平臺(tái)。
4)有了UML標(biāo)準(zhǔn),面向各種不同的軟件開(kāi)發(fā)方法和過(guò)程(如重載/輕載,瀑布式/迭代遞增式),在軟件開(kāi)發(fā)生命周期各個(gè)階段的工作(如業(yè)務(wù)建模、需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試)中,都可以采用一套統(tǒng)一的概念和表示法,避免了語(yǔ)言轉(zhuǎn)換的麻煩。
5)UML明確定義了一套公共的內(nèi)部概念,建立了統(tǒng)一的關(guān)于建模語(yǔ)言的元模型,反映了在軟件和信息建模技術(shù)領(lǐng)域的最新成果。
UML是如何誕生的?
識(shí)時(shí)務(wù)者為俊杰。為了突破上世紀(jì)90年代初OO方法論混戰(zhàn)的局面,1994年杰出的Rational公司OO大師Grady Booch邀請(qǐng)通用電氣公司著名OO大師James Rumbaugh博士加盟Rational,啟動(dòng)了OO方法的統(tǒng)一歷程。他們于1995年發(fā)表了“統(tǒng)一方法0.8”。與此同時(shí),另一位超一流OO大師、愛(ài)立信公司的Ivar Jacobson博士也在該年加入了二人的行列。
1996年,3人正式把他們的統(tǒng)一成果命名為“統(tǒng)一建模語(yǔ)言”,UML于此誕生。同時(shí),他們還做出了一個(gè)非常重要的決定——把UML提交到非贏利性的OMG進(jìn)行標(biāo)準(zhǔn)化,讓全世界的軟件開(kāi)發(fā)人員都可以自由地分享這一軟件史上的重大成果。于是,在全球軟件界具有廣泛影響力的國(guó)際對(duì)象管理組織OMG從此開(kāi)展了一系列OO建模語(yǔ)言的標(biāo)準(zhǔn)化工作。1997年11月,UML 1.1經(jīng)OMG各成員投票被正式采納為行業(yè)標(biāo)準(zhǔn)。
UML是一家之言,或少數(shù)派的觀點(diǎn)嗎?
否,UML是全球工業(yè)界和學(xué)術(shù)界的領(lǐng)導(dǎo)者協(xié)同努力的成果。自從進(jìn)入OMG程序后,UML就不再由Rational一家公司所有或由少數(shù)人控制,而成為凝結(jié)了百家之長(zhǎng)的公共知識(shí)結(jié)晶。具有豐富企業(yè)信息系統(tǒng)和信息工程經(jīng)驗(yàn)的OO大師、Martin/Odell方法的領(lǐng)軍人物James Odell為此曾表明放棄自己的方法,并直接參與領(lǐng)導(dǎo)了UML 1.x系列標(biāo)準(zhǔn)的制訂工作。另一位OO大師Coad/Yourdon方法的創(chuàng)始人之一Peter Coad,雖然沒(méi)有直接參與UML制訂,但卻獨(dú)具慧眼創(chuàng)辦了TogetherSoft公司(已被Borland收購(gòu)),開(kāi)發(fā)了著名的UML集成開(kāi)發(fā)環(huán)境Together ControlCenter,成為Rational Rose的有力競(jìng)爭(zhēng)者。事實(shí)說(shuō)明,UML的確促進(jìn)了各種OO方法和流派的大融合,在OO建模語(yǔ)言領(lǐng)域具有不可替代的地位。
UML之父是誰(shuí)?
UML之父有三位:他們是Grady Booch(Booch方法),James Rumbaugh(OMT方法)和Ivar Jacobson(OOSE方法)。人們親切地稱(chēng)他們?yōu)?ldquo;3 amigos”(即“三高”,類(lèi)似于大家給予合作舉辦世紀(jì)音樂(lè)會(huì)的,世界上3位頂尖男高音歌唱家的稱(chēng)謂)。
UML標(biāo)準(zhǔn)有哪些最新進(jìn)展?
UML 1.x系列的最新版本是于2003年3月發(fā)布的1.5版本(www.uml.org)。
OMG(www.omg.org)從2000年起啟動(dòng)了UML 2.0標(biāo)準(zhǔn)的制定工作。U2P組織(UML2 Partners Consortium,www.u2-partners.org)在UML 2.0標(biāo)準(zhǔn)的制定過(guò)程中發(fā)揮了主導(dǎo)作用。目前UML 2.0的上層結(jié)構(gòu)(Superstructure)規(guī)范已經(jīng)在2003年6月12日獲得通過(guò)。
OMG已經(jīng)與國(guó)際標(biāo)準(zhǔn)化組織ISO開(kāi)展了合作,預(yù)示著UML將來(lái)有望成為ISO標(biāo)準(zhǔn),值得關(guān)注。
【編輯推薦】