資源描述:
《軟件生存周期模型-瀑布模型》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、作業(yè)要求:除課件中介紹的幾種軟件生存周期模型,請詳細(xì)介紹其他一種或幾種生存周期模型,也可以是在實(shí)踐開發(fā)過程中使用某種模型的心得體會,或者是針對某種模型的意見建議等。1.瀑布模型1.1.瀑布模型定義瀑布模型也稱“線性順序模型”。瀑布模型規(guī)定了各項(xiàng)軟件工程活動,包括:制定開發(fā)計劃,進(jìn)行需求分析和說明,軟件設(shè)計,程序編碼,測試及運(yùn)行維護(hù)。并且規(guī)定了它們自上而下,相互銜接的固定次序,如同瀑布流水,逐級下落?!∮捎谛枰獙γ恳粋€階段進(jìn)行驗(yàn)證,瀑布模型要求每一個階段都有明確的文檔產(chǎn)出,對于嚴(yán)格的瀑布模型每一個階段都不應(yīng)該重疊,而應(yīng)
2、該是在評審?fù)ㄟ^,相關(guān)的產(chǎn)出物都已經(jīng)基線后才能夠進(jìn)入到下一個階段。1.2.瀑布模型特點(diǎn):瀑布模型提供了軟件過程模型的基本模板。強(qiáng)調(diào)了每一階段活動的嚴(yán)格順序。瀑布模型是一種整體開發(fā)模型,程序的物理實(shí)現(xiàn)集中在開發(fā)階段的后期,用戶在最后才能看到自己的產(chǎn)品。3瀑布模型的優(yōu)點(diǎn)是可以保證整個軟件產(chǎn)品較高的質(zhì)量,保證缺陷能夠提前的被發(fā)現(xiàn)和解決。采用瀑布模型可以保證系統(tǒng)在整體上的充分把握,使系統(tǒng)具備良好的擴(kuò)展性和可維護(hù)性。瀑布模型適合于用戶需求明確、完整、無重大變化的軟件項(xiàng)目開發(fā)。缺點(diǎn)就是不夠靈活。但對于前期需求不明確,而又很難短時間
3、明確清楚的項(xiàng)目則很難很好的利用瀑布模型.另外對于中小型的項(xiàng)目,需求設(shè)計和開發(fā)人員往往在項(xiàng)目開始后就會全部投入到項(xiàng)目中,而不是分階段投入,因此采用瀑布模型會導(dǎo)致項(xiàng)目人力資源過多的閑置的情況,這也是必須要考慮的問題。1.1.使用心得雖然瀑布模型存在很多的問題有待解決,但瀑布模型仍然是最基本的和最效的一種可供選擇的軟件開發(fā)生命周期模型.瀑布模型要求軟件開發(fā)嚴(yán)格按照需求->分析->設(shè)計->編碼->測試的階段進(jìn)行,每一個階段都可以定義明確的產(chǎn)出物和驗(yàn)證準(zhǔn)則.瀑布模型在每一個階段完成后都可以組織相關(guān)的評審和驗(yàn)證,只有在評審?fù)ㄟ^后
4、才能夠進(jìn)入到下一個階段。很多人往往會以進(jìn)度約束而不選擇瀑布模型,這往往是一個錯誤的觀點(diǎn).導(dǎo)致這種情況的一個關(guān)鍵因素往往是概念需求階段人力不足.因此在概念需求階段人力能夠得到充分保證的情況下,瀑布模型和迭代模型在開發(fā)周期上并不會存在太大的差別.反而是很多項(xiàng)目對于迭代或敏捷模型用不好,為了趕進(jìn)度在前期需求不明確,沒有經(jīng)過一個總體的架構(gòu)設(shè)計情況下就開始編碼,后期出現(xiàn)大量的返工而嚴(yán)重影響進(jìn)度.架構(gòu)設(shè)計是軟件開發(fā)中一個重要的關(guān)注點(diǎn).因此在RUP中也提及到軟件開發(fā)要以架構(gòu)為核心.因此在架構(gòu)設(shè)計完成后系統(tǒng)會被分為相關(guān)的子系統(tǒng)和功能
5、模塊.每個功能模塊間的接口都可以定義清楚.在這種情況下,當(dāng)模塊B的詳細(xì)設(shè)計做完成后往往就沒有必要等到其它模塊的詳細(xì)設(shè)計都要完全作完才開始編碼,因此在架構(gòu)設(shè)計完成后可以將系統(tǒng)分為多個模塊并行開發(fā),每個模塊仍然遵循先設(shè)計和編碼測試的瀑布模型思路.這是瀑布模型的一種最重要的改進(jìn)思路,也可以說這是一種增量開發(fā)的模型。圖示如下:31.關(guān)于選擇生命周期模型的總結(jié)1.在前期需求明確的情況下盡量采用瀑布模型或改進(jìn)型的瀑布模型.2.在用戶無信息系統(tǒng)使用經(jīng)驗(yàn),需求分析人員技能不足情況下一定要借助原型.3.在不確定性因素很多,很多東西前面
6、無法計劃情況下盡量采用增量迭代和螺旋模型4.在需求不穩(wěn)定情況下盡量采用增量迭代模型5.在資金和成本無法一次到位情況下可以采用增量模型,軟件產(chǎn)品分多個版本進(jìn)行發(fā)布6.對于完全多個獨(dú)立功能開發(fā)可以在需求階段就分功能并行,但每個功能內(nèi)都應(yīng)該遵循瀑布模型7.對于全新系統(tǒng)的開發(fā)必須在總體設(shè)計完成后再開始增量或并行.8.對于編碼人員經(jīng)驗(yàn)較少情況下建議不要采用敏捷或迭代等生命周期模型.9.增量,迭代和原型可以綜合使用,但每一次增量或迭代都必須有明確的交付和出口準(zhǔn)則。3