大學(xué)計(jì)算機(jī)基礎(chǔ)-08軟件工程_第1頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)-08軟件工程_第2頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)-08軟件工程_第3頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)-08軟件工程_第4頁(yè)
大學(xué)計(jì)算機(jī)基礎(chǔ)-08軟件工程_第5頁(yè)
已閱讀5頁(yè),還剩92頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章 軟件工程8.1軟件工程的基本概念8.2軟件需求分析8.3軟件設(shè)計(jì)8.4程序設(shè)計(jì)基礎(chǔ)8.5軟件測(cè)試8.6程序的調(diào)試習(xí)題2/6/202318.1軟件工程的基本概念8.1.1軟件危機(jī)與軟件工程

1.軟件危機(jī)軟件危機(jī)主要表現(xiàn)在:軟件需求的增長(zhǎng)得不到滿足;軟件開(kāi)發(fā)的成本和進(jìn)度無(wú)法控制;軟件質(zhì)量難以保證;軟件不可維護(hù)或維護(hù)成度非常低;軟件成本不斷提高;軟件開(kāi)發(fā)趕不上硬件的發(fā)展。2/6/202322.軟件工程為了消除軟件危機(jī),形成了軟件工程的概念。軟件工程就是試圖用工程、科學(xué)和數(shù)學(xué)的原理與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理、文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制、管理。軟件工程的核心思想是把軟件產(chǎn)品作為是一個(gè)工程產(chǎn)品來(lái)處理。2/6/202338.1.2軟件生命周期分為定義、開(kāi)發(fā)及維護(hù)三個(gè)階段??尚行匝芯砍醪巾?xiàng)目計(jì)劃需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)實(shí)現(xiàn)測(cè)試使用維護(hù)退役定義階段開(kāi)發(fā)階段維護(hù)階段2/6/202348.1.3軟件開(kāi)發(fā)工具與軟件開(kāi)發(fā)環(huán)境1.軟件開(kāi)發(fā)工具是指用來(lái)幫助開(kāi)發(fā),測(cè)試、分析、維護(hù)其他計(jì)算機(jī)程序及其文檔資料的一類程序。軟件工具主要包括需求分析工具、設(shè)計(jì)工具、編碼工具、確認(rèn)工具、維護(hù)工具等。2.軟件工程環(huán)境軟件工程環(huán)境是指全面支持軟件開(kāi)發(fā)全過(guò)程的軟件工具集合。2/6/202358.2軟件需求分析8.2.1需求分析與需求分析方法1.需求分析軟件需求是指用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。需求分析階段的工作包括四個(gè)方面:需求獲取需求分析編寫(xiě)需求說(shuō)明書(shū)需求評(píng)審2/6/202362.需求分析方法常見(jiàn)的需求分析方法有:①結(jié)構(gòu)化分析方法。②面向?qū)ο蟮姆治龇椒ā?.2.2結(jié)構(gòu)化分析方法

結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。2/6/20237結(jié)構(gòu)化分析的步驟如下:①通過(guò)對(duì)用戶的調(diào)查,獲得當(dāng)前系統(tǒng)的具體模型:②去掉具體模型中非本質(zhì)因素,抽象出當(dāng)前系統(tǒng)的邏輯模型:③根據(jù)計(jì)算機(jī)的特點(diǎn)分析當(dāng)前系統(tǒng)與目標(biāo)系統(tǒng)的差別,建立目標(biāo)系統(tǒng)的邏輯模型④完善目標(biāo)系統(tǒng)并補(bǔ)充細(xì)節(jié),寫(xiě)出目標(biāo)系統(tǒng)的軟件需求規(guī)格說(shuō)明;⑤評(píng)審直到確認(rèn)完全符合用戶對(duì)軟件的需求。2/6/20238結(jié)構(gòu)化分析的常用工具1.數(shù)據(jù)流圖數(shù)據(jù)流圖是描述數(shù)據(jù)處理過(guò)程的有力工具,是從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。2.數(shù)據(jù)字典數(shù)據(jù)字典是對(duì)所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確的、嚴(yán)格的定義。2/6/202393.判定表判定表是一種文本化的加工說(shuō)明的流行格式,它特別適用于帶有一組測(cè)試條件的說(shuō)明。條

件分

類1234金

額〉1000〉1000≤1000≤1000動(dòng)

