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