1 瀑布模型 瀑布模型規(guī)定了各項(xiàng)軟件工程活動(dòng),包括:制定開(kāi)發(fā)計(jì)劃、進(jìn)行需求分析和說(shuō)明、軟件設(shè)計(jì)、程序編碼、測(cè)試及運(yùn)行維護(hù)。并且規(guī)定了它們自上而下,相互銜接的固定次序,如同瀑布流水,逐級(jí)下落,如圖2.1所示。 瀑布模型的基本思想:根據(jù)軟件生命周期各階段的任務(wù),從可行性研究與計(jì)劃開(kāi)始,逐步進(jìn)行階段性變換,直至通過(guò)確認(rèn)測(cè)試并得到用戶確認(rèn)的軟件為止。 瀑布模型的特點(diǎn): (1)階段間的順序性和依賴(lài)性:上一階段的變換結(jié)果是下一階段變換的輸入,相鄰兩個(gè)階段具有因果關(guān)系,每個(gè)階段完成任務(wù)后,都必須進(jìn)行階段性評(píng)審,確認(rèn)之后再轉(zhuǎn)入下一個(gè)階段。 (2)文檔驅(qū)動(dòng)性:要求每個(gè)階段必須完成規(guī)定的文檔并通過(guò)評(píng)審,以便盡早發(fā)現(xiàn)問(wèn)題,改正錯(cuò)誤。 瀑布模型的優(yōu)點(diǎn):可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法,嚴(yán)格提交文檔,做好階段評(píng)審,從而使軟件過(guò)程易于管理和控制,有利于軟件的質(zhì)量保障。 瀑布模型的缺點(diǎn):要求軟件開(kāi)發(fā)初期就要給出軟件系統(tǒng)的全部需求,開(kāi)發(fā)周期比較長(zhǎng),承擔(dān)的風(fēng)險(xiǎn)也比較大。
軟件開(kāi)發(fā)的實(shí)踐表明,上述各項(xiàng)活動(dòng)之間并非完全是自上而下,呈線性圖式。實(shí)際情況是,每項(xiàng)開(kāi)發(fā)活動(dòng)均處于一個(gè)質(zhì)量環(huán)(輸入-處理-輸出-評(píng)審)中。只有當(dāng)其工作得到確認(rèn),才能繼續(xù)進(jìn)行下一項(xiàng)活動(dòng),在圖1.5.1中用向下的箭頭表示;否則返工,在圖1.5.1中由向上的箭頭表示。 2 快速原型模型 快速原型模型的步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來(lái)的用戶與系統(tǒng)的交互,用戶或客戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求。通過(guò)逐步調(diào)整原型使其滿足客戶的要求,開(kāi)發(fā)人員可以確定客戶的真正需求是什么;第二步則在步的基礎(chǔ)上開(kāi)發(fā)客戶滿意的軟件產(chǎn)品。
顯然,快速原型方法可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來(lái)的開(kāi)發(fā)風(fēng)險(xiǎn),具有顯著的效果,如圖1.5.2所示。 快速原型的關(guān)鍵在于盡可能快速地建造出軟件原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。 快速原型模型的基本思想:軟件開(kāi)發(fā)人員根據(jù)用戶提出的軟件初步定義,快速開(kāi)發(fā)一個(gè)原型,
向用戶展示原型的功能和性能,在反復(fù)征求用戶對(duì)原型意見(jiàn)的過(guò)程中,進(jìn)一步確認(rèn)用戶的需求并對(duì)原型進(jìn)行修改和完善,直到得到用戶確認(rèn)的軟件定義,在確認(rèn)的原型基礎(chǔ)上完成軟件系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試和使用與維護(hù)。 快速原型模型的特點(diǎn): (1)原型驅(qū)動(dòng):整個(gè)軟件過(guò)程圍繞著原型的快速開(kāi)發(fā)和對(duì)原型的評(píng)價(jià),通過(guò)原型確認(rèn)用戶需求,以及通過(guò)原型的反復(fù)修改終得到用戶確認(rèn)的軟件定義。 (2)過(guò)程的交互性和迭代性:軟件過(guò)程是由開(kāi)發(fā)人員與用戶之間通過(guò)原型的評(píng)價(jià)和確認(rèn)而進(jìn)行的一個(gè)交互過(guò)程。而且這個(gè)過(guò)程不是簡(jiǎn)單的重復(fù),而是不斷改進(jìn)和完善的迭代過(guò)程。 快速原型模型優(yōu)點(diǎn):允許用戶在軟件開(kāi)發(fā)過(guò)程中完善對(duì)軟件系統(tǒng)的需求,開(kāi)發(fā)周期相對(duì)有所縮短,成本比較低,有效地發(fā)揮用戶和開(kāi)發(fā)人員之間的密切配合作用,使軟件過(guò)程更能體現(xiàn)逐步發(fā)展、逐步完善的原則。 快速原型模型缺點(diǎn):頻繁的需求變化會(huì)使開(kāi)發(fā)進(jìn)程難于管理和控制,原型的快速開(kāi)發(fā)和修改對(duì)技術(shù)要求比較高,需要有較好的工作基礎(chǔ)。