軟件開發(fā)過程的分析文檔_第1頁
軟件開發(fā)過程的分析文檔_第2頁
軟件開發(fā)過程的分析文檔_第3頁
軟件開發(fā)過程的分析文檔_第4頁
軟件開發(fā)過程的分析文檔_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件開發(fā)模型軟件開發(fā)模型(Software Development Model)是指軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。軟件開發(fā)包括需求、設(shè)計(jì)、編碼和測(cè)試等階段,有時(shí)也包括維護(hù)階段。 軟件開發(fā)模型能清晰、直觀地表達(dá)軟件開發(fā)全過程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來作為軟件項(xiàng)目工作的基礎(chǔ)。對(duì)于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、使用不同的程序設(shè)計(jì)語言以及各種不同技能的人員參與工作、運(yùn)用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。目錄類型簡介 1. 瀑布模型 2. 常見模型典型的開發(fā)模型 1. 綜述 2. 邊做邊改模型(Build-and-Fix Model

2、) 3. 瀑布模型(Waterfall Model) 4. 快速原型模型(Rapid Prototype Model) 5. 增量模型(Incremental Model) 6. 螺旋模型(Spiral Model) 7. 噴泉模型(fountain model) 8. 智能模型(四代技術(shù)(4GL)) 9. 混合模型(hybrid model) 10. 各種模型的比較 11. 各種模型的優(yōu)點(diǎn)和缺點(diǎn)類型簡介 1. 瀑布模型 2. 常見模型典型的開發(fā)模型 1. 綜述 2. 邊做邊改模型(Build-and-Fix Model) 3. 瀑布模型(Waterfall Model) 4. 快速原型模型(

3、Rapid Prototype Model) 5. 增量模型(Incremental Model) 6. 螺旋模型(Spiral Model) 7. 噴泉模型(fountain model) 8. 智能模型(四代技術(shù)(4GL)) 9. 混合模型(hybrid model) 10. 各種模型的比較 11. 各種模型的優(yōu)點(diǎn)和缺點(diǎn)展開編輯本段類型簡介瀑布模型最早出現(xiàn)的軟件開發(fā)模型是1970年WRoyce提出的瀑布模型。該模型給出了固定的順序,將生存期活動(dòng)從上一個(gè)階段向下一個(gè)階段逐級(jí)過渡,如同流水下瀉,最終得到所開發(fā)的軟件產(chǎn)品,投入使用。但計(jì)算拓廣到統(tǒng)計(jì)分析、商業(yè)事務(wù)等領(lǐng)域時(shí),大多數(shù)程序采用高級(jí)語言(

4、如FORTRAN、COBOL等)編寫。瀑布模式模型也存在著缺乏靈活性、無法通過并發(fā)活動(dòng)澄清本來不夠確切的需求等缺點(diǎn)。 常見模型演化模型、螺旋模型、噴泉模型、智能模型等。 編輯本段典型的開發(fā)模型綜述典型的開發(fā)模型有:1. 邊做邊改模型(Build-and-Fix Model);2. 瀑布模型(Waterfall Model);3. 快速原型模型(Rapid Prototype Model);4. 增量模型(Incremental Model);5.螺旋模型(Spiral Model);6.演化模型(incremental model);7.噴泉模型(fountain model);8.智能模型(

5、四代技術(shù)(4GL));9.混合模型(hybrid model) 邊做邊改模型(Build-and-Fix Model)遺憾的是,許多產(chǎn)品都是使用邊做邊改模型來開發(fā)的。在這種模型中,既沒有規(guī)格說明,也沒有經(jīng)過設(shè)計(jì),軟件隨著客戶的需要一次又一次地不斷被修改. 邊做邊改型在這個(gè)模型中,開發(fā)人員拿到項(xiàng)目立即根據(jù)需求編寫程序,調(diào)試通過后生成軟件的第一個(gè)版本。在提供給用戶使用后,如果程序出現(xiàn)錯(cuò)誤,或者用戶提出新的要求,開發(fā)人員重新修改代碼,直到用戶滿意為止。 這是一種類似作坊的開發(fā)方式,對(duì)編寫幾百行的小程序來說還不錯(cuò),但這種方法對(duì)任何規(guī)模的開發(fā)來說都是不能令人滿意的,其主要問題在于: (1) 缺少規(guī)劃和設(shè)

