2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第九章開(kāi)發(fā)過(guò)程與程序質(zhì)量保證,程序設(shè)計(jì)首先是一個(gè)過(guò)程,分為問(wèn)題建模、算法設(shè)計(jì)、編寫(xiě)代碼和編譯調(diào)試等階段。即使是一個(gè)比較簡(jiǎn)單的程序,我們也應(yīng)該養(yǎng)成先分析,再下手,最后調(diào)試的習(xí)慣,嚴(yán)格遵循程序設(shè)計(jì)過(guò)程。本章介紹軟件的開(kāi)發(fā)過(guò)程及過(guò)程的實(shí)施管理,從程序質(zhì)量保證的高度討論了程序的調(diào)試與測(cè)試,重點(diǎn)講述了Java程序的調(diào)試方法、程序中的異常處理以及單元測(cè)試方法。,9.1 軟件開(kāi)發(fā)過(guò)程概述,軟件生命周期 軟件開(kāi)發(fā)過(guò)程軟件質(zhì)量與測(cè)試,9.1.1

2、 軟件生命周期,,,,,計(jì)算機(jī)軟件開(kāi)發(fā)有它們自己的周期,稱(chēng)為系統(tǒng)開(kāi)發(fā)生命周期(SDLC)。SDLC分為多個(gè)階段,包括:分析需求、設(shè)計(jì)系統(tǒng)、創(chuàng)建系統(tǒng)、運(yùn)行系統(tǒng)、維護(hù)系統(tǒng)。每個(gè)階段包括有許多任務(wù)。,9.1.2 軟件開(kāi)發(fā)過(guò)程,,,,開(kāi)發(fā)一個(gè)軟件系統(tǒng)的參與者包括:系統(tǒng)所有者、使用者、分析者、設(shè)計(jì)者、構(gòu)建者以及IT供貨商和顧問(wèn)這6類(lèi)。他們的共同目標(biāo)是創(chuàng)建符合需要的軟件系統(tǒng)。軟件開(kāi)發(fā)的項(xiàng)目管理是和軟件開(kāi)發(fā)的基本過(guò)程緊密結(jié)合的。通常軟件開(kāi)發(fā)過(guò)程可

3、以分為若干個(gè)不同的開(kāi)發(fā)階段實(shí)施,每個(gè)階段都由不同角色的開(kāi)發(fā)人員擔(dān)當(dāng),并產(chǎn)生可交付的軟件制品。一個(gè)典型的軟件系統(tǒng)開(kāi)發(fā)過(guò)程包含了定義邊界、問(wèn)題分析、需求分析、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、構(gòu)造實(shí)現(xiàn)、測(cè)試和發(fā)布等7個(gè)階段。,9.1.3 軟件質(zhì)量與測(cè)試,,,,,優(yōu)質(zhì)軟件的定義是:軟件能夠滿(mǎn)足用戶(hù)顯式或隱式的需求,文檔齊全,符合規(guī)定的操作標(biāo)準(zhǔn),在其開(kāi)發(fā)使用的硬件上高效運(yùn)行。軟件測(cè)試是軟件質(zhì)量的首要保證。測(cè)試應(yīng)包括黑盒測(cè)試和白盒測(cè)試。一般來(lái)說(shuō),軟件測(cè)試

4、可分為三種測(cè)試,即程序測(cè)試、系統(tǒng)測(cè)試和用戶(hù)測(cè)試。,9.2 程序調(diào)試,程序是軟件的本體,又是軟件研究的對(duì)象。程序的質(zhì)量決定軟件的質(zhì)量。在軟件開(kāi)發(fā)過(guò)程中,程序編碼、調(diào)試、測(cè)試是一個(gè)持續(xù)的循環(huán)過(guò)程,只有在對(duì)程序進(jìn)行了徹底地調(diào)試與測(cè)試后才能交付最終用戶(hù)使用。,,9.2.1 程序調(diào)試的概念,,在程序在編譯通過(guò)以后,仍然可能會(huì)出現(xiàn)以下兩類(lèi)錯(cuò)誤:運(yùn)行時(shí)刻錯(cuò)誤邏輯錯(cuò)誤 對(duì)于這兩類(lèi)錯(cuò)誤,調(diào)試器都可以幫助我們快速定位錯(cuò)誤,并通過(guò)對(duì)程序運(yùn)行的跟蹤

