可(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én€&$g),但(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)的(d<¶✘₩e)一(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ón ≈φg)中發現(xiàn)新的(de)事(shì)實方法指導用(yòng)戶以專Ω↑↑家(jiā)的(de)水(shuǐ)平解決複雜(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è)些(x₽ ↓iē)知(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)發。構成這(z♠♦↕±hè)一(yī)應用(yòng)領域軟件(jiàn)的(de)開 <(kāi)發系統。智能(néng)模型所要(yào)↑₽≠×解決的(de)問(wèn)題是(shì)特定領域的(d¥λ↕e)複雜(zá)問(wèn)題,使維護在系統規格說(s↓÷₩huō)明(míng)一(yī)級進行(xíngγ )。這(zhè)種模型在實施過程中以軟件(jiàn)工(gōng)程知(z♠± hī)識為(wèi)基礎的(de)生(shēng)成規則構成的(d★φe)知(zhī)識系統與包含應用(yòng)領域知(zhī)識規則的( ∞de)專家(jiā)系統相(xiàng)結合,±δ•采用(yòng)歸納和(hé)推理(lǐ)機(jī)制(zhì),利<λ$用(yòng)專家(jiā)系統來(lái)幫助軟件(j >£ià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)這(z$σλ£hè)種模型要(yào)求嚴格管理(lǐ)文(wén)檔,♦'π≥因此在開(kāi)發過程中需要(yào)大(dà>>δ)量的(de)開(kāi)發人(rén)員(y∑←uán),适應于面向對(duì)象的(de)軟© 件(jiàn)開(kāi)發過程。由于噴泉λ♥模型在各個(gè)開(kāi)發階段是(sφεhì)重疊的(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)始編碼活動。該模型的(de)各個(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)無間(jγ↓αiā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ì)象的(de)軟<®∑件(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òn✘≠↓g)戶需求為(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ě)實現(x ®ià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),/plus/view.php?aid=35。提高(gāo)了(le)軟件(jiàn)開(π✘kāi)發的(de)效率。學會(huì)軟件(jiàn)開(kāi)發。構∑∞♣§件(jiàn)可(kě)由一(yī)方定義其規∏格說(shuō)明(míng),維護的(de)過程就(jiù)是(s→©hì)構件(jiàn)升級、替換和(hé)擴充的'±→(de)過程。其優點是(shì)構件(jiàn)組裝模型導緻±$÷了(le)軟件(jiàn)的(de)複用(yòng),↑§開(kāi)發的(de)過程就(jiù)是(shì)構件(j¥λià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)Micr↓φ↑®osoft的(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òn•<₹g)模塊化(huà)方法将整個(gè)系統模塊化(huà),以形式化(huà α)開(kāi)發方法為(wèi)基礎的(d<λ₹e)變換模型需要(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)形式化(h'αuà)的(de)軟件(jiàn)開(kāi)發方法對(duì)形式化(h§ uà)的(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í)間(j$©∏iān)。
變換模型
② 過多(duō)的(de)叠代次數(shù)會(hu₩←↔ì)增加開(kāi)發成本,聽(tīng)聽(tīng)軟件(jiàn)開(ε"∑βkāi)發公司。如(rú)果未能(néng)夠及時(s©ε♣hí)标識風(fēng)險,在風(fēng)險較大(dà)的(de)•♠€項目開(kāi)發中,軟件(jiàn)開(kāi)發。這(πγzhè)種模型也(yě)有(yǒu)其自(zì)身λ♦∏(shē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)員(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í),其實軟件(jiàn)開(kā"€i)發。往往以形式化(huà)規格說(shuō)明(≤♦γmíng)為(wèi)基礎開(kāi)發一λ σ"(yī)個(gè)軟件(jiàn)原型, "原型實現(xiàn)模型
為(wèi)了(le)确認形式化(huà)規格說(s£ ↓huō)明(míng)與軟件(jiàn)需求的(de)一€↕€'(yī)緻性, ① 以軟件(jiàn)需求完全确定為(wèi)前提的(de)'Ω∞瀑布模型(Waterfall Model)。