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