5、和對(duì)變量值的監(jiān)視幫助我們找到錯(cuò)誤的真正原因和解決錯(cuò)誤的途徑。程序調(diào)試的主要內(nèi)容可以概括為如下的幾方面:調(diào)試的準(zhǔn)備和開(kāi)始控制程序的執(zhí)行斷點(diǎn)的使用監(jiān)視和檢查數(shù)據(jù)的值,9.2.1 程序調(diào)試的概念,通過(guò)“窗口”->“調(diào)試”菜單項(xiàng)打開(kāi)各種調(diào)試窗口。,在“監(jiān)視”窗口中監(jiān)視當(dāng)前表達(dá)式運(yùn)行中的值。,單擊選定代碼行左邊的空白,設(shè)置調(diào)試斷點(diǎn)。,“調(diào)用?!贝翱诹谐隽顺绦蜃罱暮瘮?shù)調(diào)用。,顯示當(dāng)前程序執(zhí)行到的位置。,“局部變量”窗口顯示局部變量

6、的值。,NetBeans IDE的調(diào)試環(huán)境,,9.2.2 使用斷點(diǎn),,設(shè)置斷點(diǎn) 察看斷點(diǎn),,,9.2.3 監(jiān)視和檢查數(shù)據(jù)的值,觀察局部變量 :打開(kāi)“局部變量”窗口(Alt-Shift-1)或“監(jiān)視”窗口(Alt-Shift-2)。右鍵單擊某個(gè)變量或監(jiān)視,然后選擇“創(chuàng)建固定監(jiān)視”。 跟蹤變量或表達(dá)式值的變化:通過(guò)選擇“窗口”->“調(diào)試”->“監(jiān)視”菜單可以打開(kāi)“監(jiān)視”窗口。 察看調(diào)用棧 :可以隨時(shí)選擇“窗

7、口”->“調(diào)試”->“調(diào)用棧”(Alt -Shift-3)來(lái)打開(kāi)“調(diào)用棧”窗口。,,,9.2.4 調(diào)試過(guò)程,準(zhǔn)備調(diào)試啟動(dòng)調(diào)試監(jiān)視代碼單步執(zhí)行代碼。 越過(guò)(F8)步入(F7)步出(Alt-Shift-F7)查看調(diào)試信息。 修復(fù)任何錯(cuò)誤并繼續(xù)調(diào)試。 完成調(diào)試,,,9.3 單元測(cè)試,單元測(cè)試是一種小粒度的測(cè)試,以測(cè)試程序的某個(gè)功能或代碼塊。單元測(cè)試是程序設(shè)計(jì)中的白盒測(cè)試,可以完成語(yǔ)義檢查。由Erich Gamm

8、a和Kent Beck提供的JUnit是一個(gè)開(kāi)放源代碼的Java測(cè)試框架,用于編寫(xiě)和運(yùn)行可重復(fù)的測(cè)試。它可以使測(cè)試代碼與產(chǎn)品代碼分開(kāi),易于集成到測(cè)試人員的程序設(shè)計(jì)過(guò)程中。先寫(xiě)測(cè)試,再寫(xiě)代碼是面向?qū)ο筇岢囊环N設(shè)計(jì)原則。JUnit單元測(cè)試可以支持這種測(cè)試驅(qū)動(dòng)的軟件開(kāi)發(fā)方式。,9.3 單元測(cè)試,通過(guò)使用NetBeans IDE的JUnit測(cè)試生成器,可以創(chuàng)建在單元測(cè)試中用作框架的兼容測(cè)試類(lèi)。一旦設(shè)計(jì)好測(cè)試類(lèi),NetBeans IDE將在調(diào)

