北(běi)京軟件(jiàn)開(kāi)發軟件(jiàn)開(kāi)發模型(Software Development Model©↔)是(shì)指軟件(jiàn)開(kāi)§&發全部過程、活動和(hé)任務的(de)結構框架。軟件(jiàn)開β'♣♠(kāi)發包括需求、設計(jì)、編碼和(héδσ)測試等階段,有(yǒu)時(shí)也(yě)包→β>括維護階段。軟件(jiàn)開(kāi)發模型能(néng)清晰、直觀地(✔dì)表達軟件(jiàn)開(kāi)發全過程,明(míng)确規定了(le)要(yào)完成✔§α的(de)主要(yào)活動和(hé)任務, ♠用(yòng)來(lái)作(zuò)為(wèi)軟件(jiàn)項目工γ(gōng)作(zuò)的(de)基礎。對✘β(duì)于不(bù)同的(de)軟件(jiàn)系統,可(kě)以采用(yòng)不(bù)同的∑←γφ(de)開(kāi)發方法、使用(yòng)不(bù)同的( ©de)程序設計(jì)語言以及各種不(bù)同技→π£(jì)能(néng)的(de)人(rén)員(yu←↓<án)參與工(gōng)作(zuò)、運用(yòng)不(bù)同的(de)管理(lǐ)方法和(hα λé)手段等,以及允許采用(yòng)不(bù)同的(de)軟件(jiàn)工(g✘∑ōng)具和(hé)不(bù)同的(de)軟件(jiàn)€→ α工(gōng)程環境。
軟件(jiàn)工(gōng)程的(de)主要≤•₽✘(yào)環節包括人(rén)員(yuáλ>n)管理(lǐ)、項目管理(lǐ)、需求分(fēn)析、系統設計♠π★(jì)、程序設計(jì)、測試、維護等,π★✘≤如(rú)圖所示。軟件(jiàn)開(kā✔₩→♥i)發模型是(shì)對(duì)軟件(jiàn)過程的✔₹®'(de)建模,即用(yòng)一(yī)©÷→定的(de)流程将各個(gè)環節連接起來(l∑±δái),并可(kě)用(yòng)規範的(de)方式操作♣ε(zuò)全過程,好(hǎo)比工(gōng)廠(chǎng)↔×的(de)生(shēng)産線。

