读书笔记:软件工程(8) - 软件过程模型:喷泉模型、其他模型
噴泉模型
噴泉模型是一種比較典型的面向?qū)ο筌浖_發(fā)模型,以用戶需求為動(dòng)力,以對(duì)象作為驅(qū)動(dòng)的模型,適合面向?qū)ο蟮拈_發(fā)方法。這克服了瀑布模型不支持軟件重用和多項(xiàng)開發(fā)活動(dòng)集成的局限性,噴泉模型使開發(fā)過程具有迭代性和無間隙性,如圖1.6所示。
圖2.6所示的噴泉模型是典型的面向?qū)ο笊芷谀P汀?/strong>
圖中代表不同階段的圓圈相互重疊,這明確表示兩個(gè)活動(dòng)之間存在交迭;圖中在一個(gè)階段內(nèi)的向下箭頭代表該階段內(nèi)的迭代(或求精)。圖中較小的圓圈代表維護(hù),圓圈較小象征著采用了面向?qū)ο蠓缎椭缶S護(hù)時(shí)間縮短了。
系統(tǒng)某些部分常常重復(fù)工作多次,相關(guān)功能在每次迭代中隨之加入演進(jìn)的系統(tǒng)。無間隙性是指在開發(fā)活動(dòng),即分析、設(shè)計(jì)和實(shí)現(xiàn)之間不存在明顯的邊界。
噴泉模型認(rèn)為軟件開發(fā)過程自下而上周期的各階段是相互迭代和無間隙,體現(xiàn)了面向?qū)ο蠓椒ǖ牡蜔o間隙特性。迭代是指開發(fā)活動(dòng)需要多次重復(fù)。軟件的某個(gè)部分常常被重復(fù)工作多次,相關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。無間隙實(shí)質(zhì)開發(fā)活動(dòng)之間不存在明顯的邊界。如分析和設(shè)計(jì)活動(dòng)之間沒有明顯的界限,由于對(duì)象概念的引入,表達(dá)分析、設(shè)計(jì)、實(shí)現(xiàn)等活動(dòng)只用對(duì)象類和關(guān)系,從而可以較為容易地實(shí)現(xiàn)活動(dòng)的迭代和無間隙,使其開發(fā)自然地包括復(fù)用。正是因?yàn)閲娙P偷母鱾€(gè)階段沒有明顯的界限,開發(fā)人員可以同步進(jìn)行開發(fā)。其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開發(fā)效率,節(jié)省開發(fā)時(shí)間。由于噴泉模型在各個(gè)開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項(xiàng)目的管理。此外這種模型要求嚴(yán)格管理文檔,使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情況。
噴泉模型主要有以下的一些特點(diǎn):
(1)模型規(guī)定軟件開發(fā)過程有5個(gè)階段,即分析、設(shè)計(jì)、實(shí)現(xiàn)、測試與集成。
(2)模型從高層返回低層無資源消耗,反映了軟件過程迭代的自然特性。
(3)以分析為基礎(chǔ),資源消耗呈塔型,在分析階段消耗的資源最多。
(4)各階段相互重疊反映了軟件過程并行性。
(5)模型強(qiáng)調(diào)增量開發(fā),它依據(jù)分析一點(diǎn),設(shè)計(jì)一點(diǎn)的原則,并不要求一個(gè)階段的徹底完成,整個(gè)過程是一個(gè)迭代的逐步提煉的過程。
(6)模型是對(duì)象驅(qū)動(dòng)的過程,對(duì)象是所有活動(dòng)作用的主體和項(xiàng)目管理的基本內(nèi)容。
(7)模型在實(shí)現(xiàn)時(shí),由于活動(dòng)不同,可分為系統(tǒng)實(shí)現(xiàn)和對(duì)象實(shí)現(xiàn),這既反映了全系統(tǒng)的開發(fā)過程,也反映了對(duì)象的開發(fā)和重用過程。
噴泉模型使用的面向?qū)ο蠹夹g(shù)導(dǎo)致其局限性,這種模型在除面向?qū)ο蟮拈_發(fā)方法之外其它開發(fā)方法中都不適用。
專用過程模型
基于構(gòu)件的開發(fā)
商業(yè)現(xiàn)貨軟件構(gòu)件由廠家作為產(chǎn)品供應(yīng),通過良好定義的接口提供特定的功能,這些構(gòu)件能夠集成到正在構(gòu)建額軟件中?;跇?gòu)件的開發(fā)模型具有許多螺旋模型的特點(diǎn)。它本質(zhì)上是演化模型,需要以迭代方式構(gòu)建軟件。不同之處在于,基于構(gòu)件的開發(fā)模型采用預(yù)先打包的軟件構(gòu)件來開發(fā)應(yīng)用系統(tǒng)。建模和構(gòu)建活動(dòng)開始于識(shí)別可選構(gòu)件。這些構(gòu)件有些設(shè)計(jì)成傳統(tǒng)的軟件模塊,有些設(shè)計(jì)成面向?qū)ο蟮念惢蝾惏?。若不考慮構(gòu)件的開發(fā)技術(shù),則基于構(gòu)件開發(fā)模型由以下步驟組成(采用演化方法):
1.對(duì)于該問題的應(yīng)用領(lǐng)域研究和評(píng)估可用的基于構(gòu)件的產(chǎn)品。
2.考慮構(gòu)件集成的問題。
3.設(shè)計(jì)軟件架構(gòu)以容納這些構(gòu)件。
4.將構(gòu)件集成到架構(gòu)中。
5.進(jìn)行充分的測試以保證功能正常。
形式化方法模型
形式化方法模型的主要活動(dòng)是生成計(jì)算機(jī)軟件形式化的數(shù)學(xué)規(guī)格說明。形式化方法使軟件開發(fā)人員可以應(yīng)用嚴(yán)格的數(shù)學(xué)符號(hào)來說明,開發(fā)和驗(yàn)證基于計(jì)算機(jī)的系統(tǒng)。這種方法的一個(gè)變形是凈室軟件工程。
傳統(tǒng)軟件工程和面向?qū)ο筌浖こ痰姆治龇椒▽?duì)比
面向?qū)ο箝_發(fā)方法不再是以功能劃分為導(dǎo)向,而是以對(duì)象作為整個(gè)問題分析的中心,圍繞對(duì)象展開系統(tǒng)的分析與設(shè)計(jì)工作。
在開發(fā)過程方面,面向?qū)ο筌浖こ毯蛡鹘y(tǒng)軟件工程一樣也是把軟件開發(fā)劃分為分析、設(shè)計(jì)、編碼和測試等幾個(gè)階段,但各個(gè)階段的具體工作不同,除了在編碼階段使用的語言不同外,面向?qū)ο筌浖こ?strong>為待開發(fā)軟件確定“類與對(duì)象”一般在需求分析階段進(jìn)行,設(shè)計(jì)階段則主要完成對(duì)象內(nèi)部的詳細(xì)設(shè)計(jì);而在傳統(tǒng)軟件工程中,將軟件設(shè)計(jì)劃分為“總體設(shè)計(jì)”和“詳細(xì)設(shè)計(jì)”,分別完成軟件的總體結(jié)構(gòu)圖的設(shè)計(jì)和各個(gè)模塊內(nèi)部算法的詳細(xì)設(shè)計(jì)。即:傳統(tǒng)軟件工程開發(fā)過程包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向過程的編碼和測試;面向?qū)ο筌浖こ?/strong>開發(fā)過程包括需求分析與對(duì)象抽取、對(duì)象詳細(xì)設(shè)計(jì)、面向?qū)ο蟮木幋a和測試。
總結(jié)
以上是生活随笔為你收集整理的读书笔记:软件工程(8) - 软件过程模型:喷泉模型、其他模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POS远程更新
- 下一篇: 电脑病毒木马怎么彻底清除