作賬目狀況未過(guò)期已過(guò)期未過(guò)期已過(guò)期押下批準(zhǔn)單√發(fā)出批準(zhǔn)單√√√發(fā)出提貨單√√√發(fā)出通知單√2/6/2023104.判定樹(shù)

判定樹(shù)也是用來(lái)表達(dá)加工邏輯的一種工具。2/6/2023118.2.3軟件需求規(guī)格說(shuō)明書(shū)是需求分析階段的最后成果。1.軟件需求規(guī)格說(shuō)明書(shū)的作用便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流。反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)。作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。2/6/2023122.軟件需求規(guī)格說(shuō)明書(shū)的內(nèi)容概述;數(shù)據(jù)描述;功能描述;性能描述;參考文獻(xiàn);附錄。2/6/2023133.軟件需求規(guī)格說(shuō)明書(shū)的特征正確性;無(wú)歧義性;完整性;可驗(yàn)證性;一致性;可理解性;可修改性;可追蹤性。2/6/2023148.3軟件設(shè)計(jì)8.3.1軟件設(shè)計(jì)的基本概念1.軟件設(shè)計(jì)的基礎(chǔ)2.軟件設(shè)計(jì)的基本原理(1)

模塊化模塊化就是把程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)組成一個(gè)整體,可以完成指定的功能。2/6/202315(2)

抽象用自頂向下由抽象到具體的方式進(jìn)行分配控制,簡(jiǎn)化了軟件的設(shè)計(jì)和實(shí)現(xiàn),提高了軟件的可理解性和可測(cè)試性,并且使軟件更容易維護(hù)。(3)

信息隱蔽信息隱蔽使得一個(gè)模塊內(nèi)包含的信息(過(guò)程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來(lái)說(shuō),是不能訪問(wèn)的。2/6/202316(4)模塊獨(dú)立性每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的特定子功能,并且和其他模塊之間的接口很簡(jiǎn)單。模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)來(lái)衡量,這兩個(gè)標(biāo)準(zhǔn)分別稱為耦合性和內(nèi)聚性。藕合衡量不同模塊彼此間互相依賴(連接)的緊密程度;內(nèi)聚衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此間結(jié)合的緊密程度。一般較較優(yōu)秀的軟件設(shè)計(jì)應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。2/6/2023178.3.2概要設(shè)計(jì)1.概要設(shè)計(jì)的任務(wù)1)設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)2)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)3)編寫(xiě)概要設(shè)計(jì)文檔4)概要設(shè)計(jì)文檔評(píng)審2.面向數(shù)據(jù)流的設(shè)計(jì)方法2/6/2023183.設(shè)計(jì)的準(zhǔn)則①提高模塊獨(dú)立性。②模塊規(guī)模適中。③應(yīng)減少模塊的接口和界面的復(fù)雜性。④設(shè)計(jì)成單入口、單出口的模塊。⑤設(shè)計(jì)功能可預(yù)測(cè)的模塊。2/6/2023198.3.3詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)也稱過(guò)程設(shè)計(jì)。在過(guò)程設(shè)計(jì)階段,要對(duì)每個(gè)模塊規(guī)定的功能以及算法的設(shè)計(jì),給出適當(dāng)?shù)乃惴枋?。常?jiàn)的過(guò)程設(shè)計(jì)工具有:圖形工具:程序流程圖,N-S,PAD,HIPO。表格工具:判定表。語(yǔ)言工具:PDL(偽碼)。2/6/2023208.4程序設(shè)計(jì)基礎(chǔ)8.4.1程序設(shè)計(jì)方法與風(fēng)格

1.源程序文檔化(1)符號(hào)名的命名:具實(shí)際含義。(2)程序注釋:

序言性注釋:整體說(shuō)明;

