北(běi)京軟件(jiàn)開(kāi)發軟件(jiàn)開(kāi)發模型(Software Dev¶↓elopment 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•Roy≥∑>ce提出的(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ú)FORTRAN、COBOL等)編寫。瀑布模式模型也 σ≥(yě)存在著(zhe)缺乏靈活性、無法通(tōn&©g)過并發活動澄清本來(lái)不(bù)夠确切φ★π的(de)需求等缺點。常見(jiàn)的γα(de)軟件(jiàn)開(kāi)發模型還(hái)有(yǒΩ↕u)演化(huà)模型、螺旋模型、噴泉模型、智能(néng)₹γλ模型等。編輯本段典型的(de)開(kāi)發模型典型的(d¥♥™>e)開(kāi)發模型有(yǒu):
1.邊做(zuò)邊改模型(Build-and-Fix M≠↕odel);
2.瀑布模型(Waterfall Model);
3.快(kuài)速原型模型(Rapid Prototype Model£☆≈);
4.增量模型(演化(huà)模型)(Incremental↕$δ← Model);
5.螺旋模型(Spiral Model);
6.噴泉模型(fountain model);
7.智能(néng)模型(四代技(j✘≤ì)術(shù)(4GL));
8.混合模型(hybrid model);
9.RUP模型;
10.IPD模型
1. 邊做(zuò)邊改模型(Build-and-Fix MoΩλ×σdel)
許多(duō)産品都(dōu)是(s±♣↕hì)使用(yòng)"邊做(zuò¥✘¥)邊改"模型來(lái)開(kāi)發§> 的(de)。在這(zhè)種模型中,既沒有(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òng)> 後,如(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)結構随著(zhe)不(bù)斷的(de)修改€↕越來(lái)越糟,導緻無法繼續修改;
(2)忽略需求環節,給軟件(jiàn)開(kāi)發↔∞>∞帶來(lái)很(hěn)大(dà)的(♥§ ≤de)風(fēng)險;
(3)沒有(yǒu)考慮測試和(hé)程序✔₹₽的(de)可(kě)維護性,也(yě)沒有(yǒu)任何文(wén✔α&)檔,軟件(jiàn)的(de)維護十分(fēnΩ↓γ€)困難。
2. 瀑布模型(Waterfall Mod₽®el)
1970年(nián)Winston Royce提出了(le)著名的(↑♠de)"瀑布模型",直到( ☆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ín•♥g)驗證,如(rú)果驗證通(tōng)過,則該結果作≥δ(zuò)為(wèi)下(xià)一(yī)項活動的(de)輸入,繼§← ♠續進行(xíng)下(xià)一(yī)項活動,否則返回修改。
瀑布模型強調文(wén)檔的(de)作(z♠↓uò)用(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ēng)大(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)而增加了(l±≥∑ e)開(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),"線β™♣∏性"是(shì)人(rén)們較容易掌握并能(néng)熟練應用(y∞σòng)的(de)思想方法。當人(rén)們碰到(d≥♦ào)一(yī)個(gè)複雜(zá)的(de)"非 線性"≠→←;問(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 Proto₩↓type Model)
快(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)的(d∑εe)開(kāi)發風(fēng)險,具有(&÷↔<yǒu)顯著的(de)效果。快(kuài)速原型的(∞σde)關鍵在于盡可(kě)能(néng)快(kuài)速地(dì)建造出軟≠ '件(jiàn)原型,一(yī)旦确定了(le)客戶的(de)真正需求,所₽↑ε≈建造的(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)互作(zuò)用(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ì)适應變化(h€₩uà),客戶可(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é)快(kuài÷)速原型模型,但(dàn)也(yě)很(hěn)容易退化(huà)為β"(wèi)邊做(zuò)邊改模型,從(cóng)而≤€×是(shì)軟件(jiàn)過程的(de)控制(z∏σ&hì)失去(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ēng)成功能(néng),第三個(gè)× 增量實現(xià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ēnδ♠"g)險;
(3) 實施工(gōng)程:實施軟件(jiàn)開(kāi)發和(héα♣×σ)驗證;
(4) 客戶評估:評價開(kāi)發工(gōn•✔π∑g)作(zuò),提出修正建議(yì),制(zhì)定下≠'<(xià)一(yī)步計(jì)劃。
螺旋模型由風(fēng)險驅動,強調可(kě)選方案和(hé)約'₹∑§束條件(jiàn)從(cóng)而支持軟&δ件(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)員(y≈ε₽∑uá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 mod ♥×∑el)(也(yě)稱面向對(duì)象的(deγ♣✔)生(shēng)存期模型, OO模型)

噴泉模型與傳統的(de)結構化(huà)生(shēng)存期比較,具有(yλ±ǒu)更多(duō)的(de)增量和(hé)叠代性質,生(shēng)存期的(α"∏→de)各個(gè)階段可(kě)以相(x€λ×♥ià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òng)它編寫程序;它是(sh ¥"ì)一(yī)種聲明(míng)式、交互式和↔β§✔(hé)非過程性編程語言。4GL還(hái)具有(yǒ✔™↓®u)高(gāo)效的(de)程序代碼、智能(né✘±ng)缺省假設、完備的(de)數(shù)據庫和(hé)® 應用(yòng)程序生(shēng)成器(qì)。目前市<ε↕(shì)場(chǎng)上(shàng)流行(xíng)的(de)4GL(λ÷如(rú)Foxpro等)都(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 m↑♣odel),或元模型(meta-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)模型的(dα×¥βe)優缺點。各種模型的(de)優點和(hé)≈≠₩缺點:
模型優點缺點
瀑布模型文(wén)檔驅動系統可(k¥αě)能(néng)不(bù)滿足客戶的(de)需求
快(kuài)速原型模型關注滿足客戶需求可(kě)能(nénφΩg)導緻系統設計(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 Unified 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)軟件(jφ₹εià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)品質的(dδ£e)軟件(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),RUλP劃分(fēn)了(le)四個(gè)階段:初始階δα←段、細化(huà)階段、構造階段和(hé)發布階段。每個(gè)階₩±γ段都(dōu)使用(yòng)了(le)₽ δ$叠代的(de)概念。在工(gōng)作(zuò)流軸上(shàng& ∞),RUP設計(jì)了(le)六個(gè)核心工(gōng)作(zuγ ò)流程和(hé)三個(gè)核心支撐工(gōng)作(zuò)流程,核心工↓π®"(gōng)作(zuò)流軸包括:業(yè)務αλ建模工(gōng)作(zuò)流、需求工(gōng)作(zu♥₩™ò)流、分(fēn)析設計(jì)工(gōng"&)作(zuò)流、實現(xiàn)工(gōng)作(zu✘↕₹ò)流、測試工(gōng)作(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 Develφ♣≤≤opment)流程是(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ǐn¶©★g)子(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ì)場(chǎ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)該流程。