版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、常用的軟件開(kāi)發(fā)模型軟件開(kāi)發(fā)模型(Software Development 任務(wù)的結(jié)構(gòu)框架。軟件開(kāi)發(fā)包括需求、設(shè)段。軟件開(kāi)發(fā)模型能清晰、直觀(guān)地表達(dá)軟計(jì)、編碼和測(cè)試等階段,有時(shí)也包括維護(hù)階Model)是指軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和件開(kāi)發(fā)全過(guò)程,明確規(guī)定了要完成的主要活動(dòng)和任務(wù),用來(lái)作為軟件項(xiàng)目工作的基礎(chǔ)。對(duì)于不同的軟件系統(tǒng),可以采用不同的開(kāi)發(fā)方法、使用不同的程序設(shè)計(jì)語(yǔ)言以及各種不同技能的人員參與工作、運(yùn)用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境。1. 瀑布模型-最早出現(xiàn)的軟件開(kāi)發(fā)模型1970年溫斯頓?羅伊斯(Winston Royce )提出了著名的“瀑布模型”,直到8
2、0年代早期,它一 直是唯一被廣泛采用的軟件開(kāi)發(fā)模型。瀑布模型核心思想是按工序?qū)?wèn)題化簡(jiǎn),將功能的實(shí)現(xiàn)與設(shè)計(jì)分開(kāi),便于分工協(xié)作,即采用結(jié)構(gòu) 化的分析與設(shè)計(jì)方法將邏輯實(shí)現(xiàn)與物理實(shí)現(xiàn)分開(kāi)。將軟件生命周期劃分為制定計(jì)劃、需求分析、軟件設(shè) 計(jì)、程序編寫(xiě)、軟件測(cè)試和運(yùn)行維護(hù)等六個(gè)基本活動(dòng),并且規(guī)定了它們自上而下、相互銜接的固定次 序,如同瀑布流水,逐級(jí)下落。從本質(zhì)來(lái)講,它是一個(gè)軟件開(kāi)發(fā)架構(gòu),開(kāi)發(fā)過(guò)程是通過(guò)一系列階段順序 展開(kāi)的,從系統(tǒng)需求分析開(kāi)始直到產(chǎn)品發(fā)布和維護(hù),每個(gè)階段都會(huì)產(chǎn)生循環(huán)反饋,因此,如果有信息未 被覆蓋或者發(fā)現(xiàn)了問(wèn)題,那么最好“返回”上一個(gè)階段并進(jìn)行適當(dāng)?shù)男薷模_(kāi)發(fā)進(jìn)程從一個(gè)階段 “流動(dòng)”到
3、下一個(gè)階段,這也是瀑布開(kāi)發(fā)名稱(chēng)的由來(lái)。瀑布模型是最早出現(xiàn)的軟件開(kāi)發(fā)模型,在軟件工程中占有重要的地位,它提供了軟件開(kāi)發(fā)的基木框 架。其過(guò)程是從上一項(xiàng)活動(dòng)接收該項(xiàng)活動(dòng)的工作對(duì)象作為輸入,利用這一輸入實(shí)施該項(xiàng)活動(dòng)應(yīng)完成的內(nèi) 容給出該項(xiàng)活動(dòng)的工作成果,并作為輸出傳給下一項(xiàng)活動(dòng)。同時(shí)評(píng)審該項(xiàng)活動(dòng)的實(shí)施,若確認(rèn),則繼 續(xù)下一項(xiàng)活動(dòng);否則返回前面,甚至更前而的活動(dòng)。對(duì)于經(jīng)常變化的項(xiàng)目而言,瀑布模型毫無(wú)價(jià)值。(采 用瀑布模型的軟件過(guò)程如圖所示)用戶(hù)要求瀑布模型的優(yōu)缺點(diǎn)1、瀑布模型有以下優(yōu)點(diǎn):1)為項(xiàng)目提供了按階段劃分的檢查點(diǎn)。2)當(dāng)前一階段完成后,您只需要去關(guān)注后續(xù)階段。3 )可在迭代模型中應(yīng)用瀑布模型。增量
4、迭代應(yīng)用于瀑布模型。迭代1解決最大的問(wèn)題。每次迭代產(chǎn)生一個(gè)可運(yùn)行的版本,同時(shí)增加更多的功能。每次迭代必須經(jīng)過(guò)質(zhì)量和集成測(cè)試。2、瀑布模型有以下缺點(diǎn):1)在項(xiàng)目各個(gè)階段之間極少有反饋。2)只有在項(xiàng)目生命周期的后期才能看到結(jié)果。o、 mivHvF夕猷1宀&生|十擊 口甘口工n里稈碑來(lái)跟蹤各個(gè)項(xiàng)H階段瀑布模型的客戶(hù)需求盡管瀑布模型招致了很多批評(píng),但是它對(duì)很多類(lèi)型的項(xiàng)目而言依然是有效的,如果正確使用,可以節(jié)省大量的時(shí)間和金錢(qián)。對(duì)于您的項(xiàng)目而言,是否使用這一模型主要取決于您是否能理解客戶(hù)的需求以及在項(xiàng)目的進(jìn)程中這些需求的變化程度,對(duì)于經(jīng)常變化的項(xiàng)目而言,瀑布模型毫無(wú)價(jià)值,對(duì)于這種情況,您可以考慮其他的架
5、構(gòu)來(lái)進(jìn)行項(xiàng)目管理, 比如名為螺旋模型(spiral model )的方法。在瀑布模型中,軟件開(kāi)發(fā)的各項(xiàng)活動(dòng)嚴(yán)格按照線(xiàn)性方式進(jìn)行,當(dāng)前活動(dòng)接受上一項(xiàng)活動(dòng)的工作結(jié)果,實(shí)施完成所需的工作內(nèi)容。當(dāng)前活動(dòng)的工作結(jié)果需要進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò),則該結(jié)果作為下一項(xiàng)活動(dòng)的輸入,繼續(xù)進(jìn)行下一項(xiàng)活動(dòng),否則返回修改。仔細(xì)驗(yàn)證。但是,這種模型的線(xiàn)業(yè)界拋棄,其主要問(wèn)題在瀑布模型強(qiáng)調(diào)文檔的作用,并要求每個(gè)階段都要性過(guò)程太理想化,已不再適合現(xiàn)代的軟件開(kāi)發(fā)模式,幾乎被于:(2)由于開(kāi)發(fā)模型是線(xiàn)性的,用戶(hù)只有等到整個(gè)過(guò)程的末期才能見(jiàn)到開(kāi)發(fā)成果從而增加了開(kāi)發(fā)的風(fēng)險(xiǎn);(3)早期的錯(cuò)誤可能要等到開(kāi)發(fā)后期的 按照瀑布模型的階段劃分,軟
6、件測(cè)試可以分為測(cè)試階段才能發(fā)現(xiàn),進(jìn)而帶來(lái)嚴(yán)重的后果。單元測(cè)試,集成測(cè)試,系統(tǒng)測(cè)試。迭代模型是 RUP ( Rational Unified Process, 型。在RUP中,迭代被定義為:迭代包括產(chǎn)生產(chǎn)品 執(zhí)行的產(chǎn)品版本)的全部開(kāi)發(fā)活動(dòng)和要使用該在某 種程度上,開(kāi)發(fā)迭代是一次完整地經(jīng)過(guò)工作流程、 分析設(shè)計(jì)工作流程、實(shí)施工作流程實(shí)質(zhì)上,它類(lèi)似小型的瀑布式項(xiàng)目。2. 迭代模型早在20世紀(jì)50年代末期,軟件領(lǐng)域中就出現(xiàn)了迭代模型。最早的迭代過(guò)程可能被描述為分段模型(stagewise model )”,其背景是H. D. Benington領(lǐng)導(dǎo)的美國(guó)空 軍SAGE項(xiàng)目。統(tǒng)一軟件開(kāi)發(fā)過(guò)程,統(tǒng)一軟件過(guò)程
7、)推薦的周期模發(fā)布(穩(wěn)定、可發(fā)布必需的所有其他外圍元素。所以,所有工作流程的過(guò)程:(至 少包扌舌)需求 和測(cè)試工作流程。RUP認(rèn)為,所有的階段(需求及其它)都一個(gè)可以可以細(xì)分為迭代。每一次的迭代都會(huì)產(chǎn)生發(fā)布的產(chǎn)品,這個(gè)產(chǎn)品是最終產(chǎn)品的一個(gè)子集。迭代的思想如圖所示。需求在現(xiàn)代過(guò)程方法XP ( eXtreme Programming,極限編程)、RUP無(wú)一例外地都推薦、主張采用能顯著減少風(fēng)險(xiǎn)的迭代模型。美國(guó)國(guó)防部原木提倡瀑布過(guò)程和觀(guān)點(diǎn),在發(fā)現(xiàn)那么多采用了瀑布模型的失敗的項(xiàng)目之后,不但放棄了對(duì)它的要求,而且從1代瀑布模型做法。同994年的報(bào)告開(kāi)始,積極地鼓勵(lì)采用更加現(xiàn)代化的迭代模型來(lái)取 時(shí),中國(guó)中科
8、院也提倡選用迭代模型。對(duì)眾多的開(kāi)發(fā)模型和過(guò)程方法,及權(quán)威機(jī)構(gòu)的看法,企業(yè)應(yīng)選擇什么樣的開(kāi)發(fā)模型,應(yīng)慎重對(duì)從以下幾方面進(jìn)行考慮:1、RUP雖然內(nèi)容極其豐富,定義了選起、精化、構(gòu)建、產(chǎn)品化4個(gè)階段和業(yè)務(wù)建模、需求、分析設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、部署等9個(gè)工種,提供了一大堆的文檔模板但極易讓人誤 解是重型的過(guò)程,實(shí)施推廣有一定難度。2、再次,在質(zhì)量管理方面:以實(shí)現(xiàn)系統(tǒng)架構(gòu)、核心功能目標(biāo)的迭代產(chǎn)品生的工作成果作為質(zhì)量控 制重點(diǎn)。每次迭代進(jìn)行系統(tǒng)集成、系統(tǒng)測(cè)試,達(dá)到對(duì)軟件質(zhì)量的持續(xù)驗(yàn)證。每次系統(tǒng)測(cè)試,需要回歸測(cè)試前 一次迭代遺留發(fā)現(xiàn)的問(wèn)題。每次迭代發(fā)布的小版本組織客戶(hù)(包括內(nèi)部客戶(hù)、外部客戶(hù))進(jìn)行評(píng)價(jià),通過(guò) 演
9、示操作等方式,評(píng)價(jià)該次迭代是否達(dá)到預(yù)定的目標(biāo),并以此為依據(jù)來(lái)制定下一次迭代的目標(biāo)。3、最后,在其他方面:每次迭代成果須進(jìn)行配置管理,版本控制很重要。在整個(gè)迭代過(guò)程中風(fēng)險(xiǎn) 無(wú)處不在,建議每周作一次風(fēng)險(xiǎn)跟蹤。同時(shí)通過(guò)重點(diǎn)關(guān)注進(jìn)度、工作量、滿(mǎn)意度、缺陷等數(shù)據(jù)收集,關(guān)注每 次迭代情況??傊?,選擇一個(gè)合 適的生命周期模型,并應(yīng)用正確的方 法,對(duì)于任何軟件項(xiàng)目的成功是至關(guān)重 要。企 業(yè)在選擇開(kāi)發(fā)模型應(yīng)從項(xiàng)目時(shí)間要求、需求明確程度、風(fēng)險(xiǎn)狀況等選擇合適的生命周期模型。迭代模型的選擇使用條件所變化。熟悉。項(xiàng)目的開(kāi)發(fā)過(guò)程。建模語(yǔ)言(Un辻ied Modeling Language , UML )。1、在項(xiàng)目開(kāi)發(fā)早
10、期需求可能有2、分析設(shè)計(jì)人員對(duì)應(yīng)用領(lǐng)域很3、咼風(fēng)險(xiǎn)項(xiàng)目。4、用戶(hù)可不同程度地參與整個(gè)5、使用面向?qū)ο蟮恼Z(yǔ)言或統(tǒng)一6、使用 CASE ( Computer Aided Software Engineering ,計(jì)算機(jī)輔助軟件一匸程)工具,如 Rose(Rose是非常受歡迎的物件軟體開(kāi)發(fā)工具。)。7、具有高素質(zhì)的項(xiàng)目管理者和軟件研發(fā)團(tuán)隊(duì)。迭代模型的優(yōu)點(diǎn)與傳統(tǒng)的瀑布模型相比較,迭代過(guò)程具有以下優(yōu)點(diǎn):1 )降低了在一個(gè)增量上的開(kāi)支風(fēng)險(xiǎn)。如果開(kāi)發(fā)人員重復(fù)某個(gè)迭 代,那么損失只是這一個(gè)開(kāi)發(fā)有誤的 迭代的花費(fèi)。2)降低了產(chǎn)品無(wú)法按照既定進(jìn)度進(jìn)入市場(chǎng)的風(fēng)險(xiǎn)。通過(guò)在開(kāi)發(fā)早期就確定風(fēng)險(xiǎn)可以盡早來(lái)解決而不至于在開(kāi)
11、發(fā)后期匆匆忙忙。3 )加快了整個(gè)開(kāi)發(fā)工作的進(jìn)度。因?yàn)殚_(kāi)發(fā)人員清楚問(wèn)題的焦點(diǎn)所在,他們的工作會(huì)更有效率。4 )由于用戶(hù)的需求并不能在一開(kāi)始就作出完全的界定,它們通常是在后續(xù)階段中不斷細(xì) 化的。因此,迭代過(guò)程這種模式使適應(yīng)需求的變化會(huì)更容易些。3. 螺旋模型1988年,BarryBoehm正式發(fā)表了軟件系統(tǒng)開(kāi)發(fā)的原型模型結(jié)合起來(lái),強(qiáng)調(diào)了其他模型所忽視的風(fēng)險(xiǎn)分析,螺旋模型”,它將瀑布模型和快速特別適合于大型復(fù)雜的系統(tǒng)螺旋模型沿著螺線(xiàn)進(jìn)行若干次迭代,(1 )制定計(jì)劃:確定軟件目標(biāo)風(fēng)(2) 險(xiǎn)分析:分析評(píng)估所選實(shí)施(3) 工程:實(shí)施軟件開(kāi)發(fā)客戶(hù)評(píng)圖中的四個(gè)象限代表了以下活動(dòng):,選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)
12、方案,的限制條件;考慮如何識(shí)別和消除風(fēng)險(xiǎn)和驗(yàn)證;,提出修正建議,制定下一步計(jì)(4)估:評(píng)價(jià)開(kāi)發(fā)工作螺旋模型由風(fēng)險(xiǎn)驅(qū)動(dòng),強(qiáng)調(diào)可選方案軟件質(zhì)量作#約嫌殊件林耐友持就件站重用之中。但是,體如下:螺旋模型也有一定的限制條件,具(1 )螺旋模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析,但要求許關(guān)反應(yīng)是不容易的,因此,這種模型往往適應(yīng)多客戶(hù)接受和 相信這種分析,并做出相(2 )如果執(zhí)行風(fēng)險(xiǎn)分析將 大大影響項(xiàng)目因此,蟲(chóng)于內(nèi)部的大規(guī)模軟件開(kāi)發(fā)。模軟件項(xiàng)目。的利潤(rùn),那么進(jìn)行風(fēng)險(xiǎn)分析毫無(wú)意義,(3 )軟件開(kāi)發(fā)人員應(yīng)該擅長(zhǎng)尋找可能的更大的方-個(gè)階段首先是確定該階段的目標(biāo),完成這些目標(biāo)的風(fēng)險(xiǎn),準(zhǔn)確地分析風(fēng)險(xiǎn),否則將會(huì)帶來(lái)風(fēng)險(xiǎn)角度分析方案的開(kāi)發(fā)策
13、略,努力型來(lái)完成。如果某些風(fēng)險(xiǎn)不能排除,該方后,評(píng)價(jià)該階束條件,然螺旋模型排除各種潛在的風(fēng)險(xiǎn),有時(shí)案需要通過(guò)建造原很難讓用立即終止,否則啟動(dòng)下一個(gè)段的結(jié)果,并設(shè)計(jì)下一個(gè)階段。開(kāi)發(fā)步驟。最的缺點(diǎn):戶(hù)確信這種演化方法的結(jié)果是可以控制的。建設(shè)周期長(zhǎng)現(xiàn)軟件開(kāi)發(fā)完畢后,和當(dāng)前的技術(shù)水,而軟件技術(shù)發(fā)平有了較大的差距,無(wú)法展比較快,所以經(jīng)常出滿(mǎn)足當(dāng)前用戶(hù)需求。螺旋模型的項(xiàng)目適用:對(duì)于新近開(kāi)發(fā),需求不明確的情況下,適合用螺旋模型進(jìn)行開(kāi)發(fā),便于風(fēng)險(xiǎn)控制和需求變更!4. 變換模型變換模型是基于形式化規(guī)格說(shuō)明語(yǔ)言及程序變換的軟件開(kāi)發(fā)模型,它采用形式化的軟件開(kāi)發(fā)方法對(duì)形式化的軟件規(guī)格說(shuō)明進(jìn)行一系列自動(dòng)或半自動(dòng)的程序
14、變 換,最后映射為計(jì)算機(jī)系統(tǒng)能夠接受的程序系統(tǒng)。采用變換模型的軟件過(guò)程如圖1-5所示。圖1-5采用變換模型的軟件過(guò)程為了確認(rèn)形式化規(guī)格說(shuō)明與軟件需求的一致性,往往以形式化規(guī)格說(shuō)明為基 礎(chǔ)開(kāi)發(fā)一個(gè)軟件原型,用戶(hù)可以從人機(jī)界面、系統(tǒng)主要功能和性能等幾個(gè)方面對(duì)原 型進(jìn)行評(píng)審。必要時(shí),可以修改軟件需求、形式化規(guī)格說(shuō)明和原型,直至原型 被確 認(rèn)為止。這時(shí)軟件開(kāi)發(fā)人員即可對(duì)形式化的規(guī)格說(shuō)明進(jìn)行一系列的程序變 換,直至 生成計(jì)算機(jī)系統(tǒng)可以接受的目標(biāo)代碼?!俺绦蜃儞Q”是軟件開(kāi)發(fā)的另一種方法,其基本思想是把程序設(shè)計(jì)的過(guò)程分為 生成階段和改進(jìn)階段。首先通過(guò)對(duì)問(wèn)題的分析制定形式規(guī)范并生成一個(gè)程序,通常 是一種函數(shù)型
15、的“遞歸方程”。然后通過(guò)一系列保持正確性的源程序到源程 序的變 換,把函數(shù)型風(fēng)格轉(zhuǎn)換成過(guò)程型風(fēng)格并進(jìn)行數(shù)據(jù)結(jié)構(gòu)和算法的求精,最終得到一個(gè)有效的面向過(guò)程的程序。這種變換過(guò)程是一種嚴(yán)格的形式推導(dǎo)過(guò)程,所 以只需對(duì)變換前的程序的規(guī)范加以驗(yàn)證,變換后的程序的正確性將由變換法則的正 確性來(lái)保證。變換模型的優(yōu)點(diǎn)是解決了代碼結(jié)構(gòu)經(jīng)多次修改而變壞的問(wèn)題, 減少了許多中 間步驟(如設(shè)計(jì)、編碼和測(cè)試等)。但是變換模型仍有較大局限,以形式化開(kāi)發(fā) 方 法為基礎(chǔ)的變換模型需要嚴(yán)格的數(shù)學(xué)理論和一整套開(kāi)發(fā)環(huán)境的支持, 目前形式 化開(kāi)發(fā)方法在理論、實(shí)踐和人員培訓(xùn)方面距工程應(yīng)用尚有一段距離。5. 噴泉模型噴泉模型是一種以用戶(hù)需
16、求為動(dòng)力,以對(duì)象為驅(qū)動(dòng)的模型,主要用于描述面向 對(duì)象的軟件開(kāi)發(fā)過(guò)程。該模型認(rèn)為軟件開(kāi)發(fā)過(guò)程自下而上周期的各階段是相互重疊 和多次反復(fù)的,就像水噴上去又可以落下來(lái),類(lèi)似一個(gè)噴泉。各個(gè)開(kāi)發(fā)階段 沒(méi)有特 定的次序要求,并且可以交互進(jìn)行,可以在某個(gè)開(kāi)發(fā)階段中隨時(shí)補(bǔ)充其他任何開(kāi)發(fā) 階段中的遺漏。采用噴泉模型的軟件過(guò)程如圖 1-6所示。圖1-6采用噴泉模型的軟件過(guò)程噴泉模型主要用于面向?qū)ο蟮能浖?xiàng)目,軟件的某個(gè)部分通常被重復(fù)多次,相 關(guān)對(duì)象在每次迭代中隨之加入漸進(jìn)的軟件成分。各活動(dòng)之間無(wú)明顯邊界,例如設(shè)計(jì)和實(shí)現(xiàn)之間沒(méi)有明顯的邊界,這也稱(chēng)為“噴泉模型的無(wú)間隙性” o由于對(duì)象 概 念的引入,表達(dá)分析、設(shè)計(jì)及實(shí)
17、現(xiàn)等活動(dòng)只用對(duì)象類(lèi)和關(guān)系,從而可以較容易地實(shí) 現(xiàn)活動(dòng)的迭代和無(wú)間隙。噴泉模型不像瀑布模型那樣,需要分析活動(dòng)結(jié)束后才開(kāi)始設(shè)計(jì)活動(dòng),設(shè)計(jì)活 動(dòng) 結(jié)束后才開(kāi)始編碼活動(dòng)。該模型的各個(gè)階段沒(méi)有明顯的界限,開(kāi)發(fā)人員可以同步進(jìn) 行開(kāi)發(fā)。其優(yōu)點(diǎn)是可以提高軟件項(xiàng)目開(kāi)發(fā)效率,節(jié)省開(kāi)發(fā)時(shí)間,適應(yīng)于面向?qū)ο蟮能浖_(kāi)發(fā)過(guò)程。由于噴泉模型在各個(gè)開(kāi)發(fā)階段是重疊的,因此在開(kāi)發(fā)過(guò)程中 需要大量的開(kāi)發(fā)人員,因此不利于項(xiàng)目的管理。此外這種模型要求嚴(yán)格管理文檔, 使得審核的難度加大,尤其是面對(duì)可能隨時(shí)加入各種信息、需求與資料的情 況。6. 智能模型智能模型也稱(chēng)為“基于知識(shí)的軟件開(kāi)發(fā)模型”,它把瀑布模型和專(zhuān)家系統(tǒng)結(jié)合 在一起,利用專(zhuān)家
18、系統(tǒng)來(lái)幫助軟件開(kāi)發(fā)人員的工作。該模型應(yīng)用基于規(guī)則的系統(tǒng), 采用歸納和推理機(jī)制,使維護(hù)在系統(tǒng)規(guī)格說(shuō)明一級(jí)進(jìn)行。這種模型在實(shí)施過(guò) 程中以 軟件工程知識(shí)為基礎(chǔ)的生成規(guī)則構(gòu)成的知識(shí)系統(tǒng)與包含應(yīng)用領(lǐng)域知識(shí)規(guī)則的專(zhuān)家系 統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開(kāi)發(fā)系統(tǒng)。采用智能模型的軟件過(guò)程如圖1-7 所示。牟rH日啟仝圖1-7采用智能模型的軟件過(guò)程智能模型所要解決的問(wèn)題是特定領(lǐng)域的復(fù)雜問(wèn)題,涉及大量的專(zhuān)業(yè)知識(shí),而 開(kāi)發(fā)人員一般不是該領(lǐng)域的專(zhuān)家,他們對(duì)特定領(lǐng)域的熟悉需要一個(gè)過(guò)程,所以軟件需求在初始階段很難定義得很完整。因此,采用原型實(shí)現(xiàn)模型需要通過(guò)多次迭 代來(lái)精化軟件需求。智能模型以知識(shí)作為處理對(duì)象,這些知識(shí)既有
19、理論知識(shí),也有特定領(lǐng)域的經(jīng)驗(yàn)。在開(kāi)發(fā)過(guò)程中需要將這些知識(shí)從書(shū)本中和特定領(lǐng)域的知識(shí)庫(kù)中抽取出來(lái)(即知識(shí)獲?。?,選擇適當(dāng)?shù)姆椒ㄟM(jìn)行編碼(即知識(shí)表示)建立知識(shí)庫(kù)。將模型、軟 件工程知識(shí)與特定領(lǐng)域的知識(shí)分別存入數(shù)據(jù)庫(kù),在這個(gè)過(guò)程中需要系統(tǒng)開(kāi)發(fā)人員與 領(lǐng)域?qū)<业拿芮泻献髦悄苣P烷_(kāi)發(fā)的軟件系統(tǒng)強(qiáng)調(diào)數(shù)據(jù)的含義,并試圖使用現(xiàn)實(shí)世界的語(yǔ)言表達(dá) 數(shù) 據(jù)的含義。該模型可以勘探現(xiàn)有的數(shù)據(jù),從中發(fā)現(xiàn)新的事實(shí)方法指導(dǎo)用戶(hù)以專(zhuān)家的 水平解決復(fù)雜的問(wèn)題。它以瀑布模型為基本框架,在不同開(kāi)發(fā)階段引入了原型實(shí)現(xiàn) 方法和面向?qū)ο蠹夹g(shù)以克服瀑布模型的缺點(diǎn),適應(yīng)于特定領(lǐng)域軟件和專(zhuān)家決策系統(tǒng) 的開(kāi)發(fā)。7. 增量模型增量模型融合了瀑布模型的
20、基本成分(重復(fù)應(yīng)用)和原型實(shí)現(xiàn)的迭代特征,該 模型采用隨著日程時(shí)間的進(jìn)展而交錯(cuò)的線(xiàn)性序列,每一個(gè)線(xiàn)性序列產(chǎn)生軟件的一個(gè) 可發(fā)布的“增量” O當(dāng)使用增量模型時(shí),第1個(gè)增量往往是核心的產(chǎn)品,即第1個(gè) 增量實(shí)現(xiàn)了基本的需求,但很多補(bǔ)充的特征還沒(méi)有發(fā)布??蛻?hù)對(duì)每一個(gè)增量的使用 和評(píng)估都作為下一個(gè)增量發(fā)布的新特征和功能,這個(gè)過(guò)程在每一個(gè)增量 發(fā)布后不斷 重復(fù),直到產(chǎn)生了最終的完善產(chǎn)品。增量模型強(qiáng)調(diào)每一個(gè)增量均發(fā)布一個(gè)可操作的 產(chǎn)品。采用增量模型的軟件過(guò)程如圖1-8所示。增量模型與原型實(shí)現(xiàn)模型和其他演化方法一樣,本質(zhì)上是迭代的,但與原型實(shí) 現(xiàn)不一樣的是其強(qiáng)調(diào)每一個(gè)增量均發(fā)布一個(gè)可操作產(chǎn)品。早期的增量是最終
21、產(chǎn)品的“可拆卸”版本,但提供了為用戶(hù)服務(wù)的功能,并且為用戶(hù)提供了評(píng)估的平 臺(tái)。增量模型的特點(diǎn)是引進(jìn)了增量包的概念,無(wú)須等到所有需求都出來(lái),只要某個(gè) 需求的增量包出來(lái)即可進(jìn)行開(kāi)發(fā)。雖然某個(gè)增量包可能還需要進(jìn)一步適應(yīng)客戶(hù)的需 求并且更改,但只要這個(gè)增量包足夠小,其影響對(duì)整個(gè)項(xiàng)目來(lái)說(shuō)是可以承受的。壇董2 井忻卜莊卜冋T剽試I圖1-8采用增量模型的軟件過(guò)程采用增量模型的優(yōu)點(diǎn)是人員分配靈活,剛開(kāi)始不用投入大量人力資源。如果核 心產(chǎn)品很受歡迎,則可增加人力實(shí)現(xiàn)下一個(gè)增量。當(dāng)配備的人員不能在設(shè)定的期限 內(nèi)完成產(chǎn)品時(shí),它提供了一種先推岀核心產(chǎn)品的途徑。這樣即可先發(fā)布部分功能給 客戶(hù),對(duì)客戶(hù)起到鎮(zhèn)靜劑的作用。此
22、外,增量能夠有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn)。增量模 型的缺點(diǎn)是如果增量包之間存在相交的情況且未很好處理,則必須做全盤(pán)系統(tǒng)分析,這種模型將功能細(xì)化后分別開(kāi)發(fā)的方法較適應(yīng)于需求經(jīng)常改變的軟件開(kāi) 發(fā)過(guò)程。8. 快速原型模型(Rapid Prototype Model)快速原型模型的第一步是建造一個(gè)快速原型,實(shí)現(xiàn)客戶(hù)或未來(lái)的用戶(hù)與系統(tǒng)的交互,用戶(hù)或客戶(hù)對(duì)原型進(jìn)行評(píng)價(jià),進(jìn)一步細(xì)化待開(kāi)發(fā)軟件的需求。通過(guò)逐步調(diào)整原型客戶(hù)的真正需求是什么;第二步則在第一步型的缺點(diǎn),減少由于軟件需求不明確帶來(lái)的軟件原型,一旦確定了客戶(hù)的真正需型系統(tǒng)的內(nèi)部結(jié)構(gòu)并不重要,重要的是必須迅的需求。使其滿(mǎn)足客戶(hù)的要求,開(kāi)發(fā)人員可以確定的基礎(chǔ)上開(kāi)發(fā)
23、客戶(hù)滿(mǎn)意的軟件產(chǎn)品。顯然,快速原型方法可以克服瀑布模開(kāi)發(fā)風(fēng)險(xiǎn),具有顯著的效果??焖僭偷年P(guān)鍵在于盡可能快速地建造出 求,所建造的原型將被丟棄。因此,原 速建立原型,隨之迅速修改原型,以反映客戶(hù)9. 原型實(shí)現(xiàn)模型原型實(shí)現(xiàn)模型從需求收集開(kāi)始,開(kāi)發(fā)者和客戶(hù)在一起定義軟件的總體目標(biāo),標(biāo) 識(shí)出已知的需求,并規(guī)劃出需要進(jìn)一步定義的區(qū)域。然后是“快速設(shè)計(jì)”,即集中 于軟件中那些對(duì)用戶(hù)/客戶(hù)可見(jiàn)的部分的表示。 這將導(dǎo)致原型的創(chuàng)建,并由 用戶(hù)/客戶(hù)評(píng)估并進(jìn)一步精化待開(kāi)發(fā)軟件的需求。逐步調(diào)整原型使其滿(mǎn)足客戶(hù)的要求,而同時(shí)也使開(kāi)發(fā)者對(duì)將要做的事情有更好的理解。這個(gè)過(guò)程是迭代的,其 流程從聽(tīng)取客戶(hù)意見(jiàn)開(kāi)始,隨后是建造
24、/修改原型、客戶(hù)測(cè)試運(yùn)行原型。然后往 復(fù)循環(huán),直到客戶(hù)對(duì)原型滿(mǎn)意為止。采用原型實(shí)現(xiàn)模型的軟件過(guò)程如圖1-10所I軟存設(shè)y和實(shí)瓦I圖1-10采用原型實(shí)現(xiàn)模型的軟件過(guò)程原型實(shí)現(xiàn)模型的最大特點(diǎn)是能夠快速實(shí)現(xiàn)一個(gè)可實(shí)際運(yùn)行的系統(tǒng)初步模型,供開(kāi)發(fā)人員和用戶(hù)進(jìn)行交流和評(píng)審,以便較準(zhǔn)確地獲得用戶(hù)的需求。該模型采用 逐 步求精方法使原型逐步完善,即每次經(jīng)用戶(hù)評(píng)審后修改、運(yùn)行,不斷重復(fù)得到雙方 認(rèn)可。這個(gè)過(guò)程是迭代過(guò)程,它可以避免在瀑布模型冗長(zhǎng)的開(kāi)發(fā)過(guò)程中看不 見(jiàn)產(chǎn)品 雛形的現(xiàn)象。其優(yōu)點(diǎn)一是開(kāi)發(fā)工具先進(jìn),開(kāi)發(fā)效率高,使總的開(kāi)發(fā)費(fèi)用降低,時(shí)間 縮短;二是開(kāi)發(fā)人員與用戶(hù)交流直觀(guān),可以澄清模糊需求,調(diào)動(dòng)用戶(hù)的積極參與
25、, 能及早暴露系統(tǒng)實(shí)施后潛在的一些問(wèn)題;三是原型系統(tǒng)可作為培訓(xùn)環(huán) 境,有利于用 戶(hù)培訓(xùn)和開(kāi)發(fā)同步,開(kāi)發(fā)過(guò)程也是學(xué)習(xí)過(guò)程。原型實(shí)現(xiàn)模型的缺點(diǎn)是產(chǎn)品原型在一定程度上限制了開(kāi)發(fā)人員的創(chuàng)新, 沒(méi)有 考慮軟件的整體質(zhì)量和長(zhǎng)期的可維護(hù)性。由于達(dá)不到質(zhì)量要求產(chǎn)品可能被拋棄,而 采用新的模型重新設(shè)計(jì),因此原型實(shí)現(xiàn)模型不適合嵌入式、實(shí)時(shí)控制及科學(xué)數(shù) 值計(jì) 算等大型軟件系統(tǒng)的開(kāi)發(fā)。增量模型和原型模型都是從概要需求出發(fā)開(kāi)發(fā)的,但二者有明顯不同。增量 模 型是從一些不完整的系統(tǒng)需求出發(fā)開(kāi)始開(kāi)發(fā),在開(kāi)發(fā)過(guò)程中逐漸發(fā)現(xiàn)新的需求。然 后進(jìn)一步充實(shí)完善該系統(tǒng),使之成為實(shí)際可用的系統(tǒng);原型開(kāi)發(fā)的目的是為了發(fā)現(xiàn) 并建立一個(gè)完整并
26、經(jīng)過(guò)證實(shí)的需求規(guī)格說(shuō)明,然后以此作為正式系統(tǒng)的開(kāi)發(fā)基礎(chǔ)。 因此原型開(kāi)發(fā)階段的輸出是需求規(guī)格說(shuō)明,這是為了降低整個(gè)軟件生 成期的費(fèi)用而 拉大需求分析階段的一種方法,大部分原型是“用完就扔”的類(lèi)型。10. 演化模型(incremental model)主要針對(duì)事先不能完整定義需求的軟件開(kāi)發(fā)。用戶(hù)可以給出待開(kāi)發(fā)系統(tǒng)的核心需求,并且當(dāng)看到核心需求實(shí)現(xiàn)后,能夠有效地提岀反饋,以支持系統(tǒng)的最終設(shè)計(jì)和實(shí)現(xiàn)。軟件開(kāi)發(fā)人員根據(jù)用戶(hù)的需求,首先開(kāi)發(fā)核心系統(tǒng)。當(dāng)該核心系統(tǒng)投入運(yùn)行后用戶(hù)試用之,完成他們的工作,并提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求O軟件開(kāi)發(fā)人員根據(jù)用戶(hù)的反饋,實(shí)施開(kāi)發(fā)的迭代過(guò)程。第一迭代過(guò)程均由需求.設(shè)
27、計(jì).編碼、測(cè)試.集成等階組成,為整個(gè)系統(tǒng)增加一個(gè)可式上定義的.可管理的子集。在開(kāi)發(fā)模采取分批循環(huán)開(kāi)發(fā)的辦法,每循環(huán)開(kāi)發(fā)一部分的功能,它們成為這個(gè)產(chǎn)品的原型的新增功能。于是,設(shè)計(jì)就不斷地演化出新的系統(tǒng)。實(shí)際上,這個(gè)模型可看作是重復(fù)執(zhí)行的多個(gè)瀑布模型” O演化模型”要求開(kāi)發(fā)人員有能力把 項(xiàng)目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開(kāi)發(fā)。這種分組并不是絕對(duì)隨意性的,而是要根據(jù)功能的重要性及對(duì)總體設(shè)計(jì)的基礎(chǔ)結(jié)構(gòu)的影響而作岀判斷。有經(jīng)驗(yàn)指岀,每個(gè)開(kāi)發(fā)循環(huán)以六周到八周為適當(dāng)?shù)拈L(zhǎng)度。11. 混合模型(hybrid model )過(guò)程開(kāi)發(fā)模型又叫混合模型(hybrid model ),或元模型(meta-mode
28、l ),把幾種不同模型組合成一種 混合模型,它允許一個(gè)項(xiàng)目能沿著最有效的路徑發(fā)展,這就是過(guò)程開(kāi)發(fā)模型(或混合模型)。實(shí)際上,一些軟件開(kāi)發(fā)單位都是使用幾種不同的開(kāi)發(fā)方法組成他們自己的混合模型。12. WINWIN 模型WINWIb模型融合了螺旋模型的基本成分和原型實(shí)現(xiàn)的迭代特征,強(qiáng)調(diào)風(fēng)險(xiǎn)分 析 和標(biāo)識(shí)。通過(guò)早期談判使客戶(hù)和開(kāi)發(fā)者之間達(dá)成一致協(xié)議,它將變成進(jìn)展到軟件和 系統(tǒng)定義的關(guān)鍵標(biāo)準(zhǔn)。WINWIF模型引入了 3個(gè)里程碑,稱(chēng)為“拋錨點(diǎn)” o它可幫助建立一個(gè)生命周期的完全性,并提供在軟件項(xiàng)目向前進(jìn)展前的決策里程碑。采用WINWIb模型的軟件過(guò)程如圖1-9所示。圖1-9采用WIWIX模型的軟件過(guò)程本
29、質(zhì)上,拋錨點(diǎn)表示了項(xiàng)目遍歷螺旋時(shí)的3個(gè)不同的進(jìn)展視圖,第1個(gè)拋錨點(diǎn)稱(chēng) 為“生存周期目標(biāo)”,定義了一組針對(duì)每個(gè)主要軟件工程活動(dòng)的目標(biāo);第2個(gè)拋錨點(diǎn) 稱(chēng)為“生存周期體系結(jié)構(gòu)”,建立了當(dāng)系統(tǒng)和軟件體系結(jié)構(gòu)被定義時(shí)必須滿(mǎn)足的目 標(biāo);第3個(gè)拋錨點(diǎn)稱(chēng)為“初始操作能力”,它表示一組目標(biāo),這些目標(biāo)和將要安裝/ 銷(xiāo)售軟件的安裝前場(chǎng)地準(zhǔn)備和將使用該軟件的各方所需的幫助相關(guān)聯(lián)。WINWIN模型強(qiáng)調(diào)風(fēng)險(xiǎn)分析和標(biāo)識(shí),使得開(kāi)發(fā)人員和用戶(hù)對(duì)每個(gè)演化層出現(xiàn)的風(fēng)險(xiǎn) 有所了解,繼而做出應(yīng)有的反應(yīng)。采用WINWI!模型的優(yōu)點(diǎn)是客戶(hù)和開(kāi)發(fā)者達(dá)到一種 平衡,實(shí)現(xiàn)雙贏,但是需要額外的談判技巧。螺旋模型提出了強(qiáng)調(diào)客戶(hù)交流的一個(gè)框架活動(dòng),該
30、活動(dòng)的目標(biāo)是從客戶(hù)處誘導(dǎo) 出項(xiàng)目需求。在理想情況下,開(kāi)發(fā)人員簡(jiǎn)單地詢(xún)問(wèn)客戶(hù)需要什么,而客戶(hù)提供足夠 的細(xì)節(jié)進(jìn)行下去,不幸的是這種情形很少發(fā)生。而在WINWIb模型中,客戶(hù)和開(kāi)發(fā)人員進(jìn)入一個(gè)談判過(guò)程,客戶(hù)被要求在成本和應(yīng)市之間的約束下平衡功能、性 能和其他產(chǎn)品或系統(tǒng)特征。最好的談判追求“雙贏”結(jié)果,即通過(guò)談判客戶(hù)獲得大部 分系統(tǒng)的功能,而開(kāi)發(fā)人員則獲得現(xiàn)實(shí)和可達(dá)到的預(yù)算和時(shí)限。13. RAD模型RAD (快速應(yīng)用開(kāi)發(fā))模型是一個(gè)增量型的軟件開(kāi)發(fā)過(guò)程模型,強(qiáng)調(diào)極短的開(kāi)發(fā) 周期。該模型是瀑布模型的一個(gè)“高速”變種,通過(guò)大量使用可復(fù)用構(gòu)件,采用基于 構(gòu)件的建造方法贏得了快速開(kāi)發(fā)。如果正確地理解了需求,
31、而且約束了項(xiàng)目的范圍, 利用這種模型可以很快創(chuàng)建出功能完善的信息系統(tǒng)。其流程從業(yè)務(wù)建模開(kāi)始,隨后是數(shù)據(jù)建模、過(guò)程建模、應(yīng)用生成、測(cè)試及反復(fù)。采用RAD模型的軟件過(guò)程如圖1-11所示。小甌“業(yè)務(wù)建僅LL過(guò)程 建湊業(yè)備建慎I3主戎測(cè)試及 良復(fù)測(cè)童及BLA60-90 天圖1-11采用RAD模型的軟件過(guò)程RAD莫型各個(gè)活動(dòng)期所要完成的任務(wù)如下。(1)業(yè)務(wù)建模確定驅(qū)動(dòng)業(yè)務(wù)過(guò)程運(yùn)作的信息、要生成的信息、如何生成、信息流的去向及 其處 理等,可以輔之以數(shù)據(jù)流圖。(2)數(shù)據(jù)建模為支持業(yè)務(wù)過(guò)程的數(shù)據(jù)流查找數(shù)據(jù)對(duì)象集合、定義數(shù)據(jù)對(duì)象屬性,并與其他數(shù)據(jù) 對(duì)象的關(guān)系構(gòu)成數(shù)據(jù)模型,可輔之以E-R圖。(3)過(guò)程建模使數(shù)據(jù)
32、對(duì)象在信息流中完成各業(yè)務(wù)功能,創(chuàng)建過(guò)程以描述數(shù)據(jù)對(duì)象的增加、修 改、刪除、查找,即細(xì)化數(shù)據(jù)流圖中的處理框。(4)應(yīng)用程序生成禾I用第4代語(yǔ)言(4GL寫(xiě)出處理程序,重用已有構(gòu)件或創(chuàng)建新的可重用構(gòu)件,利用環(huán)境提供的工具自動(dòng)生成以構(gòu)造出整個(gè)的應(yīng)用系統(tǒng)。(5)測(cè)試與交付由于大量重用,一般只做總體測(cè)試,但新創(chuàng)建的構(gòu)件還是要測(cè)試的。與瀑布模型相比,RAD莫型不采用傳統(tǒng)的第3代程序設(shè)計(jì)語(yǔ)言來(lái)創(chuàng)建軟件,而是采 用基于構(gòu)件的開(kāi)發(fā)方法復(fù)用已有的程序結(jié)構(gòu)(如果可能)或使用可復(fù)用構(gòu)件和或創(chuàng)建 可復(fù)用的構(gòu)件(如果需要)。在所有情況下,均使用自動(dòng)化工具輔助軟件創(chuàng)造。很顯然,加在一個(gè)RAD莫型項(xiàng)目上的時(shí)間約束需要“一個(gè)可伸
33、縮的范 圍” o如果一個(gè)業(yè)務(wù)能夠被模塊化使得其中每一個(gè)主要功能均可以在不到3個(gè)月的時(shí)間內(nèi)完成,則其是RAD勺一個(gè)候選者。每一個(gè)主要功能可由一個(gè)單獨(dú)的RAD組來(lái) 實(shí)現(xiàn),最后集成起來(lái)形成一個(gè)整體。RAD莫型通過(guò)大量使用可復(fù)用構(gòu)件加快了開(kāi)發(fā)速度,對(duì)信息系統(tǒng)的開(kāi)發(fā)特別有效。但是與所有其他軟件過(guò)程模型一樣,RAD方法有如下缺陷。 并非所有應(yīng)用都適合RAD RAD莫型對(duì)模塊化要求比較高,如果有哪一個(gè)功能不能被模塊化,那么建造RAD所需要的構(gòu)件就會(huì)有問(wèn)題。如果高性能是一個(gè)指標(biāo) 且該指標(biāo)必須通過(guò)調(diào)整接口使其適應(yīng)系統(tǒng)構(gòu)件才能贏得,RAD方法也有可能不能奏效。 開(kāi)發(fā)人員和客戶(hù)必須在很短的時(shí)間內(nèi)完成一系列的需求分析
34、,任何一方配合不當(dāng)都會(huì)導(dǎo)致RAD項(xiàng)目失敗。 RAD只能用于信息系統(tǒng)開(kāi)發(fā),不適合技術(shù)風(fēng)險(xiǎn)很高的情況。當(dāng)一個(gè)新應(yīng)用要采 用很多新技術(shù)或當(dāng)新軟件要求與已有的計(jì)算機(jī)程序的高互操作性時(shí),這種情況就會(huì) 發(fā)生。14. 并發(fā)開(kāi)發(fā)模型并發(fā)開(kāi)發(fā)模型也稱(chēng)為“并發(fā)工程”,它關(guān)注于多個(gè)任務(wù)的并發(fā)執(zhí)行,表示為 一系列的主要技術(shù)活動(dòng)、任務(wù)及其相關(guān)狀態(tài)。并發(fā)過(guò)程模型由客戶(hù)要求、管理決策, 評(píng)審結(jié)果驅(qū)動(dòng),不是將軟件工程活動(dòng)限定為一個(gè)順序的事件序列,而是定義一個(gè)活動(dòng)網(wǎng)絡(luò),網(wǎng)絡(luò)上的每一個(gè)活動(dòng)均可與其他活動(dòng)同時(shí)發(fā)生。這種模型可以提供 一個(gè)項(xiàng)目的當(dāng)前狀態(tài)的準(zhǔn)確視圖。采用并發(fā)開(kāi)發(fā)模型的軟件過(guò)程中一個(gè)活動(dòng)的示意如 圖1-12所示。并發(fā)過(guò)程
35、模型定義了一系列事件,對(duì)于每一個(gè)軟件工程活動(dòng),它們觸發(fā)一個(gè) 狀態(tài)a表耶一個(gè)軟件工理屯動(dòng)的找窸到另一個(gè)狀態(tài)的變遷。當(dāng)它應(yīng)用于客戶(hù)機(jī)/服務(wù)器系統(tǒng)時(shí),并發(fā)過(guò)程模型在 兩維上定 義活動(dòng),即一個(gè)系統(tǒng)維和一個(gè)構(gòu)件維。其并發(fā)性通過(guò)如下兩種方式得到。圖1-12并發(fā)過(guò)程模型的一個(gè)活動(dòng) 系統(tǒng)維和構(gòu)件維活動(dòng)同時(shí)發(fā)生,并可以使用面向狀態(tài)的方法進(jìn)行建模。 一個(gè)典型的客戶(hù)/服務(wù)器應(yīng)用通過(guò)多個(gè)構(gòu)件實(shí)現(xiàn),其中每個(gè)構(gòu)件均可以并發(fā)設(shè) 計(jì)并實(shí)現(xiàn)。并發(fā)開(kāi)發(fā)模型試圖根據(jù)傳統(tǒng)生命周期的主要階段來(lái)追蹤項(xiàng)目的狀態(tài),項(xiàng)目管理者根本不可能了解項(xiàng)目的狀態(tài),因而需要使用比較簡(jiǎn)單的模型來(lái)追蹤非常復(fù)雜的項(xiàng) 目活動(dòng)。并發(fā)開(kāi)發(fā)模型使用狀態(tài)圖(表示一個(gè)加工狀
36、態(tài))來(lái)表示與一個(gè)特定事件(如 在開(kāi)發(fā)后期需求的一個(gè)修改)相關(guān)的活動(dòng)之間存在的并發(fā)關(guān)系,但它不能捕獲到貫穿 于一個(gè)項(xiàng)目中所有軟件開(kāi)發(fā)和管理活動(dòng)的大量并發(fā)。大多數(shù)軟件開(kāi)發(fā)過(guò)程模型均為時(shí)間驅(qū)動(dòng),越到模型的后端,就越到開(kāi)發(fā)過(guò)程 的后 一階段,而一個(gè)并發(fā)過(guò)程模型是由用戶(hù)要求、管理決策和結(jié)果復(fù)審驅(qū)動(dòng)的。并發(fā)開(kāi)發(fā) 模型在軟件開(kāi)發(fā)全過(guò)程活動(dòng)的并行化,打破了傳統(tǒng)軟件開(kāi)發(fā)的各階段分割封閉的觀(guān) 念。強(qiáng)調(diào)開(kāi)發(fā)人員團(tuán)隊(duì)協(xié)作,注重分析和設(shè)計(jì)等前段開(kāi)發(fā)工作,從而避免了不必要 的返工。其優(yōu)點(diǎn)是可用于所有類(lèi)型的軟件開(kāi)發(fā),而對(duì)于客戶(hù)/服務(wù)器結(jié)構(gòu)更加有效, 可以隨時(shí)查閱到開(kāi)發(fā)的狀態(tài)。15. 基于構(gòu)件的開(kāi)發(fā)模型基于構(gòu)件的開(kāi)發(fā)模型利用
37、模塊化方法將整個(gè)系統(tǒng)模塊化,并在一定構(gòu)件模型的支持下復(fù)用構(gòu)件庫(kù)中的一個(gè)或多個(gè)軟件構(gòu)件,通過(guò)組合手段高效率、高質(zhì)量地構(gòu)造應(yīng)用軟件系統(tǒng)的過(guò)程?;跇?gòu)件的開(kāi)發(fā)模型融合了螺旋模型的許多特征,本質(zhì)上 是演化形的,開(kāi)發(fā)過(guò)程是迭代的。基于構(gòu)件的開(kāi)發(fā)模型由軟件的需求分析和定義、體 系結(jié)構(gòu)設(shè)計(jì)、構(gòu)件庫(kù)建立、應(yīng)用軟件構(gòu)建,以及測(cè)試和發(fā)布5個(gè)階段組成,采用這種 開(kāi)發(fā)模型的軟件過(guò)程如圖1-13所示。圖1-13采用基于構(gòu)件的開(kāi)發(fā)模型的軟件過(guò)程構(gòu)件作為重要的軟件技術(shù)和工具得到極大的發(fā)展,這些新技術(shù)和工具有Microsoft的DCOMSun的EJB,以及0M啲CORB等。基于構(gòu)件的開(kāi)發(fā)活動(dòng)從標(biāo)識(shí) 候選構(gòu)件 開(kāi)始,通過(guò)搜查已
38、有構(gòu)件庫(kù),確認(rèn)所需要的構(gòu)件是否已經(jīng)存在。如果已經(jīng)存在,則 從構(gòu)件庫(kù)中提取出來(lái)復(fù)用;否則采用面向?qū)ο蠓椒ㄩ_(kāi)發(fā)它。之后利用 提取出來(lái)的構(gòu)件 通過(guò)語(yǔ)法和語(yǔ)義檢查后將這些構(gòu)件通過(guò)膠合代碼組裝到一起實(shí)現(xiàn)系統(tǒng),這個(gè)過(guò)程是迭 代的。基于構(gòu)件的開(kāi)發(fā)方法使得軟件開(kāi)發(fā)不再一切從頭開(kāi)發(fā),開(kāi)發(fā)的過(guò)程就是構(gòu)件 組裝的過(guò)程,維護(hù)的過(guò)程就是構(gòu)件升級(jí)、替換和擴(kuò)充的過(guò)程。其優(yōu)點(diǎn)是構(gòu)件組裝模型 導(dǎo)致了軟件的復(fù)用,提高了軟件開(kāi)發(fā)的效率。構(gòu)件可由一方定義其規(guī)格說(shuō)明,被另一 方實(shí)現(xiàn)。然后供給第三方使用,構(gòu)件組裝模型允許多個(gè)項(xiàng)目同時(shí)開(kāi)發(fā),降低了費(fèi) 用,提高了可維護(hù)性,可實(shí)現(xiàn)分步提交軟件產(chǎn)品。由于采用自定義的組裝結(jié)構(gòu)標(biāo)準(zhǔn),缺乏通用的組裝結(jié)
39、構(gòu)標(biāo)準(zhǔn),因而引入了較 大的 風(fēng)險(xiǎn)??芍赜眯院蛙浖咝圆灰讌f(xié)調(diào),需要精干的有經(jīng)驗(yàn)的分析和開(kāi)發(fā)人員,一般 開(kāi)發(fā)人員插不上手??蛻?hù)的滿(mǎn)意度低,并且由于過(guò)分依賴(lài)于構(gòu)件,所以構(gòu)件庫(kù)的質(zhì)量 影響著產(chǎn)品質(zhì)量。16. 基于體系結(jié)構(gòu)的開(kāi)發(fā)模型基于體系結(jié)構(gòu)的開(kāi)發(fā)模型是以軟件體系結(jié)構(gòu)為核心,以基于構(gòu)件的開(kāi)發(fā)方法為 基礎(chǔ)。然后采用迭代增量方式進(jìn)行分析和設(shè)計(jì),將功能設(shè)計(jì)空間映射到結(jié)構(gòu)設(shè)計(jì)空 間,再由結(jié)構(gòu)設(shè)計(jì)空間映射到系統(tǒng)設(shè)計(jì)空間的過(guò)程。該開(kāi)發(fā)模型把軟件生命周期分 為軟件定義、需求分析和定義、體系結(jié)構(gòu)設(shè)計(jì)、軟件系統(tǒng)設(shè)計(jì)和軟件實(shí)現(xiàn)5個(gè)階段, 采用這種開(kāi)發(fā)模型的軟件過(guò)程如圖1-14所示。圖1-14采用基于體系結(jié)構(gòu)的開(kāi)發(fā)模型
40、的軟件過(guò)程在基于體系結(jié)構(gòu)的開(kāi)發(fā)過(guò)程中,首先是基于體系結(jié)構(gòu)的需求獲取和分析,將軟件 體系結(jié)構(gòu)的概念引入到需求空間,從而為分析階段到設(shè)計(jì)階段的過(guò)渡提供更 好的支 持。在需求分析結(jié)果的基礎(chǔ)上,進(jìn)行體系結(jié)構(gòu)的設(shè)計(jì)??紤]系統(tǒng)的總體結(jié)構(gòu)及系統(tǒng)的 構(gòu)成元素,根據(jù)構(gòu)成元素的語(yǔ)法和語(yǔ)義在已確定的構(gòu)件庫(kù)中尋找匹配的構(gòu)件。當(dāng)不存 在符合要求的構(gòu)件時(shí),則根據(jù)具體情況組裝合成新構(gòu)件或者購(gòu)買(mǎi)新構(gòu)件或者根據(jù)需要 開(kāi)發(fā)新構(gòu)件而得到滿(mǎn)足需求的構(gòu)件。在經(jīng)過(guò)語(yǔ)法和語(yǔ)義檢查后,將這些構(gòu)件通過(guò)膠合 代碼組裝到一起實(shí)現(xiàn)整個(gè)軟件系統(tǒng)。在實(shí)踐中,整個(gè)開(kāi)發(fā)過(guò)程呈現(xiàn)多次迭代性。在傳統(tǒng)的軟件生命周期中,軟件需求分析和定義完成后緊接的是軟件系統(tǒng)的設(shè)計(jì) 和實(shí)現(xiàn)。在這種傳統(tǒng)的開(kāi)發(fā)方法中,如果軟件需求不斷變化,最終軟件產(chǎn)品可能與初 始原型相差很大。而基于體系結(jié)構(gòu)的開(kāi)發(fā)模型有嚴(yán)格的理論基礎(chǔ)和工程 原則,是以體 系結(jié)構(gòu)為核心。體系結(jié)構(gòu)為軟件需求與軟件設(shè)計(jì)之間架起了一座橋梁,解決了軟件系統(tǒng)從需求到實(shí)現(xiàn)的平緩過(guò)渡,提高了軟件分析設(shè)計(jì)的質(zhì)量和效 率?;隗w系結(jié)構(gòu)的開(kāi)發(fā)模型的優(yōu)點(diǎn)是通過(guò)對(duì)體系結(jié)構(gòu)的設(shè)計(jì),使得軟件系統(tǒng)結(jié)構(gòu) 框架更清晰,有利于系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)和維護(hù),并且軟件復(fù)用從代碼級(jí)的復(fù)用提升到 構(gòu)件和體系結(jié)構(gòu)級(jí)的復(fù)用?;隗w系結(jié)構(gòu)的開(kāi)發(fā)模型和基于構(gòu)件的開(kāi)發(fā)模型都是在體系結(jié)構(gòu)的基礎(chǔ)上進(jìn)行構(gòu) 件的組
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)內(nèi)擔(dān)保貸款合同示范
- 企業(yè)承包經(jīng)營(yíng)合同的環(huán)保要求
- 2024公眾號(hào)搭建合同
- 2024融資服務(wù)合同范文
- 集體土地上房屋拆遷補(bǔ)償標(biāo)準(zhǔn)
- 2024終止合同協(xié)議書(shū)
- 2024水馬購(gòu)買(mǎi)協(xié)議合同
- 建筑項(xiàng)目施工管理協(xié)議書(shū)
- 2024年企業(yè)知識(shí)產(chǎn)權(quán)歸屬協(xié)議書(shū)
- 資金管理與賬戶(hù)監(jiān)督合同
- 2021年大唐集團(tuán)招聘筆試試題及答案
- DBJ53/T-39-2020 云南省民用建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)
- 2022版義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)解讀課件PPT模板
- 實(shí)驗(yàn)五 PCR擴(kuò)增課件
- 馬拉松運(yùn)動(dòng)醫(yī)療支援培訓(xùn)課件
- 中醫(yī)藥宣傳手冊(cè)
- 不良資產(chǎn)處置盡職指引
- 人教部編版七年級(jí)歷史上冊(cè)第19課 北魏政治和北方民族大交融課件(23張PPT)
- 機(jī)械設(shè)備定期檢查維修保養(yǎng)使用臺(tái)賬
- 麗聲北極星分級(jí)繪本第四級(jí)上 Stop!Everyone Stop!教學(xué)設(shè)計(jì)
- 小學(xué)科學(xué)教育科學(xué)三年級(jí)上冊(cè)天氣《認(rèn)識(shí)氣溫計(jì)》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論