功能性注釋:語(yǔ)句或程序段的作用。(3)視覺(jué)組織:使程序?qū)哟吻逦?/6/2023212.?dāng)?shù)據(jù)說(shuō)明的方法數(shù)據(jù)說(shuō)明的次序規(guī)范化。說(shuō)明語(yǔ)句中變量安排有序化。使用注釋來(lái)說(shuō)明復(fù)雜數(shù)據(jù)的結(jié)構(gòu)和作用。2/6/2023223.語(yǔ)句的結(jié)構(gòu)(1)在一行內(nèi)只寫(xiě)一條語(yǔ)句。(2)程序編寫(xiě)要做到清晰第一,效率第二。(3)首先要保證程序正確,然后才要求提高速度。(4)避免使用臨時(shí)變量而使程序的可讀性下降。(5)避免不必要的轉(zhuǎn)移。(6)避免使用復(fù)雜的條件語(yǔ)句。(7)盡可能使用庫(kù)函數(shù)。(8)數(shù)據(jù)結(jié)構(gòu)要有利于程序的簡(jiǎn)化。(9)要模塊化,并且模塊功能盡可能單一。(10)利用信息隱蔽,確保各模塊的獨(dú)立性。(11)從數(shù)據(jù)出發(fā)去構(gòu)造程序。(12)確保每一個(gè)模塊的獨(dú)立性。(13)不好的程序不去修補(bǔ),要重新編寫(xiě)。2/6/202323輸入格式要簡(jiǎn)單;輸入數(shù)據(jù)時(shí),應(yīng)允許使用自由格式;應(yīng)允許缺省值;輸入一批數(shù)據(jù)時(shí),最好使用輸入結(jié)束標(biāo)志;對(duì)所有的輸入數(shù)據(jù)都要檢驗(yàn)數(shù)據(jù)的合法性;在以交互式輸入/輸出方式進(jìn)行輸入時(shí),要在屏幕上使用提示符明確提示輸入的請(qǐng)求;當(dāng)程序設(shè)計(jì)語(yǔ)言對(duì)輸入格式有嚴(yán)格要求時(shí),應(yīng)保持輸入格式與輸入語(yǔ)句的一致性;給所有的輸出加注釋,并設(shè)計(jì)輸出報(bào)表格式。4.輸入和輸出2/6/2023248.4.2結(jié)構(gòu)化程序設(shè)計(jì)

1結(jié)構(gòu)化程序設(shè)計(jì)的原則(1)自頂向下:先考慮總體,后考慮細(xì)節(jié)。(2)逐步求精:對(duì)復(fù)雜問(wèn)題,逐步細(xì)化。(3)模塊化:把總目標(biāo)分解為小目標(biāo)(模塊)。(4)限制使用GOTO語(yǔ)句。2/6/2023252結(jié)構(gòu)化程序設(shè)計(jì)的基本結(jié)構(gòu)(1)順序結(jié)構(gòu)AB2/6/202326(2)選擇結(jié)構(gòu)假條件AB真2/6/202327真假A條件真假A條件(3)重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu))2/6/202328(1)使用順序、選擇、循環(huán)控制結(jié)構(gòu)表示程序的控制邏輯;(2)選用的控制結(jié)構(gòu)只有一個(gè)入口和一個(gè)出口;(3)程序語(yǔ)句組成容易識(shí)別的塊,每塊只有一個(gè)入口和一個(gè)出口;(4)復(fù)雜結(jié)構(gòu)應(yīng)該用嵌套的基本控制結(jié)構(gòu)進(jìn)行組合嵌套來(lái)實(shí)現(xiàn);(5)語(yǔ)言中所沒(méi)有的控制結(jié)構(gòu),應(yīng)該采用前后一致的方法來(lái)模擬;(6)嚴(yán)格控制GOTO語(yǔ)句的使用。3結(jié)構(gòu)化程序設(shè)計(jì)原則和方法的應(yīng)用

2/6/2023298.4.3面向?qū)ο蟮某绦蛟O(shè)計(jì)1關(guān)于面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ǖ谋举|(zhì),就是主張從客觀世界固有的事物出發(fā)來(lái)構(gòu)造系統(tǒng),提倡用人類在現(xiàn)實(shí)生活中常用的思維方法來(lái)認(rèn)識(shí)、理解和描述客觀事物,強(qiáng)調(diào)最終建立的系統(tǒng)中的對(duì)象以及對(duì)象之間的關(guān)系能夠如實(shí)地反映問(wèn)題域中固有事物及其關(guān)系。2/6/2023302面向?qū)ο蠓椒ǖ幕靖拍?/p>