--------------------------------------Ω&---------------------♣¶>σ--------------------------------------------- ←€-
最早出現(xiàn)的(de)軟件(jiàn)開(k'āi)發模型最早出現(xiàn)的(de)軟件(jiàn)開(×Ω∏βkāi)發模型是(shì)1970年(nián)W•Royce☆$提出的(de)瀑布模型。 該模型給出了(le)固定的(de)順序,将生(shēng✘ ¶)存期活動從(cóng)上(shàng)一(yī)個(gè)階段向下(xià←α≠←)一(yī)個(gè)階段逐級過渡,如(rú)同流水©♦©(shuǐ)下(xià)瀉,最終得(de)到(dào)所開(¥δ≥"kāi)發的(de)軟件(jiàn)産品,投入使用(yòng)。但(dàn)×←∑計(jì)算(suàn)拓廣到(dào)統計(jì)分(fēn)§₩♣析、商業(yè)事(shì)務等領域時(shí¶±₽),大(dà)多(duō)數(shù)程序采用(yòng)高(gāo)級語言(如(rú)FORTβ✔↔RAN、COBOL等)編寫。瀑布模式模型也(yě)存在著(zhe)缺乏靈活性α•¥、無法通(tōng)過并發活動澄清本來(lái)不(bù)夠≠₹✘Ω确切的(de) 需求等缺點。常見(jiàn)的(d↑δ÷λe)軟件(jiàn)開(kāi)發模型還(hái)有(yǒu)演化(hu₩§à)模型、螺旋模型、噴泉模型、智能(néng)模型等。編輯本段典型的(d↑©e)開(kāi)發模型典型的(de)開(kāi)發模型有(yǒu):
1.邊做(zuò)邊改模型(Build-and-Fix Model);
2.瀑布模型(Waterfall Model);
3.快(kuài)速原型模型(Rapid Prototype Model); →✔
4.增量模型(演化(huà)模型)(Incremental Model);
5.螺旋模型(Spiral Model);
6.噴泉模型(fountain mo ∑del);
7.智能(néng)模型(四代技(jì)術(shù)(4GL));
8.混合模型(hybrid model);
9.RUP模型;
10.IPD模型
1. 邊做(zuò)邊改模型(Build-and-Fix Model)
遺憾的(de)是(shì),許多(duō)産品都(dōu)是(sh♣¶Ω↕ì)使用(yòng)"邊做(zuò)邊改"模型來"≤"(lái)開(kāi)發的(de)。在這(z±πhè)種模型中,既沒有(yǒu)規格說(shuō)明(míng),也(yě)沒有(yǒu)經過設計 ☆(jì),軟件(jiàn)随著(zhe)客戶的(deγ≤$σ)需要(yào)一(yī)次又(yòu)一(yī)次地(dì)不(bù)斷被修改。
在這(zhè)個(gè)模型中,開(kāi)發∑≥§©人(rén)員(yuán)拿(ná)到(dào)項目立即根據需求γ ₹♠編寫程序,調試通(tōng)過後生(shēng)成軟件(jià₹≈n)的(de)第一(yī)個(gè)版本。在提供給用(yòng)戶使用(yònγεg)後,如(rú)果程序出現(xiàn)錯(cuò)誤λ✔,或者用(yòng)戶提出新的(de)要(yào)求,開(kāi)發人(rén)員(yuánσ$♠)重新修改代碼,直到(dào)用(yòng)戶滿意為∞Ω↓(wèi)止。

這(zhè)是(shì)一(yī)種類似作(zuò)坊的(de)開(kāi)發方式,對(du♠₽<ì)編寫幾百行(xíng)的(de)小(xiǎo)程序來(láiδ )說(shuō)還(hái)不(bù)錯(cuò),但(∏σ ©dàn)這(zhè)種方法對(duì)任何規模的(de)開(>∑&kāi)發來(lái)說(shuō)都(↓≤©dōu)是(shì)不(bù)能(néng)令人(rén)滿意的(de),其主要(yào)問(w←φ'èn)題在于:
(1) 缺少(shǎo)規劃和(hé)設計(jì)環節,軟件(jiàn)的(de)結構随著(z∞™he)不(bù)斷的(de)修改越來(lái)越糟,導δφ緻無法繼續修改;
(2)忽略需求環節,給軟件(jiàn)∏β 開(kāi)發帶來(lái)很(hěn)大(dà)的(de)風(fēn™♦πg)險;
(3)沒有(yǒu)考慮測試和(hé)程序的(de)可(✔kě)維護性,也(yě)沒有(yǒu)任何文(wén)檔,軟件(♠÷jiàn)的(de)維護十分(fēn)困難。
2. 瀑布模型(Waterfall Mode •→l)
1970年(nián)Winston Royce提出了(le)著名的(de)&© βquot;瀑布模型",直到(dào)80年(nián)代早期,它一(yī)直是(sh"'λ>ì)唯一(yī)被廣泛采用(yòng)的(de)軟件(jiàn)開(kāi₩)發模型。

瀑布模型中,如(rú)圖所示,将軟件(jiàn)生(shēng)命周期劃分✔ (fēn)為(wèi)制(zhì)定計(jì)劃、需求分(fēn)析、軟件(jiàn)設σ₹計(jì)、程序編寫、軟件(jiàn)測試和(hé)運行(xíng)維護 £∞→等六個(gè)基本活動,并且規定了(le)它們自(zì)上(shàng)而下(xià)、¶ δ≤相(xiàng)互銜接的(de)固定次序,如(rú)同瀑布流 π水(shuǐ),逐級下(xià)落。
在瀑布模型中,軟件(jiàn)開(kāi §Ω)發的(de)各項活動嚴格按照(zhào)線性方式進行(xíng),當前≥&π₽活動接受上(shàng)一(yī)項活動的(de)工(gōng)作(zuò)結果,>≠實施完成所需的(de)工(gōng)作(zuò)內(nèi)©Ωα容。當前活動的(de)工(gōng)作(zuò)結果需ε 要(yào)進行(xíng)驗證,如(rú)δ果驗證通(tōng)過,則該結果作(zuò)為(w©× èi)下(xià)一(yī)項活動的(de)•₩&輸入,繼續進行(xíng)下(xià)一(yī)項活動,否則返回修改。
瀑布模型強調文(wén)檔的(de)作(zuò)用(yòng→&),并要(yào)求每個(gè)階段都(dōu)要(yào)仔細驗證。但♣β>(dàn)是(shì),這(zhè)種模•€型的(de)線性過程太理(lǐ)想化(huà↔∑★),已不(bù)再适合現(xiàn)代的(de)軟件(jiàn)開(kāi)發模式,幾乎被業÷ φ(yè)界抛棄,其主要(yào)問(wèn)題在于:"
(1) 各個(gè)階段的(de)劃分(fēn)完全固定,階段之間(jiān)産生(shēn•♦g)大(dà)量的(de)文(wén)檔,極 大(dà)地(dì)增加了(le)工(gōng)作(zuò)量;
(2) 由于開(kāi)發模型是(shì)線性的(de),用(yòng)戶隻有(yπ§₹βǒu)等到(dào)整個(gè)過程的(de)末期才能(±εnéng)見(jiàn)到(dào)開(kāi)發成果,從(₽★≈cóng)而增加了(le)開(kāi)發的(de)風( εfēng)險;
(3) 早期的(de)錯(cuò)誤可(kě)能(néng)要(yào)等到(dà ✘o)開(kāi)發後期的(de)測試階段才能(néng)發現(xiàn),進而帶來(lφ'ái)嚴重的(de)後果。
我們應該認識到(dào),"線性&•Ωπ•quot;是(shì)人(rén)們最容易掌©÷♥握并能(néng)熟練應用(yòng)的(de)思想方法。當人(rén)們碰到(d∞✘≤ào)一(yī)個(gè)複雜(zá)的(d≈φ&>e)"非 線性"問(wèn)題時(shí),總♥≠是(shì)千方百計(jì)地(dì)将其分(fēn)解或轉化(huà)為(←↕wèi)一(yī)系列簡單的(de)線性問(wèn)題,然後逐個(¥→gè)解決。一(yī)個(gè)軟件(jiàn)系統的(de)整體(tǐ∑©')可(kě)能(néng)是(shì)複雜(zá)的(de),®επ而單個(gè)子(zǐ)程序總是(shì)↕簡單的(de),可(kě)以用(yòng)線 性的(de)方式來(lái)實♠☆現(xiàn),否則幹活就(jiù)太累了(le)。線性是(shì)一(y§εī)種簡潔,簡潔就(jiù)是(shì)美(měi)。當我們領會(huì)了(leφα≠₹)線性的(de)精神,就(jiù)不(bù)要(yào)再呆闆地(d≥↕₽☆ì)套用(yòng)線性模型的(de)外(wài)表,而應該♣&φ用(yòng)活它。例如(rú)增量模 型實✘質就(jiù)是(shì)分(fēn)段的(de)線性模型,螺旋模型則是(sh♠π$↑ì)接連的(de)彎曲了(le)的(de)線性模型,在其它≤×®≠模型中也(yě)能(néng)夠找到(dào)線性模型的(de)影(yǐng)子(zǐγ₹★)。
3. 快(kuài)速原型模型(Rapid Prototype Mode£←δl)
快(kuài)速原型模型的(de)第一(yī)步是(shì)建造一(yī)個(gè)快(ku♠'ài)速原型,實現(xiàn)客戶或未來(lái)的(de)用(yò ≠ng)戶與系統的(de)交互,用(yòng)✘✘¶γ戶或客戶對(duì)原型進行(xíng)評價,進& 一(yī)步細化(huà)待開(kāi)發軟件(jiàn)∑λ 的(de)需求。通(tōng)過逐步調整原型使其滿足客戶的(de)要(yào)求,開•&(kāi)發人(rén)員(yuán)可(kě)以确定客→€>戶的(de)真正需求是(shì)什(shén)麽;第二步則在第&σ±♥一(yī)步的(de)基礎上(shàng)開π(kāi)發客戶滿意的(de)軟件(jiàn)産品。
顯然,快(kuài)速原型方法可(kě)以克服瀑布模型的(γ≠×de)缺點,減少(shǎo)由于軟件(jiàn)需求不(bù)明(míng)确帶來(lái)的(§de)開(kāi)發風(fēng)險,具有(yǒu)顯著的¶© (de)效果。快(kuài)速原型的(de)關鍵在于盡可(kě)能(néng♦♥)快(kuài)速地(dì)建造出軟件(jiàn) ∑Ωλ原型,一(yī)旦确定了(le)客戶的(d ∑e)真正需求,所建造的(de)原型将被丢棄。因此,原型 系統的(de)內(nèi)部結構并不(bù)重要(yào),重要(yào)的(de)是(shì)必£♥±須迅速建立原型,随之迅速修改原型,以反映客戶的(de)需求。
4. 增量模型(Incremental Model)
又(yòu)稱演化(huà)模型。與建造大(dà)廈相(÷>xiàng)同,軟件(jiàn)也(yě)是(shì)一(yī)步一(yī)步建造起≥★來(lái)的(de)。在增量模型中,軟件(jiàn)被作(zuò)為(wè↔©®i)一(yī)系列的(de)增量構件(jiànπ↑♣)來(lái)設計(jì)、實現(xiàn)、集成和(hé)測試δ↔,每一(yī)個(gè)構件(jiàn)是(shì)由多(duō)種相(xiàng)互作(z®©uò)用(yòng)的(de)模塊所形成的(de)σ↓Ω÷提供特定功能(néng)的(de)代碼片段構成。≥δ≤®

增量模型在各個(gè)階段并不(bù)交付一(yī)個(gè)可(∏εkě)運行(xíng)的(de)完整産品,而是(shì)交付滿足客戶需求的♠•(de)一(yī)個(gè)子(zǐ)集的(de)可(kě)運行(xíng)産品。整個(g∑¥≠®è)産品被分(fēn)解成若幹個(gè)構件(jiàn),開(kāi)÷∏♥發人(rén)員(yuán)逐個(gè)構件(jiàn)地(dì)交付産品,¥¶λ¶這(zhè)樣做(zuò)的(de)好(hǎo)處是(shì)軟件(jiàn)開(kāi™∏)發可(kě)以較好(hǎo)地(dì)适應變化(huà),客戶可(kě)以不(bù)斷地(≤•dì)看(kàn)到(dào)所開(kāi)發的(de)軟件(jiàn),從(cóng)而降低¶★(dī)開(kāi)發風(fēng)險。但(dàn)是(•★€'shì),增量模型也(yě)存在以下(xià)缺陷:
(1) 由于各個(gè)構件(jiàn)是(shì)逐¥→漸并入已有(yǒu)的(de)軟件(jiàn∞≠)體(tǐ)系結構中的(de),所以加入構件(jiàn)必須不(bù)破壞已構造好(hǎo©π)的(de)系統部分(fēn),這(zhè)需要(yào)軟件(jiàn)具≠π☆備開(kāi)放(fàng)式的(de)體(tǐ)系結構。
(2) 在開(kāi)發過程中,需求的(de)變化($ ÷±huà)是(shì)不(bù)可(kě)避免的(de)。增量模型的(de&÷)靈活性可(kě)以使其适應這(zhè)'≥種變化(huà)的(de)能(néng)力大(dà)大(dà)優于瀑布模型和(hé)快(k≈♦uài)速原型模型,但(dàn)也(yě)很(hěn)容易退化(huàβ>$δ)為(wèi)邊做(zuò)邊改模型,從(cóng)而是(shì)軟件(jiàn)過程的(de)控$≤≠制(zhì)失去(qù)整體(tǐ)性。
在使用(yòng)增量模型時(shí),第一(yī)個(gè)增量往往是(shì)實現(xià♥n)基本需求的(de)核心産品。核心産品交付用(yòng)戶使用(y¶¶òng)後,經過評價形成下(xià)一(yī)個(gè)增量的(de)開(kāi)發計(✔≥<jì)劃,它包括對(duì)核心産品的(de)修改和(hé)一(yī)些(xiē)新功能(&néng)的(de)發布。這(zhè)個(gè)過程在每個(gè)增量發布後不(bù $☆)斷重複,直到(dào)産生(shēng)最終的(de)完善産品。
例如(rú),使用(yòng)增量模型開λ&±(kāi)發字處理(lǐ)軟件(jiàn)。可(kě)以考慮,第一(y λī)個(gè)增量發布基本的(de)文(wén)件(jiàn)管理(lǐ<♥)、編輯和(hé)文(wén)檔生(shēng)成功能(néng),第二個(gè)增量發¥£™布更加完善的(de)編輯和(hé)文(wén)檔生(shēn♦Ωg)成功能(néng),第三個(gè)增量實現(x÷↑iàn)拼寫和(hé)文(wén)法檢查功能(néng),第四個(gè)增量完成高(gāo)級的(∞¶de)頁面布局功能(néng)。
5.螺旋模型(Spiral Model )
1988年(nián),Barry Boehm正式發表了(le)軟件(jiànγ↓)系統開(kāi)發的(de)"螺旋模型",它将瀑布模型和(hé'&)快(kuài)速原型模型結合起來(lái),強調了(le)其他(tā)模型所忽視(shì)的¶ α₩(de)風(fēng)險分(fēn)析,特别适合于大(dà)型複雜(zá)的(de)系統。

如(rú)圖所示,螺旋模型沿著(zhe)螺線進行(xíng)若幹次叠代,圖中的(de)四個(gδ ₹εè)象限代表了(le)以下(xià)活動:
(1) 制(zhì)定計(jì)劃:确定軟件(jiàn)目标,選定實施方案,弄清項♦α↑目開(kāi)發的(de)限制(zhì)條件(jiàn♣↕);
(2) 風(fēng)險分(fēn)析:分($₹↕fēn)析評估所選方案,考慮如(rú)何識别和(hé)消除風(fēε•©↓ng)險;
(3) 實施工(gōng)程:實施軟件(jiàn)開(kāi)發和(hé)驗證;
(4) 客戶評估:評價開(kāi)發工(gōng)作(zu• ò),提出修正建議(yì),制(zhì)定下≥♥(xià)一(yī)步計(jì)劃。
螺旋模型由風(fēng)險驅動,強調可(kě)選方案和(hé)約束條件(jiàn)從(cón♠™δg)而支持軟件(jiàn)的(de)重用(yòng),有(yǒu)助于将δΩΩ軟件(jiàn)質量作(zuò)為(wèi)特殊目标融入産品開(kā∞ε↔i)發之中。但(dàn)是(shì),螺旋模型也(yě)有(yǒu)一(yī)定<的(de)限制(zhì)條件(jiàn),具體(tǐ)如(rú)下↔✘(xià):
(1) 螺旋模型強調風(fēng)險分(fēn)析,但(dàn)要(yào)求許∑÷<多(duō)客戶接受和(hé)相(xiàng)信這(zhè)種分(fēn)析,并做(zuò)出相(§→®xiàng)關反應是(shì)不(bù)容易的(de),因此,這(zhè)種模型±∑↕ 往往适應于內(nèi)部的(de)大(dà)規模軟件(ji λ♦àn)開(kāi)發。
(2) 如(rú)果執行(xíng)風(fēng)險分(fēn)析将大(dà)大(d≈≥εà)影(yǐng)響項目的(de)利潤,≤φ那(nà)麽進行(xíng)風(fēng)險分(fēn)析毫無意義,因此,螺旋£§♦模型隻适合于大(dà)規模軟件(jiàn)項目。
(3) 軟件(jiàn)開(kāi)發人(rén)員(yuán)應該擅長(chá €♥×ng)尋找可(kě)能(néng)的(de) β←φ風(fēng)險,準确地(dì)分(fēn)析風±©€∏(fēng)險,否則将會(huì)帶來(lái)更大(dà)的(de)風(fēng)險♣≠。
一(yī)個(gè)階段首先是(shì)确定該階段的(de)目标,完成這©₽(zhè)些(xiē)目标的(de)選擇方案及其 ∞ $約束條件(jiàn),然後從(cóng)風(fēng)險角度分(fēn)析方案的∞↔ (de)開(kāi)發策略,努力排除各種潛在的(de)風(fē→ng)險,有(yǒu)時(shí)需要(y↔₹"ào)通(tōng)過建造原型來(lái)完成。如(rú)果某些(xiē)風(fēng)險ε₹不(bù)能(néng)排除,該方案立即終止,否則啓動下(xià)一(yī)個(gè)開 ↓(kāi)發步驟。最後,評價該階段的(de)結果,并設計(jì)下(xià)✘¶↓β一(yī)個(gè)階段。
6.噴泉模型(fountain model)(也(yě)稱面向對(↑σduì)象的(de)生(shēng)存期模型∞↓, OO模型)

噴泉模型與傳統的(de)結構化(huà)生(shēng)存期比較,具有(yǒu)更多(d•¶ uō)的(de)增量和(hé)叠代性質,生(shēng)存期的(de)各個(gè)階段可(kě) ∑→≤以相(xiàng)互重疊和(hé)多(duō)次反複,而且在項目₩的(de)整個(gè)生(shēng)存期中還(hái)可(kě☆♥$ )以嵌入子(zǐ)生(shēng)存期。就(jiù)像水(shuǐ)噴上(sh✔≥£>àng)去(qù)又(yòu)可(kě)以落下(xià)來(lái),可λ♦↓₹(kě)以落在中間(jiān),也(yě)可(kě)以落在最底部。
7.智能(néng)模型(四代技(jì)術(shù)(4GL))
智能(néng)模型擁有(yǒu)一(yī)組工(gōng)具(如(rú)數≈±(shù)據查詢、報(bào)表生(shēng)成、數(shù)據處理(lǐ)、屏♣©幕定義、代碼生(shēng)成、高(gāo)©✘ ∞層圖形功能(néng)及電(diàn)子(zǐ)表格等),每個(gè)工(gō→↕©ng)具都(dōu)能(néng)使開(kāi)發±$人(rén)員(yuán)在高(gāo)層次上(shàng)定義軟件(jiàn☆¶ λ)的(de)某些(xiē)特性,并把開(kāi)發人(rén)員(yuán)定" ÷∏義的(de)這(zhè)些(xiē)軟件(jiàn)自(zì≠ )動地(dì)生(shēng)成為(wèi)源代∑π碼。
這(zhè)種方法需要(yào)四代語言(4GL)的(de)π&$支持。4GL不(bù)同于三代語言,其主要(yào)特征是(sh♣πì)用(yòng)戶界面極端友(yǒu)好(hǎo),即使沒有(yǒu)受過訓練的εΩ(de)非專業(yè)程序員(yuán),也(yě)能(néng)用(yòn<α$×g)它編寫程序;它是(shì)一(yī)種αε聲明(míng)式、交互式和(hé)非過程性編程語言。4GL還(hái)具有(yǒu)高(gāo§™)效的(de)程序代碼、智能(néng)缺省假設、完備的(de) ☆↓→¥數(shù)據庫和(hé)應用(yòng)程序生(s™§♠hēng)成器(qì)。目前市(shì)場(chǎng)上(★δshàng)流行(xíng)的(de)4GL(如(rú)Fox$←¥✔pro等)都(dōu)不(bù)同程度地(dì)具有(yǒu)上(∑ shàng)述特征。但(dàn)4GL目前主要(yào)限于₩ε<>事(shì)務信息系統的(de)中、小( ≥xiǎo)型應用(yòng)程序的(de) 開(kāi)發。"↓₽↓

8.混合模型(hybrid model)
過程開(kāi)發模型又(yòu)叫混合模型(hybrid model),或元模型(me♣ ™ta-model),把幾種不(bù)同模型組合成一(yī)↓α種混合模型,它允許一(yī)個(gè)項目能(néng)沿著(zhe)最有(yǒu)效&φ的(de)路(lù)徑發展,這(zhè)就(jiù)是(sh₽πì)過程開(kāi)發模型(或混合模型)。實際上(shàng),一(yī)®☆些(xiē)軟件(jiàn)開(kāi)發單₹₽位都(dōu)是(shì)使用(yòng)幾種不(bù)同的(de)開↔•α↑(kāi)發方法組成他(tā)們自(zì)己的(de)混合模型。各種模型的(de)比π較每個(gè)軟件(jiàn)開(kāi)發組織®÷♦₩應該選擇适合于該組織的(de)軟件(jiàn)開(kāi)♦≥≈發模型,并且應該随著(zhe)當前正在開(kāi)發的(de)特定産品₹&φ特性而變化(huà),以減小(xiǎo)所選模型的(de)缺點,充分(fēn)εσΩ利用(yòng)其優點,下(xià)表列出了(leΩπ€♥)幾種常見(jiàn)模型的(de)優缺點。各種模型的(de)優點和(→ hé)缺點:
模型優點缺點
瀑布模型文(wén)檔驅動系統可(kě)能←α(néng)不(bù)滿足客戶的(de)需求
快(kuài)速原型模型關注滿足客戶需求可←←<Ω(kě)能(néng)導緻系統設計(jì)差、效率低(dī),難于維護
增量模型開(kāi)發早期反饋及時(shí),易于維護需要(yào)開(kāi)放(fàng)¶式體(tǐ)系結構,可(kě)能(néng)會(huì)設計(jì)差、效率低(dī)
螺旋模型風(fēng)險驅動風(fēng)險分(fēn)析人(rén)員(yuán)需要(yà≠♦o)有(yǒu)經驗且經過充分(fēn)訓練
9.RUP模型
RUP(Rational Unifie↓↓d Process)模型是(shì)Rational公司提出的(₩₹☆de)一(yī)套開(kāi)發過程模型,它是(shì)一(yī)個(gè)面向對(duì)象軟件₩§(jiàn)工(gōng)程的(de)通(tōng)用(yòng)業(" yè)務流程。它描述了(le)一(yī)系列相(♠σ↕xiàng)關的(de)軟件(jiàn)工(gōng)程流程↑',它們具有(yǒu)相(xiàng)同的(de↕®∑)結構,即相(xiàng)同的(de)流程構架。RUP 為(wèi×π)在開(kāi)發組織中分(fēn)配任務和(hé)∑♦♦職責提供了(le)一(yī)種規範方法,其目标是(shì)确保在可(kěδβ)預計(jì)的(de)時(shí)間(jiān)安排和(hé)預算±ε•φ(suàn)內(nèi)開(kāi)發出滿足最終φ₹用(yòng)戶需求的(de)高(gāo)品質的(de)軟件(jiàn)。RUP具¶γ 有(yǒu)兩個(gè)軸,一(yī)個(gè)軸是(shì)時(shí)間(jiān)φ•φ軸,這(zhè)是(shì)動态的(de)。另一(yī)個(gè)軸是(shì)&δ工(gōng)作(zuò)流軸,這(zhè)是(shì)靜(jì≠€ng)态的(de)。在時(shí)間(jiān)軸上(shàng),RUP劃分(fēn)了(leγ↕∏≈)四個(gè)階段:初始階段、細化(huà)階段↔λ≤、構造階段和(hé)發布階段。每個(gè)階段都(dō§↓'u)使用(yòng)了(le)叠代的(de)概念。在工(gōng)作(zu"★₹ò)流軸上(shàng),RUP設計(jì)了(lαφ☆e)六個(gè)核心工(gōng)作(zu↕↔£ò)流程和(hé)三個(gè)核心支撐工(gōnσ£♦g)作(zuò)流程,核心工(gōng)作(zuò)流軸包括:業(yè)務建模Ω↔工(gōng)作(zuò)流、需求工(gōng)作(zuò)流、分(fēn™↑$★)析設計(jì)工(gōng)作(zuò)流、實現(xiàn)工₹♠ (gōng)作(zuò)流、測試工(gōn∏♣εg)作(zuò)流和(hé)發布工(gō↔×βαng)作(zuò)流。核心支撐工(gōn£★←g)作(zuò)流包括:環境工(gōng)作(zuò)流、項目管理(lǐ)工(gōng±≥≈)作(zuò)流和(hé)配置與變更管理(lǐ)工(gōng)∑>作(zuò)流。RUP 彙集現(xiàn)代軟件(jiàn)開(kāi)發中多(duō)方面的♠≈≈(de)最佳經驗,并為(wèi)适應各種項≠$¶ε目及組織的(de)需要(yào)提供了(le)靈活的(de)形式。作(zuò)為(wèi)α← 一(yī)個(gè)商業(yè)模型,它具有(yǒ✔©u)非常詳細的(de)過程指導和(hé)模闆。♣♦但(dàn)是(shì)同樣由于該模型比較複雜(zá),因此在模型的(de)掌握上(shγ≤↓≥àng)需要(yào)花(huā)費(fèi)比較大(dà)的(de)成本₹β。尤其對(duì)項目管理(lǐ)者提出了(le)比較高(gā★•♣o)的(de)要(yào)求。
它具有(yǒu)如(rú)下(xià)特點:
(1)增量叠代,每次叠代都(dōu)遵循瀑布模型能(néng)夠在前 ™期控制(zhì)好(hǎo)和(hé)解決風(fēng)險;
(2)模型的(de)複雜(zá)化(huà),σ¥$¶需要(yào)項目管理(lǐ)者具有(yǒu)較強的(de)管理(☆α±lǐ)能(néng)力。
10.IPD模型
IPD(Integrated Product Development)流程是( σshì)由IBM提出來(lái)的(de)一(yī)套集成産品開(kāi)發流程,非常≥≠✔适合于複雜(zá)的(de)大(dà)型開(kāi)發項目& ,尤其涉及到(dào)軟硬件(jiàn)結合的'δΩ(de)項目。
IPD從(cóng)整個(gè)産品角度出發,流程綜合考慮了(le)從α$ ±(cóng)系統工(gōng)程、研發(硬件(jiàn)、軟件(jiàn)、結構工(gλ↔ ♥ōng)業(yè)設計(jì)、測試、資料開(kāi)發等)、制(zh€δì)造、财務到(dào)市(shì)場(chǎng)、采購(gòu)、技(jì)術↑← (shù)支援等所有(yǒu)流程。是(shì)一(yī)Ω'$個(gè)端到(dào)端的(de)流程。
在IPD流程中總共劃分(fēn)了(le)六個(g€↑↔è)階段(概念階段、計(jì)劃階段、開(k¶∞≤āi)發階段、驗證階段、發布階段和(hé)生(shēng)命周期階段)™γ∑,四個(gè)個(gè)決策評審點(概念階段γ≈決策評審點、計(jì)劃階段決策評審點、₹✔γ®可(kě)獲得(de)性決策評審點和(hé)生(shē§φ ng)命周期終止決策評審點)以及六個(gè)技(jì)術(shù)評審點。
IPD流程是(shì)一(yī)個(gè)階段性模型,具有(yǒu∑÷>)瀑布模型的(de)影(yǐng)子(zǐ)。該模型通(tōng)過使用♠'λ (yòng)全面而又(yòu)複雜(zá)的(de)≈✔↕ 流程來(lái)把一(yī)個(gè)龐大(dà)而又(yòu)複雜(zá)的(de)系統進行(xεπíng)分(fēn)解并降低(dī)風(fēng)險。一(yī)定程度上(shàng),該模♣×✘型是(shì)通(tōng)過流程成本來(lái)提高(gāo)整個(gβ★₩↕è)産品的(de)質量并獲得(de)市(shì)場(c←•♦hǎng)的(de)占有(yǒu)。由于該流程沒有(yǒu)定義如(rú)何 ₽∞進行(xíng)流程回退的(de)機(jī)制(zhì),因此對(duì)于需求經常變動的(de§↔)項目該流程就(jiù)顯得(de)不(bù)大(dà)适合了(le)。并且對(duì)于一(₹¶&yī)些(xiē)小(xiǎo)的(de)項目,也≠®↑•(yě)不(bù)是(shì)非常适合使用(yòng)該流程。