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