(1)對(duì)象(object)具有屬性和方法的實(shí)體叫對(duì)象。它由數(shù)據(jù)和可執(zhí)行的一組操作共同組成。例如:一輛汽車是一個(gè)對(duì)象,它包含了汽車的屬性(如顏色、型號(hào)、載重量等)及其操作(如啟動(dòng)、剎車等)。一個(gè)窗口是一個(gè)對(duì)象,它包含了窗口的屬性(如大小、顏色、位置等)及其操作(如打開(kāi)、關(guān)閉等)。2/6/202331對(duì)象有如下一些基本特點(diǎn):惟一性。指對(duì)象是可區(qū)分的。分類性。具有相同屬性和操作的對(duì)象抽象成類。多態(tài)性。指同一個(gè)操作可以是不同對(duì)象的行為。封裝性。從外面看只能看到對(duì)象的外部特性,對(duì)象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對(duì)外是不可見(jiàn)的。模塊獨(dú)立性好。2/6/202332(2)類(Class)類是具有共同屬性、共同方法的對(duì)象的集合。例如:Integer是一個(gè)整數(shù)類,它描述了所有整數(shù)的性質(zhì)。任何整數(shù)都是整數(shù)類的對(duì)象,而一個(gè)具體的整數(shù)“123”是類Integer的一個(gè)實(shí)例。(3)消息(Message)消息是一個(gè)實(shí)例與另一個(gè)實(shí)例之間傳遞的信息,它請(qǐng)求對(duì)象執(zhí)行某一處理或回答某一要求的信息,它統(tǒng)一了數(shù)據(jù)流和控制流。2/6/202333(4)繼承(Inheritance)繼承是指使用己有的類來(lái)定義新的類。已有的類稱為基類,新類稱為派生類。繼承分為單繼承與多重繼承。(5)多態(tài)性(Polymorphism)同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱為多態(tài)性。例如,在兩個(gè)類Male(男性)和Female(女性)都有一項(xiàng)屬性為Friend。一個(gè)人的朋友必須屬于類Male或Female,這是一個(gè)多態(tài)性的情況2/6/2023348.5軟件測(cè)試8.5.1軟件測(cè)試的目的軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。

8.5.2軟件測(cè)試的準(zhǔn)則所有測(cè)試都應(yīng)追溯到需求;嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性;充分注意測(cè)試中的群集現(xiàn)象;程序員應(yīng)避免檢查自己的程序;窮舉測(cè)試不可能;妥善保存測(cè)試計(jì)劃、測(cè)試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。2/6/2023358.5.3軟件測(cè)試技術(shù)與方法若從是否需要執(zhí)行被測(cè)軟件的角度,可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試方法。若按照功能劃分可以分為白盒測(cè)試和黑盒測(cè)試方法。2/6/2023361.靜態(tài)測(cè)試與動(dòng)態(tài)測(cè)試(1)靜態(tài)測(cè)試靜態(tài)測(cè)試一般指人工評(píng)審軟件文檔或程序,以便發(fā)現(xiàn)錯(cuò)誤。靜態(tài)測(cè)試包括:代碼檢查、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等。(2)動(dòng)態(tài)測(cè)試動(dòng)態(tài)測(cè)試是在樣板測(cè)試數(shù)據(jù)上執(zhí)行程序并分析輸出以發(fā)現(xiàn)錯(cuò)誤的過(guò)程。所以動(dòng)態(tài)測(cè)試包括三部分:生成測(cè)試數(shù)據(jù)、執(zhí)行程序與驗(yàn)證的輸出結(jié)果。2/6/2023372.白盒測(cè)試與黑盒測(cè)試(1)白盒測(cè)試軟件的白盒測(cè)試是對(duì)軟件的過(guò)程性細(xì)節(jié)作細(xì)致的檢查。這一方法是把測(cè)試對(duì)象看作一個(gè)打開(kāi)的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過(guò)在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。2/6/202338(2)黑盒測(cè)試就軟件測(cè)試來(lái)講,軟件的黑盒測(cè)試意味著測(cè)試要根據(jù)軟件的外部特性進(jìn)行。也就是說(shuō),這種方法是把測(cè)試對(duì)象看作一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的功能說(shuō)明。2/6/2023398.5.4軟件測(cè)試的實(shí)施軟件測(cè)試過(guò)程分4個(gè)步驟,即單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試(確認(rèn)測(cè)試)和系統(tǒng)測(cè)試。

1.單元測(cè)試單元測(cè)試是對(duì)軟件設(shè)計(jì)的最小單位——模塊(程序單元)進(jìn)行正確性檢驗(yàn)的測(cè)試。單元測(cè)試的目的是發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種錯(cuò)誤。單元測(cè)試的依據(jù)是詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序。

