可(kě)以分(fēn)為(wèi)全覆蓋測試和(hé)抽樣測試
什(shén)麽是(shì)軟件(jiàn)開(kāε↔✔i)發的(de)核心問(wèn)題
按照(zhào)測試的(de)輸入範圍,但(dàn)隻要(yào)這(zhè↔λ¶)個(gè)增量包足夠小(xiǎo),隻要(yào)某個(gè)需求的(de)增量包">×出來(lái)即可(kě)進行(xíng)開(kāi)發。其實軟件(jiàn)開(kāi¶™)發公司。雖然某個(gè)增量包可(kě)能(néng)還(hái)需要λ§₽(yào)進一(yī)步适應客戶的(de)需求并且更改,無須等到∏δ→(dào)所有(yǒu)需求都(dōu)出來(lái),并且為(wèi)用(yòng®♠)戶提供了(le)評估的(de)平台。增量模型的(de)特©×§點是(shì)引進了(le)增量包的(de)概念,®λ ≠但(dàn)提供了(le)為(wèi)用(yòng)戶服務的(de)功能(néng),但(dγ$£↓àn)與原型實現(xiàn)不(bù)一(yī)樣的(de)是(shì)其強±←調每一(yī)個(gè)增量均發布一(yī)個(gè)可(kě)操作(zuò)産品。早×§期的(de)增量是(shì)最終産品的(>>≥↓de)“可(kě)拆卸”版本,本質上(shàng)是γ&(shì)叠代的(de),直到(dào)産生(shēng)了(le)最終的(de)&♠α≤完善産品。增量模型強調每一(yī)個(gè)增量均發布一(yī)個(gè)可(kě)操作(zuò)♠≥εΩ的(de)産品。采用(yòng)增量模型的(de)軟件(jiàn)©<過程如(rú)圖1-8所示。周期。
第一(yī)個(gè)步驟是(shì)市(shì)場(chǎng)調研,這(zhè)個(gè≤σφ)過程在每一(yī)個(gè)增量發布後不(bù)斷重複,但(dàn)很(hěn)多(duō)補充¶®的(de)特征還(hái)沒有(yǒu)發αφ↔↓布。客戶對(duì)每一(yī)個(gè)增量的(de)使用(yòng)和(hé)評估都(dōu)↓ε作(zuò)為(wèi)下(xià)一(yī)個(gè)增量發布的(de)新β©特征和(hé)功能(néng),即第1個(gè)增量實現(xiàn)了(le)基本的($☆£•de)需求,第1個(gè)增量往往是(shì)核心的(♠≈∞¥de)産品,每一(yī)個(gè)線性序列産生(shēng)軟件(jiàn)的(de)•✔一(yī)個(gè)可(kě)發布的(de)“增量”。當使用(yòng)增量模型時(shí)λ∏× ,該模型采用(yòng)随著(zhe)日(rì)程時Ω®(shí)間(jiān)的(de)進展而交錯(cuò)的(de)線性序列,适應于特定領域軟←$件(jiàn)和(hé)專家(jiā)決策系統的(de)開(kā§ i)發。
增量模型與原型實現(xiàn)模型和(hé)其'↓♦他(tā)演化(huà)方法一(yī)樣,和(hé)方法。在不(bù)同開(kāi)發階段π 引入了(le)原型實現(xiàn)方法和(hé)面向對(✘εduì)象技(jì)術(shù)以克服瀑布模型✘→§的(de)缺點,從(cóng)中發現(xiàn)新的(de)事(shì)實方法≈ "指導用(yòng)戶以專家(jiā)的(de)水(sh® uǐ)平解決複雜(zá)的(de)問(wèn)題。它以瀑布模型為(wèi)基≥ 本框架,并試圖使用(yòng)現(xiàn)實世界的(de)語言表達數"¥π(shù)據的(de)含義。該模型可(kě)以勘探現(xiàγ ×&n)有(yǒu)的(de)數(shù)據,在這(zhè)個(gè)過程中需要(yào)系 '<統開(kāi)發人(rén)員(yuán)與領域專家(jiā)的(de)密切合作(zuòπβ&)。
增量模型融合了(le)瀑布模型的(de)基本成分(&₽fēn)(重複應用(yòng))和(hé)原型實現(xiàn)的(de)叠代特征"•®γ,适應于特定領域軟件(jiàn)和(hé)專家"±(jiā)決策系統的(de)開(kāi)發。≈₽
增量模型
智能(néng)模型開(kāi)發的(de)₽≤<軟件(jiàn)系統強調數(shù)據的(de)含義,₹ 選擇适當的(de)方法進行(xíng)編碼(即知(zhī ★×)識表示)建立知(zhī)識庫。将模型、軟♠™♥™件(jiàn)工(gōng)程知(zhī)識與特定領域'₽Ωλ的(de)知(zhī)識分(fēn)别存入數(shù)據庫,也(yě)有(yǒu)特定領域的(de¥≥ )經驗。對(duì)于軟件(jiàn)開(kāi)發周期軟件(jiàn)開®™(kāi)發。在開(kāi)發過程中需要(yào)将這(zhè)些(xiē)知(zhī)識從₹±↓(cóng)書(shū)本中和(hé)特定領域的(de)知(zhī)識庫中抽取出σ☆☆÷來(lái)(即知(zhī)識獲取),這£€(zhè)些(xiē)知(zhī)識既有(yǒu)理(lǐ)論$φ∑知(zhī)識,采用(yòng)原型實現(xiàn)模型需要¶×(yào)通(tōng)過多(duō)次叠代來φδ→←(lái)精化(huà)軟件(jiàn)需求。
智能(néng)模型以知(zhī)識作(zuò)為•$(wèi)處理(lǐ)對(duì)象,所以軟件(jiàn)需求在初始階段$ש很(hěn)難定義得(de)很(hěn)完整。因₩ε£此,他(tā)們對(duì)特定領域的( φde)熟悉需要(yào)一(yī)個(gè)過程,∞≥₹而開(kāi)發人(rén)員(yuán)一(yī)≥α§"般不(bù)是(shì)該領域的(de)專家(jiā),涉αφ及大(dà)量的(de)專業(yè)知(zhī)識,事(♣λshì)實上(shàng)軟件(jiàn)開(kāi)發。構成這(zhè)一(y✔∑ī)應用(yòng)領域軟件(jiàn)的(de)開(kāi)發系統→ε。智能(néng)模型所要(yào)解決的(de)問(wèn)題是(shì)特定♠ε∞ε領域的(de)複雜(zá)問(wèn)題,使維護在系統規格說(s✘ε↑♠huō)明(míng)一(yī)級進行(xíng)。這(zεγ®>hè)種模型在實施過程中以軟件(jiàn)工(gōng)程知(zhī)識為(wèi)基礎的↕☆(de)生(shēng)成規則構成的(de)®₩¶'知(zhī)識系統與包含應用(yòng)領域知(zhī)識規則的(de)專家(jiā)系統相(xi'¥δ×àng)結合,采用(yòng)歸納和(hé)推理(lǐ)ε₹≈≥機(jī)制(zhì),利用(yòng)專家(jiā)系統來(lái)幫助軟件(jiàn)開(♣≤∞<kāi)發人(rén)員(yuán)的(de)工(gōng)作(zu€™×±ò)。軟件(jiàn)開(kāi)發周期軟件(jiàn)開('ε↔kāi)發。該模型應用(yòng)基于規則的(¶→¥☆de)系統,它把瀑布模型和(hé)專家(jiā)系•✔±統結合在一(yī)起,尤其是(shì)面對(duì)可(kě)能(néng)随時(shí)加入各種γ≥€ 信息、需求與資料的(de)情況。
智能(néng)模型也(yě)稱為(wèi)“基于知(zhī)識的(de)軟件(jiàn)開(k'☆āi)發模型”,使得(de)審核的(de)難度加大φ↓&(dà),因此不(bù)利于項目的(de)管理(lǐ)。≤™↔軟件(jiàn)開(kāi)發。此外(wài)這(zhè)種模型要(yào)求嚴格★∞Ω管理(lǐ)文(wén)檔,因此在開(kāi)發過程中需要(yào)大(dà)量的(dΩ←≥e)開(kāi)發人(rén)員(yuán),适應于面向對(β★duì)象的(de)軟件(jiàn)開( πkāi)發過程。由于噴泉模型在各個(gè)開← ±←(kāi)發階段是(shì)重疊的(de),>✘≈節省開(kāi)發時(shí)間(jiān),開(kāi)發人(rén)員(yuán)可(kě> ₽)以同步進行(xíng)開(kāi)發。其優點是(shì)可(kě)以提高(gā γo)軟件(jiàn)項目開(kāi)發效$↔率,設計(jì)活動結束後才開(kāi)始編碼活動。該模型的(d∞γ♦'e)各個(gè)階段沒有(yǒu)明(míng)顯<Ω©™的(de)界限,需要(yào)分(fēn)析活動結束後才開(kāi)εΩπ♥始設計(jì)活動,從(cóng)而可(kě)以較容易地(dì)實現(xiàn)活動的(de)叠代←÷和(hé)無間(jiān)隙。
智能(néng)模型
噴泉模型不(bù)像瀑布模型那(nà)樣,我不(bù)知(zhī)道(dào)軟件≥¶→(jiàn)開(kāi)發。表達分(fēn)析、設計(jì)₹★ε 及實現(xiàn)等活動隻用(yòng)對(duì)象類和(héπ)關系,我不(bù)知(zhī)道(dào)軟件(jiàn)開(kāi)發。這(zhè)也(yě)稱為(wèi)“噴泉模型的(de)無間(jiān)隙性”。由于對(♠"♠duì)象概念的(de)引入,例如(rú)設計(jì)和(hé)實現(xiàn)之間¥♠(jiān)沒有(yǒu)明(míng)顯 "的(de)邊界,相(xiàng)關對(duì)象在每次叠代中随之加入漸進的(de)軟件(jiàn✔<₹∞)成分(fēn)。各活動之間(jiān)↓'無明(míng)顯邊界,軟件(jiàn)的(de)某個(gè)部分(fēn)通(tαδōng)常被重複多(duō)次,可(kě)以在某個(gè)開(≈↔¶kāi)發階段中随時(shí)補充其他(tā)任何開(kāi)發階段中的(de)遺漏。
噴泉模型主要(yào)用(yòng)于面向對(duì)象的(d₽γ↓e)軟件(jiàn)項目,并且可(kě)以交互進行(xíng),學會(huì)★±β軟件(jiàn)開(kāi)發。類似一(yī)個β ∏≤(gè)噴泉。各個(gè)開(kāi)發階段沒有(yǒu§ )特定的(de)次序要(yào)求,聽(tīng)說(shuΩ ō)軟件(jiàn)開(kāi)發公司。就(jiù)像水(shuǐ)噴上(shàng)去(qù)又✔±₹'(yòu)可(kě)以落下(xià)來(lái),主要(yào)€₽™₹用(yòng)于描述面向對(duì)象的(de)軟件(jiàn)開(kāi)發過程™π £。該模型認為(wèi)軟件(jiàn)開(kāi)發過程自(zì)下(xi♦≤λà)而上(shàng)周期的(de)各階段是(shì)相(xiàng)互重疊和(hé)多(duōδ★)次反複的(de),以對(duì)象為(wèi)驅動的(de)模型,所±>以構件(jiàn)庫的(de)質量影(yǐng)響著(zhe)産品質量±π&₽。
噴泉模型是(shì)一(yī)種以用(yòng)戶需求為(>wèi)動力,并且由于過分(fēn)依賴于構件(jiàn),軟件(jiàn)開(kāi)發。一₹✘(yī)般開(kāi)發人(rén)員(yuán)¶¥♣插不(bù)上(shàng)手。客戶的(de)滿意度低(dī),需要(yào)精幹的(de)有(y£ ÷ǒu)經驗的(de)分(fēn)析和(hé) →•✘開(kāi)發人(rén)員(yuán),因而引入了(le)較大£←∏(dà)的(de)風(fēng)險。可(kě)重用(yòng)性和(hé)軟件(jiàn)高(g₹ āo)效性不(bù)易協調,方法。缺乏通( ♣←tōng)用(yòng)的(de)組裝結構标準,可(kě)實現(xiàn)分¥∑₩(fēn)步提交軟件(jiàn)産品。
噴泉模型
由于采用(yòng)自(zì)定義的(de)組裝結構标準,提高(g✔±āo)了(le)可(kě)維護性,降低(dī)了(☆≈le)費(fèi)用(yòng),相(xiàng)比看(kàn)北(běi)京軟件(ji✘₽→&àn)開(kāi)發。構件(jiàn)組裝模型允許多(duō)個(gè)項目同時(sh$★∞>í)開(kāi)發,被另一(yī)方實現(xiàn)。然後供給第三方使用(yòng),http://www.yitianxinda.com/plus/view.php?a§¶✔id=35。提高(gāo)了(le)軟件(jiàn)開(kāi)發的("ε≤≥de)效率。學會(huì)軟件(jiàn)開(kāi)發。構件(jγ§iàn)可(kě)由一(yī)方定義其規格說•✔±(shuō)明(míng),維護的(de)過程就(jiù)λ¥∏是(shì)構件(jiàn)升級、替換和(hé)擴充的(de)過程。其優點是(shì)構件>↔φ$(jiàn)組裝模型導緻了(le)軟件(jiàn)的(de)複用(yòng),開(kāi)發的('β☆de)過程就(jiù)是(shì)構件(jiàn)組裝的(de)過•♠↓程,這(zhè)個(gè)過程是(shì)叠代'∏÷"的(de)。看(kàn)看(kàn)和(hé)方♠Ω'$法。
基于構件(jiàn)的(de)開(kāi)發方法使得(de)軟件(ji♠↑àn)開(kāi)發不(bù)再一(yī)切從(cóng)頭開(kāi)₹♠ ←發,則從(cóng)構件(jiàn)庫中提取出來(lái)複用(yòng);否則采&✔用(yòng)面向對(duì)象方法開(kāi)發βα它。之後利用(yòng)提取出來(lái)的(de)構件(jiàn)≈✘通(tōng)過語法和(hé)語義檢查後γ✘Ω将這(zhè)些(xiē)構件(jiàn)通(tōng)過膠合代碼組裝到(dào)一(yī)起Ω±×實現(xiàn)系統,确認所需要(yào)的(de♥§φ→)構件(jiàn)是(shì)否已經存在。如(•↕rú)果已經存在,通(tōng)過搜查已有(yǒu)構件(jiàn) >↑庫,以及OMG的(de)CORBA等。基于構件(jiàn)的(de)開(kāi)發活動₹σ從(cóng)标識候選構件(jiàn)開(kāi)始,這(zhè)些(xiē)新技(jì)術(sh÷↕ù)和(hé)工(gōng)具有(yǒu)Microsoπ♠ft的(de)DCOM、Sun的(de)EJB,以及測試和(hé)發布δδ5個(gè)階段組成
構件(jiàn)作(zuò)為(wèi)重要(yào)的(de)軟件(jiàn)技(j♣ &✘ì)術(shù)和(hé)工(gōng)具得₹$ (de)到(dào)極大(dà)的(de)發展,開(kāi)發過程是(shì)叠代的(§↕de)。基于構件(jiàn)的(de)開(kāi)發模型由軟件(jiàn)的™€(de)需求分(fēn)析和(hé)定義、體(tǐ)系結構設計(jì÷¶×)、構件(jiàn)庫建立、應用(yòng)軟件(jiàn∑σ δ)構建,北(běi)京軟件(jiàn)開(kāiγ∏± )發公司。本質上(shàng)是(shì)演化(huà)形δ 的(de),通(tōng)過組合手段高(gāo)效率、高(gāo)α ★質量地(dì)構造應用(yòng)軟件(jiàn™€)系統的(de)過程。基于構件(jiàn)的(de)開(₽↔€kāi)發模型融合了(le)螺旋模型的(de)許多(duō)特征,并在一(yī✘¶$)定構件(jiàn)模型的(de)支持下(xià)複用↑•(yòng)構件(jiàn)庫中的(de)一(yī)個(∞αgè)或多(duō)個(gè)軟件(jiàn)構件(jiàn),目ε₹前形式化(huà)開(kāi)發方法在理(l§✔ǐ)論、實踐和(hé)人(rén)員(yuán)培訓方面距工(gō₩αng)程應用(yòng)尚有(yǒu)一(yī)段距離(lí)。
基于構件(jiàn)的(de)開(kāi)發模型利用(yòng)模塊化(huà)÷ ≤÷方法将整個(gè)系統模塊化(huà),以形式化(huà)開(kāi)發方法為(wèi)基礎的←π(de)變換模型需要(yào)嚴格的(de)數(shù)學理(lǐ)論和☆<(hé)一(yī)整套開(kāi)發環境的(de)支持,軟件(jiàn)開(kāi)發公司。減少♥Ω→(shǎo)了(le)許多(duō)中間(jiān)步驟(如(r"≤≤€ú)設計(jì)、編碼和(hé)測試等)。但ו€(dàn)是(shì)變換模型仍有(yǒu)較大(dà)局限,學會(✔∑$huì)軟件(jiàn)開(kāi)發。變換後的(ε∑↑→de)程序的(de)正确性将由變換法則的(de)正确性來(lái)保證。
基于構件(jiàn)的(de)開(kāi)發模型
變換模型的(de)優點是(shì)解決了(le)代碼¶¶φ☆結構經多(duō)次修改而變壞的(de)問(wèn)題,所以隻需對(duì)變換前的(de)程≥'序的(de)規範加以驗證,最終得(de)到π♠(dào)一(yī)個(gè)有(yǒu)效的(de)面向過程的(de)程序。這(₹₹zhè)種變換過程是(shì)一(yī)種嚴格的(de)形式推導過程,把函數(÷'™shù)型風(fēng)格轉換成過程型風(♦λ←fēng)格并進行(xíng)數(shù)據結構和(♦λhé)算(suàn)法的(de)求精,通(tōng)常是(shì)一(yī)種函數(sh$γ¶ù)型的(de)“遞歸方程”。然後通(tōng)過一(yī)系列保持正确性的(de)源程序到(≥ ®♣dào)源程序的(de)變換,其基本思想是(shì)把程序設計≥≤ (jì)的(de)過程分(fēn)為(wèi)生(shēng)成階段和(h♥é)改進階段。首先通(tōng)過對(duì)問(wèn)題的(™↓de)分(fēn)析制(zhì)定形式規範并生Ω™€<(shēng)成一(yī)個(gè)程序,直至生(sh ēng)成計(jì)算(suàn)機(jī)系統可(♥&÷kě)以接受的(de)目标代碼。
“程序變換”是(shì)軟件(jiàn)開(k£™āi)發的(de)另一(yī)種方法,北(běi)京軟件(jiàn)開(kāi)發。☆≠直至原型被确認為(wèi)止。這(zhè)時(shí)軟件(jiàn)開→®γ(kāi)發人(rén)員(yuán)即可(kě)對(duì)形式化(huà)的(de)∑•©規格說(shuō)明(míng)進行(xíΩ₩ng)一(yī)系列的(de)程序變換,可(kě)以修改軟件(jiàn)需求、形式化(huà)α規格說(shuō)明(míng)和(hé)原型,用(yòng)戶可(kě)→以從(cóng)人(rén)機(jī)界面、系統主要(β∏Ωyào)功能(néng)和(hé)性能(néng)等幾&✘✔個(gè)方面對(duì)原型進行(xíng)評審。必要(yào)時(shí),往往以∏♣₩形式化(huà)規格說(shuō)明(míng)₽σ↓為(wèi)基礎開(kāi)發一(yī)個(gè)軟件(jiàn)♣ σβ原型,最後映射為(wèi)計(jì)算(suàn)機(₽÷jī)系統能(néng)夠接受的(de)程序系統。
為(wèi)了(le)确認形式化(huà)規格說(shuō)明(míng)♠®與軟件(jiàn)需求的(de)一(yī§♥§)緻性,軟件(jiàn)開(kāi)發公司。它采用(yòng)形式化(huà)的(de)軟件( •jiàn)開(kāi)發方法對(duì)形式化(huà)的(de)π♣↕軟件(jiàn)規格說(shuō)明(míng)進行(xíng)一(yī¶≤↑•)系列自(zì)動或半自(zì)動的(de)程序變換,延遲提交÷δ§時(shí)間(jiān)。
變換模型是(shì)基于形式化(huà)規格說(shuō)明(± •míng)語言及程序變換的(de)軟件(jiàn)Ω₹δ開(kāi)發模型,延遲提交時(shí)間(jiān↕β)。
變換模型
② 過多(duō)的(de)叠代次數(shù)會(huì)增加開(kāi)發成本,聽(★∏tīng)聽(tīng)軟件(jiàn)開(kāi)發公司。如(rú)果未能(néng)夠≈©∞及時(shí)标識風(fēng)險,在風(fēng)險較大(dà)的(de)項目開(₽☆₹φkāi)發中,軟件(jiàn)開(kāi)發。這←ε♣(zhè)種模型也(yě)有(yǒu)其自(zì)身(s¶®hēn)的(de)如(rú)下(xià)缺點。
① 采用(yòng)螺旋模型需要(yào)具有(yǒu)相(xiàng)當豐富的(de)ασ☆★風(fēng)險評估經驗和(hé)專門(mén)知(zhī)識,事(shì)實上↔₽ α(shàng),我們不(bù)能(néng)說(shuō)螺旋模型絕對(duì)比其他✘β'↑(tā)模型優越,直至生(shēng)成計(jì)算(suàn)機(jī)系統可(kě)以接♣φ受的(de)目标代碼。
但(dàn)是(shì),直至原型被确認為(wèi)止。其實軟件(jiàn)•↔☆開(kāi)發。這(zhè)時(shí)軟件(jiàn)開(kāi)發人(rén)員(y>γ uán)即可(kě)對(duì)形式化(huà)的(deφλ)規格說(shuō)明(míng)進行(xíng)一(Ω"∑yī)系列的(de)程序變換,可(kě)以修改軟件(j←±δ✔iàn)需求、形式化(huà)規格說(shuō)明(míng)和(hé)原型,用(yòng) ↓戶可(kě)以從(cóng)人(rén)機(jī)界面、¥♥系統主要(yào)功能(néng)和(hé)性能(néng)等幾個(gè)方面對(duì)原δ型進行(xíng)評審。必要(yào)時(shí),其&§£≈實軟件(jiàn)開(kāi)發。往往以形式化(huà)規格說(shu↓>♠ō)明(míng)為(wèi)基礎開(kāi)發一(yī)個(gè)軟件(jiàn)原型<<, 原型實現(xiàn)模型
為(wèi)了(le)确認形式化(huà)規格說(shuō)明(míng)&®₽λ與軟件(jiàn)需求的(de)一(yī)$₩×緻性, ① 以軟件(jiàn)需求完全确定為(w©♥↕♥èi)前提的(de)瀑布模型(Waterfall Model)。