版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計程序設(shè)計(programing)(programing)是指利用計算機解決問是指利用計算機解決問題的全過程,它包含多方面的內(nèi)容,而編寫程題的全過程,它包含多方面的內(nèi)容,而編寫程序只是其中的一部分。序只是其中的一部分。 分析問題確定處理方案確定操作步驟編寫程序上機運行程序整理結(jié)果 程序設(shè)計的一般步驟:例如:求圓的面積和周長的程序設(shè)計一般步驟:例如:求圓的面積和周長的程序設(shè)計一般步驟: 分析問題。分析問題。求圓的面積和周長需要知道圓的半徑求圓的面積和周長需要知道圓的半徑r r,根據(jù)圓的半徑求出圓的面積根據(jù)圓的半徑求出圓的面積s s和周長和周長l l并輸出結(jié)果。并輸出結(jié)果。 確定處理方案。確
2、定處理方案。求圓的面積數(shù)學(xué)公式是:求圓的面積數(shù)學(xué)公式是:s=rs=r2 2,求圓的周長公式是:求圓的周長公式是:l=2rl=2r 確定操作步驟。確定操作步驟。求圓的面積和周長的算法描述為:求圓的面積和周長的算法描述為: 置置pi=3.14159pi=3.14159為常量為常量 置置 r r為初值為初值 計算面積計算面積s s 計算周長計算周長l l 輸出結(jié)果輸出結(jié)果s s,l l 根據(jù)操作步驟編寫源程序。根據(jù)操作步驟編寫源程序。將上面求圓的面積和周將上面求圓的面積和周長算法編寫源程序如下長算法編寫源程序如下( (利用語言編寫利用語言編寫) ): define pi 3.14159define
3、pi 3.14159 main() main() float r=3 float r=3,s s,l l; s=pis=pi* *r r* *r r; l=2l=2* *pipi* *r r;printf(“s=%fprintf(“s=%f,l=%fnl=%fn”, s s, l)l); 運行調(diào)試程序。運行調(diào)試程序。 整理輸出結(jié)果,寫出相關(guān)文檔。整理輸出結(jié)果,寫出相關(guān)文檔。程序設(shè)計方法與風(fēng)格程序設(shè)計方法與風(fēng)格程序設(shè)計方法是指關(guān)于以什么觀點程序設(shè)計方法是指關(guān)于以什么觀點來研究問題并進行求解,以及如何來研究問題并進行求解,以及如何進行系統(tǒng)設(shè)計的軟件方法學(xué)。程序進行系統(tǒng)設(shè)計的軟件方法學(xué)。程序設(shè)計方法
4、主要經(jīng)過了結(jié)構(gòu)化程序設(shè)設(shè)計方法主要經(jīng)過了結(jié)構(gòu)化程序設(shè)計和面向?qū)ο蟪绦蛟O(shè)計兩個階段計和面向?qū)ο蟪绦蛟O(shè)計兩個階段 。 程序設(shè)計方法與風(fēng)格程序設(shè)計方法與風(fēng)格程序設(shè)計風(fēng)格是指編寫程序時所表程序設(shè)計風(fēng)格是指編寫程序時所表現(xiàn)出的特點、習(xí)慣和邏輯思路。從現(xiàn)出的特點、習(xí)慣和邏輯思路。從總體上說,程序設(shè)計風(fēng)格強調(diào)簡單總體上說,程序設(shè)計風(fēng)格強調(diào)簡單和清晰。和清晰?!扒逦谝?,效率第二清晰第一,效率第二”的觀點是當(dāng)今主導(dǎo)的程序設(shè)計風(fēng)格的觀點是當(dāng)今主導(dǎo)的程序設(shè)計風(fēng)格。 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計采用自頂向下、逐步求精的方法程序結(jié)構(gòu)模塊化,每個模塊只有一個入口和一個出口使用三種基本控制結(jié)構(gòu)描述程序流程原則:原則:結(jié)構(gòu)
5、化程序設(shè)計是指:為使程序具有一個合結(jié)構(gòu)化程序設(shè)計是指:為使程序具有一個合理的結(jié)構(gòu)以保證程序正確性而規(guī)定的一套如理的結(jié)構(gòu)以保證程序正確性而規(guī)定的一套如何進行程序設(shè)計的原則。何進行程序設(shè)計的原則。 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計基本結(jié)構(gòu):基本結(jié)構(gòu):ab假真pab真假ap真假apq 數(shù)據(jù)與對數(shù)據(jù)的操作數(shù)據(jù)與對數(shù)據(jù)的操作( (函數(shù)函數(shù)) )相分離相分離q 可重用性差可重用性差 結(jié)構(gòu)化程序設(shè)計結(jié)構(gòu)化程序設(shè)計q 程序結(jié)構(gòu)良好程序結(jié)構(gòu)良好q 程序清晰易讀、使用和維護程序清晰易讀、使用和維護q 提高編程的效率,降低開發(fā)成本提高編程的效率,降低開發(fā)成本優(yōu)點優(yōu)
6、點缺點缺點在現(xiàn)實生活中,所有東西都是對象,例如某在現(xiàn)實生活中,所有東西都是對象,例如某一輛車就是一個對象,指具體的一輛車,某一輛車就是一個對象,指具體的一輛車,某個人也是一個對象,指具體的一個人。對象個人也是一個對象,指具體的一個人。對象既可以很簡單,也可以很復(fù)雜,復(fù)雜的對象既可以很簡單,也可以很復(fù)雜,復(fù)雜的對象可以由若干簡單的對象構(gòu)成??梢杂扇舾珊唵蔚膶ο髽?gòu)成。任何對象都有兩個共同的特點:任何對象都有兩個共同的特點:對象的屬性對象的屬性和和對象的對象的操作。一個對象通常由對象名、屬操作。一個對象通常由對象名、屬性和操作組成。性和操作組成。概概念念屬性是用來描述對象的狀態(tài),對象的狀態(tài)又屬性是用
7、來描述對象的狀態(tài),對象的狀態(tài)又稱為對象的靜態(tài)屬性,包括對象內(nèi)部所包含稱為對象的靜態(tài)屬性,包括對象內(nèi)部所包含的信息,每個對象都具有自己專有的內(nèi)部信的信息,每個對象都具有自己專有的內(nèi)部信息,這些信息說明了對象所處的狀態(tài)。息,這些信息說明了對象所處的狀態(tài)。例如一個球?qū)ο笥凶约旱馁|(zhì)地、顏色、大小例如一個球?qū)ο笥凶约旱馁|(zhì)地、顏色、大小等。當(dāng)給對象實施了某種操作后,其狀態(tài)就等。當(dāng)給對象實施了某種操作后,其狀態(tài)就會發(fā)生變化,這一變化體現(xiàn)在信息的改變上。會發(fā)生變化,這一變化體現(xiàn)在信息的改變上。例如,改變球的顏色,其顏色屬性得到改變。例如,改變球的顏色,其顏色屬性得到改變。概概念念對象的操作又稱為對象的行為,主
8、對象的操作又稱為對象的行為,主要表述對象的動態(tài)屬性。操作的作要表述對象的動態(tài)屬性。操作的作用是設(shè)置或改變對象的狀態(tài)。例如用是設(shè)置或改變對象的狀態(tài)。例如一個球可以滾動、停止或旋轉(zhuǎn)等行一個球可以滾動、停止或旋轉(zhuǎn)等行為或操作。為或操作。概概念念方法是指當(dāng)某個行為作用在方法是指當(dāng)某個行為作用在對象時,我們就稱對象執(zhí)行對象時,我們就稱對象執(zhí)行了一個方法。方法定義了一了一個方法。方法定義了一系列的計算步驟系列的計算步驟( (相當(dāng)于函相當(dāng)于函數(shù)數(shù)) )。 概概念念封裝就是把對象的屬性和操作結(jié)合成一個不可分封裝就是把對象的屬性和操作結(jié)合成一個不可分割的整體,在這個整體中一些屬性割的整體,在這個整體中一些屬性(
9、 (操作操作) )是被保是被保護的,以防外界的干擾和誤操作,另一些屬性護的,以防外界的干擾和誤操作,另一些屬性( (操操作作) )是公共的,它們作為接口供外界使用。封裝的是公共的,它們作為接口供外界使用。封裝的結(jié)果就是使一個對象形成接口和實現(xiàn)兩個部分。結(jié)果就是使一個對象形成接口和實現(xiàn)兩個部分。對于用戶來說,接口是可見的,實現(xiàn)是不可見的。對于用戶來說,接口是可見的,實現(xiàn)是不可見的。封裝是面向?qū)ο蠓椒ㄖ匾臋C制,其目的是有效封裝是面向?qū)ο蠓椒ㄖ匾臋C制,其目的是有效地實現(xiàn)信息隱藏原則。地實現(xiàn)信息隱藏原則。概概念念接口是對象接受外部消息時所要進行操作的接口是對象接受外部消息時所要進行操作的集合。例如
10、:我們看到的是臺燈這個整體以集合。例如:我們看到的是臺燈這個整體以及臺燈與外部發(fā)生聯(lián)系的開關(guān)按鈕和亮度旋及臺燈與外部發(fā)生聯(lián)系的開關(guān)按鈕和亮度旋鈕鈕( (接口接口) ),而不是一些導(dǎo)線、連接燈泡的線,而不是一些導(dǎo)線、連接燈泡的線路、實現(xiàn)開關(guān)、亮度功能的線路等是不可見路、實現(xiàn)開關(guān)、亮度功能的線路等是不可見的的( (實現(xiàn)實現(xiàn)) )。 概概念念是一組具有相同屬性和相同操作的對象是一組具有相同屬性和相同操作的對象的集合。一個類中的每個對象都是這個的集合。一個類中的每個對象都是這個類的一個實例。例如,人就是一個類類的一個實例。例如,人就是一個類( (不不是指具體的某個人是指具體的某個人) ),而具體的一個
11、人就,而具體的一個人就是人類的一個實例是人類的一個實例( (對象對象) )。再比如,定。再比如,定義了一個名為義了一個名為“球球”的類,那么,足球、的類,那么,足球、排球、籃球就是排球、籃球就是“球球”類的一個個實例。類的一個個實例。 概概念念事件是為了完成某一任務(wù),向一個對象事件是為了完成某一任務(wù),向一個對象提供的、并體現(xiàn)其功能的操作。一個事提供的、并體現(xiàn)其功能的操作。一個事件就是接收到一條消息后所執(zhí)行的處理。件就是接收到一條消息后所執(zhí)行的處理。事件是對象的動作,而這個動作可能會事件是對象的動作,而這個動作可能會改變對象內(nèi)部的狀況或向外界提供某種改變對象內(nèi)部的狀況或向外界提供某種功能。例如功
12、能。例如“球球”類的撞擊事件,撞擊類的撞擊事件,撞擊可以使球滾動??梢允骨驖L動。 概概念念繼承是表達類之間相似性的一種機制,即在已有的繼承是表達類之間相似性的一種機制,即在已有的類的基礎(chǔ)之上增加構(gòu)造新的類,前者稱為父類類的基礎(chǔ)之上增加構(gòu)造新的類,前者稱為父類( (或或超類超類) ),后者稱為子類。子類除自動擁有父類的全,后者稱為子類。子類除自動擁有父類的全部屬性和操作外,還可以進一步定義新的屬性和操部屬性和操作外,還可以進一步定義新的屬性和操作。如果子類只從一個父類繼承,則稱為單一繼承;作。如果子類只從一個父類繼承,則稱為單一繼承;如果子類從一個以上父類繼承,則稱為多重繼承。如果子類從一個以上
13、父類繼承,則稱為多重繼承。 優(yōu)點:能清晰地體現(xiàn)相關(guān)類之間的層次結(jié)構(gòu)關(guān)系;優(yōu)點:能清晰地體現(xiàn)相關(guān)類之間的層次結(jié)構(gòu)關(guān)系;可以減少代碼和數(shù)據(jù)的冗余,增加程序的復(fù)用能力??梢詼p少代碼和數(shù)據(jù)的冗余,增加程序的復(fù)用能力。概概念念例如,定義一個例如,定義一個“汽車汽車”類,屬性有類,屬性有( (變量變量) ):發(fā):發(fā)動機、方向盤、車輪、燈、油箱、顏色、幾何尺動機、方向盤、車輪、燈、油箱、顏色、幾何尺寸及各種零件等;方法有寸及各種零件等;方法有( (函數(shù)函數(shù)) ):開、停、倒退:開、停、倒退等。但在現(xiàn)實中有這樣一類車和上面所定義的等。但在現(xiàn)實中有這樣一類車和上面所定義的“汽車汽車”類非常相似,差別很小,只是車
14、輪小,類非常相似,差別很小,只是車輪小,油箱小,限乘座油箱小,限乘座5 5人。于是,可在人。于是,可在“汽車汽車”類的基類的基礎(chǔ)之上派生一個新的類型,叫礎(chǔ)之上派生一個新的類型,叫“小型汽車類小型汽車類”,它是在它是在“汽車類汽車類”的基礎(chǔ)上加上了一些新的特性。的基礎(chǔ)上加上了一些新的特性。概概念念對象間的相互合作需要一個機制協(xié)助進行,這樣對象間的相互合作需要一個機制協(xié)助進行,這樣的機制稱為的機制稱為“消息消息”。也就是說,消息是向?qū)ο?。也就是說,消息是向?qū)ο蟀l(fā)出的服務(wù)請求,是對象和對象之間進行通信的發(fā)出的服務(wù)請求,是對象和對象之間進行通信的手段。一個對象通過向另一個對象發(fā)送消息來請手段。一個對象
15、通過向另一個對象發(fā)送消息來請求服務(wù),接收到消息的對象經(jīng)過解釋,然后給予求服務(wù),接收到消息的對象經(jīng)過解釋,然后給予響應(yīng)。這種通訊機制叫做消息傳遞。響應(yīng)。這種通訊機制叫做消息傳遞。消息要素通常包括:發(fā)送對象、接受對象、操作消息要素通常包括:發(fā)送對象、接受對象、操作和適當(dāng)?shù)膮?shù)。和適當(dāng)?shù)膮?shù)。概概念念對象在收到消息時要予以響應(yīng),不同的對象對象在收到消息時要予以響應(yīng),不同的對象收到同一消息可產(chǎn)生完全不同的結(jié)果,這一收到同一消息可產(chǎn)生完全不同的結(jié)果,這一現(xiàn)象叫做多態(tài)性?,F(xiàn)象叫做多態(tài)性。多態(tài)性增強了軟件的靈活性和重用性。多態(tài)性增強了軟件的靈活性和重用性。多態(tài)性與繼承性相結(jié)合使軟件具有更廣的重多態(tài)性與繼承性
16、相結(jié)合使軟件具有更廣的重用性和可擴充性。用性和可擴充性。概概念念特性:特性:基本思想基本思想: : 將人們在日常生活中習(xí)慣的思維方將人們在日常生活中習(xí)慣的思維方式和表達方式應(yīng)用在程序設(shè)計中,以客觀世界式和表達方式應(yīng)用在程序設(shè)計中,以客觀世界中的對象為中心,以類和繼承為構(gòu)造機制來進中的對象為中心,以類和繼承為構(gòu)造機制來進行軟件開發(fā)活動。行軟件開發(fā)活動。 優(yōu)點優(yōu)點: : 符合人們通常解決問題的思維方式;對符合人們通常解決問題的思維方式;對象結(jié)構(gòu)穩(wěn)定;軟件具有易于擴充、修改和維護象結(jié)構(gòu)穩(wěn)定;軟件具有易于擴充、修改和維護的特性。的特性。封裝性、繼承性、多態(tài)性封裝性、繼承性、多態(tài)性 軟件危機是指在軟件的
17、開發(fā)和維護過程中所遇到的一軟件危機是指在軟件的開發(fā)和維護過程中所遇到的一系列嚴(yán)重問題。軟件危機主要體現(xiàn)在以下幾個方面:系列嚴(yán)重問題。軟件危機主要體現(xiàn)在以下幾個方面: 軟件開發(fā)的實際成本和進度估計不準(zhǔn)確軟件開發(fā)的實際成本和進度估計不準(zhǔn)確 開發(fā)出來的軟件常常不能使用戶滿意開發(fā)出來的軟件常常不能使用戶滿意 軟件產(chǎn)品的質(zhì)量不高,存在漏洞,需要經(jīng)常打補丁軟件產(chǎn)品的質(zhì)量不高,存在漏洞,需要經(jīng)常打補丁 大量已有的軟件難以維護大量已有的軟件難以維護 軟件缺少有關(guān)的文檔資料軟件缺少有關(guān)的文檔資料 軟件的開發(fā)和維護成本不斷提高,直接威脅計算機應(yīng)軟件的開發(fā)和維護成本不斷提高,直接威脅計算機應(yīng)用的擴大用的擴大 軟件生
18、產(chǎn)技術(shù)進步緩慢,跟不上硬件的發(fā)展和人們需軟件生產(chǎn)技術(shù)進步緩慢,跟不上硬件的發(fā)展和人們需求的增長求的增長軟件工程軟件工程是指應(yīng)用計算機科學(xué)、數(shù)學(xué)及管是指應(yīng)用計算機科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法來理科學(xué)等原理,以工程化的原則和方法來開發(fā)與維護軟件的學(xué)科。研究軟件工程的開發(fā)與維護軟件的學(xué)科。研究軟件工程的主要主要目的目的就是在規(guī)定的時間、規(guī)定的開發(fā)就是在規(guī)定的時間、規(guī)定的開發(fā)費用內(nèi)開發(fā)出滿足用戶需求的高質(zhì)量的軟費用內(nèi)開發(fā)出滿足用戶需求的高質(zhì)量的軟件系統(tǒng)件系統(tǒng)( (高質(zhì)量是指錯誤率低、好用、易高質(zhì)量是指錯誤率低、好用、易用、可移植、易維護等用、可移植、易維護等) )。軟件工程的原則:
19、軟件工程的原則: 制定階段計劃制定階段計劃 階段評審階段評審 制定規(guī)范,實行嚴(yán)格的產(chǎn)品控制制定規(guī)范,實行嚴(yán)格的產(chǎn)品控制將軟件產(chǎn)品從開始計劃起,到廢棄不用止,將軟件產(chǎn)品從開始計劃起,到廢棄不用止,稱為稱為軟件生命周期軟件生命周期。軟件生命周期一般劃分為軟件生命周期一般劃分為計劃、開發(fā)和運行計劃、開發(fā)和運行3 3個時期,每一時期又區(qū)分為若干個階段。個時期,每一時期又區(qū)分為若干個階段。計劃時期有問題定義和可行性研究兩個階段;計劃時期有問題定義和可行性研究兩個階段;開發(fā)時期有需求分析、設(shè)計、編碼和測試開發(fā)時期有需求分析、設(shè)計、編碼和測試4 4個階段;運行時期主要是系統(tǒng)維護階段。個階段;運行時期主要是系
20、統(tǒng)維護階段。 軟件生命周期軟件生命周期模型是為了理解事物而對事模型是為了理解事物而對事物做出的抽象。軟件生命周物做出的抽象。軟件生命周期模型是描述軟件開發(fā)過程期模型是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。中各種活動如何執(zhí)行的模型。常見的軟件生命周期模型有:常見的軟件生命周期模型有:瀑布模型、增量模型、螺旋瀑布模型、增量模型、螺旋模型、噴泉模型、變換模型模型、噴泉模型、變換模型及基于知識的模型等。右圖及基于知識的模型等。右圖是軟件生存期的瀑布模型。是軟件生存期的瀑布模型。 軟件生命周期模型軟件生命周期模型顧名思義,軟件工具就是幫助開發(fā)軟件的軟件。顧名思義,軟件工具就是幫助開發(fā)軟件的軟件。它們
21、對提高軟件生產(chǎn)率,促進軟件生產(chǎn)的自動它們對提高軟件生產(chǎn)率,促進軟件生產(chǎn)的自動化都有重要的作用?;加兄匾淖饔?。 軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境( (或稱軟件工程環(huán)境或稱軟件工程環(huán)境) )是全面支持是全面支持軟件開發(fā)全過程的軟件工具的集合,這些軟件軟件開發(fā)全過程的軟件工具的集合,這些軟件工具按照一定的方法和模式組合起來,共同支工具按照一定的方法和模式組合起來,共同支持軟件生命周期內(nèi)的各個階段和各項任務(wù)的完持軟件生命周期內(nèi)的各個階段和各項任務(wù)的完成。成。 軟件工具與軟件開發(fā)環(huán)境軟件工具與軟件開發(fā)環(huán)境軟件工程過程就是使用適當(dāng)?shù)馁Y軟件工程過程就是使用適當(dāng)?shù)馁Y源,為開發(fā)軟件進行的一組開發(fā)源,為開發(fā)軟件進行的
22、一組開發(fā)活動。這組活動包含活動。這組活動包含“計劃計劃”、“開發(fā)開發(fā)”、“運行運行”。將這組活。將這組活動分為若干階段,每個階段應(yīng)完動分為若干階段,每個階段應(yīng)完成的基本任務(wù)和產(chǎn)生的文檔如表成的基本任務(wù)和產(chǎn)生的文檔如表5.15.1所示所示目的:目的:弄清弄清“用戶需要計算機解決什用戶需要計算機解決什么問題么問題”,以及項目所需的,以及項目所需的資源和經(jīng)費資源和經(jīng)費任務(wù):任務(wù):進行調(diào)研和分析,通過向用戶進行調(diào)研和分析,通過向用戶調(diào)查后進行高度地抽象,編調(diào)查后進行高度地抽象,編寫出寫出“系統(tǒng)目標(biāo)與范圍說明系統(tǒng)目標(biāo)與范圍說明書書”文檔文檔目的:目的:弄清弄清“用戶要解決的問題是否能夠解用戶要解決的問題
23、是否能夠解決和值得解決決和值得解決”任務(wù):任務(wù):對用戶提出的問題從技術(shù)、經(jīng)濟、運對用戶提出的問題從技術(shù)、經(jīng)濟、運行和法律等方面來研究其可行性,行和法律等方面來研究其可行性,并寫出并寫出“可行性論證報告可行性論證報告”。如果。如果結(jié)論認(rèn)為該項目值得進行,接著應(yīng)結(jié)論認(rèn)為該項目值得進行,接著應(yīng)制訂出制訂出“項目實施計劃項目實施計劃”,否則便,否則便應(yīng)提出終止該項目的建議應(yīng)提出終止該項目的建議目的:目的:要解決的問題是要解決的問題是“做什么做什么”。具體而言,就是通過對問題及具體而言,就是通過對問題及其環(huán)境的理解、分析和綜合,其環(huán)境的理解、分析和綜合,以確定最終的目標(biāo)系統(tǒng)必須做以確定最終的目標(biāo)系統(tǒng)必須
24、做哪些工作哪些工作任務(wù):任務(wù):編寫編寫“需求規(guī)格說明書需求規(guī)格說明書”,這,這份文檔應(yīng)包括對軟件的性能需份文檔應(yīng)包括對軟件的性能需求、功能需求、環(huán)境約束和外求、功能需求、環(huán)境約束和外部接口等描述部接口等描述 目的:目的:確定軟件的總體結(jié)構(gòu)、數(shù)確定軟件的總體結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、用戶界面和算法據(jù)結(jié)構(gòu)、用戶界面和算法細(xì)節(jié)細(xì)節(jié) 任務(wù):任務(wù):將需求階段產(chǎn)生的軟件需將需求階段產(chǎn)生的軟件需求說明轉(zhuǎn)換為用適當(dāng)手段求說明轉(zhuǎn)換為用適當(dāng)手段表示的軟件設(shè)計文檔表示的軟件設(shè)計文檔軟件設(shè)計分為軟件設(shè)計分為總體設(shè)計和詳細(xì)設(shè)總體設(shè)計和詳細(xì)設(shè)計計 總體設(shè)計總體設(shè)計 目的:目的:要解決的問題是要解決的問題是“怎樣實現(xiàn)目標(biāo)系怎樣實現(xiàn)目
25、標(biāo)系統(tǒng)統(tǒng)” ” 任務(wù):任務(wù):確定軟件的總體結(jié)構(gòu),進行模塊劃確定軟件的總體結(jié)構(gòu),進行模塊劃分,確定每個模塊的功能、接口及分,確定每個模塊的功能、接口及模塊之間的調(diào)用關(guān)系,并對全局?jǐn)?shù)模塊之間的調(diào)用關(guān)系,并對全局?jǐn)?shù)據(jù)結(jié)構(gòu)進行設(shè)計,同時產(chǎn)生概要設(shè)據(jù)結(jié)構(gòu)進行設(shè)計,同時產(chǎn)生概要設(shè)計說明書計說明書 詳細(xì)設(shè)計詳細(xì)設(shè)計 目的:目的:要解決的問題是要解決的問題是“應(yīng)該怎樣具體實應(yīng)該怎樣具體實現(xiàn)目標(biāo)系統(tǒng)現(xiàn)目標(biāo)系統(tǒng)” ” 任務(wù):任務(wù):在概要設(shè)計的基礎(chǔ)上,設(shè)計每個模在概要設(shè)計的基礎(chǔ)上,設(shè)計每個模塊實現(xiàn)的細(xì)節(jié)及對局部數(shù)據(jù)進行設(shè)塊實現(xiàn)的細(xì)節(jié)及對局部數(shù)據(jù)進行設(shè)計計( (包括模塊的數(shù)據(jù)結(jié)構(gòu)和所需的包括模塊的數(shù)據(jù)結(jié)構(gòu)和所需的算法
26、算法) ),同時產(chǎn)生詳細(xì)設(shè)計說明書,同時產(chǎn)生詳細(xì)設(shè)計說明書目的:目的:產(chǎn)生能在計算機上執(zhí)行的程產(chǎn)生能在計算機上執(zhí)行的程序序任務(wù):任務(wù):根據(jù)系統(tǒng)的要求和開發(fā)環(huán)境,根據(jù)系統(tǒng)的要求和開發(fā)環(huán)境,選用合適的程序設(shè)計語言,選用合適的程序設(shè)計語言,把詳細(xì)設(shè)計的結(jié)果翻譯成用把詳細(xì)設(shè)計的結(jié)果翻譯成用該程序設(shè)計語言編寫的程序該程序設(shè)計語言編寫的程序代碼代碼( (源程序源程序) )軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)軟件測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程行程序的過程目的和任務(wù):目的和任務(wù):通過在計算機上執(zhí)行程序通過在計算機上執(zhí)行程序來盡可能多地發(fā)現(xiàn)軟件產(chǎn)品中的錯誤和來盡可能多地發(fā)現(xiàn)軟件產(chǎn)品中的錯誤和缺陷,并改
27、正程序中的錯誤,以保證程缺陷,并改正程序中的錯誤,以保證程序的可靠運行序的可靠運行 軟件測試分為軟件測試分為靜態(tài)分析和動態(tài)測靜態(tài)分析和動態(tài)測試動態(tài)測試又分為試動態(tài)測試又分為白盒測試和黑盒測試白盒測試和黑盒測試 軟件測試的每一次測試都需要準(zhǔn)備好一些軟件測試的每一次測試都需要準(zhǔn)備好一些測試數(shù)據(jù),與被測程序一起輸入到計算機測試數(shù)據(jù),與被測程序一起輸入到計算機中執(zhí)行;一般把程序執(zhí)行一次需要的一組中執(zhí)行;一般把程序執(zhí)行一次需要的一組測試數(shù)據(jù)和該組測試數(shù)據(jù)可以得出怎樣的測試數(shù)據(jù)和該組測試數(shù)據(jù)可以得出怎樣的輸出結(jié)果輸出結(jié)果( (期望結(jié)果期望結(jié)果) )稱為一個稱為一個“測試用測試用例例”,每一個測試用例產(chǎn)生一
28、個相應(yīng)的,每一個測試用例產(chǎn)生一個相應(yīng)的“測試結(jié)果測試結(jié)果”,如果它與,如果它與“期望結(jié)果期望結(jié)果”不不相符合,說明程序中存在錯誤,需要改正相符合,說明程序中存在錯誤,需要改正錯誤。錯誤。 白盒測試白盒測試 是測試者完全了解被測程序的內(nèi)部是測試者完全了解被測程序的內(nèi)部邏輯結(jié)構(gòu)和處理過程,因此,可以邏輯結(jié)構(gòu)和處理過程,因此,可以對其內(nèi)部結(jié)構(gòu)和處理過程進行測試,對其內(nèi)部結(jié)構(gòu)和處理過程進行測試,檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否檢驗內(nèi)部控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)是否有錯,實際的運行結(jié)果與期望的結(jié)有錯,實際的運行結(jié)果與期望的結(jié)果是否一致果是否一致 黑盒測試黑盒測試 是測試者已經(jīng)知道被測程序的功能,而是測試者已經(jīng)知道
29、被測程序的功能,而對程序內(nèi)部的邏輯結(jié)構(gòu)和處理過程完全對程序內(nèi)部的邏輯結(jié)構(gòu)和處理過程完全不用考慮,只是對它的每一個功能進行不用考慮,只是對它的每一個功能進行測試,將測試后的結(jié)果與期望的結(jié)果進測試,將測試后的結(jié)果與期望的結(jié)果進行分析比較,檢查程序的功能是否符合行分析比較,檢查程序的功能是否符合規(guī)格說明書的要求。規(guī)格說明書的要求。黑盒測試是在程序接口進行的測試黑盒測試是在程序接口進行的測試測試用例設(shè)計測試用例設(shè)計 測試用例是由測試數(shù)據(jù)和期望結(jié)果測試用例是由測試數(shù)據(jù)和期望結(jié)果組成。設(shè)計測試用例的目的就是用組成。設(shè)計測試用例的目的就是用盡可能少的測試數(shù)據(jù),達到盡可能盡可能少的測試數(shù)據(jù),達到盡可能大的程序
30、覆蓋面,發(fā)現(xiàn)盡可能多的大的程序覆蓋面,發(fā)現(xiàn)盡可能多的軟件錯誤和問題軟件錯誤和問題 用白盒法設(shè)計測試用例常用以下幾種技術(shù):用白盒法設(shè)計測試用例常用以下幾種技術(shù): 語句覆蓋語句覆蓋 判定覆蓋判定覆蓋 條件覆蓋條件覆蓋 判定條件覆蓋判定條件覆蓋 條件組合覆蓋條件組合覆蓋 路徑覆蓋路徑覆蓋用黑盒法設(shè)計測試用例常用以下幾種技術(shù):用黑盒法設(shè)計測試用例常用以下幾種技術(shù): 等價類劃分法等價類劃分法 邊界值分析法邊界值分析法 錯誤推測法錯誤推測法 因果圖法因果圖法 軟件測試的原則軟件測試的原則 確定期望輸出結(jié)果確定期望輸出結(jié)果 測試者應(yīng)避免測試自己的程序測試者應(yīng)避免測試自己的程序 對非法和非期望的輸入數(shù)據(jù)也要像
31、合法的和期望的對非法和非期望的輸入數(shù)據(jù)也要像合法的和期望的輸入數(shù)據(jù)一樣編寫測試用例輸入數(shù)據(jù)一樣編寫測試用例 程序模塊經(jīng)測試后,殘存的錯誤數(shù)目與已發(fā)現(xiàn)的錯程序模塊經(jīng)測試后,殘存的錯誤數(shù)目與已發(fā)現(xiàn)的錯誤數(shù)目成正比誤數(shù)目成正比 嚴(yán)格按測試計劃執(zhí)行,避免測試的隨意性嚴(yán)格按測試計劃執(zhí)行,避免測試的隨意性 對每一個測試結(jié)果應(yīng)當(dāng)做全面檢查對每一個測試結(jié)果應(yīng)當(dāng)做全面檢查 妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為軟件維護提供方便析報告,為軟件維護提供方便軟件測試的實施軟件測試的實施 單元測試:是對每一個編制好的模塊單元測試:是對每一個編制好的模塊進行測試
32、,其目的在于發(fā)現(xiàn)和排除各進行測試,其目的在于發(fā)現(xiàn)和排除各模塊內(nèi)部可能存在的差錯及詳細(xì)設(shè)計模塊內(nèi)部可能存在的差錯及詳細(xì)設(shè)計中產(chǎn)生的錯誤。進行單元測試時,根中產(chǎn)生的錯誤。進行單元測試時,根據(jù)程序的內(nèi)部結(jié)構(gòu)設(shè)計測試用例,主據(jù)程序的內(nèi)部結(jié)構(gòu)設(shè)計測試用例,主要采用白盒測試法要采用白盒測試法軟件測試的實施軟件測試的實施 集成測試。是在單元測試的基礎(chǔ)上,將集成測試。是在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求組裝成為系統(tǒng)而所有模塊按照設(shè)計要求組裝成為系統(tǒng)而進行的測試,它的任務(wù)是檢查模塊間的進行的測試,它的任務(wù)是檢查模塊間的接口和通信、各子功能的組合能否達到接口和通信、各子功能的組合能否達到預(yù)期要求的功能、全
33、程數(shù)據(jù)結(jié)構(gòu)是否有預(yù)期要求的功能、全程數(shù)據(jù)結(jié)構(gòu)是否有問題等。集成測試主要發(fā)現(xiàn)設(shè)計階段產(chǎn)問題等。集成測試主要發(fā)現(xiàn)設(shè)計階段產(chǎn)生的錯誤,通常采用黑盒測試法生的錯誤,通常采用黑盒測試法 軟件測試的實施軟件測試的實施 集成測試時,將各個模塊組裝成系統(tǒng)的方法有:集成測試時,將各個模塊組裝成系統(tǒng)的方法有:非增量組裝方式是先分別對每個模塊進行單元非增量組裝方式是先分別對每個模塊進行單元測試,再把所有模塊按設(shè)計要求組裝在一起進測試,再把所有模塊按設(shè)計要求組裝在一起進行測試,最終得到所要求的軟件行測試,最終得到所要求的軟件增量組裝方式是把下一個要測試的模塊同已經(jīng)增量組裝方式是把下一個要測試的模塊同已經(jīng)測試好的那些模
34、塊結(jié)合起來進行測試,測試完測試好的那些模塊結(jié)合起來進行測試,測試完以后再把下一個應(yīng)該測試的模塊結(jié)合進來測試以后再把下一個應(yīng)該測試的模塊結(jié)合進來測試軟件測試的實施軟件測試的實施 確認(rèn)測試。確認(rèn)測試是在集成測試通過后,確認(rèn)測試。確認(rèn)測試是在集成測試通過后,在用戶的參與下進行確認(rèn)測試。這時通在用戶的參與下進行確認(rèn)測試。這時通常使用實際數(shù)據(jù)進行測試,以驗證系統(tǒng)常使用實際數(shù)據(jù)進行測試,以驗證系統(tǒng)是否能滿足用戶的實際需要。它的任務(wù)是否能滿足用戶的實際需要。它的任務(wù)就是以需求規(guī)格說明書作為依據(jù)來驗證就是以需求規(guī)格說明書作為依據(jù)來驗證軟件的性能、功能及其他特征是否與用軟件的性能、功能及其他特征是否與用戶的要求
35、一致,通常采用黑盒測試戶的要求一致,通常采用黑盒測試 軟件測試的實施軟件測試的實施 系統(tǒng)測試。系統(tǒng)測試是在更大范圍內(nèi)進行系統(tǒng)測試。系統(tǒng)測試是在更大范圍內(nèi)進行的測試。系統(tǒng)測試是把通過確認(rèn)測試后的的測試。系統(tǒng)測試是把通過確認(rèn)測試后的軟件與計算機硬件、外設(shè)、某些支持軟件、軟件與計算機硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等結(jié)合在一起,在實際運行環(huán)數(shù)據(jù)和人員等結(jié)合在一起,在實際運行環(huán)境下,對計算機系統(tǒng)進行的一系列集成測境下,對計算機系統(tǒng)進行的一系列集成測試和確認(rèn)測試試和確認(rèn)測試軟件維護階段是長期的過程,因為,經(jīng)過軟件維護階段是長期的過程,因為,經(jīng)過測試的軟件還可能有錯,用戶的要求還會測試的軟件還可能有錯
36、,用戶的要求還會發(fā)生變化,軟件運行的環(huán)境也可能變化等發(fā)生變化,軟件運行的環(huán)境也可能變化等等。因此,交付使用的軟件仍然需要繼續(xù)等。因此,交付使用的軟件仍然需要繼續(xù)排錯、修改和擴充,這就是軟件維護。軟排錯、修改和擴充,這就是軟件維護。軟件維護的目的是滿足用戶對已開發(fā)產(chǎn)品的件維護的目的是滿足用戶對已開發(fā)產(chǎn)品的性能與運行環(huán)境不斷提高的需要,進而達性能與運行環(huán)境不斷提高的需要,進而達到延長軟件的壽命到延長軟件的壽命 軟件開發(fā)時期要完成設(shè)計和實現(xiàn)兩大任務(wù),軟件開發(fā)時期要完成設(shè)計和實現(xiàn)兩大任務(wù),其中設(shè)計任務(wù)用需求分析和軟件設(shè)計兩個其中設(shè)計任務(wù)用需求分析和軟件設(shè)計兩個階段完成,實現(xiàn)任務(wù)用編碼和測試兩個階階段完
37、成,實現(xiàn)任務(wù)用編碼和測試兩個階段完成。開發(fā)任務(wù)完成的好與壞,關(guān)系到段完成。開發(fā)任務(wù)完成的好與壞,關(guān)系到軟件產(chǎn)品的質(zhì)量,完成開發(fā)任務(wù)的關(guān)鍵是軟件產(chǎn)品的質(zhì)量,完成開發(fā)任務(wù)的關(guān)鍵是選擇好的軟件開發(fā)方法。目前,軟件開發(fā)選擇好的軟件開發(fā)方法。目前,軟件開發(fā)方法主要有結(jié)構(gòu)化開發(fā)方法和面向?qū)ο箝_方法主要有結(jié)構(gòu)化開發(fā)方法和面向?qū)ο箝_發(fā)方法。發(fā)方法。結(jié)構(gòu)化方法的軟件開發(fā)過程結(jié)構(gòu)化方法的軟件開發(fā)過程編碼并測試軟件計劃后結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化程序設(shè)計面向?qū)ο蠓椒ǖ能浖_發(fā)過程面向?qū)ο蠓椒ǖ能浖_發(fā)過程軟件測試軟件計劃后 面向?qū)ο蠓治?面向?qū)ο笤O(shè)計 面向?qū)ο缶幊探Y(jié)構(gòu)化分析結(jié)構(gòu)化分析( (簡稱簡稱sa)sa)方法是
38、面向數(shù)據(jù)流進方法是面向數(shù)據(jù)流進行需求分析的方法。該方法使用簡單易讀行需求分析的方法。該方法使用簡單易讀的符號,運用抽象的概念模型,根據(jù)軟件的符號,運用抽象的概念模型,根據(jù)軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,描繪出滿足功能要求的軟件模型層分解,描繪出滿足功能要求的軟件模型 結(jié)構(gòu)化分析方法的常用工具:數(shù)據(jù)流圖、結(jié)構(gòu)化分析方法的常用工具:數(shù)據(jù)流圖、數(shù)據(jù)字典、結(jié)構(gòu)化語言、判定樹、判定表數(shù)據(jù)字典、結(jié)構(gòu)化語言、判定樹、判定表sasa的基本步驟如下:的基本步驟如下: 自頂向下對系統(tǒng)進行功能分解,畫出分自頂向下對系統(tǒng)進行功能分解,畫出分層的數(shù)據(jù)流圖層的數(shù)據(jù)流圖
39、由后向前定義系統(tǒng)的數(shù)據(jù)和加工,編制由后向前定義系統(tǒng)的數(shù)據(jù)和加工,編制數(shù)據(jù)字典和加工說明數(shù)據(jù)字典和加工說明 寫出需求規(guī)格說明書寫出需求規(guī)格說明書(srs)(srs) 數(shù)據(jù)流圖數(shù)據(jù)流圖( (簡稱簡稱dfd)dfd):數(shù)據(jù)流圖是以圖形的方式描繪數(shù)據(jù)在軟件數(shù)據(jù)流圖是以圖形的方式描繪數(shù)據(jù)在軟件系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。功能模型。 數(shù)據(jù)流圖由數(shù)據(jù)流、加工數(shù)據(jù)流圖由數(shù)據(jù)流、加工( (又稱數(shù)據(jù)處又稱數(shù)據(jù)處理理) )、數(shù)據(jù)存儲、數(shù)據(jù)存儲( (又稱文件又稱文件) )、數(shù)據(jù)源點或終、數(shù)據(jù)源
40、點或終點四種基本成分組成。點四種基本成分組成。數(shù)據(jù)流圖數(shù)據(jù)流圖( (簡稱簡稱dfd)dfd): 數(shù)據(jù)流:數(shù)據(jù)流:是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑。是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑。使用箭頭代表數(shù)據(jù)的流向,數(shù)據(jù)名稱標(biāo)使用箭頭代表數(shù)據(jù)的流向,數(shù)據(jù)名稱標(biāo)在箭頭的邊上在箭頭的邊上 加工:加工:對數(shù)據(jù)流進行某些操作或變換。對數(shù)據(jù)流進行某些操作或變換。使用圓框代表加工使用圓框代表加工數(shù)據(jù)流圖數(shù)據(jù)流圖( (簡稱簡稱dfd)dfd) 數(shù)據(jù)存儲:數(shù)據(jù)存儲:指暫時保存的數(shù)據(jù)。使用雙杠指暫時保存的數(shù)據(jù)。使用雙杠( (或或單杠單杠) )表示數(shù)據(jù)文件或數(shù)據(jù)庫。文件與加工之表示數(shù)據(jù)文件或數(shù)據(jù)庫。文件與加工之間用箭頭線連接,單向表示只讀或
41、只寫,雙向間用箭頭線連接,單向表示只讀或只寫,雙向表示可讀可寫表示可讀可寫 數(shù)據(jù)源點或終點:數(shù)據(jù)源點或終點:指軟件系統(tǒng)外部環(huán)境中的實指軟件系統(tǒng)外部環(huán)境中的實體體( (包括人員、組織或其他軟件系統(tǒng),統(tǒng)稱為包括人員、組織或其他軟件系統(tǒng),統(tǒng)稱為外部實體外部實體) )。使用方框表示數(shù)據(jù)的源點和終點。使用方框表示數(shù)據(jù)的源點和終點數(shù)據(jù)字典數(shù)據(jù)字典( (簡稱簡稱dd)dd)數(shù)據(jù)字典就是用來定義數(shù)據(jù)流圖中的各個成分?jǐn)?shù)據(jù)字典就是用來定義數(shù)據(jù)流圖中的各個成分的具體含義和詳細(xì)的描述。它和數(shù)據(jù)流圖共同的具體含義和詳細(xì)的描述。它和數(shù)據(jù)流圖共同構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的構(gòu)成了系統(tǒng)的邏輯模型,是需求規(guī)格說明書的主要組成部分。主要組成部分。 數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有關(guān)名字的詳細(xì)定義而服務(wù)的。數(shù)據(jù)字典有四類關(guān)名字的詳細(xì)定義而服務(wù)的。數(shù)據(jù)字典有四類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲和基本加工。條目
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【七年級下冊地理湘教版53】第六章 認(rèn)識大洲 全練版:第三節(jié) 美洲
- IT行業(yè)助理的工作職責(zé)簡述
- 家居建材店前臺服務(wù)心得
- 家居行業(yè)客戶服務(wù)心得
- 醫(yī)療空間裝修材料專業(yè)選擇與施工流程
- 教育技術(shù)中的學(xué)科知識點串聯(lián)技巧
- 小學(xué)生閱讀推廣與閱讀習(xí)慣培養(yǎng)
- 心理咨詢在突發(fā)事件后的應(yīng)用
- 教育行業(yè)中的資產(chǎn)管理創(chuàng)新與挑戰(zhàn)
- 教育環(huán)境下的數(shù)形結(jié)合思維訓(xùn)練策略
- 2025年河北供水有限責(zé)任公司招聘筆試參考題庫含答案解析
- 《材料分析測試技術(shù)》全套教學(xué)課件
- 人教版8年級上英語各單元語法課件大全
- (完整版)形式發(fā)票模版(國際件通用)
- 武漢東湖賓館建設(shè)項目委托代建合同
- 安徽大學(xué)大學(xué)生素質(zhì)教育學(xué)分認(rèn)定辦法
- 巴布亞新幾內(nèi)亞離網(wǎng)光儲微網(wǎng)供電方案
- 高度限位裝置類型及原理
- 中文版gcs electrospeed ii manual apri rev8v00印刷稿修改版
- 新生兒預(yù)防接種護理質(zhì)量考核標(biāo)準(zhǔn)
- 除氧器出水溶解氧不合格的原因有哪些
評論
0/150
提交評論