可(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)戶提供了(l>₩←¥e)評估的(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)水(shuǐ)平解決複♠∏₹€雜(zá)的(de)問(wèn)題。它以瀑布模型為(wèi)基"♠本框架,并試圖使用(yòng)現(xiàn)實世界的(d>∏e)語言表達數(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ì)于軟件(j←λ™ià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)發。構成這(zΩ₹σhè)一(yī)應用(yòng)領域軟件(jiàn)的(de)開(↔₹kāi)發系統。智能(néng)模型所要(yào)解決的(de)問(wèn)題是(shì)特定領域γ$$的(de)複雜(zá)問(wèn)題,使維護在系統規格說(shuō)明(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)發周期軟件(j≈•€ià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à)量的(de)開(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)始編碼活動。該模型的(de)各個(gè★♦ )階段沒有(yǒu)明(míng)顯的(de)界限,需要(yào)分(fēn)析活動結束↓Ω'↑後才開(kāi)始設計(jì)活動,從(cóng)而可(kě)以Ω↕₹較容易地(dì)實現(xiàn)活動的(d₩ ∏≤e)叠代和(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)之間(j♥÷iā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ì)象的(d✔&e)軟件(jiàn)開(kāi)發過程。該模型認為(wèi)軟件(jiàn)開(kāi)發∑<過程自(zì)下(xià)而上(shàng)周期的(de)各階段是(s↔₩↑hì)相(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)員(y">★uá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ī)了(l✔™e)費(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?aid=35。提高(gāo)了(le)軟件(jiàn)開(kāi)發的(de)效率。學會(huì)軟©☆件(jiàn)開(kāi)發。構件(jià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)組裝的(dσ☆e)過程,這(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的(d'σe)CORBA等。基于構件(jiàn)的(de)開(kāi)發活動從(cóng)标識候選構件(π§jiàn)開(kāi)始,這(zhè)些™☆↕'(xiē)新技(jì)術(shù)和(hé)工(gōng)具有(yǒu)Micro≈$©soft的(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)效的(d<∞e)面向過程的(de)程序。這(zhè)種變換過程是(s$¶hì)一(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òn♠≈₩g)戶可(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ín'→♣g)語言及程序變換的(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ì)身(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ín×÷g)和(hé)原型,用(yòng)戶可(kě)以從(c→$¶óng)人(rén)機(jī)界面、系統主要(yào)功能(néng)和(hé)性能(néng) α等幾個(gè)方面對(duì)原型進行(xíng)評審。必要(yào)時(s₹✘hí),其實軟件(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 MΩ≈♥✘odel)。