版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第6章 軟件開發(fā)過程與調(diào)試,,6.1 開發(fā)過程概述,計算機軟件尤其是數(shù)據(jù)庫軟件已成為當代計算機應用的主流。軟件開發(fā)人員必須了解軟件開發(fā)的主要過程,掌握正確的開發(fā)手段,以達到事半功倍的效果。,開發(fā)過程概述(續(xù)),6.1.1 開發(fā)前的準備工作 項目在開發(fā)前都有系統(tǒng)任務書,主要規(guī)定軟件的開發(fā)目標、主要任務、功能、性能指標及研制人員和經(jīng)費、進度等安排,作為系統(tǒng)設計開發(fā)和檢驗的基本依據(jù)。系統(tǒng)任務書的基本內(nèi)容如下:
2、0; (1)引言,包括編寫目的、背景、參考資料。 (2)系統(tǒng)目標及任務,包括系統(tǒng)建設目標、主要任務、性能指標、標準化要求等。 (3)系統(tǒng)的結(jié)構(gòu)及功能,包括系統(tǒng)應用組成及結(jié)構(gòu),系統(tǒng)主要功能等。 (4)系統(tǒng)的規(guī)模及進度要求,包括系統(tǒng)規(guī)模、研制進度、人員計劃等。,開發(fā)過程概述(續(xù)),系統(tǒng)任務書只是開發(fā)軟件項目的一個基本要求。在實際應用中,軟件開發(fā)人員和需求分析人員要對軟件項目的細節(jié)進行具體分
3、析,必要時還要進行實地調(diào)研,然后共同商討并確定系統(tǒng)的需求分析,需求分析的編寫目的在于: (1)說明系統(tǒng)在現(xiàn)有技術(shù)、經(jīng)濟和人員等條件下的可行性。 (2)分析原系統(tǒng)(工作環(huán)境)現(xiàn)狀,描述待開發(fā)系統(tǒng)的詳細需求,提供項目設計需要的基本信息,并使這些信息成為用戶和開發(fā)人員之間溝通的基礎。,開發(fā)過程概述(續(xù)),需求分析報告的基本內(nèi)容如下: (1)概述,包括編寫目的、背景、參考資料、術(shù)語及縮略語。 (2
4、)對現(xiàn)有系統(tǒng)的分析。(3)待開發(fā)系統(tǒng)的詳細需求,包括功能需求、使用范圍、業(yè)務流程、用戶界面、輸出要求、故障處理。 (4)使用環(huán)境(如網(wǎng)絡環(huán)境、硬件環(huán)境、軟件環(huán)境),以及與其他系統(tǒng)的關系。 (5)可行性分析,包括技術(shù)可行性分析、經(jīng)濟可行性分析、人員可行性分析,以及影響待開發(fā)系統(tǒng)的主要因素。 (6)結(jié)論意見。,開發(fā)過程概述(續(xù)),6.1.2 軟件開發(fā)過程
5、有了系統(tǒng)任務書和需求分析報告,軟件設計人員就可以對軟件項目的實現(xiàn)進行系統(tǒng)分析,系統(tǒng)分析包括系統(tǒng)的總體設計方案、系統(tǒng)設計說明等,以作為軟件設計的依據(jù)。 1.系統(tǒng)總體方案 系統(tǒng)開發(fā)單位在與用戶充分溝通的基礎上,提出系統(tǒng)的技術(shù)構(gòu)架,描述系統(tǒng)功能、性能等主要指標,規(guī)定實現(xiàn)方法和要求,系統(tǒng)總體方案是系統(tǒng)進行詳細設計的依據(jù)。系統(tǒng)總體方案基本內(nèi)容包括:,開發(fā)過程概述(續(xù)),(1)引言,包括編寫目的、背景、參考資料、術(shù)語
6、及定義。 (2)項目概述,包括: ·項目的主要內(nèi)容。 ·系統(tǒng)需求分析,即用戶需求調(diào)查分析、現(xiàn)行系統(tǒng)的現(xiàn)狀調(diào)查分析等。 ·系統(tǒng)功能,即系統(tǒng)的功能要求、主要技術(shù)性能。 ·系統(tǒng)的數(shù)據(jù)要求,即基礎數(shù)據(jù)、業(yè)務數(shù)據(jù)、交換數(shù)據(jù)及其他數(shù)據(jù)等。 ·系統(tǒng)的設計要求,即技術(shù)結(jié)構(gòu)要求、系統(tǒng)劃分及其接口要求、系統(tǒng)運行環(huán)
7、境要求、系統(tǒng)標準化綜合要求。 (3)實施總計劃,包括進度、預算、可能出現(xiàn)的問題和措施等。,開發(fā)過程概述(續(xù)),2.系統(tǒng)設計說明 系統(tǒng)設計說明根據(jù)系統(tǒng)總體方案提出的系統(tǒng)構(gòu)架、功能、性能及數(shù)據(jù)要求確定系統(tǒng)的物理結(jié)構(gòu),說明系統(tǒng)主要的技術(shù)設計和采用的技術(shù)方法,以及系統(tǒng)的標準化約束等。系統(tǒng)設計說明是系統(tǒng)實施的基本依據(jù),其主要內(nèi)容有: (1)引言,包括編寫目的、背景、條件和限制、參考資料、術(shù)語及定義。
8、; (2)系統(tǒng)總體技術(shù)方案,包括: ·概述,即系統(tǒng)目標、基本要求等。 ·系統(tǒng)結(jié)構(gòu),即應用結(jié)構(gòu)、功能結(jié)構(gòu)、技術(shù)結(jié)構(gòu)等。,開發(fā)過程概述(續(xù)),·系統(tǒng)功能設計。功能設計包括業(yè)務管理功能設計、綜合查詢功能設計、郵件收發(fā)功能設計、數(shù)據(jù)庫接口設計。在對這些功能進行綜合分析的基礎上,進行數(shù)據(jù)庫表的設計。在對表的設計過程中,既要考慮關系數(shù)據(jù)庫冗余字段的處理,又要考慮系統(tǒng)運行的速度和實現(xiàn)的方便性等因
9、素。,開發(fā)過程概述(續(xù)),·系統(tǒng)安全設計??梢钥紤]以下安全設計思想,例如系統(tǒng)的數(shù)據(jù)傳輸通過電子郵件實現(xiàn),要求電子郵件內(nèi)部只傳代碼,不傳涉密數(shù)據(jù);系統(tǒng)的數(shù)據(jù)庫操作需要充分利用數(shù)據(jù)庫的事務提交和回滾機制,確保業(yè)務處理的完整性和一致性;系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)應充分利用存儲空間,在不同的用戶之間通過數(shù)據(jù)冗余提高整個系統(tǒng)的數(shù)據(jù)安全性;系統(tǒng)中存儲的用戶口令、備份口令、數(shù)據(jù)庫連接信息等重要數(shù)據(jù)必需經(jīng)過安全加密。 ·數(shù)據(jù)庫優(yōu)化設計。
10、 ·界面友好設計。,開發(fā)過程概述(續(xù)),3.軟件開發(fā) 客戶/服務器結(jié)構(gòu)經(jīng)常把應用系統(tǒng)的業(yè)務邏輯編寫在客戶端的應用程序中,因此,當應用系統(tǒng)需要改變時,所有客戶端的應用程序都必須改變,這對于系統(tǒng)維護來說成本太高了。為了解決這些重復開發(fā)應用系統(tǒng)的成本以及為了增加應用系統(tǒng)的重復使用性發(fā)揮面向?qū)ο蠓治?面向?qū)ο笤O計的功能,就必須導入所謂的應用程序服務器,這就要采用B/S架構(gòu),軟件開發(fā)人員以一種特
11、定的組件形式,組裝企業(yè)的邏輯程序代碼。這種經(jīng)過組裝,能夠執(zhí)行特定功能的對象便稱為“企業(yè)對象”,然后把這些企業(yè)對象分發(fā)到此應用程序服務器。,開發(fā)過程概述(續(xù)),6.1.3 軟件開發(fā)后的工作 軟件項目在開發(fā)完成后還要對系統(tǒng)進行測試和維護,以測試開發(fā)出的軟件的功能和性能是否達到預定要求,當系統(tǒng)更新或出現(xiàn)問題時要進行維護以確保系統(tǒng)正常運行。軟件測試大綱是軟件設計人員用來自測系統(tǒng)的。它包括: (1)環(huán)
12、境測試:·硬件環(huán)境·軟件環(huán)境,開發(fā)過程概述(續(xù)),(2)功能測試:·模擬現(xiàn)場測試·應用現(xiàn)場測試。 (3)性能測試:·服務器性能測試是服務器響應客戶請求、處理請求的時間,以及同時處理多用戶請求的能力。·系統(tǒng)性能測試測試系統(tǒng)靈敏度和處理作業(yè)的頻率。(4)系統(tǒng)維護主要指系統(tǒng)運行后的人員培訓,排除運行時出現(xiàn)的錯誤和故障等。,6.2 調(diào)試與測試,6.2.1 程
13、序調(diào)試 Visual C# 2005集成開發(fā)環(huán)境提供了一個功能強大的內(nèi)置調(diào)試器,用于對程序進行調(diào)試。1.程序中的錯誤 程序調(diào)試中可能出現(xiàn)各種各樣的錯誤是,但主要有以下3類: 1)語法錯誤 這種錯誤通常在編譯時便可發(fā)現(xiàn)。程序中如果有語法錯誤,在編譯時編譯器將以錯誤或警告的方式指出這類問題,并提供錯誤的地方及錯誤的原因等信息。,調(diào)試與測試(續(xù)),2)運行錯誤
14、 程序能通過編譯,但用戶輸入了不正確的信息,例如,使用一個整型變量來存儲姓名,讓程序打開一個不存在的文件等,都會在程序運行時引發(fā)異常。雖然系統(tǒng)也會提示錯誤或警告,但程序會不正常終止,甚至造成死機現(xiàn)象。處理這種運行錯誤的辦法有兩種:一是通過添加一些編程邏輯來對用戶輸入的值進行檢查(這種辦法不徹底);二是在程序中加入異常處理來捕獲并處理運行階段的異常錯誤。,調(diào)試與測試(續(xù)),3)邏輯錯誤 程序的邏輯錯誤會導致運行結(jié)果錯誤
15、,也就是在問題的控制邏輯上產(chǎn)生了錯誤。要查出這類邏輯錯誤是最困難的,僅通過檢查代碼很難找到這類錯誤。2.程序調(diào)試的方法 程序調(diào)試的方法可以概括為以下幾種: (1)程序調(diào)試的設置。 (2)斷點的使用。 (3)控制程序的執(zhí)行。 (4)監(jiān)視和檢查數(shù)據(jù)的值。,調(diào)試與測試(續(xù)),6.2.2 軟件質(zhì)量與測試 優(yōu)質(zhì)軟件是這樣定義的:軟件能夠滿足用戶顯式或隱式需求,文檔齊全,符合規(guī)定的操作標準,在其
16、基于開發(fā)的硬件上能高效運行。 軟件在正式投入使用以前,必須經(jīng)過嚴格的測試。在大型開發(fā)項目中,通常由專業(yè)測試人員和開發(fā)團隊共同來完成測試工作,以確保系統(tǒng)正常運行。,調(diào)試與測試(續(xù)),1.白盒測試和黑盒測試 白盒測試的對象是源程序,并以程序內(nèi)部的邏輯結(jié)構(gòu)為依據(jù)來設計測試用例。在這種情況下,程序就像玻璃房子,其中的每件事情都是可見的。 白盒測試一般由程序員來完成,程序員都必須確保
17、其編寫的每一條指令和程序運行時的每一種情況都被測試過。 與白盒測試相比,黑盒測試是指程序就像看不見內(nèi)部的黑盒,對其進行測試時不需要知道程序內(nèi)部細節(jié)及程序是如何工作的。 黑盒測試計劃是根據(jù)需求說明編制的,因此,在軟件開發(fā)的需求分析階段編制詳盡的需求說明文檔相當重要。測試工程師以需求文檔為依據(jù)進行軟件測試。,調(diào)試與測試(續(xù)),2.測試中要考慮的問題 測試的目的是在系統(tǒng)開發(fā)的每一階段,通
18、過適當?shù)臏y試手段檢查系統(tǒng)是否按照正確方向發(fā)展,及時發(fā)現(xiàn)不足和錯誤之處并予以改正,在測試中要考慮以下幾個問題: (1)不可能完全測試: 鑒于用戶系統(tǒng)的多樣性、復雜性和開發(fā)人員對用戶系統(tǒng)了解的局限性,任何測試都只能盡量地發(fā)現(xiàn)問題,減少錯誤,而不能確保沒有問題,因而要做到完全測試是不可能的。,調(diào)試與測試(續(xù)),(2)測試要有獨立性: 在進行黑盒測試時,測試人員不能是系統(tǒng)開發(fā)人員,這兩種人員必須獨立而并行地開展工作。這就要求測試人員對系統(tǒng)要
19、有足夠的了解,并能熟練地運用各種測試方法,在開發(fā)的每一階段完成之前做好全面測試準備,以保證測試順利進行。 (3)測試有風險性:因為完全的測試是不可能的,而且從時間上來說,也不容許在系統(tǒng)開發(fā)中間加入很長的測試時間,因此在制定測試目標與測試計劃時,必須抓住重點,盡量使開發(fā)工作不發(fā)生大漏洞與大錯誤。因此,測試工作是有風險的。,調(diào)試與測試(續(xù)),3.軟件測試階段 一般來說,軟件測試可分為3種,即程序測試、系統(tǒng)測試和用戶測試。程
20、序測試是指程序編完后進行的檢查和測試;系統(tǒng)測試是指在系統(tǒng)開發(fā)的整個生命周期中,對各個階段進行的工作;用戶測試屬于黑盒測試,是指部分有代表性的用戶對軟件進行測試和評價。,6.3 異常與異常處理,在編寫程序時,不僅要注意程序代碼的準確性與合理性,還要處理程序中可能出現(xiàn)的異常情況。.NET框架提供了一套稱為結(jié)構(gòu)化異常處理的標準錯誤機制,在這種機制中,如果出現(xiàn)錯誤或者任何預期之外的事件,都會引發(fā)異常。,,6.3.1 異常處理概述
21、在編寫程序時,不僅要關心程序的正常運行,還應具有相應的對各種可能發(fā)生的不可預測的事件的處理措施。在現(xiàn)代編程語言中,異常處理是解決這些問題的主要方法。異常處理是一種功能強大的機制,用于處理應用程序可能產(chǎn)生的錯誤或是其他可以中斷程序執(zhí)行的異常情況。異常處理可以捕捉程序執(zhí)行時發(fā)生的錯誤,使程序更具健壯性。,異常與異常處理(續(xù)),異常與異常處理(續(xù)),1.異常類 【例6-1】在程序中應用異常處理的示例。using System;name
22、space TestException{class Class1{[STAThread]static void Main(string[] args){int a,b,result;try,異常與異常處理(續(xù)),{Console.WriteLine("please input a:");a=int.Parse(Console.ReadLine());
23、 Console.WriteLine("please input b:");b=int.Parse(Console.ReadLine());result=a/b;}catch(Exception e){Console.WriteLine("{0}",e.Message);}Console.WriteLine("this is a te
24、st example");Console.ReadLine();} } },異常與異常處理(續(xù)),2.兩種派生的異常類 Exception是C#異常的基類,其兩種派生的異常類如下: (1)ApplicationException: ApplicationException是由用戶程序(而不是由公共語言運行庫)引發(fā)的,如果需要自定義異常處理程序,需要從ApplicationExcep
25、tion類派生。 (2)SystemException:一般是在發(fā)生非致命的、可由用戶程序恢復的錯誤時由公共語言運行時引發(fā)。這些錯誤(如數(shù)組超出界限)是由運行時檢查失敗引起的可以在任何方法的執(zhí)行過程中發(fā)生。SystemException不向Exception添加新功能,不提供導致Exception原因的信息。,,6.3.2 異常處理語句 在C#程序中,可以使用異常處理語句處理異常。主要的異常處理語句有throw語
26、句、try…catch語句和try…catch…finally語句。通過這3個異常處理語句可以對可能產(chǎn)生異常的程序代碼進行監(jiān)控。,異常與異常處理(續(xù)),異常與異常處理(續(xù)),1.try…catch語句 try…catch語句允許在try后面的大括號{}中放置可能發(fā)生異常情況的程序代碼,以對這些程序代碼進行監(jiān)控,并在catch后面的大括號{}中放置處理錯誤的程序代碼,以處理程序發(fā)生的異常。try…catch語句的格式如
27、下:try{…//可能引發(fā)異常的語句}catch(異常類名 異常變量名){…//包括異常處理、異常信息顯示等},異常與異常處理(續(xù)),2.try…catch…finally語句 在try…catch…finally語句中,finally語句同樣以區(qū)塊的方式存在,并放在所有try…catch語句的最后面,無論程序是否產(chǎn)生異常,最后都會執(zhí)行finally語句區(qū)塊中的程序代碼,其格式如
28、下: try { …//可能引發(fā)異常的語句 } catch(異常類名 異常變量名) { //異常處理部分 } finally { //最后程序代碼 },,6.3.3 使用throw語句 使用throw語句可以在特定的情形下,強制拋出異常。throw語句的格式如下: throw
29、 其中,ExObject表示要拋出的異常對象。使用throw語句顯式地拋出異常,有助于開發(fā)人員控制拋出的異常的相關消息,并允許使用catch語句拋出其他異常,從而使異常處理機制更為靈活。,異常與異常處理(續(xù)),異常與異常處理(續(xù)),【例6-4】一個使用throw強制拋出異常的示例。using System;using System.Collections.Generic;using System.Text;namespa
30、ce TestThrowException{ class Program { static void Main(string[] args) { int a, b; try {,異常與異常處理(續(xù)),Console.Write("please input a:");
31、 a = int.Parse(Console.ReadLine()); Console.Write("please input b:"); b = int.Parse(Console.ReadLine()); if (b == 0) throw new DivideByZeroExc
32、eption(); Console.WriteLine("result={0}", a / b); } catch (DivideByZeroException e) { Console.WriteLine("{0}", e.Message);
33、 },異常與異常處理(續(xù)),catch (FormatException e) { Console.WriteLine("{0}", e.Message); } catch (Exception e) { Console.WriteLine("{
34、0}", e.Message); } Console.ReadLine(); } }},小 結(jié),典型的軟件系統(tǒng)開發(fā)過程包括需求分析、系統(tǒng)設計、編碼實現(xiàn)和測試發(fā)布等主要環(huán)節(jié)。軟件調(diào)試和測試是確保軟件質(zhì)量的關鍵所在。讀者應結(jié)合本章的內(nèi)容,在實踐中掌握各種程序調(diào)試方法。異常出來機制對于保障軟件的健壯性和系統(tǒng)的安全性非常重要,因此也應該熟練掌握。,第6章結(jié)束,謝
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)過程記錄表
- 軟件開發(fā)過程團隊模型
- 軟件開發(fā)過程管理研究.pdf
- 軟件開發(fā)過程質(zhì)量的項目管理
- 軟件開發(fā)過程中軟件測試的運用
- 軟件開發(fā)過程項目管理的研究.pdf
- 軟件開發(fā)過程中的團隊管理
- 軟件開發(fā)過程中的復用研究.pdf
- 基于項目管理的A軟件開發(fā)過程研究.pdf
- 基于開源軟件的軟件開發(fā)過程管理研究.pdf
- 基于UML的軟件開發(fā)過程的研究.pdf
- 基于軟件開發(fā)過程的缺陷管理研究.pdf
- 精確軟件開發(fā)過程的研究及應用.pdf
- 基于CORBA構(gòu)件的軟件開發(fā)過程研究.pdf
- 利用Scrum方法進行軟件開發(fā)過程管理.pdf
- 基于CMMI的軟件開發(fā)過程改進研究.pdf
- 基于MDA的軟件開發(fā)過程的研究與應用.pdf
- 中小型軟件開發(fā)過程的管理與控制.pdf
- sdm 241大規(guī)模軟件開發(fā)過程與研發(fā)管理
- 軟件開發(fā)過程的工作流管理系統(tǒng).pdf
評論
0/150
提交評論