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