6、計(jì)環(huán)節(jié),軟件的結(jié)構(gòu)隨著不斷的修改越來越糟,導(dǎo)致無法繼續(xù)修改; (2) 忽略需求環(huán)節(jié),給軟件開發(fā)帶來很大的風(fēng)險(xiǎn); (3) 沒有考慮測(cè)試和程序的可維護(hù)性,也沒有任何文檔,軟件的維護(hù)十分困難。 瀑布模型(Waterfall Model)1970年Winston Royce提出了著名的瀑布模型,直到80年代早期,它一直是唯一被廣泛采用的軟件開發(fā)模型。 瀑布模型瀑布模型將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè)計(jì)、程序編寫、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級(jí)下落。 在瀑布模型中,軟件開發(fā)的各項(xiàng)活動(dòng)嚴(yán)格按照線性方式進(jìn)行,當(dāng)前活動(dòng)接受上一項(xiàng)活

7、動(dòng)的工作結(jié)果,實(shí)施完成所需的工作內(nèi)容。當(dāng)前活動(dòng)的工作結(jié)果需要進(jìn)行驗(yàn)證,如果驗(yàn)證通過,則該結(jié)果作為下一項(xiàng)活動(dòng)的輸入,繼續(xù)進(jìn)行下一項(xiàng)活動(dòng),否則返回修改。 瀑布模型強(qiáng)調(diào)文檔的作用,并要求每個(gè)階段都要仔細(xì)驗(yàn)證。但是,這種模型的線性過程太理想化,已不再適合現(xiàn)代的軟件開發(fā)模式,幾乎被業(yè)界拋棄,其主要問題在于: (1) 各個(gè)階段的劃分完全固定,階段之間產(chǎn)生大量的文檔,極大地增加了工作量; (2) 由于開發(fā)模型是線性的,用戶只有等到整個(gè)過程的末期才能見到開發(fā)成果,從而增加了開發(fā)的風(fēng)險(xiǎn); (3) 早期的錯(cuò)誤可能要等到開發(fā)后期的測(cè)試階段才能發(fā)現(xiàn),進(jìn)而帶來嚴(yán)重的后果。 我們應(yīng)該認(rèn)識(shí)到,線性是人們最容易掌握并能熟練應(yīng)

8、用的思想方法。當(dāng)人們碰到一個(gè)復(fù)雜的非線性問題時(shí),總是千方百計(jì)地將其分解或轉(zhuǎn)化為一系列簡單的線性問題,然后逐個(gè)解決。一個(gè)軟件系統(tǒng)的整體可能是復(fù)雜的,而單個(gè)子程序總是簡單的,可以用線性的方式來實(shí)現(xiàn),否則干活就太累了。線性是一種簡潔,簡潔就是美。當(dāng)我們領(lǐng)會(huì)了線性的精神,就不要再呆板地套用線性模型的外表,而應(yīng)該用活它。例如增量模型實(shí)質(zhì)就是分段的線性模型,螺旋模型則是接連的彎曲了的線性模型,在其它模型中也能夠找到線性模型的影子。 快速原型模型(Rapid Prototype Model)快速原型模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開發(fā)軟

9、件的需求。 快速原型通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么;第二步則在第一步的基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品。 顯然,快速原型方法可以克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來的開發(fā)風(fēng)險(xiǎn),具有顯著的效果。 快速原型的關(guān)鍵在于盡可能快速地建造出軟件原型,一旦確定了客戶的真正需求,所建造的原型將被丟棄。因此,原型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅速建立原型,隨之迅速修改原型,以反映客戶的需求。 增量模型(Incremental Model)又稱演化模型。與建造大廈相同,軟件也是一步一步建造起來的。在增量模型中,軟件被作為一系列的增量構(gòu)件來設(shè)計(jì)、實(shí)現(xiàn)、集成和測(cè)

10、試,每一個(gè)構(gòu)件是由多種相互作用的模塊所形成的提供特定功能的代碼片段構(gòu)成. 增量模型增量模型在各個(gè)階段并不交付一個(gè)可運(yùn)行的完整產(chǎn)品,而是交付滿足客戶需求的一個(gè)子集的可運(yùn)行產(chǎn)品。整個(gè)產(chǎn)品被分解成若干個(gè)構(gòu)件,開發(fā)人員逐個(gè)構(gòu)件地交付產(chǎn)品,這樣做的好處是軟件開發(fā)可以較好地適應(yīng)變化,客戶可以不斷地看到所開發(fā)的軟件,從而降低開發(fā)風(fēng)險(xiǎn)。但是,增量模型也存在以下缺陷: (1) 由于各個(gè)構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分,這需要軟件具備開放式的體系結(jié)構(gòu)。 (2) 在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應(yīng)這種變化的能力大大優(yōu)于瀑布模型和快速原型模

