隨著現(xiàn)代軟件工程的復(fù)雜程度不斷提高,而軟件項(xiàng)目也產(chǎn)生了越來越多的問題,像軟件項(xiàng)目的花費(fèi)以及維護(hù)費(fèi)用越來越高,以及軟件開發(fā)的周期也越來越長(zhǎng)等,而一個(gè)優(yōu)秀的模型系統(tǒng)的建立成為必要。UML已經(jīng)成為通用建模語言的工業(yè)標(biāo)準(zhǔn),而工業(yè)在競(jìng)爭(zhēng)激烈的市場(chǎng)中生存發(fā)展,則就需要基于UML的適用于需求分析、概要設(shè)計(jì)和結(jié)構(gòu)優(yōu)化的軟件開發(fā)支持環(huán)境。而與傳統(tǒng)的軟件開發(fā)環(huán)境不同的是,它能廣泛覆蓋軟件開發(fā)的各方面,同時(shí)其支持環(huán)境提供了全面的軟件建模支持以及良好的體系結(jié)構(gòu),從而為軟件開發(fā)者提供最好的服務(wù)。 2、基于UML的軟件開發(fā)方法
在對(duì)基于UML的軟件開發(fā)方法探索時(shí),則傳統(tǒng)的軟件開發(fā)方法必然有其不足之處。其一,很難準(zhǔn)確的理解以及表達(dá)系統(tǒng)需求。畢竟準(zhǔn)確、透徹的理解系統(tǒng)需求是軟件開發(fā)的首要任務(wù)。其二,很難處理系統(tǒng)需求的變化。當(dāng)前,軟件系統(tǒng)更新較快,這就要求研發(fā)的周期要盡可能的短,同時(shí)在開發(fā)過程中要調(diào)整需求。其三,風(fēng)險(xiǎn)大以及軟件復(fù)用率低。傳統(tǒng)的開發(fā)方法,開發(fā)中大多是一段程序或者是模塊的復(fù)用,軟件復(fù)用的利用率和效果都不是很好。其四,軟件的可維護(hù)性較差。這是由于傳統(tǒng)的軟件開發(fā)方法中,需求分析、設(shè)計(jì)和編碼以及測(cè)試之間存在著鴻溝所造成的。
由于傳統(tǒng)的軟件開發(fā)方法存在著諸多的弊端,而無法適應(yīng)當(dāng)今復(fù)雜并具有人性化的軟件系統(tǒng)。則在眾多開發(fā)中基于UML的軟件開發(fā)方法成為首選。UML是一種建模語言,并不是一種面向?qū)ο蟮慕7椒。?dāng)前也有RUP、OPEN以及OOSP等較為流行的開發(fā)過程,但通過比較RUP最為完善,與UML形成了最好的結(jié)合,是UML推薦使用的軟件開發(fā)過程。
首先,RUP建?蚣苣P。從軟件工程過程的角度看,RUP是一個(gè)軟件開發(fā)過程,是一個(gè)將用戶需求轉(zhuǎn)化成軟件系統(tǒng)的一組有序的步驟。RUP是一種二維結(jié)構(gòu)的軟件開發(fā)過程。在RUP的二維開發(fā)模型中,則包括階段與迭代內(nèi)容。階段是軟件開發(fā)過程隨著時(shí)間的動(dòng)態(tài)組織。RUP把一個(gè)開發(fā)周期分成四個(gè)連續(xù)的階段,有初始階段、細(xì)化階段、構(gòu)造階段和移交階段。而迭代是一個(gè)完整的開發(fā)循環(huán),它的結(jié)果是可執(zhí)行產(chǎn)品的一個(gè)版本,是正在開發(fā)的最終產(chǎn)品的一個(gè)子集。當(dāng)然,在上述的內(nèi)容中可見,RUP建?蚣苣P椭幸泊嬖谶@不足。則基于領(lǐng)域分析的RUP改進(jìn)模型框架出現(xiàn),它是一種三維模型,包括領(lǐng)域維、生命周期維和階段維。基于領(lǐng)域分析的RUP改進(jìn)模型動(dòng)態(tài)建模技術(shù)主要有兩個(gè)部分組成,領(lǐng)域建模方法和基于領(lǐng)域分析的RUP改進(jìn)模型的動(dòng)態(tài)建模方法。開發(fā)系統(tǒng)的最終目的是建立一個(gè)可執(zhí)行的系統(tǒng),在軟件開發(fā)過程中,RUP為需求、分析、設(shè)計(jì)、實(shí)現(xiàn)以及測(cè)試提供了很好的指導(dǎo)。
3、基于UML的軟件開發(fā)支撐環(huán)境
基于UML的軟件開發(fā)支撐環(huán)境方面,國(guó)際上已經(jīng)進(jìn)行了一些研究和實(shí)際開發(fā)工作。特別是Rational公司的Rational Rose是目前國(guó)際上應(yīng)用最廣泛以及功能最強(qiáng)大的UML支撐環(huán)境。而國(guó)內(nèi)對(duì)于UML支撐環(huán)境的研制開發(fā)工作尚處于起步階段,而比較典型的有UML_Designer。而其按照功能劃分包括建模和模型管理子系統(tǒng),模型檢查和代碼生成子系統(tǒng)以及逆向變換和構(gòu)件支持子系統(tǒng)以及工程管理和支持子系統(tǒng)。其中Rational Rose提供了UML的所有建模元素的可視化編輯環(huán)境,基于組件的開發(fā)以及對(duì)軟件開發(fā)全過程的支持,其中, Rational Rose目前在面向?qū)ο蠓治觥⒔R约霸O(shè)計(jì)工具市場(chǎng)上都起著主導(dǎo)作用。
基于UML的軟件開發(fā)支撐環(huán)境主要包括UML建模環(huán)境、UML模擬環(huán)境以及自動(dòng)代碼生成環(huán)境和逆向變換環(huán)境等。而這些環(huán)境均是基于UML的語法規(guī)則和語義定義。在UML建模環(huán)境中主要實(shí)施的是對(duì)UML各種圖形的可視化支持,除了完成最基本的圖形編輯功能外,還要能進(jìn)行語法檢查和一致性檢查,從而保證系統(tǒng)模型的完整性。其結(jié)構(gòu)體系主要包括對(duì)象管理系統(tǒng)、圖形支持庫以及結(jié)構(gòu)化圖形編輯器生成工具等。自動(dòng)代碼生成,就是把為系統(tǒng)建立的各級(jí)分析以及設(shè)計(jì)模型轉(zhuǎn)換成特定語言的代碼,自動(dòng)代碼生成是以信息中心庫為基礎(chǔ)的。當(dāng)用戶對(duì)生成的代碼進(jìn)行修改后,逆向變換機(jī)制將用戶的修改轉(zhuǎn)換到模型上,保證模型和代碼的一致性。代碼的生成主要是通過五個(gè)步驟后生成,有檢查系統(tǒng)模型,生成組件并將類賦予組件,設(shè)置代碼生成屬性,選擇生成對(duì)象,生成代碼。UML模擬環(huán)境支持UML的動(dòng)態(tài)模型的模擬以及系統(tǒng)功能和用戶界面的模擬和系統(tǒng)性能的模擬。作為一個(gè)良好的建模和開發(fā)支持工具,以支持對(duì)系統(tǒng)體系結(jié)構(gòu)的建模,即在不同系統(tǒng)配置和功能分配的情況下,對(duì)系統(tǒng)性能進(jìn)行模擬。
建模是開發(fā)優(yōu)秀軟件的所有活動(dòng)中的關(guān)鍵部分,其目的是為了更好的理解、分析以及設(shè)計(jì)和實(shí)現(xiàn)所構(gòu)造的系統(tǒng)。而統(tǒng)一建模語言UML的出現(xiàn)是軟件工程領(lǐng)域的重大突破,在對(duì)基于UML的軟件開發(fā)方法以及軟件支撐環(huán)境的研究中,雖然開發(fā)設(shè)計(jì)的探討中,對(duì)全局性的框架部分有著理論以及相關(guān)實(shí)踐的支持,特別是國(guó)內(nèi)開發(fā)的UML_Designer開發(fā)支持環(huán)境,雖然并不是很完善,但也有著更大的發(fā)展前景。諸多不完善的地方主要有以下方面,對(duì)于UML的應(yīng)用仍需要更多的實(shí)踐對(duì)其進(jìn)行評(píng)價(jià),同時(shí)基于UML的動(dòng)態(tài)建模技術(shù)和基于構(gòu)件的開發(fā)技術(shù)還需要進(jìn)一步結(jié)合等。對(duì)于這些方面的不足,有的需要進(jìn)一步探討研究,有的需要更多的實(shí)踐應(yīng)用及反復(fù)測(cè)試得到更多的數(shù)據(jù)作為依據(jù)。