瀑布模型
項目計劃—需求分析—概要設計—詳細設計—編碼—單元測試—測試—運行維護—評估
項目計劃:
????????確定開發(fā)總目標;
????????給出軟件功能、性能、可靠性、接口等方面的設想;
? ? ? ? 研究項目可行性,探討問題解決方案;
? ? ? ? 對可供使用的資源、成本,可取得的效益和開發(fā)進度做出評估;
? ? ? ? 制定完成開發(fā)任務的實施計劃;
需求分析:? ?

設計:
? ? ? ? 設計是軟件工程的核心,需要完成設計說明書;
? ? ? ? 概要設計,將需求轉換為相應的體系結構,每一部分都是功能明確的模塊;
? ? ? ? 詳細設計,對每個模塊要完成的工作進行詳細的描述;
編碼:
????????以某種設計語言寫成源程序清單,并建立數據庫;
測試:
運維:交付用戶使用后,由于各種原因對其修改;


周期模型——V模型
它的重要意義在于,非常明確的表明了測試過程中存在的不同的級別,并且非常清晰的描述了這些測試階段和開發(fā)階段的對應關系。

相對于V模型,W模型增加了軟件各開發(fā)階段中應同步進行的驗證和確認活動。W模型由兩個V字型模型組成,分別代表測試與開發(fā)過程,圖中明確表示出了測試與開發(fā)的并行關系。
W模型強調:測試伴隨著整個軟件開發(fā)周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發(fā)是同步進行的。W模型有利于盡早地全面的發(fā)現問題。

周期模型——原型化模型
原型化模型的第一步是建造一個快速原型,實現客戶或未來的用戶與系統的交互,經過和用戶針對原型的討論和交流,弄清需求以便真正把握用戶需要的軟件產品是什么樣子的。充分了解后,再在原型基礎上開發(fā)出用戶滿意的產品。
原型化模型減少了瀑布原型中因為軟件需求不明確而給開發(fā)工作帶來的風險。
周期模型——螺旋模型
螺旋模型,尤其重視風險分析階段,特別適用于龐大并且復雜,非常高風險的項目。通常螺旋模型由四個階段組成:制定計劃、風險分析、實施工程和客戶評估。
螺旋模型兼顧了快速原型的迭代的特征以及瀑布模型的系統化與嚴格監(jiān)控。螺旋模型最大的特點在于引入了其他模型不具備的風險分析,使軟件在無法排除重大風險時有機會停止,以減小損失。
螺旋模型基本做法是在“瀑布模型”的每一個開發(fā)階段前引入一個非常嚴格的風險識別、風險分析和風險控制,它把軟件項目分解成一個個小項目。每個小項目都標識一個或多個主要風險,直到所有的主要風險因素都被確定。
周期模型——迭代模型
迭代模型,摒棄了傳統的需求分析,設計,編碼,測試的流程,而是將整個生命周期變成若干個沖刺(Sprint)階段,而每一個階段都是由以上若干或者全部傳統的流程組成,在每一個階段中,都會包含下面四個階段:初始階段,細化階段,構建階段,交付階段。
????????在初始階段中,確認本次沖刺的范圍,邊界,系統選擇的架構,計劃,以及所需要的資源等信息。
????????在細化階段中,對問題進行建域,創(chuàng)建開發(fā)案例,創(chuàng)建模板以及準備工具等。
????????在構建階段的主要任務就是完成構建的開發(fā)并且進行測試,將完成的構建集成為產品,并且測試所有的功能(CI)。
????????在交付階段,主要是完成本次沖刺,將軟件產品交付給相關的干系人。
在某種程度上,開發(fā)迭代是一次完整地經過所有工作流程的過程:需求分析、設計、實施和測試工作流程。實質上,它類似小型的瀑布式項目。

各階段主要任務