11、型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。 在使用增量模型時(shí),第一個(gè)增量往往是實(shí)現(xiàn)基本需求的核心產(chǎn)品。核心產(chǎn)品交付用戶使用后,經(jīng)過評(píng)價(jià)形成下一個(gè)增量的開發(fā)計(jì)劃,它包括對(duì)核心產(chǎn)品的修改和一些新功能的發(fā)布。這個(gè)過程在每個(gè)增量發(fā)布后不斷重復(fù),直到產(chǎn)生最終的完善產(chǎn)品。 例如,使用增量模型開發(fā)字處理軟件??梢钥紤],第一個(gè)增量發(fā)布基本的文件管理、編輯和文檔生成功能,第二個(gè)增量發(fā)布更加完善的編輯和文檔生成功能,第三個(gè)增量實(shí)現(xiàn)拼寫和文法檢查功能,第四個(gè)增量完成高級(jí)的頁面布局功能。 螺旋模型(Spiral Model)1988年,Barry Boehm正式發(fā)表了軟件系統(tǒng)開發(fā)的螺旋模型,它

12、將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,特別適合于大型復(fù)雜的系統(tǒng)。 螺旋模型螺旋模型沿著螺線進(jìn)行若干次迭代,圖中的四個(gè)象限代表了以下活動(dòng): (1) 制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開發(fā)的限制條件; (2) 風(fēng)險(xiǎn)分析:分析評(píng)估所選方案,考慮如何識(shí)別和消除風(fēng)險(xiǎn); (3) 實(shí)施工程:實(shí)施軟件開發(fā)和驗(yàn)證; (4) 客戶評(píng)估:評(píng)價(jià)開發(fā)工作,提出修正建議,制定下一步計(jì)劃。 螺旋模型由風(fēng)險(xiǎn)驅(qū)動(dòng),強(qiáng)調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質(zhì)量作為特殊目標(biāo)融入產(chǎn)品開發(fā)之中。但是,螺旋模型也有一定的限制條件,具體如下: (1) 螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求許多客

13、戶接受和相信這種分析,并做出相關(guān)反應(yīng)是不容易的,因此,這種模型往往適應(yīng)于內(nèi)部的大規(guī)模軟件開發(fā)。 (2) 如果執(zhí)行風(fēng)險(xiǎn)分析將大大影響項(xiàng)目的利潤,那么進(jìn)行風(fēng)險(xiǎn)分析毫無意義,因此,螺旋模型只適合于大規(guī)模軟件項(xiàng)目。 (3) 軟件開發(fā)人員應(yīng)該擅長尋找可能的風(fēng)險(xiǎn),準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會(huì)帶來更大的風(fēng)險(xiǎn) 一個(gè)階段首先是確定該階段的目標(biāo),完成這些目標(biāo)的選擇方案及其約束條件,然后從風(fēng)險(xiǎn)角度分析方案的開發(fā)策略,努力排除各種潛在的風(fēng)險(xiǎn),有時(shí)需要通過建造原型來完成。如果某些風(fēng)險(xiǎn)不能排除,該方案立即終止,否則啟動(dòng)下一個(gè)開發(fā)步驟。最后,評(píng)價(jià)該階段的結(jié)果,并設(shè)計(jì)下一個(gè)階段。 噴泉模型(fountain model)(也稱面

14、向?qū)ο蟮纳嫫谀P? OO模型) 噴泉模型噴泉模型與傳統(tǒng)的結(jié)構(gòu)化生存期比較,具有更多的增量和迭代性質(zhì),生存期的各個(gè)階段可以相互重疊和多次反復(fù),而且在項(xiàng)目的整個(gè)生存期中還可以嵌入子生存期。就像水噴上去又可以落下來,可以落在中間,也可以落在最底部。 智能模型(四代技術(shù)(4GL)) 智能模型智能模型擁有一組工具(如數(shù)據(jù)查詢、報(bào)表生成、數(shù)據(jù)處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個(gè)工具都能使開發(fā)人員在高層次上定義軟件的某些特性,并把開發(fā)人員定義的這些軟件自動(dòng)地生成為源代碼。 這種方法需要四代語言(4GL)的支持。4GL不同于三代語言,其主要特征是用戶界面極端友好,即使沒有受過訓(xùn)練的非專業(yè)程序員,也能用它編寫程序;它是一種聲明式、交互式和非過程性編程語言。4GL還具有高效的程序代碼、智能缺省假設(shè)、完備的數(shù)據(jù)庫和應(yīng)用程序生成器。目前市場上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務(wù)信息系統(tǒng)的中、小型應(yīng)用程序的開發(fā)。 混合模型(hybrid model)過程開發(fā)模型又叫混合模型(hybrid model),或元模型(meta-model),把幾種不同模型組合成一種混合模型,它允許一個(gè)項(xiàng)目能沿著最有效的路徑發(fā)展,這就是過程開發(fā)模型(或混合模型)。實(shí)際上,一些軟件開發(fā)單位都是使用幾種不同的開發(fā)方法組成他們自己

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論