幾種軟體開發模型
以下為自己根據書本和網路上相關內容的總結,僅供參考
瀑布模型
適合:大中型專案
瀑布模型是最早出現的軟體開發模型,它將軟體生命週期分為
1.制定計劃
2.需求分析
3.軟體設計
4.程式編寫
5.軟體測試
6.執行維護
並規定它們按照這個順序自上而下進行工作,形如瀑布流水。
特點:
A)在瀑布模型中,軟體開發的各項活動嚴格按照線性方法進行,當前的活動接受上一活動的工作結果,實施完成所需的工作內容。當前活動的工作結果需要進行驗證,如果驗證通過,則該結果作為下一項活動的輸入,繼續進行下一項活動,否則返回修改。
B)瀑布模型強調文件的作用。
衍生:
V模型(注重活動和正確性的瀑布模型),螺旋模型(與原型化模型結合的瀑布模型
原型化模型
適合:中小型專案
在形成一組基本需求之後,通過快速分析方法構造出待建的原型版本,然後根據顧客在使用原型的過程中提出的意見對原型進行修改,從而得到原型的更新版本,這一過程重複進行,直至得到滿足顧客需求的系統。
特點:
A)適用於需求不確定性高的系統。
B)一般從使用者介面開發入手,首先形成系統介面原型,使用者執行介面原型。
C)允許開發人員快速構造整個系統或者系統的一部分。
D)重複設計直到使用者、客戶、開發人員對結果滿意。
敏捷方法
適合:中小型專案
敏捷開發的目標是“儘可能早地、持續地交付有價值的軟體”。人們認為,通過在軟體開發過程中加入靈活性,敏捷方法可以使使用者在開發週期的後期增加或改變需求。
特點:
A)強調個人和互動的價值。注重面對面的交流而非進行文件溝通;
B)更喜歡在生產可執行的軟體上花時間,而非將時間花在編寫文件上。對成功的主要測量標準是軟體正確工作的程度。
C)將精力花在和客戶的合作上而非合同談判上,使客戶成為開發過程中的一個關鍵方面。
D)注重對變化的反應,而不是建立一個計劃然後遵循這個計劃。
具體方法:
1.極限程式設計(XP)
2.水晶法(Crystal)
3.並列爭球法(Scrum)
4.自適應軟體開發(ASD)
下面對極限程式設計進行簡單介紹:
極限程式設計強調:交流、簡單性、勇氣、反饋
交流:客戶與開發人員間持續交流看法
簡單性:鼓勵開發人員選擇最簡單的設計或實現來處理客戶需求
勇氣:承諾儘早和經常交付功能
反饋:開發人員間、客戶和開發人員間互相提供反饋
實際開發過程中常常是根據客戶和開發人員的需要對一組軟體開發模型進行定義、裁剪和組合,而不是集中於單個模型。