




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第4章計(jì)算機(jī)程序設(shè)計(jì)與語言程序設(shè)計(jì)的基本概念模型的建立、算法的設(shè)計(jì)和表達(dá)程序的編寫、測(cè)試和維護(hù)程序文檔的建立程序設(shè)計(jì)語言的應(yīng)用4.1概述4.1.1計(jì)算機(jī)程序4.1.2程序設(shè)計(jì)語言4.1.3程序設(shè)計(jì)步驟4.1.1計(jì)算機(jī)程序程序是計(jì)算機(jī)執(zhí)行任何操作的驅(qū)動(dòng)力,是計(jì)算機(jī)為完成某一任務(wù)所必須執(zhí)行的一系列指令。沒有程序,計(jì)算機(jī)就像原地待命的士兵,什么也不會(huì)做。從存儲(chǔ)的角度來看,程序就是保存在磁盤上的指令序列。除了少量特殊程序外,程序在沒有啟動(dòng)時(shí)大多以文件的形式存儲(chǔ)在磁盤等外存儲(chǔ)器上。4.1.2程序設(shè)計(jì)語言計(jì)算機(jī)語言是人與計(jì)算機(jī)之間傳遞信息的媒介。為了使計(jì)算機(jī)進(jìn)行各種工作,必須將人們的意圖用計(jì)算機(jī)語言告訴計(jì)算機(jī)。電腦做的每個(gè)動(dòng)作、執(zhí)行的每個(gè)步驟,都是按照用計(jì)算機(jī)語言編好的程序來執(zhí)行的,所以,要控制計(jì)算機(jī)就必須通過計(jì)算機(jī)語言向計(jì)算機(jī)發(fā)出命令。自從有了計(jì)算機(jī),計(jì)算機(jī)程序設(shè)計(jì)語言就出現(xiàn)了,人們針對(duì)不同的應(yīng)用領(lǐng)域開發(fā)出了上千種編程語言。4.1.2程序設(shè)計(jì)語言計(jì)算機(jī)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言和高級(jí)語言三個(gè)階段。機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制形式的語言。匯編語言的實(shí)質(zhì)和機(jī)器語言是相同的,都是直接對(duì)硬件操作,只不過指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記憶。高級(jí)語言更接近自然語言和數(shù)學(xué)語言,和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令,使程序員可以離開機(jī)器層次,在更抽象的層次上表達(dá)意圖,以接近問題本質(zhì)的方式去思考和描述問題。4.1.2程序設(shè)計(jì)語言高級(jí)語言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行。高級(jí)語言并不是特指某種具體的語言,而是包括了很多種編程語言,如目前流行的VB、C++、Java、Perl等,這些語言的語法、命令格式都各不相同。高級(jí)語言的發(fā)展也經(jīng)歷了從早期語言到結(jié)構(gòu)化程序設(shè)計(jì)語言,從面向過程到面向?qū)ο蟪绦蛟O(shè)計(jì)語言的過程。相應(yīng)地,軟件的開發(fā)也由最初的個(gè)體手工作坊式的生產(chǎn),發(fā)展為產(chǎn)業(yè)化、流水線式的工業(yè)化生產(chǎn)。高級(jí)語言的下一個(gè)發(fā)展目標(biāo)是面向應(yīng)用,只需要告訴程序你要干什么,程序就能自動(dòng)生成算法,自動(dòng)進(jìn)行處理,也就是智能化的程序設(shè)計(jì)語言。4.1.3程序設(shè)計(jì)步驟(1)建立模型:從實(shí)際問題抽象出數(shù)學(xué)模型,即由物理模型到抽象模型,用形式化方法描述現(xiàn)實(shí)世界。(2)算法設(shè)計(jì):給出解決問題的方法和步驟,即算法。同一個(gè)問題可以有不同的解決辦法,從中選取一種最合適的。(3)算法表達(dá):選擇一種或幾種表達(dá)算法的工具,對(duì)算法進(jìn)行清晰的表達(dá)。(4)編寫程序:選擇程序設(shè)計(jì)語言,把算法程序化。(5)程序測(cè)試和調(diào)試:對(duì)編寫好的程序進(jìn)行測(cè)試,修改程序中的錯(cuò)誤。(6)程序文檔編寫與程序維護(hù):整理和編寫程序文檔,以便更好地維護(hù)程序。雞兔同籠問題雞兔同籠,看頭36個(gè),看腳96只,問籠中有雞和兔各幾只?4.2模型與算法4.2.1建立模型4.2.2算法設(shè)計(jì)4.2.3算法表達(dá)4.2.1建立模型模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的抽象和簡化。模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。模型分為物理模型和數(shù)學(xué)模型兩大類。物理模型由物理元素構(gòu)成,又稱為形象模型。數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)對(duì)象符號(hào)組成,又稱為邏輯模型或抽象模型。4.2.1建立模型物理模型的建立:對(duì)客觀存在的事物進(jìn)行形象的描述,列出已知的所有物理元素及其關(guān)系,明確需要解決的問題。物理模型中應(yīng)該忽略對(duì)解決問題沒有意義的客觀事實(shí),如雞、兔的大小,籠子的大小等。數(shù)學(xué)模型的建立:在物理模型的基礎(chǔ)上,忽略不重要的細(xì)節(jié)(如在一個(gè)籠子里這個(gè)事實(shí)與要解決的問題無關(guān)),抓住本質(zhì)性的元素,對(duì)其符號(hào)化后,再用數(shù)學(xué)的方法描述出來。4.2.1建立模型模型是對(duì)現(xiàn)實(shí)系統(tǒng)的一種描述,是對(duì)現(xiàn)實(shí)系統(tǒng)的抽象和簡化。模型由現(xiàn)實(shí)系統(tǒng)的有關(guān)元素組成,能夠反映這些元素之間的關(guān)系,從而反映現(xiàn)實(shí)系統(tǒng)的本質(zhì)。模型分為物理模型和數(shù)學(xué)模型兩大類。物理模型由物理元素構(gòu)成,又稱為形象模型。數(shù)學(xué)模型由關(guān)系、函數(shù)等數(shù)學(xué)對(duì)象符號(hào)組成,又稱為邏輯模型或抽象模型。雞兔同籠問題的物理模型雞、兔放在同一籠子里,頭有36個(gè),腳有96只,要計(jì)算出有雞和兔子各多少只。當(dāng)然,要解決這個(gè)問題還要用到大家已熟知的事實(shí):每只雞是1個(gè)頭2只腳,每只兔子是1個(gè)頭4只腳。雞兔同籠問題的數(shù)學(xué)模型對(duì)以上例子,設(shè)雞為x只,兔子為y只,則有:4.2.2算法設(shè)計(jì)算法是解決問題的方法和步驟。若待解決的問題比較復(fù)雜,可能需要將問題進(jìn)行分解,即將復(fù)雜問題分解為簡單問題的集合。簡單問題對(duì)應(yīng)的算法較簡單,設(shè)計(jì)起來也就比較容易。這里講的算法設(shè)計(jì),涉及程序功能的設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)等。雞兔同籠問題的算法設(shè)計(jì)雞兔同籠問題實(shí)際上是求二元一次方程組的解的問題,可以用加減消元法解決??紤]到算法的通用性,我們可以對(duì)一般二元一次方程組求解。雞兔同籠問題的算法設(shè)計(jì)若a1b2-a2b1≠0,方程組有唯一解。用加減消元法求得雞兔同籠問題的算法設(shè)計(jì)(1)輸入系數(shù)a1,b1,c1,a2,b2,c2;(2)計(jì)算d=a1b2-a2b1;(3)如果d=0,打印“方程組無解或有無窮組解”,轉(zhuǎn)(7);(4)計(jì)算x=(c1b2-c2b1)/d;(5)計(jì)算y=(a1c2-a2c1)/d;(6)輸出x,y;(7)輸入是否繼續(xù)解其他方程組的標(biāo)記s(s=“Y”或s=“N”);(8)如果s=“Y”,轉(zhuǎn)(1);(9)結(jié)束。算法的評(píng)價(jià)對(duì)于同一個(gè)問題,可能有若干種不同的算法來解決。對(duì)于算法評(píng)價(jià)的基本的標(biāo)準(zhǔn)有兩個(gè):時(shí)間標(biāo)準(zhǔn)(時(shí)間復(fù)雜度),簡單說來,即執(zhí)行這個(gè)算法需要多少時(shí)間,基本的原則是時(shí)間越短越好。對(duì)于同樣的問題,如果用算法A和B分別進(jìn)行處理,結(jié)果算法A所用的時(shí)間更短,那么就認(rèn)為算法A更好一些??臻g標(biāo)準(zhǔn)(空間復(fù)雜度),即執(zhí)行這個(gè)算法需要占用多少資源(可以理解為占用了多少計(jì)算機(jī)存儲(chǔ)單元),基本的原則是占用的資源越少越好。對(duì)于同樣的問題,如果用算法A和B分別進(jìn)行處理,結(jié)果算法A占用的資源更少,那么就認(rèn)為算法A更好一些。算法的評(píng)價(jià)隨著計(jì)算機(jī)技術(shù)的發(fā)展,硬件性能不斷提高,程序的規(guī)模越來越龐大,算法的清晰程度變成了一個(gè)非常重要的問題。對(duì)于一個(gè)比較復(fù)雜的問題來說,如果所給出的算法讓人無法讀懂,那么它也不能算是一個(gè)好的算法,因?yàn)榘凑者@樣的算法所編制出來的程序非常難以維護(hù)。因此,算法的易懂性也是衡量算法好壞的一個(gè)重要指標(biāo)。算法的評(píng)價(jià)設(shè)計(jì)算法時(shí),還要注意以下幾點(diǎn):通用性。一個(gè)算法總是針對(duì)某類問題設(shè)計(jì)的,所以對(duì)于求解某類問題中的任何一個(gè)問題應(yīng)該是有效的。例如,上面給出的解二元一次方程組的算法就有一定的通用性。確定性。算法中的每個(gè)步驟都是確定的,在什么情況下做什么也非常明確,沒有含糊不清的地方。有限性。一個(gè)算法在執(zhí)行時(shí),必須經(jīng)過有限步后停下來,結(jié)束算法執(zhí)行,給出結(jié)果,而不能無限地執(zhí)行下去。盡管這里所說的有限步可能是幾十步或者幾百步,也可能是幾萬步或者幾億步,但它仍然是有限步(嚴(yán)格說來,這里所說的“有限”只是說明了它和“無限”的區(qū)別。在實(shí)際工作中還有一個(gè)更嚴(yán)格的限制,即實(shí)際工作所要求的時(shí)間的限制。算法和根據(jù)算法所編制的程序,必須在實(shí)際工作所規(guī)定的時(shí)間內(nèi)給出相應(yīng)的運(yùn)算結(jié)果)。4.2.3算法表達(dá)為了提高算法表達(dá)的清晰程度,需要選擇一種合適的描述算法的工具。常用的描述工具有流程圖、N-S圖、PAD圖和偽碼等。這些工具不是程序設(shè)計(jì)語言,不能直接被計(jì)算機(jī)執(zhí)行,使用它們的目的就是把算法表述出來。流程圖流程圖(也稱為程序流程圖)是最常用的一種算法表示方法,它是描述計(jì)算機(jī)按一定步驟完成任務(wù)的圖表,能直觀地描述程序執(zhí)行的控制流程。流程圖中方框表示“處理”,所有處理步驟都可以用這個(gè)符號(hào)表示;菱形框表示“判斷”,需要對(duì)邏輯條件進(jìn)行判斷并選擇下一步執(zhí)行的路線時(shí)用這個(gè)符號(hào)表示;圓角矩形框表示“開始”和“結(jié)束”;平行四邊形框表示“輸入”和“輸出”;有向線段表示“控制流”。雞兔同籠問題的流程圖偽碼偽碼表示法相當(dāng)于算法的注釋系統(tǒng),由編程語言和自然語言混合而成。偽碼的語法通常沿用某種高級(jí)編程語言的語法規(guī)則,如關(guān)鍵字、控制結(jié)構(gòu)等。另外,在描述程序的處理功能時(shí)使用自然語言的語句。所以偽碼表示法是一種類高級(jí)編程語言,但它含有大量的自然語言的語句,計(jì)算機(jī)并不能執(zhí)行。用自然語言描述處理功能,易讀易寫,不必考慮語法規(guī)定,有利于設(shè)計(jì)人員把精力放在描述算法的邏輯上。雞兔同籠問題的偽碼表示PROCEDURE求解二元一次方程組
TYPEa1,b1,c1,a2,b2,c2,x,yISREALTYPEsISCHARDOWHILETRUE/*輸入方程組系數(shù)
READa1,b1,c1,a2,b2,c2d=a1*b2-a2*b1IFd=0THENWRITE'方程組無解或有無窮組解'ELSE/*求方程組的唯一解并輸出
BEGINx=?(c1*b2-c2*b1)?/dy=?(a1*c2-a2*c1)?/dWRITEx,yENDENDIF/*控制循環(huán)是否結(jié)束
INPUT'若繼續(xù)循環(huán)輸入Y,否則輸入N'TOsREADSIFs≠'Y'THENEXITENDIFENDDOEND4.3程序設(shè)計(jì)實(shí)現(xiàn)4.3.1程序舉例4.3.2編寫程序4.3.1程序舉例雞兔同籠問題的VFP程序?qū)崿F(xiàn)DOWHILE.T.CLEAR&&清屏
?'輸入方程組的系數(shù)'INPUT'a1='TOa1INPUT'b1='TOb1INPUT'c1='TOc1INPUT'a2='TOa2INPUT'b2='TOb2INPUT'c2='TOc2d=a1*b2-a2*b1IFd=0?'方程組無解或有無窮組解'ELSE*求方程組的唯一解并輸出
x=?(c1*b2-c2*b1)?/dy=?(a1*c2-a2*c1)?/d
?'?雞為?',x,'?只?','?兔為?',y,'?只?'ENDIF*控制循環(huán)是否結(jié)束
INPUT'若繼續(xù)循環(huán)輸入Y,否則輸入N'TOsIFupper?(s)?≠'Y'EXITENDIFENDDORETURN4.3.2編寫程序程序的編寫就是用程序設(shè)計(jì)語言實(shí)現(xiàn)算法的過程。程序編寫人員應(yīng)該根據(jù)算法的要求,選擇一種程序設(shè)計(jì)語言對(duì)算法進(jìn)行編碼。對(duì)程序設(shè)計(jì)語言,必須要深刻地理解,熟練地掌握,正確地運(yùn)用,這樣才能編出高質(zhì)量的程序代碼。4.3.2編寫程序編寫程序的基本要求:首先是保證語法的正確性。只有語法正確的程序才能通過編譯系統(tǒng)的語法檢查。其次是保證語義的正確性,也就是通過運(yùn)行程序,得到需要的正確結(jié)果。但這一點(diǎn)對(duì)一個(gè)復(fù)雜的程序來說并不容易,通常需要經(jīng)過程序測(cè)試和修改才能達(dá)到。4.3.2編寫程序只做到以上兩點(diǎn)還稱不上高質(zhì)量的程序代碼,高質(zhì)量的程序還應(yīng)體現(xiàn)在以下四個(gè)方面:可靠性高、運(yùn)行速度快、占用存儲(chǔ)空間小和易懂性。通常這四個(gè)方面不能同時(shí)滿足,要根據(jù)具體情況權(quán)衡利弊。4.3.2編寫程序在計(jì)算機(jī)速度越來越快,內(nèi)存越來越大的今天,程序的易懂性顯得更為重要。這是因?yàn)橐粋€(gè)程序除了能在計(jì)算機(jī)上運(yùn)行外,還要求人能夠看懂。只有看懂程序,才能對(duì)程序中出現(xiàn)的問題進(jìn)行修改,才能根據(jù)需要擴(kuò)充其功能和改善其性能。4.3.2編寫程序編寫容易讀懂的程序代碼,要求程序有良好的結(jié)構(gòu)性和程序設(shè)計(jì)風(fēng)格。所謂程序有良好的結(jié)構(gòu)性是指程序僅由三種基本的控制結(jié)構(gòu)構(gòu)造出來。順序控制結(jié)構(gòu)選擇控制結(jié)構(gòu)重復(fù)控制結(jié)構(gòu)所謂良好的程序設(shè)計(jì)風(fēng)格,是要求編寫的程序清晰明了,容易被人理解。順序控制結(jié)構(gòu)順序控制結(jié)構(gòu)含有多個(gè)連續(xù)的步驟,如右圖所示。在此控制結(jié)構(gòu)中的A和B是順序執(zhí)行的。順序控制結(jié)構(gòu)是最簡單的一種基本結(jié)構(gòu)。選擇控制結(jié)構(gòu)選擇控制結(jié)構(gòu)也稱為分支結(jié)構(gòu),計(jì)算機(jī)根據(jù)所列條件選擇執(zhí)行路徑,如右圖所示。在此控制結(jié)構(gòu)中有一個(gè)判斷框,它只能有兩個(gè)分支,根據(jù)條件P是否滿足而分別執(zhí)行A或B。重復(fù)控制結(jié)構(gòu)重復(fù)控制結(jié)構(gòu)又稱循環(huán)結(jié)構(gòu),可以重復(fù)執(zhí)行一條或多條指令,直到滿足退出條件。重復(fù)控制結(jié)構(gòu)主要有以下兩種:當(dāng)型(WHILEDO型)循環(huán)結(jié)構(gòu) 直到型(UNTIL型)循環(huán)結(jié)構(gòu)當(dāng)型(WHILEDO型)循環(huán)結(jié)構(gòu)當(dāng)條件P滿足時(shí),反復(fù)執(zhí)行A。一旦條件P不滿足就不再執(zhí)行A,而執(zhí)行它下面的操作。如果在開始時(shí)條件P就不滿足,則A一次也不執(zhí)行。直到型(UNTIL型)循環(huán)結(jié)構(gòu)先執(zhí)行A,然后判斷條件P是否滿足,如條件P不滿足,則反復(fù)執(zhí)行A,直到某一時(shí)刻,條件P滿足則停止循環(huán),執(zhí)行下面的操作。可以看到,不論條件P是否滿足,至少執(zhí)行一次A。這三種基本控制結(jié)構(gòu)的共同特點(diǎn)(1)只有一個(gè)入口,如圖4-2至圖4-5中的a點(diǎn)。(2)只有一個(gè)出口,如圖4-2至圖4-5中的b點(diǎn)。(3)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。(4)結(jié)構(gòu)內(nèi)沒有死循環(huán)(無終止的循環(huán))。盡管在表達(dá)形式上不完全一樣,但各種編程語言都提供了對(duì)三種基本控制結(jié)構(gòu)的支持。不滿足基本要求的兩種情況B永遠(yuǎn)執(zhí)行不到死循環(huán)良好的程序設(shè)計(jì)風(fēng)格1)文檔化(documentation)要有效、適當(dāng)?shù)厥褂米⑨?。注釋語句是每種程序設(shè)計(jì)語言都要提供的語句。注釋語句對(duì)程序的執(zhí)行結(jié)果沒有影響,是用來幫助讀程序的人理解程序的。一些規(guī)范的程序中,注釋行的數(shù)量占到整個(gè)源程序的1/3到1/2,甚至更多。在程序的開頭可以添加對(duì)程序整體進(jìn)行說明的注釋;在程序模塊(如子程序、函數(shù)、過程等)前添加解釋該模塊作用的注釋;在較難理解的語句前添加解釋該語句的注釋。要使用含義明確的符號(hào)名。符號(hào)名包括子程序名、函數(shù)名、變量名、常量名等。這些名字應(yīng)能反映它所代表的實(shí)際東西,有實(shí)際意義,使其能見名知意。例如,表示總量用Total,表示平均值用Average,表示和用Sum,等等。良好的程序設(shè)計(jì)風(fēng)格2)格式化(layout)盡量使程序布局合理、清晰、明了。一個(gè)程序如果寫得太密,沒有留出空白,往往是很難讀懂的。恰當(dāng)?shù)乩每崭瘛⒖招泻涂s進(jìn)可使程序清晰明了。自然程序段之間用空行分開??s進(jìn)也稱為向右縮格或移行。程序中的各行不必左對(duì)齊,因?yàn)檫@樣做的話程序的層次關(guān)系就分不清了。對(duì)于選擇語句和循環(huán)語句,應(yīng)該把其中的程序段語句向右做階梯式移行。格式化可使程序的邏輯結(jié)構(gòu)更加清晰,層次更加分明。良好的程序設(shè)計(jì)風(fēng)格3)模塊化(modularization)把復(fù)雜的程序分解為功能獨(dú)立的程序模塊,每一個(gè)程序模塊只完成一個(gè)獨(dú)立的功能,盡量減少模塊之間的聯(lián)系。這樣,當(dāng)我們讀一個(gè)復(fù)雜的程序時(shí),只要分別去讀懂各個(gè)簡單的功能模塊即可。4.4程序的測(cè)試、調(diào)試與維護(hù)4.4.1程序測(cè)試4.4.2程序調(diào)試4.4.3程序維護(hù)4.4.1程序測(cè)試程序測(cè)試是為了發(fā)現(xiàn)程序錯(cuò)誤而執(zhí)行程序的過程。測(cè)試時(shí)需要選擇測(cè)試數(shù)據(jù)作為輸入,運(yùn)行程序后看是否會(huì)輸出預(yù)期的結(jié)果。如果沒有產(chǎn)生正確的結(jié)果,則程序員必須查找并修改程序中的錯(cuò)誤,然后再測(cè)試修改后的程序,可能要經(jīng)過多次反復(fù),才能得出正確的結(jié)果。4.4.1程序測(cè)試對(duì)于一組測(cè)試數(shù)據(jù),即使程序產(chǎn)生了正確的結(jié)果,也還不能立即斷定程序是正確的,因?yàn)檫€不能保證輸入其他的數(shù)據(jù)時(shí),程序會(huì)產(chǎn)生正確結(jié)果。但是這個(gè)“所有可能的數(shù)據(jù)”集合一般是非常大的,可能是幾十億個(gè)數(shù)據(jù)甚至更多,都測(cè)試一遍是不現(xiàn)實(shí)的,所以要求我們根據(jù)某些原則選擇有代表性的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,以相對(duì)較少的測(cè)試次數(shù)發(fā)現(xiàn)程序中的錯(cuò)誤黑盒測(cè)試法把程序看成一個(gè)“黑盒子”,測(cè)試人員完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只考慮程序的功能,通過選擇一些測(cè)試數(shù)據(jù),看程序的功能是否都已實(shí)現(xiàn)。黑盒測(cè)試的測(cè)試數(shù)據(jù)選擇(雞兔同籠問題)把輸入的二元一次方程組的系數(shù)分為以下四類,每一類設(shè)計(jì)一個(gè)測(cè)試用例。合理的系數(shù):(1)方程組有唯一解:a1=1,b1=1,c1=1,a2=0,b2=1,c2=2(2)方程組無解:a1=1,b1=1,c1=1,a2=1,b2=1,c2=2(3)方程組有無窮組解:a1=1,b1=1,c1=1,a2=2,b2=2,c2=2不合理的系數(shù):(4)輸入的不全是數(shù)值:a1="a",b1=5,c1=0,a2=6,b2=8,c2=7選擇合理的輸入數(shù)據(jù)驗(yàn)證程序的功能、性能是否符合設(shè)計(jì)的要求。選擇不合理的輸入數(shù)據(jù)對(duì)程序進(jìn)行測(cè)試也非常重要,這是對(duì)程序可靠性的考驗(yàn)。白測(cè)試的測(cè)試數(shù)據(jù)選擇(雞兔同籠問題)
為了讓程序中的每條語句至少執(zhí)行一次,使每個(gè)判斷條件取一次“真”或取一次“假”,選擇如下測(cè)試用例:(1)d=0,s=“Y”:a1=1,b1=1,c1=1,a2=2,b2=2,c2=2,s=“Y”(2)d≠0,s=“N”:a1=1,b1=0,c1=1,a2=0,b2=1,c2=2,s=“N”這兩個(gè)例子測(cè)試后,使得程序中的每條語句至少執(zhí)行了一次,每個(gè)判斷條件分別取了一次“真”和一次“假”。測(cè)試的步驟一個(gè)復(fù)雜的程序往往由若干個(gè)子程序模塊組成,要保證程序整體的正確性,不僅需要各個(gè)模塊是正確的,還要求各模塊之間的接口是正確的。測(cè)試工作要制定出測(cè)試規(guī)劃,包括測(cè)試的步驟、范圍、進(jìn)度和所用的資源(硬件、軟件)等。測(cè)試工作先對(duì)每個(gè)模塊進(jìn)行測(cè)試,一般采用白盒測(cè)試法保證每個(gè)程序模塊內(nèi)部的正確性,然后再把測(cè)試后的模塊組裝在一起進(jìn)行整體測(cè)試,主要測(cè)試各模塊是否能正常配合工作,方法多采用黑盒測(cè)試法。對(duì)模塊的接口進(jìn)行測(cè)試,適當(dāng)輔以白盒測(cè)試法,以便對(duì)主要執(zhí)行路徑進(jìn)行測(cè)試。
4.4.2程序調(diào)試調(diào)試的任務(wù)是進(jìn)一步診斷和改正程序中的錯(cuò)誤(一般是測(cè)試時(shí)發(fā)現(xiàn)的錯(cuò)誤),它是在完成了測(cè)試之后進(jìn)行的。調(diào)試活動(dòng)首先確定程序中可疑錯(cuò)誤的確切性質(zhì)和位置,然后對(duì)程序(設(shè)計(jì)、編碼)進(jìn)行修改,排除錯(cuò)誤。調(diào)試工作是一個(gè)具有很強(qiáng)技巧性的工作。軟件運(yùn)行失效或出現(xiàn)問題,往往只是潛在錯(cuò)誤的外部表現(xiàn),而外部表現(xiàn)與內(nèi)在原因之間常常沒有明顯的聯(lián)系,要找出真正的原因,排除潛在的錯(cuò)誤,不是一件易事??梢哉f,調(diào)試是通過現(xiàn)象找出原因的分析過程。
調(diào)試步驟(1)對(duì)測(cè)試發(fā)現(xiàn)的錯(cuò)誤現(xiàn)象進(jìn)行分析,確定程序中的出錯(cuò)位置;(2)研究有關(guān)部分的程序,找出錯(cuò)誤的內(nèi)在原因(有的錯(cuò)誤不一定是編碼錯(cuò)誤,可能是設(shè)計(jì)錯(cuò)誤);(3)修改設(shè)計(jì)或代碼,以排除這個(gè)錯(cuò)誤;(4)重復(fù)進(jìn)行暴露了這個(gè)錯(cuò)誤的原始測(cè)試和其他有關(guān)測(cè)試。
調(diào)試步驟當(dāng)在程序中發(fā)現(xiàn)一個(gè)錯(cuò)誤時(shí),它可能是語法錯(cuò)誤,也可能是語義錯(cuò)誤。語法錯(cuò)誤是由于指令沒有按照程序設(shè)計(jì)語言的語法規(guī)則編寫所致。例如,要打印一個(gè)消息時(shí),需要使用PRINT命令字。命令I(lǐng)FAGE=16THEN"Youcandrive."將產(chǎn)生語法錯(cuò)誤,因?yàn)樯倭嗣钭諴RINT。正確的寫法是IFAGE=16THENPRINT"Youcandrive."。在編譯執(zhí)行的系統(tǒng)中,編譯時(shí)就能檢查出語法錯(cuò)誤。在解釋執(zhí)行的系統(tǒng)中,執(zhí)行到語法錯(cuò)誤的語句時(shí)輸出錯(cuò)誤信息。語法錯(cuò)誤是比較容易發(fā)現(xiàn)和糾正的。語義錯(cuò)誤是編寫的程序雖然能運(yùn)行,但不能輸出正確的結(jié)果。出錯(cuò)的原因可能是多方面的,模型的建立、算法的設(shè)計(jì)和表達(dá)、編碼各個(gè)過程都可能出錯(cuò),語義錯(cuò)誤比語法錯(cuò)誤更難檢查、修改。例如,把IFA>=100THENPRINTA中的“>”寫成了“<”,就屬于語義方面的錯(cuò)誤。
4.4.3程序維護(hù)通常把程序的修改稱為程序維護(hù)。程序維護(hù)一般有三種類型改正性維護(hù)在程序測(cè)試時(shí),有的錯(cuò)誤沒被發(fā)現(xiàn),交付使用后,程序中某些錯(cuò)誤暴露出來,此時(shí)就要對(duì)程序進(jìn)行改正性維護(hù)。適應(yīng)性維護(hù)假如程序運(yùn)行的外在環(huán)境(硬件配置和軟件配置等)發(fā)生了變化,為了使程序適應(yīng)這種環(huán)境變化而修改程序的過程叫適應(yīng)性維護(hù)。完善性維護(hù)在程序使用的過程中,用戶往往會(huì)對(duì)程序提出增加新功能或改善性能的要求,這就需要修改程序,使程序更加完善,這個(gè)過程稱為完善性維護(hù)。
4.4.3程序維護(hù)程序維護(hù)在軟件生命周期中占相當(dāng)重要的地位,大約75%的費(fèi)用都產(chǎn)生在程序維護(hù)階段。不管對(duì)程序進(jìn)行哪種維護(hù),都需要維護(hù)人員熟悉程序的工作過程和使用方法,讀懂原有的程序。修改程序的人員往往不是編寫程序的人員,有時(shí)候時(shí)間久了就是編寫程序的本人也記不清當(dāng)時(shí)是怎樣編寫程序的。因此,為了能順利地進(jìn)行維護(hù),必須建立詳盡的程序文檔。程序文檔解釋了程序的工作過程及使用方法。創(chuàng)建的文檔為修改程序或使用程序提供幫助。
程序文檔程序文檔有兩種形式:插入到程序代碼中的注釋和專門制作的文檔。注釋是插入到計(jì)算機(jī)程序代碼行中的解釋性注解,它能為改寫程序的人閱讀程序、理解程序提供幫助。專門制作的文檔不屬于程序,它包含的是一些對(duì)程序員和用戶都有用的關(guān)于程序的信息。對(duì)程序員有用的文檔為程序手冊(cè),對(duì)用戶有用的文檔為用戶參考手冊(cè)。程序手冊(cè)中包含問題描述、數(shù)學(xué)模型、算法及算法表達(dá)、程序代碼、測(cè)試程序的過程和記錄等,它是程序開發(fā)和維護(hù)的重要資料。用戶參考手冊(cè)中包含對(duì)程序的功能說明,操作程序的方法、步驟、故障分析與排除等,它是幫助用戶學(xué)會(huì)使用軟件的重要資料。用戶參考手冊(cè)還有電子版和在線幫助等形式。4.5程序設(shè)計(jì)語言應(yīng)用4.5.1程序設(shè)計(jì)語言的分類與選擇4.5.2軟件開發(fā)工具4.5.3VB程序設(shè)計(jì)語言4.5.1程序設(shè)計(jì)語言的分類與選擇通常根據(jù)程序設(shè)計(jì)語言發(fā)展的歷程將其劃分為四代。1)機(jī)器語言—第一代語言2)匯編語言—第二代語言3)高級(jí)程序設(shè)計(jì)語言—第三代語言4)智能語言—第四代語言4.5.1程序設(shè)計(jì)語言的分類與選擇1)機(jī)器語言—第一代語言機(jī)器語言是計(jì)算機(jī)能直接執(zhí)行的二進(jìn)制形式的低級(jí)語言。它是由機(jī)器指令組成的語言,不同的機(jī)器有不同的機(jī)器語言。機(jī)器語言對(duì)人來說既難理解又難掌握,編出的程序不易查錯(cuò)糾錯(cuò)。計(jì)算機(jī)剛出現(xiàn)時(shí)用的就是機(jī)器語言。4.5.1程序設(shè)計(jì)語言的分類與選擇2)匯編語言—第二代語言匯編語言比機(jī)器語言直觀,它的每一條符號(hào)指令與相應(yīng)的機(jī)器指令有對(duì)應(yīng)關(guān)系,同時(shí)又增加了一些宏、符號(hào)地址等功能。存儲(chǔ)空間的安排可由機(jī)器解決,減少了程序員的工作量,也降低了出錯(cuò)率。由于用匯編語言可以直接操縱處理器、寄存器和內(nèi)存地址等硬件資源,這對(duì)于編寫設(shè)備驅(qū)動(dòng)程序、編譯程序和操作系統(tǒng)等系統(tǒng)軟件非常有用。不同指令集的處理器系統(tǒng)有自己相應(yīng)的匯編語言。如微機(jī)上常用的Microsoft的匯編語言MASM。匯編語言相對(duì)來講還是比較晦澀,所以也被列為低級(jí)語言。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言高級(jí)程序設(shè)計(jì)語言從20世紀(jì)50年代就開始出現(xiàn),它提供給程序員的指令更像人類語言,為計(jì)算機(jī)應(yīng)用的普及起到了重要作用。人們用高級(jí)程序設(shè)計(jì)語言編程直觀、方便,但計(jì)算機(jī)最終執(zhí)行的還是二進(jìn)制表示的機(jī)器指令,這中間需要編譯程序或解釋程序來做翻譯工作。高級(jí)程序設(shè)計(jì)語言不再與具體的計(jì)算機(jī)硬件相對(duì)應(yīng),同一高級(jí)程序設(shè)計(jì)語言,只要給出不同的編譯程序或解釋程序,就可以應(yīng)用于不同類型的計(jì)算機(jī)上。這就是高級(jí)程序設(shè)計(jì)語言的通用性。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言高級(jí)程序設(shè)計(jì)語言種類很多,可以把它們分為過程性語言、面向?qū)ο蟮恼Z言、專用語言和腳本語言。這里僅就最典型的、用途最廣的幾種語言進(jìn)行介紹。(1)過程性語言:(2)面向?qū)ο蟮恼Z言:(3)專用語言:(4)腳本語言:4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(1)過程性語言:過程性編程語言適合于順序執(zhí)行的算法。用過程性語言編寫的程序有一個(gè)起點(diǎn)和一個(gè)終點(diǎn),程序的執(zhí)行是流水線式的,在一個(gè)模塊被執(zhí)行完成前,不能處理其他任務(wù),也無法動(dòng)態(tài)地改變程序的執(zhí)行過程。BASIC,簡單易學(xué),包括GW-BASIC、QBASIC和TurboBASIC等。COBOL,適合于大型計(jì)算機(jī)系統(tǒng)上的事務(wù)處理。FORTRAN,廣泛應(yīng)用于科學(xué)和工程計(jì)算領(lǐng)域。PASCAL,主要用于結(jié)構(gòu)化程序設(shè)計(jì)的教學(xué)。C語言,功能強(qiáng)大且十分靈活,以其高效、簡潔、可移植性強(qiáng)。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(2)面向?qū)ο蟮恼Z言:面向?qū)ο蟮某绦蛟O(shè)計(jì)語言是建立在面向?qū)ο缶幊谭椒ǖ幕A(chǔ)上的。面向?qū)ο蟮某绦虮豢闯墒强梢赃M(jìn)行相互通信的若干對(duì)象的集合。設(shè)計(jì)面向?qū)ο蟪绦蚓褪嵌x對(duì)象,建立對(duì)象間的通信關(guān)系。程序中的輸入即是對(duì)象間發(fā)消息(通信),而輸出則是程序中的對(duì)象向顯示器(或打印機(jī))發(fā)消息(通信)的結(jié)果,程序運(yùn)行的結(jié)果就是將對(duì)象集的初始狀態(tài)變成終結(jié)狀態(tài)(目標(biāo)狀態(tài))。對(duì)象是程序中使用的實(shí)體。例如,在Windows環(huán)境下,我們習(xí)慣于用鼠標(biāo)點(diǎn)擊按鈕,這里的按鈕就是一個(gè)對(duì)象。程序員可以使用面向?qū)ο蟮恼Z言來定義按鈕對(duì)象,在程序運(yùn)行時(shí)把它表示出來。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(2)面向?qū)ο蟮恼Z言:20世紀(jì)70年代以來,盡管出現(xiàn)了多種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言VB,綜合性的且功能強(qiáng)大的編程語言。C++,既融合了面向?qū)ο蟮哪芰?,又與C語言兼容。Java,非常適用于網(wǎng)絡(luò)應(yīng)用,是一種獨(dú)立于平臺(tái)的語言。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(3)專用語言:專用語言是為特殊應(yīng)用而設(shè)計(jì)的編程語言,它通常有特殊的語法形式,面向特定的問題,輸入結(jié)構(gòu)及詞匯表都與該問題密切相關(guān)。LISP、Prolog,適用于人工智能領(lǐng)域,特別是關(guān)于知識(shí)表示和專家系統(tǒng)構(gòu)造
APL,為數(shù)組和向量運(yùn)算設(shè)計(jì)的簡潔而強(qiáng)有力的語言Forth,為開發(fā)微處理機(jī)軟件設(shè)計(jì)的語言,支持用戶自定義函數(shù)并以面向堆棧方式執(zhí)行,以提高速度和節(jié)省內(nèi)存專用語言針對(duì)特殊用途設(shè)計(jì),一般應(yīng)用面窄,翻譯過程簡便、高效,但與通用語言相比,可移植性和可維護(hù)性較差。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(4)腳本語言:腳本語言是為了縮短傳統(tǒng)的編寫—編譯—鏈接—運(yùn)行過程而創(chuàng)建的計(jì)算機(jī)編程語言。早期的腳本語言經(jīng)常被稱為批處理語言或工作控制語言。一個(gè)腳本通常是解釋運(yùn)行而非編譯運(yùn)行。腳本語言通常都有簡單、易學(xué)、易用的特性,目的就是希望能讓程序設(shè)計(jì)師快速完成程序的編寫工作。雖然許多腳本語言都超越了計(jì)算機(jī)簡單任務(wù)自動(dòng)化的領(lǐng)域,可以用來編寫更加復(fù)雜的程序,但仍然被稱為腳本語言。在計(jì)算機(jī)的很多領(lǐng)域中都有腳本語言的存在,包括操作系統(tǒng)、計(jì)算機(jī)游戲、網(wǎng)絡(luò)應(yīng)用程序、字處理軟件等。在許多方面,高級(jí)編程語言和腳本語言互相交叉,二者之間并沒有明確的界限。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(4)腳本語言:許多腳本語言用來執(zhí)行一次性任務(wù),尤其是系統(tǒng)管理方面。它可以把服務(wù)組件粘合起來,因此被廣泛用于圖形用戶界面(GUI)創(chuàng)建或者命令行。操作系統(tǒng)通常提供一些默認(rèn)的腳本語言,如所謂的Shell腳本語言。有些腳本是為了特定領(lǐng)域設(shè)計(jì)的,但有些腳本也可以用來編寫通用的程序。在大型項(xiàng)目中,經(jīng)常把腳本和其他低級(jí)編程語言一起使用,發(fā)揮各自優(yōu)勢(shì)解決特定問題。腳本經(jīng)常用于設(shè)計(jì)互動(dòng)通信,它有許多可以單獨(dú)執(zhí)行的命令,可以做高級(jí)操作。這些命令可以簡化代碼編寫過程。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(4)腳本語言:腳本通常以文本形式(如ASCII)保存,只在被調(diào)用時(shí)進(jìn)行解釋或編譯。腳本編程速度快,且腳本文件體積通常小于同類程序文件。這種靈活性是以執(zhí)行效率為代價(jià)的,腳本通常是解釋執(zhí)行的,速度可能很慢,且運(yùn)行時(shí)更耗內(nèi)存。然而,腳本和傳統(tǒng)編程語言之間的界限越來越模糊。有經(jīng)驗(yàn)的程序員可以對(duì)一些腳本語言進(jìn)行大量優(yōu)化工作。在大多現(xiàn)代系統(tǒng)中通常有多種腳本語言可以選擇,所以推薦使用多種語言(包括C或匯編語言)編寫腳本。4.5.1程序設(shè)計(jì)語言的分類與選擇
3)高級(jí)程序設(shè)計(jì)語言—第三代語言(4)腳本語言:大多數(shù)腳本語言的共性是:良好的快速開發(fā),高效率的執(zhí)行,解釋而非編譯執(zhí)行,和其他語言編寫的程序組件之間通信功能很強(qiáng)大。常見的腳本語言有CShell、JavaScript、Perl、VBScript等。4.5.1程序設(shè)計(jì)語言的分類與選擇
4)智能語言—第四代語言從上面三代語言的發(fā)展來看,人們不斷尋求越來越抽象的形式表示程序,希望可以把程序員從繁雜的過程性細(xì)節(jié)中解放出來,第四代語言(4GL)上升到更高的一個(gè)抽象層次,盡管還在用不同的語法表示程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),但它已不再涉及太多的算法性細(xì)節(jié)。一般認(rèn)為4GL具有簡單易學(xué),用戶界面良好,非過程化程度高,面向問題,只需告知計(jì)算機(jī)“做什么”,而不必告知計(jì)算機(jī)“怎么做”,用4GL編程使用的代碼量較少,并可成數(shù)量級(jí)地提高軟件生產(chǎn)率等特點(diǎn)。4.5.1程序設(shè)計(jì)語言的分類與選擇
4)智能語言—第四代語言目前,4GL主流產(chǎn)品基本上與人工智能技術(shù)無關(guān),但隨著4GL非過程化程度和語言抽象級(jí)的不斷提高,必然要求人工智能技術(shù)的支持。迄今,使用廣泛的第四代語言是數(shù)據(jù)庫查詢語言,它支持用戶以復(fù)雜的方式操作數(shù)據(jù)庫。流行的SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)支持?jǐn)?shù)據(jù)庫的定義和操作,功能強(qiáng)大,簡單易學(xué)。程序生成器(ProgramGenerators)代表更為復(fù)雜的一類4GL,它不必依賴預(yù)先定義的數(shù)據(jù)庫,只需要很少的語句就可生成完整的語言程序。此外,一些決策支持語言(DecisionSupportLanguage)、原型語言(PrototypingLanguage)、形式化規(guī)格說明語言(FormalSpecificationLanguage)也被認(rèn)為屬于4GL的范疇。4.5.1程序設(shè)計(jì)語言的分類與選擇通常情況下,一項(xiàng)任務(wù)可以用多種編程語言來實(shí)現(xiàn)。當(dāng)為一項(xiàng)工程選擇程序設(shè)計(jì)語言時(shí),應(yīng)主要考慮以下幾個(gè)因素:(1)應(yīng)用領(lǐng)域;(2)算法和計(jì)算復(fù)雜性;(3)數(shù)據(jù)結(jié)構(gòu)復(fù)雜性;(4)軟件運(yùn)行環(huán)境;(5)性能方面的需要與實(shí)現(xiàn)的條件;(6)軟件開發(fā)組成員是否都精通這門語言。4.5.2軟件開發(fā)工具----分類
軟件開發(fā)工具根據(jù)其在軟件開發(fā)生命周期中不同的階段所起的作用可以分為以下幾種:(1)軟件建模工具。用于描述系統(tǒng)的需求。(2)軟件實(shí)施工具。用于程序設(shè)計(jì)、編碼和編譯,包括程序語言開發(fā)環(huán)境和集成開發(fā)環(huán)境。前者主要提供程序語言的預(yù)編譯、編譯、鏈接的工具,后者包括編輯器、代碼生成器、運(yùn)行環(huán)境和調(diào)試器。(3)模擬運(yùn)行平臺(tái)。用于模擬系統(tǒng)的實(shí)際運(yùn)行環(huán)境。(4)軟件測(cè)試工具。用于對(duì)系統(tǒng)、子系統(tǒng)、模塊或單元進(jìn)行測(cè)試。(5)軟件開發(fā)支撐工具。主要是軟件配置管理工具。包括進(jìn)度管理、資源管理、費(fèi)用管理和版本管理、文檔的編制或生成等。4.5.2軟件開發(fā)工具----性能軟件開發(fā)工具的性能由以下幾個(gè)方面決定:(1)表達(dá)能力或描述能力。表達(dá)能力或描述能力決定了軟件開發(fā)工具對(duì)軟件項(xiàng)目中各種不同情況的適應(yīng)程度。(2)保持信息一致性的能力。對(duì)某些大規(guī)模軟件系統(tǒng),保持信息一致性(包括各部分之間的一致性、代碼與文檔的一致性、功能與結(jié)構(gòu)的一致性)要求工具提供有效的支持。(3)使用的方便程度。人機(jī)界面良好、通俗易懂是衡量軟件開發(fā)工具性能的另一指標(biāo)。(4)工具的可靠性。包括對(duì)重要信息的保護(hù)和抗干擾能力。(5)對(duì)硬件和軟件環(huán)境的要求。這對(duì)開發(fā)工具的適用范圍具有深遠(yuǎn)影響。4.5.2軟件開發(fā)工具----集成開發(fā)環(huán)境軟件開發(fā)環(huán)境的主要組成部分是軟件開發(fā)工具。軟件開發(fā)環(huán)境中各種開發(fā)工具并不是各自封閉和分離的,而是以綜合、一致和整體連貫的形態(tài)來支持軟件的開發(fā)的,所以一般將軟件開發(fā)環(huán)境稱為集成開發(fā)環(huán)境(IDE,IntegratedDevelopmentEnvironment),它是一種輔助程序開發(fā)人員開發(fā)軟件的應(yīng)用軟件。IDE通常包括編程語言編輯器、編譯器/解釋器、自動(dòng)建立工具,通常還包括調(diào)試器。有時(shí)還會(huì)包含版本控制系統(tǒng)和一些可以設(shè)計(jì)圖形用戶界面的工具。4.5.2軟件開發(fā)工具----集成開發(fā)環(huán)境雖然目前有一些IDE支持多種編程語言(如Eclipse、NetBeans、XCode、MicrosoftVisualStudio),但是一般而言,IDE主要還是針對(duì)某種編程語言(如VisualBasic)。IDE程序提供許多功能,如制作、修改、編譯、發(fā)布、調(diào)試。IDE可以把各種開發(fā)工具結(jié)合起來,提供一個(gè)抽象化的工具,可以減少學(xué)習(xí)編程語言的時(shí)間,增加開發(fā)人員的生產(chǎn)力,同時(shí)也可以將各種開發(fā)工作做更密切的整合,提高生產(chǎn)力。例如,在寫程序的時(shí)候就可以做編譯,一發(fā)現(xiàn)有語法上的錯(cuò)誤就立即回應(yīng)。4.5.2軟件開發(fā)工具----集成開發(fā)環(huán)境集成開發(fā)環(huán)境有很多,這里僅就影響較大、流行較廣的微軟公司推出的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境VisualStudio進(jìn)行簡單介紹,以便大家具體了解軟件開發(fā)工具的功能和作用。VisualStudio97是最早的VisualStudio版本。包含面向Windows開發(fā)使用的VisualBasic5.0、VisualC++5.0,面向Java開發(fā)的VisualJ++和面向數(shù)據(jù)庫開發(fā)的VisualFoxPro,還包含面向網(wǎng)站開發(fā)的VisualInterDev。其中,VisualBasic和VisualFoxPro使用單獨(dú)的開發(fā)環(huán)境,其他的開發(fā)語言使用統(tǒng)一的開發(fā)環(huán)境。4.5.2軟件開發(fā)工具----集成開發(fā)環(huán)境1998年,微軟公司發(fā)布了VisualStudio6.0。所有開發(fā)語言的開發(fā)環(huán)境版本均升至6.0。這也是VisualBasic最后一次發(fā)布,從下一個(gè)版本(7.0)開始,MicrosoftVisualBasic進(jìn)化成了一種新的面向?qū)ο蟮恼Z言—MicrosoftVisualBasic.NET。自微軟發(fā)布VisualStudio6.0以來,VisualStudio的IDE已經(jīng)成為軟件開發(fā)工具的標(biāo)桿,很多其他的開發(fā)工具,甚至是其他用途的應(yīng)用程序,都在模仿VisualStudio的IDE。VisualStudio現(xiàn)在已經(jīng)逐漸將軟件開發(fā)環(huán)境擴(kuò)展到軟件設(shè)計(jì)和協(xié)作、生命周期,以及更改管理系統(tǒng)等方面,VisualStudio2012版本提供了更為簡便優(yōu)化界面,實(shí)現(xiàn)輕松導(dǎo)航項(xiàng)目應(yīng)用程序;加入了針對(duì)Windows8項(xiàng)目的可視化的工具集,對(duì)于Web開發(fā),增加了最新的模板、工具以及對(duì)HTML5和CSS3等新標(biāo)準(zhǔn)的全面支持等。4.5.3VB程序設(shè)計(jì)語言----簡介VisualBasic提供了從設(shè)計(jì)新型的用戶界面到利用其他應(yīng)用程序的對(duì)象,從處理文字、圖像到使用數(shù)據(jù)庫,開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司班組戶外活動(dòng)方案
- 公司立flag活動(dòng)方案
- 公司清明工會(huì)活動(dòng)方案
- 公司活動(dòng)中心策劃方案
- 公司猜盲盒活動(dòng)方案
- 公司組織跑步活動(dòng)方案
- 公司新年服裝定制活動(dòng)方案
- 公司服裝大賽活動(dòng)方案
- 公司組內(nèi)活動(dòng)策劃方案
- 2025年運(yùn)動(dòng)醫(yī)學(xué)與運(yùn)動(dòng)訓(xùn)練課程考試試題及答案
- 2025年湖南省普通高中學(xué)業(yè)水平考試合格性考試模擬試題(長郡版高一生物)(原卷版)
- 2025春國家開放大學(xué)《思想道德與法治》終考大作業(yè)答案
- 2025年廣東省廣州市白云區(qū)中考語文二模試卷
- 【英語(新高考Ⅰ卷)】2025年普通高等學(xué)校招生全國統(tǒng)一考試
- 2025年天津市河西區(qū)中考二模數(shù)學(xué)試題(含部分答案)
- 醫(yī)院培訓(xùn)課件:《藥品不良反應(yīng)報(bào)告和監(jiān)測(cè)工作簡介》
- 廣東省東莞市2025屆九年級(jí)下學(xué)期中考三模語文試卷(含答案)
- 2025 屆九年級(jí)初三畢業(yè)典禮校長講話:星河長明共赴新程
- 2025年生態(tài)文明建設(shè)的考核試卷及答案
- GM/T 0009-2023SM2密碼算法使用規(guī)范
- 高效能人士七個(gè)習(xí)慣之一積極主動(dòng)
評(píng)論
0/150
提交評(píng)論