互聯網信息化咨詢/技術開發/整合營銷
請通過以下方式免費咨詢
提交
1.瀑布式開發
瀑布式開發是一種相對傳統的計算機軟件開發方法,1970年,著名的“瀑布模型”由Winston Royce明確提出,一直到八十年代還被人們廣泛采用。
瀑布模型將軟件的生命周期劃分為六個階段:制定計劃、需求分析、軟件設計、程序編寫、軟件測試、運行維護。并且規定它們的順序是自上而下、相互銜接的,如同瀑布流水一般,“飛流直下三千尺”,快速達成客戶的期望。
在這種模型中,軟件開發的各種活動需嚴格按照線性的方式來進行,各項活動需要根據上一個活動的工作結果,實施完成所需的工作內容。當前活動在完成工作內容后,將結果進行驗證,若驗證通過,再將工作結果輸入給下一項活動,然后繼續下一項活動的工作內容,否則返回修改。
瀑布式開發的優點是軟件開發嚴格按照預先計劃進行,需求明確,工作量可控。
隨著時代的發展,瀑布式開發模式已經不適合現代軟件開發,主要是因為以下幾點:
2.邊做邊改模型
現實中許多小公司采用的都是這種開發模式中,在“邊做邊改”開發模式中,沒有嚴格的規格說明,產品也沒有經過精心的設計,只是根據客戶的需求一次又一次地修改。
軟件開發人員拿到項目后,立即根據客戶的需求編寫程序,調試成功后生成軟件的第一個版本。將其提供給客戶,如果程序發生錯誤或客戶有新的需求,技術人員再修改程序代碼,直到通過測試并且讓客戶滿意。
這樣的開發方式前期出成效快,但只適合一些對于編寫邏輯不太嚴謹的小程序等,對于正常規模的開發來說,是不太適用的,主要原因在于:
3.快速原型
快速原型模型首先要創建一個快速原型,實現客戶或者未來用戶與系統的交互,根據客戶或用戶對軟件原型的評價,來進一步明確待開發軟件的需求。軟件開發人員先了解客戶的真實需求,然后不斷調整原型,使其滿足客戶的要求,其次則在模型的基礎上開發客戶所需的軟件。
快速原型可以降低瀑布式開發模式中由于需求不明確帶來的風險。而快速原型的關鍵在于盡快建造出軟件模型,原型系統的內部結構并不重要,一旦確定了客戶需求,原有模型將不再需要而將其迅速修改。
快速原型開發模式生命周期短,并且有點整合“邊做邊改模式”和“瀑布式開發模式”的意味,但這種模式可能會導致系統設計差和難以維護等問題。
4.迭代開發
迭代模型也可稱為迭代進化式開發或迭代增量式開發,是一種可以彌補瀑布式模式缺點的軟件開發過程,它具有更高的生產率以及成功率。
在迭代開發模式中,整個開發工作可分為一系列固定長度的、短小的小項目,被稱為一系列的迭代。每一次的迭代過程都包括了需求分析、軟件設計和軟件測試等基本活動,采用這種開發模式,軟件開發項目可以在客戶需求完全確定之前啟動,并在每一次迭代中完成系統的一部分功能和業務邏輯的開發工作。然后再根據客戶的反饋來進一步細化需求,并開始新一輪的迭代過程。
這種開發模式的優點有:
5.螺旋式開發
螺旋模型是一種演化軟件定制開發過程的模型,它既具有快速原型的迭代特征,又有瀑布式開發的系統化。它引入了其他開發模式所不具備的風險分析,使軟件在面臨風險時能及時停止,減少損失,非常適合大型復雜的軟件應用開發。
螺旋模型沿著螺線進行若干次迭代,活動的過程可分為四個階段。第一階段:制定計劃。確定軟件開發的方案和目標,弄清限制條件。第二階段:風險分析。分析評估所選方案,考慮如何規避風險。第三階段:計劃實施。進行軟件開發和驗證等。第四階段:客戶評價。評價開發工作,提出反饋或修改建議,進行下一步工作。
在螺旋模型中,第一個發布的模型可能是沒有任何產出的,也許只是紙上談兵的一個目標,但隨著一次又一次的交付,每一個版本都會朝著同一個方向邁進,最終將得到一個更加完善的版本。可以說它是一個由風險驅動的方法體系,因為在每個階段進行之前,都要先進行風險評估。
6.敏捷開發
敏捷開發是一種以人為中心、迭代、循序漸進的開發模式。在這種模式中,一個大的軟件項目可以劃分為許多個小的子項目,每個子項目的結果都要進行測試,使其具有集成和可運行的特點。換句話說,就是把一個大項目分割成多個相互關聯但也可以獨立運行、單獨完成的小項目。在這個過程中,軟件始終處于可使用的狀態。
敏捷開發團隊主要有三個工作方法:
1.將所有個體作為一個整體進行工作
2.工作以短迭代周期的方式進行
3.每一次迭代完成都交付結果,并關注業務優先級。
敏捷開發模式的四個基本核心思想:
1.重視面對面的溝通,人與人實際交流勝過任何網絡工具
2.將時間精力花費在可運行的程序上, 能執行的產品勝過編譯全面的文檔,它強調了原型和demonstration等的重要性。
3.鼓勵團隊合作,提升工作激情,敏捷開發可以把需求、開發、測試等團隊成員整合為一個整體。
4.團隊適應能力強,適應環境變化,拒絕按部就班。
7.演化模型
演化模型主要針對不能提前完全確定需求的開發。
客戶可以提出軟件開發項目的核心需求,當開發人員實現核心需求后,客戶再提供反饋和修改建議,以支持軟件系統的最終設計和實現。
根據客戶的需求,技術人員首先開發軟件的核心系統。當核心系統投入運行時,客戶再進行試用,并提出關于完善系統、提升系統等具體化需求。
技術人員根據客戶的反饋結果進一步實施軟件開發的迭代過程。第一次的迭代過程由需求分析、制定計劃、設計、開發、程序編寫、軟件測試、集成等基本活動組成,為軟件系統增添了一個可以定義和管理的子集。
這種開發模式采用了批量循環開發的方法,每次循環開發產出的一部分功能,都將成為軟件原型的新功能。
因此,設計不斷地演化出新的軟件系統。我們也可以將這個開發模式看作是“瀑布式開發”的重復執行過程。
“演化模型”要求技術人員能夠將項目的產品需求分割成不同的組,這種分組需要根據系統功能的重要性和對軟件整體設計結構的影響來劃分,以便進行批量循環開發。
8.噴泉式開發
噴泉式開發模式以用戶的需求為動力,以對象為驅動模型,一般應用于采取對象技術的軟件開發項目。
與傳統的結構化生存期相比,噴泉式開發模式具有更多的增量和迭代性質。它在生存期的任何階段都可以互相重疊和重復使用,并且在子生存期也可以嵌入軟件項目的整個生存期。就像噴泉一樣,噴出的水可以落在中間位置,也可以落在底部。
它的明顯優點是可提升軟件開發效率,縮短開發時間,適用于面向對象的軟件開發過程。但由于噴泉式開發的各個階段是可重疊的,所以項目實施過程需要大量專業人員,并且噴泉模型的的文檔要求嚴格,使得審核難度增大。
9.智能模型
智能模型是一種基于知識的軟件開發模型,它擁有數據查詢、報表生成、屏幕定義、代碼生成、高層圖形功能和電子表格等工具。技術人員使用這些工具可以在更高層次上定義軟件的某些特征,并且它們可以自動將技術人員定義的軟件系統生成源碼。
這種開發模式需要四代語言(4GL)的支持。四代語言跟前三代語言相比,它簡單靈活容易掌握,面向問題,并擁有良好的用戶界面,即使不是專業的軟件開發人員也可以用它來編寫代碼;
4GL還具有高效的程序代碼、智能缺乏假設、完整的數據庫和應用程序生成器。目前市場上流行的4GL都有不同程度的以上特征。不過四代語言目前主要局限于事務信息系統中小型應用軟件的開發。
10.混合模型
混合模型又可稱為元模型或過程開發模型,將幾種各不相同的模型組合成一個混合模型,使得一個軟件開發項目朝著最有效的方向發展,這就是混合模型(或元模型)。事實上,現實中一些軟件公司都是將幾種不同的軟件開發模式組合成自己所需的混合模型。