軟件開發(fā)模型(Software Development Model)是指軟件開發(fā)全部過程、活動和任務的結構框架。那么軟件開發(fā)模型有哪些?各有什么特點?
1、原型模型
典型的原型開發(fā)方法模型。適用于需求不明確的場景,可以幫助用戶明確需求。
2、瀑布模型
瀑布模型是將軟件生存周期中的各個活動規(guī)定為依線性順序連接的若干階段的模型,包括需求分析、設計、編碼、運行與維護。 瀑布模型的特點是容易理解,管理成本低,每個階段都有對應的成果產(chǎn)物,各個階段有明顯的界限劃分和順序要求,一旦發(fā)生錯誤,整個項目推倒重新開始。
適用于需求明確的項目,一般表述為需求明確、或二次開發(fā),或者對于數(shù)據(jù)處理類型的項目。
3、增量模型
融合了瀑布模型的基本成分和原型實現(xiàn)的迭代特征,可以有多個可用版本的發(fā)布,核心功能往往最先完成,在此基礎上,每輪迭代會有新的增量發(fā)布,核心功能可以得到充分測試。強調(diào)每一個增量均發(fā)布一個可操作的產(chǎn)品。
4、螺旋模型
典型特點是引入了風險分析。結合了瀑布模型和演化模型的優(yōu)點,最主要的特點在于加入了風險分析。它是由制定計劃、風險分析、實施工程、客戶評估這一循環(huán)組成的,它最初從概念項目開始第一個螺旋。
5、V模型
強調(diào)測試貫穿項目始終,而不是集中在測試階段。是一種測試的開發(fā)模型。
6、噴泉模型
典型的面向對象的模型。特點是迭代、無間隙。會將軟件開發(fā)劃分為多個階段,但各個階段無明顯界限,并且可以迭代交叉。
7、快速應用開發(fā)RAD
概念:RAD是瀑布模型的一個高速變種,適用比傳統(tǒng)生命周期快得多的開發(fā)方法,它強調(diào)極短的開發(fā)周期,通常適用基于構件的開發(fā)方法獲得快速開發(fā)。
過程:業(yè)務建模,數(shù)據(jù)建模,過程建模,應用生成,測試與交付。
適用性:RAD對模塊化要求比較高,如果某項功能不能被模塊化,則其構件就會出問題;如果高性能是一個指標,且必須通過調(diào)整結構使其適應系統(tǒng)構件才能獲得,則RAD也有可能不能奏效;RAD要求開發(fā)者和客戶必須在很短的時間完成一系列的需求分析,任何一方配合不當都會導致失敗;RAD只能用于管理信息系統(tǒng)的開發(fā),不適合技術風險很高的情況。
8、構件組裝模型
9、統(tǒng)一過程(在軟考中UP、RUP都指統(tǒng)一過程)
典型特點是用例驅動、以架構為中心、迭代和增量。統(tǒng)一過程把一個項目分為四個不同的階段:
構思階段(初始階段):包括用戶溝通和計劃活動兩個方面,強調(diào)定義和細化用例,并將其作為主要模型。
(1)項目藍圖文檔(核心需求,關鍵特性,主要約束)
(2)用例模型
(3)項目計劃
細化階段:包括用戶溝通和建模活動,重點是創(chuàng)建分析和設計模型,強調(diào)類的定義和體系結構的表示。
(1)完成架構設計
(2)淘汰高風險元素
構建階段:將設計轉化為實現(xiàn),并進行集成和測試。
(1)UML模型
(2)測試用例
移交階段:將產(chǎn)品發(fā)布給用戶進行測試評價,并收集用戶的意見,之后再次進行迭代修改產(chǎn)品使之完善。
(1)可運行的軟件產(chǎn)品
(2)用戶手冊
(3)用戶支持計劃
10、敏捷開發(fā)
敏捷開發(fā)是一種以人為核心、迭代、循序漸進的開發(fā)方法,適用于小團隊和小項目,具有小步快跑的思想。常見的敏捷開發(fā)方法有極限編程法、水晶法、并列爭球法和自適應軟件開發(fā)方法。
極限編程XP是一種輕量級的開發(fā)方法,它提出了四大價值觀:溝通、簡單、反饋、勇氣。五大原則:快速反饋、簡單性假設、逐步修改、提倡更改、優(yōu)質工作。十二個最佳實踐:計劃游戲、隱喻、小型發(fā)布、簡單設計、測試先行、重構、結對編程、集體代碼所有制、持續(xù)集成、每周工作40小時、現(xiàn)場客戶和編碼標準。
水晶法強調(diào)經(jīng)常交付,認為每一種不同的項目都需要一套不同的策略、約定和方法論。
并列爭球法的核心是迭代、增量交付,按照30天進行迭代開發(fā)交付可實際運行的軟件。
自適應軟件開發(fā)(ASD方法)的核心是三個非線性的,重疊的開發(fā)階段:猜測、合作、學習。
開放式源碼,這里提到的開放式源碼指的是開放源碼界所用的一種運作方式。開放式源碼項目有一個特別之處,就是程序開發(fā)人員在地域上分布很廣,這使得它和其他敏捷方法不同,因為一般的敏捷方法都強調(diào)項目組成員在同一地點工作。開放源碼的一個突出特點就是查錯排障(debug)的高度并行性,任何人發(fā)現(xiàn)了錯誤都可將改正源碼的“補丁”文件發(fā)給維護者。然后由維護者將這些“補丁”或是新增的代碼并入源碼庫。
11、Coad的功用驅動開發(fā)方法(FDD-Feature Driven Development)
FDD是由Jeff De Luca和大師Peter Coad提出來的。像其他方法一樣,它致力于短時的迭代階段和可見可用的功能。在FDD中,一個迭代周期一般是兩周。
在FDD中,編程開發(fā)人員分成兩類:首席程序員和“類”程序員(class owner)。首席程序員是最富有經(jīng)驗的開發(fā)人員,他們是項目的協(xié)調(diào)者、設計者和指導者,而“類”程序員則主要做源碼編寫。
軟考備考資料免費領取
去領取