2/6/2023402集成測(cè)試集成測(cè)試是測(cè)試和組裝軟件的過(guò)程。它是把模塊在按照設(shè)計(jì)要求組裝起來(lái)的同時(shí)進(jìn)行測(cè)試,主要目的是發(fā)現(xiàn)與接口有關(guān)的錯(cuò)誤。集成測(cè)試的依據(jù)是概要設(shè)計(jì)說(shuō)明書(shū)。3確認(rèn)測(cè)試確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能及其他特性是否滿足了需求規(guī)格說(shuō)明中確定的各種需求,以及軟件配置是否完全、正確。2/6/2023414系統(tǒng)測(cè)試系統(tǒng)測(cè)試是將通過(guò)測(cè)試確認(rèn)的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素組合在一起,在實(shí)際運(yùn)行(使用)環(huán)境下對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的集成測(cè)試和確認(rèn)測(cè)試。2/6/2023428.6程序的調(diào)試8.6.1基本概念在對(duì)程序進(jìn)行了成功的測(cè)試之后將進(jìn)入程序調(diào)試。程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開(kāi)發(fā)階段。2/6/2023431程序調(diào)試的基本步驟(1)錯(cuò)誤定位(2)修改設(shè)計(jì)和代碼,以排除錯(cuò)誤(3)進(jìn)行回歸測(cè)試,防止引進(jìn)新的錯(cuò)誤因?yàn)樾薷某绦蚩赡軒?lái)新的錯(cuò)誤,重復(fù)進(jìn)行有關(guān)測(cè)試,以確認(rèn)該錯(cuò)誤是否被排除、是否引進(jìn)了新的錯(cuò)誤。如果所做的修正無(wú)效,則撤銷這次改動(dòng),重復(fù)上述過(guò)程,直到找到一個(gè)有效的解決辦法為止。2/6/2023442.程序調(diào)試的原則(1)確定錯(cuò)誤的性質(zhì)和位置時(shí)的注意事項(xiàng):①分析思考與錯(cuò)誤征兆有關(guān)的信息;②避開(kāi)死胡同;③只把調(diào)試工具當(dāng)作輔助手段來(lái)使用;④避免用試探法,最多只能把它當(dāng)作最后手段。2/6/202345(2)修改錯(cuò)誤的原則①在出現(xiàn)錯(cuò)誤的地方,很可能還有別的錯(cuò)誤;②修改錯(cuò)誤的一個(gè)常見(jiàn)失誤是只修改了這個(gè)錯(cuò)誤的征兆或這個(gè)錯(cuò)誤的表現(xiàn),而沒(méi)有修改錯(cuò)誤本身;③注意修正一個(gè)錯(cuò)誤的同時(shí)有可能會(huì)引入新的錯(cuò)誤;④修改錯(cuò)誤的過(guò)程將迫使人們暫時(shí)回到程序設(shè)計(jì)階段;⑤修改源代碼程序,不要改變目標(biāo)代碼2/6/2023468.6.2軟件的調(diào)試方法1.強(qiáng)行排錯(cuò)法作為傳統(tǒng)的調(diào)試方法,其過(guò)程可概括為,設(shè)置斷點(diǎn)、程序暫停、觀察程序狀態(tài)、繼續(xù)運(yùn)行程序是目前使用較多、效率較低的調(diào)試方法。涉及的調(diào)試技術(shù)主要是設(shè)置斷點(diǎn)和監(jiān)視表達(dá)式。例如:①通過(guò)內(nèi)存全部打印來(lái)排錯(cuò);②在程序特定部位設(shè)置打印語(yǔ)句,即斷點(diǎn)法;③自動(dòng)調(diào)試工具。2/6/2023472.回溯法該方法適合于小規(guī)模程序的排錯(cuò)。即一旦發(fā)現(xiàn)了錯(cuò)誤,先分析錯(cuò)誤征兆,確定最先發(fā)現(xiàn)“癥狀”的位置。然后,從發(fā)現(xiàn)“癥狀”的地方開(kāi)始,沿程序的控制流程,逆向跟蹤源程序代碼,直到找到錯(cuò)誤根源或確定錯(cuò)誤產(chǎn)生的范圍。2/6/2023483.原因排除法原因排除法是通過(guò)演繹和歸納,以及二分法來(lái)實(shí)現(xiàn)的。演繹法是一種從一般原理或前提出發(fā),經(jīng)過(guò)排除和精化的過(guò)程來(lái)推導(dǎo)出結(jié)論的思考方法。歸納法是一種從特殊推斷出一般的系統(tǒng)化思考方法。其基本思想是從一些線索著手,通過(guò)分析尋找到潛在的原因,從而找出錯(cuò)誤。二分法實(shí)現(xiàn)的基本思想是,如果已知每個(gè)變量在程序中若干個(gè)關(guān)鍵點(diǎn)的正確值,則可以使用定值語(yǔ)句(如賦值語(yǔ)句、輸入語(yǔ)句等)在程序中的某點(diǎn)附近給這些變量賦正確值,然后運(yùn)行程序并檢查程序的輸出。2/6/202349選擇題1、軟件工程的出現(xiàn)是由于()。A)程序設(shè)計(jì)方法學(xué)的影響B(tài))軟件產(chǎn)業(yè)化的需要C)軟件危機(jī)的出現(xiàn)D)計(jì)算機(jī)的發(fā)展答案:C2/6/202350選擇題2、軟件工程的理論和技術(shù)性研究的內(nèi)容主要包括軟件開(kāi)發(fā)技術(shù)和()。A)消除軟件危機(jī)B)軟件工程管理C)程序設(shè)計(jì)自動(dòng)化D)實(shí)現(xiàn)軟件可重用答案:B2/6/202351選擇題3、開(kāi)發(fā)軟件所需高成本和產(chǎn)品的低質(zhì)量之間有著尖銳的矛盾,這種現(xiàn)象稱為()。A)軟件危機(jī)B)軟件投機(jī)C)軟件工程D)軟件產(chǎn)生答案:A2/6/202352選擇題4、下面不屬于軟件工程的3個(gè)要素的是()。A)工具B)過(guò)程C)方法D)環(huán)境答案:D2/6/202353選擇題5、開(kāi)發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是()。A)大型系統(tǒng)的復(fù)雜性B)人員知識(shí)不足C)客觀世界千變?nèi)f化D)時(shí)間緊、任務(wù)重答案:A2/6/202354選擇題6、軟件生命周期中所花費(fèi)最多的階段是()。A)詳細(xì)設(shè)計(jì)B)軟件編碼C)軟件測(cè)試D)軟件維護(hù)答案:D2/6/202355選擇題7、在軟件生產(chǎn)過(guò)程中,需求信息的給出是()。A)程序員B)項(xiàng)目管理者C)軟件分析設(shè)計(jì)人員D)軟件用戶答案:D2/6/202356選擇題8、需求分析階段的任務(wù)是()。A)軟件開(kāi)發(fā)方法B)軟件開(kāi)發(fā)工具C)軟件開(kāi)發(fā)費(fèi)用D)軟件系統(tǒng)功能答案:D2/6/202357選擇題