9、試器中運(yùn)行測(cè)試,以檢查測(cè)試是否有錯(cuò)誤。在單元測(cè)試代碼中,所有的測(cè)試類(lèi)都繼承自TestCase抽象類(lèi),TestCase類(lèi)中包含有setUp、tearDown方法分別用于測(cè)試的初始化和結(jié)束后的清理任務(wù)。在編寫(xiě)的測(cè)試代碼中可使用Assert靜態(tài)類(lèi),它是一系列斷言方法的集合。JUnit提供的斷言方法包括基礎(chǔ)斷言、數(shù)字?jǐn)嘌?、字符斷言、布爾斷言、?duì)象斷言。,9.4 異常與異常處理,在應(yīng)用程序開(kāi)發(fā)中如何檢測(cè)、處理程序的運(yùn)行錯(cuò)誤是一個(gè)很重要的問(wèn)題。

10、雖然調(diào)試和測(cè)試可以幫助我們發(fā)現(xiàn)大部分程序錯(cuò)誤,但有些錯(cuò)誤是不可預(yù)料的。例如,當(dāng)程序涉及到與外設(shè)的數(shù)據(jù)交換或操作外設(shè),如要求用戶(hù)輸入、讀寫(xiě)磁盤(pán)等時(shí),錯(cuò)誤的發(fā)生是程序無(wú)法控制的,如輸入非法字符、磁盤(pán)不能讀寫(xiě)等。這些情況不僅會(huì)導(dǎo)致應(yīng)用程序異常中止而且可能引起系統(tǒng)的崩潰。針對(duì)這些問(wèn)題,Java同時(shí)提供了一套強(qiáng)大的異常處理機(jī)制,可以幫助我們處理和預(yù)防潛在的錯(cuò)誤。巧妙地利用它,可以使程序更為健壯,使用更為安全。,9.4.1 異常與異常類(lèi),就程序運(yùn)行

11、而言,異常就是指程序運(yùn)行時(shí)所發(fā)生錯(cuò)誤或不正常的情況。就程序設(shè)計(jì)而言,Java中所謂“異?!笔侵赋绦驋伋龅囊粋€(gè)異常對(duì)象,通常用來(lái)標(biāo)志一個(gè)程序錯(cuò)誤的發(fā)生。異常類(lèi)是Java異常處理機(jī)制的核心,Java提供的所有異常類(lèi)都是Exception類(lèi)的派生類(lèi)。用戶(hù)也可以從Exception類(lèi)或其子類(lèi)派生一個(gè)自定義的異常類(lèi)。受查異常能夠由java編譯器進(jìn)行分析。受查異常在那些顯然可能產(chǎn)生錯(cuò)誤的方法中拋出。非受查異常是派生自RuntimeExcepti

12、on類(lèi)的所有異常。非受查異常不能由編譯器進(jìn)行檢查。在Java中,錯(cuò)誤和各種異常情況都是通過(guò)拋出和捕獲異常對(duì)象來(lái)進(jìn)行處理的。當(dāng)一個(gè)對(duì)象拋出異常后,可以自己捕獲處理,也可以交給其他對(duì)象處理。如果捕獲異常的對(duì)象無(wú)法處理,還可以繼續(xù)拋出,由其他對(duì)象捕獲處理。,9.4.1 異常與異常類(lèi),Java異常類(lèi)的層次結(jié)構(gòu),9.4.2 異常處理機(jī)制,拋出異常 捕獲和處理異常 重拋和傳遞異常 異常保護(hù)塊,Java中使用throw語(yǔ)句拋出異常。對(duì)于受查異

13、常,必須在其方法頭用throws關(guān)鍵字聲明它可能拋出的異常。Java中使用try-catch語(yǔ)句塊捕獲和處理異常。如果try塊內(nèi)的任何代碼拋出了由catch子句指定類(lèi)型的異常,則程序跳過(guò)try塊中的其他代碼,執(zhí)行catch語(yǔ)句塊中的處理器代碼。還可以使用多個(gè)catch語(yǔ)句塊捕捉多個(gè)類(lèi)型的異常。Java中使用finally語(yǔ)句可以形成一個(gè)資源保護(hù)塊,確保回收受保護(hù)的資源。finally后面的語(yǔ)句不論是否發(fā)生異常,都會(huì)執(zhí)行的。,9.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論