雷火平台-中国知名电竞赛事平台

0471-4953016
當前位置:首頁-新聞資訊-行業(yè)資訊

軟件開發(fā)的十種基本模式

發(fā)布時間:2020-01-17閱讀次數(shù):1952

瀑布式開發(fā)

瀑布式開發(fā)是一種相對傳統(tǒng)的計算機軟件開發(fā)方法,1970年,著名的“瀑布模型”由Winston Royce明確提出,一直到八十年代還被人們廣泛采用。

瀑布模型將軟件的生命周期劃分為六個階段:制定計劃、需求分析、軟件設計、程序編寫、軟件測試、運行維護。并且規(guī)定它們的順序是自上而下、相互銜接的,如同瀑布流水一般,“飛流直下三千尺”,快速達成客戶的期望。

在這種模型中,軟件開發(fā)的各種活動需嚴格按照線性的方式來進行,各項活動需要根據(jù)上一個活動的工作結(jié)果,實施完成所需的工作內(nèi)容。當前活動在完成工作內(nèi)容后,將結(jié)果進行驗證,若驗證通過,再將工作結(jié)果輸入給下一項活動,然后繼續(xù)下一項活動的工作內(nèi)容,否則返回修改。

那么重點來了

瀑布式開發(fā)的優(yōu)點是軟件開發(fā)嚴格按照預先計劃進行,需求明確,工作量可控。

隨著時代的發(fā)展,瀑布式開發(fā)模式已經(jīng)不適合現(xiàn)代軟件開發(fā),主要是因為以下幾點:

1.各階段劃分明確,但階段之間產(chǎn)生大量文檔,加重了工作量。

2.由于計劃嚴格按照線性方式進行,用戶只有在軟件開發(fā)末期才能看到成果,開發(fā)風險較高。

3.早期出現(xiàn)錯誤不能及時發(fā)現(xiàn),可能導致嚴重后果。

4.各個階段銜接過程時間成本較高,團隊人員溝通交流困難。

邊做邊改模型

現(xiàn)實中許多小公司采用的都是這種開發(fā)模式中,在“邊做邊改”開發(fā)模式中,沒有嚴格的規(guī)格說明,產(chǎn)品也沒有經(jīng)過精心的設計,只是根據(jù)客戶的需求一次又一次地修改。

軟件開發(fā)人員拿到項目后,立即根據(jù)客戶的需求編寫程序,調(diào)試成功后生成軟件的第一個版本。將其提供給客戶,如果程序發(fā)生錯誤或客戶有新的需求,技術人員再修改程序代碼,直到通過測試并且讓客戶滿意。

那么重點來了

這樣的開發(fā)方式前期出成效快,但只適合一些對于編寫邏輯不太嚴謹?shù)男〕绦虻?,對于正常?guī)模的開發(fā)來說,是不太適用的,主要原因在于:

1.缺乏設計和規(guī)劃等重要環(huán)節(jié),使得軟件的結(jié)構混亂,導致最終無法修改。

2.開發(fā)過程忽略軟件測試和程序的可維護性,也沒有具體的文檔,維護起來十分困難。

快速原型

快速原型模型首先要創(chuàng)建一個快速原型,實現(xiàn)客戶或者未來用戶與系統(tǒng)的交互,根據(jù)客戶或用戶對軟件原型的評價,來進一步明確待開發(fā)軟件的需求。軟件開發(fā)人員先了解客戶的真實需求,然后不斷調(diào)整原型,使其滿足客戶的要求,其次則在模型的基礎上開發(fā)客戶所需的軟件。

快速原型可以降低瀑布式開發(fā)模式中由于需求不明確帶來的風險。而快速原型的關鍵在于盡快建造出軟件模型,原型系統(tǒng)的內(nèi)部結(jié)構并不重要,一旦確定了客戶需求,原有模型將不再需要而將其迅速修改。

那么重點來了

快速原型開發(fā)模式生命周期短,并且有點整合“邊做邊改模式”和“瀑布式開發(fā)模式”的意味,但這種模式可能會導致系統(tǒng)設計差和難以維護等問題。


迭代開發(fā)

迭代模型也可稱為迭代進化式開發(fā)或迭代增量式開發(fā),是一種可以彌補瀑布式模式缺點的軟件開發(fā)過程,它具有更高的生產(chǎn)率以及成功率。

在迭代開發(fā)模式中,整個開發(fā)工作可分為一系列固定長度的、短小的小項目,被稱為一系列的迭代。每一次的迭代過程都包括了需求分析、軟件設計和軟件測試等基本活動,采用這種開發(fā)模式,軟件開發(fā)項目可以在客戶需求完全確定之前啟動,并在每一次迭代中完成系統(tǒng)的一部分功能和業(yè)務邏輯的開發(fā)工作。然后再根據(jù)客戶的反饋來進一步細化需求,并開始新一輪的迭代過程。

那么重點來了

這種開發(fā)模式的優(yōu)點有:

1.降低在一個增量上的開支風險

2.提早發(fā)現(xiàn)問題,降低產(chǎn)品不能按照預期進入市場的風險。

3.明確問題焦點,提高工作效率,加快工作進度。

4.迭代過程適應需求變化,復用性高。

螺旋式開發(fā)

螺旋模型是一種演化軟件定制開發(fā)過程的模型,它既具有快速原型的迭代特征,又有瀑布式開發(fā)的系統(tǒng)化。它引入了其他開發(fā)模式所不具備的風險分析,使軟件在面臨風險時能及時停止,減少損失,非常適合大型復雜的軟件應用開發(fā)。

