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