9、下列工具中為需求分析常用工具的是()。A)PADB)PFDC)N-SD)DFD答案:D2/6/202358選擇題

10、下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書(shū)的作用的是()。A) 便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流B) 反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)C) 作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D) 便于開(kāi)發(fā)人員進(jìn)行需求分析答案:D2/6/202359選擇題11、數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A)控制流B)加工C)數(shù)據(jù)存儲(chǔ)D)源和潭答案:A2/6/202360選擇題12、下列不屬于結(jié)構(gòu)化分析的常用工具的是()。A)數(shù)據(jù)流圖B)數(shù)據(jù)字典C)判定樹(shù)D)PAD圖答案:D2/6/202361選擇題13、在數(shù)據(jù)流圖中,帶有名字的箭頭表示()。A)模塊之間的調(diào)用關(guān)系B)程序的組成部分C)控制程序的執(zhí)行順序D)數(shù)據(jù)的流向答案:D2/6/202362選擇題14、軟件設(shè)計(jì)包括軟件的結(jié)構(gòu),數(shù)據(jù)接口和過(guò)程設(shè)計(jì),其中軟件的過(guò)程設(shè)計(jì)是指()。A)模塊間的關(guān)系B)系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過(guò)程描述C)軟件層次結(jié)構(gòu)D)軟件開(kāi)發(fā)過(guò)程答案:B2/6/202363選擇題15、下面不屬于軟件設(shè)計(jì)原則的是()。A)抽象B)模塊化C)自底向上D)信息屏蔽答案:C2/6/202364選擇題16、模塊獨(dú)立性是軟件模塊化所提出的要求,衡量模塊獨(dú)立性的度量標(biāo)準(zhǔn)是模塊的()。A)抽象和信息屏蔽B)局部化和封裝華C)內(nèi)聚性和耦合性D)激活機(jī)制和控制方法答案:C2/6/202365選擇題17.對(duì)建立良好的程序設(shè)計(jì)風(fēng)格,下面描述正確的是()。A)程序應(yīng)簡(jiǎn)單、清晰、可讀性好B)符號(hào)名的命名只要符合語(yǔ)法C)充分考慮程序的執(zhí)行效率 D)程序的注釋可有可無(wú)答案:A2/6/202366選擇題18.結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是()。A)程序的規(guī)模B)程序的易讀性C)程序的執(zhí)行效率D)程序的可移植性答案:B2/6/202367選擇題19.結(jié)構(gòu)化程序設(shè)計(jì)的3種結(jié)構(gòu)是()。A)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu)B)分支結(jié)構(gòu)、等價(jià)結(jié)構(gòu)、循環(huán)結(jié)構(gòu)C)多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價(jià)結(jié)構(gòu)D)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)答案:D2/6/202368選擇題