螺旋模型沿著螺線進行若干次迭代,活動的過程可分為四個階段。第一階段:制定計劃。確定軟件開發(fā)的方案和目標,弄清限制條件。第二階段:風險分析。分析評估所選方案,考慮如何規(guī)避風險。第三階段:計劃實施。進行軟件開發(fā)和驗證等。第四階段:客戶評價。評價開發(fā)工作,提出反饋或修改建議,進行下一步工作。

在螺旋模型中,第一個發(fā)布的模型可能是沒有任何產(chǎn)出的,也許只是紙上談兵的一個目標,但隨著一次又一次的交付,每一個版本都會朝著同一個方向邁進,最終將得到一個更加完善的版本。可以說它是一個由風險驅(qū)動的方法體系,因為在每個階段進行之前,都要先進行風險評估。

敏捷開發(fā)

敏捷開發(fā)是一種以人為中心、迭代、循序漸進的開發(fā)模式。在這種模式中,一個大的軟件項目可以劃分為許多個小的子項目,每個子項目的結(jié)果都要進行測試,使其具有集成和可運行的特點。換句話說,就是把一個大項目分割成多個相互關聯(lián)但也可以獨立運行、單獨完成的小項目。在這個過程中,軟件始終處于可使用的狀態(tài)。

那么重點來了

敏捷開發(fā)團隊主要有三個工作方法:

1.將所有個體作為一個整體進行工作

2.工作以短迭代周期的方式進行

3.每一次迭代完成都交付結(jié)果,并關注業(yè)務優(yōu)先級。

敏捷開發(fā)模式的四個基本核心思想:

1.重視面對面的溝通,人與人實際交流勝過任何網(wǎng)絡工具

2.將時間精力花費在可運行的程序上,能執(zhí)行的產(chǎn)品勝過編譯全面的文檔,它強調(diào)了原型和demonstration等的重要性。

3.鼓勵團隊合作,提升工作激情,敏捷開發(fā)可以把需求、開發(fā)、測試等團隊成員整合為一個整體。

4.團隊適應能力強,適應環(huán)境變化,拒絕按部就班。(軟件開發(fā)定制,歡迎找末示科技)

演化模型

演化模型主要針對不能提前完全確定需求的開發(fā)。

客戶可以提出軟件開發(fā)項目的核心需求,當開發(fā)人員實現(xiàn)核心需求后,客戶再提供反饋和修改建議,以支持軟件系統(tǒng)的最終設計和實現(xiàn)。

根據(jù)客戶的需求,技術人員首先開發(fā)軟件的核心系統(tǒng)。當核心系統(tǒng)投入運行時,客戶再進行試用,并提出關于完善系統(tǒng)、提升系統(tǒng)等具體化需求。

技術人員根據(jù)客戶的反饋結(jié)果進一步實施軟件開發(fā)的迭代過程。第一次的迭代過程由需求分析、制定計劃、設計、開發(fā)、程序編寫、軟件測試、集成等基本活動組成,為軟件系統(tǒng)增添了一個可以定義和管理的子集。

那么重點來了

這種開發(fā)模式采用了批量循環(huán)開發(fā)的方法,每次循環(huán)開發(fā)產(chǎn)出的一部分功能,都將成為軟件原型的新功能。

因此,設計不斷地演化出新的軟件系統(tǒng)。我們也可以將這個開發(fā)模式看作是“瀑布式開發(fā)”的重復執(zhí)行過程。

“演化模型”要求技術人員能夠?qū)㈨椖康漠a(chǎn)品需求分割成不同的組,這種分組需要根據(jù)系統(tǒng)功能的重要性和對軟件整體設計結(jié)構的影響來劃分,以便進行批量循環(huán)開發(fā)。

噴泉式開發(fā)

噴泉式開發(fā)模式以用戶的需求為動力,以對象為驅(qū)動模型,一般應用于采取對象技術的軟件開發(fā)項目。

與傳統(tǒng)的結(jié)構化生存期相比,噴泉式開發(fā)模式具有更多的增量和迭代性質(zhì)。它在生存期的任何階段都可以互相重疊和重復使用,并且在子生存期也可以嵌入軟件項目的整個生存期。就像噴泉一樣,噴出的水可以落在中間位置,也可以落在底部。

那么重點來了

它的明顯優(yōu)點是可提升軟件開發(fā)效率,縮短開發(fā)時間,適用于面向?qū)ο蟮能浖_發(fā)過程。但由于噴泉式開發(fā)的各個階段是可重疊的,所以項目實施過程需要大量專業(yè)人員,并且噴泉模型的的文檔要求嚴格,使得審核難度增大。

智能模型

智能模型是一種基于知識的軟件開發(fā)模型,它擁有數(shù)據(jù)查詢、報表生成、屏幕定義、代碼生成、高層圖形功能和電子表格等工具。技術人員使用這些工具可以在更高層次上定義軟件的某些特征,并且它們可以自動將技術人員定義的軟件系統(tǒng)生成源碼。

這種開發(fā)模式需要四代語言(4GL)的支持。四代語言跟前三代語言相比,它簡單靈活容易掌握,面向問題,并擁有良好的用戶界面,即使不是專業(yè)的軟件開發(fā)人員也可以用它來編寫代碼;

4GL還具有高效的程序代碼、智能缺乏假設、完整的數(shù)據(jù)庫和應用程序生成器。目前市場上流行的4GL都有不同程度的以上特征。不過四代語言目前主要局限于事務信息系統(tǒng)中小型應用軟件的開發(fā)。

混合模型

混合模型又可稱為元模型或過程開發(fā)模型,將幾種各不相同的模型組合成一個混合模型,使得一個軟件開發(fā)項目朝著最有效的方向發(fā)展,這就是混合模型(或元模型)。事實上,現(xiàn)實中一些軟件公司都是將幾種不同的軟件開發(fā)模式組合成自己所需的混合模型。