版權歸原作者所有,如有侵權,請聯(lián)系我們

[科普中國]-軟件生命周期管理

科學百科
原創(chuàng)
科學百科為用戶提供權威科普內(nèi)容,打造知識科普陣地
收藏

軟件生命周期管理(Application lifecycle management),簡稱ALM,是指軟件的產(chǎn)生直到成熟的全部過程。

軟件生命周期生命周期是事物發(fā)展的客觀規(guī)律,軟件同樣存在生命周期。早期的軟件生命周期往往是說“軟件從計劃、需求開始,經(jīng)歷分析設計、實現(xiàn)、部署、維護,直到最后逐漸消亡的”。這是受到了第一個軟件生命周期模型---瀑布模型影響,上述語句實質上簡要的描述了瀑布型生命周期。 現(xiàn)在的軟件生命周期不再只考慮瀑布型生命周期,另外常見的軟件生命周期模型有原型模型、螺旋模型、迭代模型。所以現(xiàn)在的軟件生命周期說明應當不再包括瀑布型生命周期中的典型階段。

因此,現(xiàn)在對軟件生命周期及軟件生命周期模型采用如下定義:

軟件生命周期是指軟件的產(chǎn)生直到成熟的全部過程。

軟件生命周期模型是指人們?yōu)殚_發(fā)更好的軟件而歸納總結的軟件生命周期的典型實踐參考。

最近幾年來,給軟件生命周期帶來最多活力的是敏捷軟件開發(fā),使得這個領域呈現(xiàn)出勃勃生機,出現(xiàn)了一些更好響應變化、迎接競爭的生命周期模型。

敏捷軟件開發(fā)明確對生命周期模型提出了要求:短迭代開發(fā)。迭代模型的歷史可以追溯到上世紀50年代,但以往的迭代模型并沒有對迭代周期長度提出要求。而在敏捷軟件開發(fā)中,迭代周期長度一般不超過2個月,而常見的迭代周期是2周到4周,因此可以稱之為“短迭代”。

有些敏捷軟件開發(fā)在主開發(fā)過程前安排有預研或計劃或架構或需求階段等等,在主開發(fā)過程后安排有系統(tǒng)集成測試或驗收測試或試運行等等,這樣做并不違反敏捷開發(fā)原則,但其主開發(fā)過程應當采用短迭代開發(fā),而且主開發(fā)過程的工期應當占有顯著的比例,形成多個短迭代。

敏捷開發(fā)講究固定的節(jié)奏,建議按照固定的節(jié)奏開發(fā),所以短迭代的周期長度在開始選定之后,一般不作改變。同樣的原因,敏捷迭代與迭代之間一般不安排緩沖期,上個迭代未完成的內(nèi)容放到下個迭代中進行處理。

敏捷開發(fā)迭代與瀑布生命周期的階段是不同的。瀑布型中需求分析階段的產(chǎn)物一般是需求規(guī)格說明書,不同階段的產(chǎn)物是不同的;而敏捷開發(fā)迭代的產(chǎn)物是軟件本身,前期迭代的產(chǎn)物也許不完整,但各個敏捷開發(fā)迭代的產(chǎn)物是一致的、逐步改進完善的軟件本身。1

敏捷軟件開發(fā)敏捷軟件開發(fā)(英語:Agile software development),又稱敏捷開發(fā),是一種從1990年代開始逐漸引起廣泛關注的一些新型軟件開發(fā)方法,是一種應對快速變化的需求的一種軟件開發(fā)能力。它們的具體名稱、理念、過程、術語都不盡相同,相對于“非敏捷”,更強調(diào)程序員團隊與業(yè)務專家之間的緊密協(xié)作、面對面的溝通(認為比書面的文檔更有效)、頻繁交付新的軟件版本、緊湊而自我組織型的團隊、能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟件開發(fā)過程中人的作用。

敏捷軟件開發(fā)(或稱快速程序開發(fā)RAD)描述了一套軟件開發(fā)的價值和原則,在這些開發(fā)中,需求和解決方案皆通過自組織跨功能團隊達成。敏捷軟件開發(fā)主張適度的項目、進化開發(fā)、提前交付與持續(xù)改進,并且鼓勵快速與靈活的面對開發(fā)與變更。這些原則支持許多軟件開發(fā)方法的定義和持續(xù)進化。1

驗收測試在工程及其他相關領域中,驗收測試是指確認一系統(tǒng)是否符合設計規(guī)格或契約之需求內(nèi)容的測試,可能會包括化學測試、物理測試或是性能測試。

在系統(tǒng)工程中驗收測試可能包括在系統(tǒng)(例如一套軟件系統(tǒng)、許多機械零件或是一批化學制品)交付前的黑箱測試。

軟件開發(fā)者常會將系統(tǒng)開發(fā)者進行的驗收測試和客戶在接受產(chǎn)品前進行的驗收測試分開。后者一般會稱為使用者驗收測試、終端客戶測試、實機(驗收)測試、現(xiàn)場(驗收)測試。

在進行主要測試程序之前,常用冒煙測試作為一個此階段的驗收測試。2

本詞條內(nèi)容貢獻者為:

王沛 - 副教授、副研究員 - 中國科學院工程熱物理研究所