1.軟件研發模型
????????在軟件生產過程中,經過多年實踐總結,沉淀出目前幾種流行的軟件研發模型。軟件研發模型(software development model)是軟件生產過程中分析、設計、研發活動所遵循的框架模式。不同項目團隊在不同業務背景下,采用合適的研發模型將會提高軟件研發效率,降低研發成本,提高產品質量。
2.常見的軟件研發模型
⑴.瀑布模型
⑵.原型模型
⑶.迭代模型
⑷.增量模型
⑸.敏捷模型
瀑布模型(后期不易改變)
嚴格遵循預先計劃的需求分析、設計、編碼、集成、測試、維護的步驟順序進行。
主要的問題
嚴格分級導致的自由度降低;
開發成果輸出過晚,風險高;
后期需求的變化難以調整,代價高昂;
瀑布式方法在需求不明并且在項目進行過程中可能變化的情況下基本是不可行的。
原型模型(在瀑布模型基礎上增加原型設計)
????????用戶很難將需求表達得既具體又明確,用戶與需求開發人員的知識背景不同。當需求表述錯誤時,在瀑布模型下往往到后期才能發現。原型模型在很大程度上解決了這個問題。原型模型是在瀑布模型基礎上演進的一種較為先進的研發模型。利用該模型,產品設計者實現用戶與軟件系統的交互,當原型研發生產完成后,由用戶根據自身的實際需求對原型進行評價,從而進一步細化待開發軟件的需求。
迭代模型(需求不穩定、多變)
迭代模型(iterative model)是由IBM公司提出的一種軟件開發方法,該方法包括一系列的增量的步驟或迭代,每個迭代都包括很多的開發活動(需求、分析、設計、實現等)。
實現軟件的每項功能反復求精的過程,是從模糊到清晰的開發過程。每次迭代是從功能的深度和細化程度來劃分的。
迭代模型最適合使用與前期需求不穩定,需求多變的項目。
增量模型(需求穩定、分批次提交)
? ? ? ?增量模型是把待開發的軟件系統模塊化,將每個模塊作為一個增量組件,從而分批次地分析、設計、編碼和測試這些增量組件。運用增量模型的軟件開發過程是遞增式的過程。相對于瀑布模型而言,采用增量模型進行開發,開發人員不需要一次性地把整個軟件產品提交給用戶,而是可以分批次進行提交。
敏捷模型(簡單、變化多、及時反饋)
????????敏捷軟件開發又稱敏捷開發, 是一種從1990年代開始逐漸引起廣泛關注的一些新型軟件開發方法,是一種應對快速變化的需求的一種軟件開發能力。
????????在敏捷開發中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,并分別完成,在此過程中軟件一直處于可使用狀態。
人和交互?? 重于過程和工具。
可以工作的軟件?? ? 重于求全而完備的文檔。
客戶協作? ? 重于合同談判。
隨時應對變化? ? 重于循規蹈矩。
敏捷模型核心:
主張簡單
擁抱變化
遞增變化
快速反饋