自20世紀50年代開始軟件開發(fā)以來,人們一直在探索軟件開發(fā)的方法。中培偉業(yè)《軟件系統(tǒng)詳細設計最佳實踐》培訓專家龔老師指出,目前,軟件開發(fā)過程一般被劃分為若干個目的和作用相對獨立活動,包括:需求、分析、設計、實現(xiàn)、測試和集成,以及維護。圍繞著如何安排、規(guī)劃這些活動的次序、周期和歷時,人們提出過各種各樣的軟件開發(fā)方法模型。
我們將具有以下特點的軟件開發(fā)方法定義為傳統(tǒng)軟件開發(fā)方法:
一、以預測性為原則
二、以文檔驅動開發(fā)過程
三、以過程控制為核心
面對激烈的市場競爭,要求持續(xù)滿足不斷變化的需求,傳統(tǒng)軟件開發(fā)方法的特點也成為了它的弊病,應對下面各種挑戰(zhàn)時顯得力不從心:
一、如何減少開發(fā)過程中的浪費
二、如何準確,及時的適應需求變更
四、如何持續(xù)演進系統(tǒng)架構
五、如何保證軟件系統(tǒng)的長期質量
六、如何實現(xiàn)安全重構(Refactoring)
七、如何最大限度的降低系統(tǒng)集成的成本
八、如何在團隊中共享知識,使團隊成員共同成長
九、如何合理的進行成本和時間估算
十、如何迅速獲得軟件開發(fā)收益
在傳統(tǒng)軟件工程方法中,軟件開發(fā)的生命周期固定的劃分為若干順序的階段(需求、分析、設計、實現(xiàn)、集成測試和維護),整個流程的特點是:?
一、不完成上一個階段就不能進入下一個階段
二、直到流程中期的開發(fā)階段(Implementation)才開始真正的編碼;之前所有階段的“成果”均以文檔形式體現(xiàn)
三、測試和集成(Testing and Integration)被認為是對開發(fā)階段的輔助或者收尾,往往晚于開發(fā)階段開始
四、維護階段成本高昂