UML面向?qū)ο蠼V兴姆N常見(jiàn)開(kāi)發(fā)模式
在學(xué)習(xí)UML建模語(yǔ)言的過(guò)程中,你有可能會(huì)遇到UML面向?qū)ο蠼?wèn)題,這里就和大家分享一下UML面向?qū)ο蠼K姆N常見(jiàn)的開(kāi)發(fā)模式,相信本節(jié)的介紹一定會(huì)對(duì)你的學(xué)習(xí)有所幫助。
UML面向?qū)ο蠼VR(shí)簡(jiǎn)介
為什么要用UML建模?
模型是什么?模型就是對(duì)現(xiàn)實(shí)世界的形狀或狀態(tài)的抽象模擬和簡(jiǎn)化,模型提供了系統(tǒng)的骨架和藍(lán)圖.
◆模型有助于按照實(shí)際情況或按照所需要的樣式對(duì)系統(tǒng)進(jìn)行可視化.
◆模型能夠規(guī)約系統(tǒng)的結(jié)構(gòu)或行為.
◆模型給出了指導(dǎo)構(gòu)造系統(tǒng)的模板.
對(duì)系統(tǒng)用戶而言,軟件的開(kāi)發(fā)模型向他們描述了軟件開(kāi)發(fā)者對(duì)軟件系統(tǒng)需求的理解.讓系統(tǒng)用戶查看軟件對(duì)象模型并且找到其中的問(wèn)題,可以使開(kāi)發(fā)者不至于從一開(kāi)始就發(fā)生錯(cuò)誤.
對(duì)軟件開(kāi)發(fā)而言,軟件的對(duì)象模型有助于他們對(duì)軟件的需求以及系統(tǒng)的架構(gòu)和功能進(jìn)行溝通.
對(duì)軟件的維護(hù)和技術(shù)支持者而言,在軟件系統(tǒng)開(kāi)始運(yùn)行后的相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),軟件的對(duì)象模型能夠幫助他們理解程序的架構(gòu)和功能,迅速地對(duì)軟件所出現(xiàn)的問(wèn)題進(jìn)行修復(fù).
建模并不是僅對(duì)大型的軟件系統(tǒng),甚至一個(gè)小型的留言本也能從建模的過(guò)程中受益.
以UML面向?qū)ο蠼榛A(chǔ)的開(kāi)發(fā)模式:
軟件生命周期可以分為制定計(jì)劃,需求分析,設(shè)計(jì),編碼,測(cè)試,運(yùn)行和維護(hù).軟件開(kāi)發(fā)模式是跨越整個(gè)軟件生存周期的系統(tǒng)開(kāi)發(fā),運(yùn)行和維護(hù)所實(shí)施的全部?jī)?nèi)容光煥發(fā)結(jié)構(gòu)框架,給出軟件開(kāi)發(fā)活動(dòng)中各個(gè)階段之間的關(guān)系.這里介紹4種常見(jiàn)的開(kāi)發(fā)模式.
(1)瀑布模型
UML面向?qū)ο蠼V衅俨寄P鸵脖卉洖樯嬷芷谀P?其核心思想是按照相應(yīng)的工序?qū)?wèn)題進(jìn)行簡(jiǎn)化,將系統(tǒng)功能的實(shí)現(xiàn)與系統(tǒng)的設(shè)計(jì)工作分開(kāi),便于項(xiàng)目之間的分工與協(xié)件,即采用結(jié)構(gòu)化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi).瀑布模型將軟件生命周期劃分為項(xiàng)目計(jì)劃,需求分析,軟件設(shè)計(jì),軟件實(shí)現(xiàn),軟件測(cè)試,軟件運(yùn)行與維護(hù)6個(gè)階段.并規(guī)定了他們自上而下的次序,每一個(gè)階段都是依次銜接的.
UML瀑布模型為項(xiàng)目提供了接階段劃分的檢查點(diǎn),這樣有利于軟件開(kāi)發(fā)過(guò)程中人員的組織及管理.瀑布模型在當(dāng)前階段完成后才去關(guān)注后續(xù)階段,這樣有有利于開(kāi)發(fā)大型的項(xiàng)目.然后也存在一定的缺陷.比如當(dāng)開(kāi)發(fā)成果尚未經(jīng)過(guò)測(cè)試時(shí),用戶無(wú)法看到軟件效果,不能得到在開(kāi)發(fā)過(guò)程中的及時(shí)反饋,增加了項(xiàng)目開(kāi)發(fā)過(guò)程的風(fēng)險(xiǎn).對(duì)需求不穩(wěn)定的項(xiàng)目來(lái)說(shuō)缺乏足夠的靈活性.并具要在需求分析階段要完全確定系統(tǒng)用戶所需要的所有需求也相當(dāng)?shù)睦щy.
(2)噴泉模型
UML面向?qū)ο蠼V袊娙P鸵詫?duì)象為驅(qū)動(dòng),以用戶需求為動(dòng)力.用來(lái)描述面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程.噴泉模型認(rèn)為軟件開(kāi)發(fā)過(guò)程自下而上,各階段是相互復(fù)疊和多次反復(fù)的.各個(gè)開(kāi)發(fā)階段沒(méi)有特定的次序要求,并且可以交互進(jìn)行.可以在某個(gè)開(kāi)發(fā)階段中隨時(shí)補(bǔ)充其他任何開(kāi)發(fā)階段的遺漏.
UML噴泉模型不像瀑布模型那樣,需要分析活動(dòng)結(jié)束后才開(kāi)始設(shè)計(jì)活動(dòng).設(shè)計(jì)活動(dòng)結(jié)束后才開(kāi)始編碼.該模型的各個(gè)階段沒(méi)有明顯的界限.開(kāi)發(fā)人員可以同步進(jìn)行開(kāi)發(fā),其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開(kāi)發(fā)效率,節(jié)省開(kāi)發(fā)時(shí)間.但也使開(kāi)發(fā)過(guò)程中需要大量的開(kāi)發(fā)人員,因此不利于項(xiàng)目的管理.此處這種模型要求嚴(yán)格管理文檔,使得審核的對(duì)度加大,尤其是面對(duì)可能隨時(shí)加入各種信息,需求與資料的情況.
(3)基于構(gòu)件的開(kāi)發(fā)模型
UML面向?qū)ο蠼V谢跇?gòu)件的開(kāi)發(fā)模型利用模塊化方法將整個(gè)系統(tǒng)模塊化,并在一定構(gòu)件模型的支持下復(fù)用構(gòu)件庫(kù)中的一個(gè)或多個(gè)構(gòu)件,通過(guò)組合手段高速率,高質(zhì)量地構(gòu)造應(yīng)用程序軟件系發(fā)統(tǒng)的過(guò)程.
UML基于構(gòu)件的開(kāi)發(fā)方法使得軟件開(kāi)發(fā)就得容易,構(gòu)件組裝模型導(dǎo)致了軟件的復(fù)用,提高了軟件開(kāi)發(fā)效率.構(gòu)件組裝模型允許多個(gè)項(xiàng)目同時(shí)開(kāi)發(fā),降件了費(fèi)用,提高了可維護(hù)性,可分步提交軟件產(chǎn)品.但也因?yàn)椴捎米远x組裝結(jié)構(gòu)標(biāo)準(zhǔn),缺乏通用的組裝結(jié)構(gòu)標(biāo)準(zhǔn),因而引入了軟大的風(fēng)險(xiǎn).可重用性和軟件高效性不易協(xié)調(diào),并且由于過(guò)分依賴于構(gòu)件,所以構(gòu)件庫(kù)的質(zhì)量影響著產(chǎn)品的質(zhì)量.
(4)XP方法
敏捷方法.是近幾年興起的一種輕量級(jí)的開(kāi)發(fā)方法,它強(qiáng)調(diào)適應(yīng)性而非預(yù)測(cè)性,強(qiáng)調(diào)以人為中心而不是以流程為中心,以及對(duì)變化的適應(yīng)對(duì)和人性的關(guān)注.
XP(eXtremeProgramming)方法是最引人注目的一種敏捷方法.它規(guī)定了一組核心價(jià)值和方法,消除了大多數(shù)重量型開(kāi)發(fā)過(guò)程中的不必要產(chǎn)物,建立一個(gè)漸進(jìn)型開(kāi)發(fā)過(guò)程.該方法將開(kāi)發(fā)階段的4個(gè)活動(dòng)(分析,設(shè)計(jì),編碼和測(cè)試)混合在一起,在全過(guò)程中采用迭代增量開(kāi)發(fā),反饋修正和反復(fù)測(cè)試.
采用簡(jiǎn)單計(jì)劃策略,不需要長(zhǎng)期計(jì)劃和復(fù)雜模型,開(kāi)發(fā)周期短.在全過(guò)程中中采用迭代增量開(kāi)發(fā),反饋修正和反復(fù)測(cè)試.保證了軟件的質(zhì)量.能夠適應(yīng)用戶經(jīng)常變化的需求,提供用戶滿意的高質(zhì)量軟件.
【編輯推薦】
- UML面向?qū)ο蠼榛A(chǔ)的四種常見(jiàn)開(kāi)發(fā)模式
- UML中各種UML圖形的建立步驟簡(jiǎn)明介紹
- 技術(shù)分享 UML面向?qū)ο蠼=馕?/a>
- UML面向?qū)ο蠼VR(shí)簡(jiǎn)介
- UML用戶指南--UML圖簡(jiǎn)介