20.下列敘述中,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則的是()。A)自頂向下B)由底向上C)模塊化 D)限制使用goto語(yǔ)句答案:B2/6/202369選擇題21.對(duì)象是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物,它可以是有形的也可以是無(wú)形的,下面所列舉的不是對(duì)象的是()。A)桌子C)狗B)飛機(jī)D)蘋(píng)果的顏色答案:D2/6/202370選擇題22.信息隱蔽是通過(guò)()實(shí)現(xiàn)的。A)抽象性B)封裝性C)繼承性D)傳遞性答案:B2/6/202371選擇題

23.面向?qū)ο蟮拈_(kāi)發(fā)方法中,類與對(duì)象的關(guān)系是()。A)具體與抽象B)抽象與具體C)整體與部分D)部分與整體答案:B2/6/202372選擇題

24.以下不屬于對(duì)象的基本特點(diǎn)的是()。A)分類性

B)多態(tài)性

C)繼承性

D)封裝性答案:C2/6/202373選擇題25.在對(duì)象之間傳遞信息的是()。A)方法 B)屬性C)事件 D)消息答案:D2/6/202374選擇題

26、在軟件測(cè)試設(shè)計(jì)中,軟件測(cè)試的主要目的是()。A)實(shí)驗(yàn)性運(yùn)行軟件

B)證明軟件正確C)找出軟件中全部的錯(cuò)誤D)發(fā)現(xiàn)軟件錯(cuò)誤而執(zhí)行程序答案:D2/6/202375選擇題27、為了提高測(cè)試效率,應(yīng)該()。A)隨機(jī)選取測(cè)試數(shù)據(jù)B)取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)C)在完成編碼后制定軟件測(cè)試的測(cè)試計(jì)劃D)集中對(duì)付那些錯(cuò)誤集群的程序答案:C2/6/202376選擇題28、下列不屬于靜態(tài)測(cè)試方法的是()。A)代碼檢查B)白盒法C)靜態(tài)結(jié)構(gòu)分析D)代碼質(zhì)量度量答案:B2/6/202377選擇題29、在軟件工程中,白盒測(cè)試法可以用于測(cè)試程序的內(nèi)部結(jié)構(gòu)。此方法將系統(tǒng)看作是()。A)路徑的集合B)循環(huán)的集合C)目標(biāo)的集合D)地址的集合答案:A2/6/202378選擇題

30、完全不考慮程序的內(nèi)部結(jié)構(gòu)和內(nèi)部特征,而只是根據(jù)程序功能導(dǎo)出測(cè)試用例的測(cè)試方法是()。A)黑盒測(cè)試法B)白盒測(cè)試法C)錯(cuò)誤推測(cè)法D)安裝測(cè)試法答案:A2/6/202379選擇題31、檢查軟件產(chǎn)品是否符合定義的過(guò)程稱為()。A)確認(rèn)測(cè)試B)集成測(cè)試C)驗(yàn)證測(cè)試D)驗(yàn)收測(cè)試答案:A2/6/202380填空題

1、軟件危機(jī)出現(xiàn)于60年代末,為了解決軟件危機(jī),人們提

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論