版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、高鐵車票訂票系統(tǒng)前臺(tái)設(shè)計(jì)摘 要 本文是針對(duì)高鐵車票訂票實(shí)際情況,按照軟件工程的結(jié)構(gòu)化設(shè)計(jì)思想,經(jīng)過項(xiàng)目的可行性研究和需求分析數(shù)據(jù)庫設(shè)計(jì)總體設(shè)計(jì)詳細(xì)設(shè)計(jì),以及代碼的實(shí)現(xiàn)和測(cè)試等步驟設(shè)計(jì)開發(fā)了高鐵車票訂票系統(tǒng)。運(yùn)用了數(shù)據(jù)流圖和數(shù)據(jù)字典E-R圖和數(shù)據(jù)庫邏輯結(jié)構(gòu)層次圖系統(tǒng)流程圖以及程序流程圖,對(duì)該系統(tǒng)的數(shù)據(jù)需求數(shù)據(jù)庫系統(tǒng)軟件結(jié)構(gòu)系統(tǒng)流程以及處理過程等進(jìn)行了分析和設(shè)計(jì)。軟件工具應(yīng)用了和Microsoft SQL Server 2005數(shù)據(jù)庫來開發(fā)這個(gè)高鐵車票訂票系統(tǒng)。該系統(tǒng)可以解決的是高鐵車票訂票系統(tǒng)所要解決的問題,可以基本滿足高鐵車票訂票的基本要求,包括會(huì)員注冊(cè)、車次查詢、車票預(yù)訂、費(fèi)用在線支付、訂單
2、查詢/修改、個(gè)人信息維護(hù)模塊、留言板、訂票須知、信息公告,其中主要實(shí)現(xiàn)了查詢、訂票、退票等三個(gè)方面的功能。該系統(tǒng)能運(yùn)用到高鐵的訂票工作中,可以根據(jù)用戶的需求設(shè)者其權(quán)限,方便快捷的為用戶提供服務(wù)。關(guān)鍵詞:信息管理;高鐵售票; ;Microsoft SQL Server 2005High iron ticket system front desk designAbstractThis article focuses on the actual situation of high-speed rail ticket booking,structured according to the softwa
3、re engineering design, talked about the project feasibility study and needs analysis 、Overall Design, Database Design, detailed design, and code implementation and testing procedures designed and developed high-speed railway ticket booking system。The use of a data flow diagram and ER diagrams and da
4、ta dictionary logical structure or hierarchy database system flow chart diagram and process flow chart, the data needs of the system software 、 database structure or system processes and processing were analyzed And design。The application software development tools and Microsoft SQL Server 2005 data
5、base to develop the high-speed railway ticket booking system。The system can solve the problem of high-speed rail ticket booking system to solve the problem。You can basically meet the high-speed rail ticket booking, the basic requirements, including membership registration, train number, ticket booki
6、ng, for online payment, order inquiry / modification Personal information maintenance module, message board, booking instructions, information bulletin, mainly to achieve the query, ticketing, refunds and other three functions。The system can be applied to work in high-speed rail bookings, according
7、to the needs of users who set their permissions to provide users with convenient and efficient service.Keywords: information management; high-speed rail ticketing; ; Microsoft SQL Server 2005目 錄第1章 緒論51.1 引言51.2 國內(nèi)外現(xiàn)狀51.3 課題意義61.4 應(yīng)用范圍6第2章 系統(tǒng)地可行性研究與需求分析72.1 可行性分析72.1.1 法律方面的可行性72.1.2 使用方面的可行性72.1.3
8、經(jīng)濟(jì)可行性72.1.4 技術(shù)可行性72.1.5 操作可行性72.2 需求分析72.2.1 功能需求72.2.2 數(shù)據(jù)需求92.2.3 性能需求92.2.4 數(shù)據(jù)流圖102.2.5 數(shù)據(jù)字典102.2.6 實(shí)體聯(lián)系圖11第3章 數(shù)據(jù)庫設(shè)計(jì)133.1 SQL Server 2005數(shù)據(jù)庫簡介133.2 系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)133.2.1 車次表133.2.2 訂單表133.2.3 售票表143.2.4 系統(tǒng)表143.2.5 退票表14第4章 系統(tǒng)的總體設(shè)計(jì)154.1 系統(tǒng)軟件的結(jié)構(gòu)設(shè)計(jì)154.1.1 軟件結(jié)構(gòu)154.1.2 模塊算法154.2 系統(tǒng)流程圖17第5章 系統(tǒng)的詳細(xì)設(shè)計(jì)195.1 用戶操作
9、業(yè)務(wù)流程圖195.1.1 用戶系統(tǒng)主程序流程圖。如圖5.1 所示:195.1.2 車次信息查詢業(yè)務(wù)流程圖.如圖5.2所示:205.1.3 訂票處理流程圖.如圖5.3所示:215.1.4 訂票信息查詢處理流程圖.如圖5.4所示:225.1.5 退票處理流程圖.如圖5.5所示:235.2 接口設(shè)計(jì)245.2.1 用戶接口245.2.2 外部接口245.2.3 內(nèi)部接口245.3 詳細(xì)頁面設(shè)計(jì)245.4 物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)245.4.1 系統(tǒng)登錄主界面255.4.2 售票車票系統(tǒng)的主界面255.4.3 車票預(yù)定系統(tǒng)主界面265.4.4 退票系統(tǒng)主界面27第6章 測(cè)試286.1 數(shù)據(jù)與數(shù)據(jù)庫完整性的測(cè)試
10、286.2 功能的測(cè)試286.3 業(yè)務(wù)周期測(cè)試286.4 用戶界面的測(cè)試29結(jié) 論30致 謝31參 考 文 獻(xiàn)32附錄A 譯文33附錄B 外文原文40第1章 緒論1.1 引言1969年,美國IBM公司首次宣布除操作系統(tǒng)繼續(xù)隨計(jì)算機(jī)配送外,其余軟件一律計(jì)價(jià)出售,從此開創(chuàng)了軟件成為獨(dú)立商品的先河。短短四十幾年的時(shí)間,計(jì)算機(jī)軟件的重要性與日俱增。從PC機(jī)到筆記本電腦,從因特網(wǎng)到移動(dòng)電話,從先進(jìn)的武器到現(xiàn)代的家電,計(jì)算機(jī)軟件幾乎無處不在,無時(shí)不在。世界上最大的軟件公司微軟公司及其創(chuàng)始人,已成為全球知名度最高的企業(yè)之一。在很多發(fā)達(dá)國家,軟件產(chǎn)業(yè)已成為社會(huì)的支柱產(chǎn)業(yè),軟件工程師也成為最受青睞的一種職業(yè)。正
11、是由于軟件的發(fā)展,使計(jì)算機(jī)應(yīng)用逐步滲透到社會(huì)生活的各個(gè)角落,使各行各業(yè)都發(fā)生了很大的變化。這同時(shí)也促使人們對(duì)軟件的品種,數(shù)量,功能和質(zhì)量等提出了越來越高的要求。然而,軟件的規(guī)模越大,越復(fù)雜,人們的軟件開發(fā)能力越顯得力不從心。于是,人們開始重視軟件開發(fā)過程,方法,工具和環(huán)境的研究,軟件工程應(yīng)運(yùn)而生。軟件工程技術(shù)歷經(jīng)四十多年的發(fā)展,目前已進(jìn)入成熟期。軟件過程改善的熱潮使軟件企業(yè)對(duì)軟件工程技術(shù)的認(rèn)識(shí)有了質(zhì)的飛躍,正在被越來越廣泛地接收。過程改善和技術(shù)提升的結(jié)合是軟件產(chǎn)業(yè)發(fā)展的趨勢(shì)。軟件復(fù)用和軟件構(gòu)件技術(shù),再工程技術(shù)及領(lǐng)域工程技術(shù)正逐步成為主流軟件技術(shù),是軟件工程化,工業(yè)化生產(chǎn)技術(shù)的核心技術(shù)。也推動(dòng)了
12、一些行業(yè)的發(fā)展,比如說票務(wù)方面,本次設(shè)計(jì)我選擇了具有比較典型的并且有一定實(shí)際應(yīng)用價(jià)值的課題-高鐵車票訂票系統(tǒng)。1.2 國內(nèi)外現(xiàn)狀“目前,從技術(shù)上看,軟件開發(fā)的主要模式仍以手工作坊式為住,但工程化技術(shù)的采用呈穩(wěn)步上升趨勢(shì)。軟件企業(yè)的過程改善,規(guī)范化,規(guī)模化正成為一種趨勢(shì)。推行軟件的工程化,工業(yè)化生產(chǎn)技術(shù)和模式是軟件企業(yè)發(fā)展并形成規(guī)模經(jīng)濟(jì)的必由之路,這已成為學(xué)術(shù)界和產(chǎn)業(yè)界的共識(shí)?!?當(dāng)前,學(xué)術(shù)界和產(chǎn)業(yè)界的共識(shí)是:在注重軟件工程技術(shù)研究的同時(shí)應(yīng)注重軟件過程的研究;軟件開發(fā)單位不僅需要技術(shù)創(chuàng)新(采用先進(jìn)技術(shù)),更需要將其過程改善放在首位。過程改善和技術(shù)的緊密結(jié)合才是完善的軟件開發(fā)解決方案。進(jìn)入九十年代
13、以來,軟件過程研究及企業(yè)過程改善成為熱潮,和軟件工程技術(shù)研究及企業(yè)技術(shù)創(chuàng)新受到同等重視,兩方面都得到了長足的發(fā)展。在技術(shù)方面,軟件工程技術(shù)不斷發(fā)展,軟件工具市場不斷擴(kuò)大。我國政府支持的國家重點(diǎn)科技攻關(guān)項(xiàng)目青鳥工程長期從事對(duì)軟件工程技術(shù)的研究,在上述幾方面及其集成上均有卓有成效的成果,保持了和國際前沿同步,同時(shí),為我國軟件產(chǎn)業(yè)基礎(chǔ)設(shè)施建設(shè)以及軟件工程學(xué)科建設(shè)做出了積極貢獻(xiàn)。1.3 課題意義隨著高鐵的興起,火車站市場的管理和規(guī)范問題,已經(jīng)是困擾我們多年的一個(gè)老問題,也是政府部門管理中的一個(gè)重點(diǎn)、難點(diǎn).訂票是客運(yùn)業(yè)務(wù)中的一個(gè)最最基本的業(yè)務(wù),從表面上來看,它只是高鐵業(yè)務(wù)中的一個(gè)簡單部分,但是它涉及到管
14、理與客戶服務(wù)等多方面的問題,因此,過去傳統(tǒng)的售票方式遠(yuǎn)遠(yuǎn)不能夠滿足現(xiàn)代客運(yùn)業(yè)務(wù)流量急速增長的趨勢(shì),這就要求研發(fā)出一種全新的訂票方式來滿足客戶的需要,那就是網(wǎng)上訂票,這種方式可以大大地緩解車票訂購高峰時(shí)期的客運(yùn)壓力,并可以為用戶提供方便快捷的訂票服務(wù).1.4 應(yīng)用范圍高鐵車票的管理和規(guī)范問題,是困擾我們多年的一個(gè)老問題,也是政府管理中的一個(gè)難點(diǎn),訂票是客運(yùn)業(yè)務(wù)中的一個(gè)最基本的業(yè)務(wù),表面上看,它只是長途客運(yùn)業(yè)務(wù)的一個(gè)簡單的部分,但是它涉及到管理與客戶服務(wù)等多方面,因此,過去傳統(tǒng)的售票方式已經(jīng)不能滿足現(xiàn)代客運(yùn)業(yè)務(wù)流量劇增的客觀要求,這就要求一種全新的訂票方式網(wǎng)上訂票,來緩解訂票高峰時(shí)期的客運(yùn)壓力,并
15、為用戶提供方便快捷的訂票服務(wù)。本次設(shè)計(jì)便是利用開發(fā)工具asp和SQL Server 2005數(shù)據(jù)庫共同開發(fā)的一個(gè)高鐵車票訂票系統(tǒng),它能方便快捷地運(yùn)用在訂票業(yè)務(wù)的營運(yùn)之中。本系統(tǒng)設(shè)計(jì)主要是根據(jù)訂票業(yè)務(wù)的基本流程進(jìn)行的,系統(tǒng)功能主要包括如下幾個(gè)方面:查詢:分為對(duì)信息的查詢和客戶對(duì)已訂車票信息的查詢訂票:通過查詢系統(tǒng),客戶根據(jù)自己的需求找到滿意的車次,直接通過網(wǎng)上訂票確定已預(yù)訂選中的高鐵車票。第2章 系統(tǒng)地可行性研究與需求分析2.1 可行性分析該階段主要通過對(duì)系統(tǒng)目標(biāo)地初步調(diào)研和分析,從而提出可行性方案并進(jìn)行研究論證.我在這主要從法律方面的可行性、使用方面的可行性、經(jīng)濟(jì)可行性、技術(shù)可行性、操作可行性
16、五方面進(jìn)行分析論證。2.1.1 法律方面的可行性 該系統(tǒng)的開發(fā)和研制,將不會(huì)侵犯他人、集體和國家的利益,不會(huì)違反國家的相關(guān)政策和法律。2.1.2 使用方面的可行性 該系統(tǒng)操作簡單,需要高鐵售票人員熟悉業(yè)務(wù)流程,一般的工作人員即可勝任。2.1.3 經(jīng)濟(jì)可行性 由于本系統(tǒng)是為了高鐵車票訂票所使用的系統(tǒng),安裝該應(yīng)用程序,即可馬上使用此系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運(yùn)行后,可以節(jié)省大量的人力、財(cái)力、物力,所帶來的經(jīng)濟(jì)效益是遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。所以,從經(jīng)濟(jì)的角度來看,是完全可行的。2.1.4 技術(shù)可行性 開發(fā)工具: 數(shù)據(jù)庫環(huán)境: Microsoft SQL Server 2
17、005 系統(tǒng)環(huán)境: Microsoft Windows 2005或以上版本系統(tǒng)實(shí)現(xiàn)依靠開發(fā)工具和Microsoft SQL Server 2005數(shù)據(jù)庫系統(tǒng),其基本操作實(shí)質(zhì)還是對(duì)數(shù)據(jù)庫進(jìn)行查找、刪除、添加等操作,暫時(shí)沒有技術(shù)問題。2.1.5 操作可行性 界面設(shè)計(jì)時(shí),充分考慮了使用人員的習(xí)慣,界面友好簡潔,操作方便;數(shù)據(jù)輸入簡單、迅速、規(guī)范、可靠;統(tǒng)計(jì)、計(jì)算準(zhǔn)確等優(yōu)點(diǎn)。2.2 需求分析 需求分析是軟件設(shè)計(jì)的一個(gè)極其重要的環(huán)節(jié)。本階段將對(duì)高鐵車票訂票系統(tǒng)的應(yīng)用情況作出全面了解,以確保系統(tǒng)的目標(biāo),并對(duì)系統(tǒng)所需要的相關(guān)數(shù)據(jù)以及數(shù)據(jù)處理要求進(jìn)行分析,從而確保用戶的需求。用戶對(duì)系統(tǒng)的需求我將從以下幾方面進(jìn)
18、行分析。2.2.1 功能需求 本高鐵車票訂票系統(tǒng)應(yīng)該具備如下功能:(1) 會(huì)員注冊(cè) 此系統(tǒng)通過注冊(cè)會(huì)員成為本系統(tǒng)的會(huì)員,來獲得用戶名和密碼,才能進(jìn)入本系統(tǒng)。(2) 車次查詢 車次查詢分為對(duì)車次信息的查詢和客戶對(duì)已訂車票信息的查詢.要求:1) 對(duì)車次的查詢,可以按照發(fā)車車次進(jìn)行查詢。2) 車次信息包括:車號(hào)、出發(fā)地、目的地、發(fā)車日期、開出時(shí)刻、票價(jià)。3) 座位類型設(shè)定:軟座和硬座。4) 車次信息只允許用戶查詢,不能修改。(3) 預(yù)定車票 通過查詢系統(tǒng),客戶根據(jù)自己的需求找到滿意并適合自己的車次,再輸入個(gè)人信息后直接通過網(wǎng)上訂票確定并預(yù)定選中的車票.要求: 訂票記錄包括:車號(hào)、種類、開車時(shí)間、車票
19、價(jià)格。(4) 取消預(yù)訂 由于某些原因,或者突發(fā)情況,無法趕到預(yù)定車票的時(shí)間,客戶通過退回車票,可以找到預(yù)定的車票,可以通過取消預(yù)定來退去已購車票。 (5) 留言板通過留言板你可以發(fā)表心中的疑惑,對(duì)高鐵的一切情況,也可以發(fā)表自己的見解.對(duì)售票人員的服務(wù)滿意度,對(duì)高鐵上服務(wù)人員的看法等問題都可以通過留言板來留言,讓管理人員及時(shí)了解情況,以便迅速做出調(diào)整,做到每一個(gè)乘客滿意放心。(6) 訂票須知 通過訂票須知,可以回答你一些簡單的疑惑,如高鐵上不允許帶的違禁物品,坐高鐵要注意的事項(xiàng),多少升高以下的兒童可以免票等相應(yīng)的情況,你可以通過訂票須知知道.因此,在訂票之前,不妨仔細(xì)閱讀一下須知,詳細(xì)了解樂坐高
20、鐵的種種事項(xiàng)后,再開始訂票。(7) 信息公告 通過信息公告,可以讓乘客知道高鐵是否運(yùn)行,有時(shí)可能由于天氣原因等情況,火車站會(huì)采取停止高鐵的運(yùn)行,這些信息可以通過信息公告來知道,以便乘客能夠及時(shí)知曉,對(duì)訂票有很大的幫助。2.2.2 數(shù)據(jù)需求數(shù)據(jù)需求,即在系統(tǒng)中需要處理的數(shù)據(jù).根據(jù)對(duì)高鐵車票訂票系統(tǒng)的分析,本系統(tǒng)的數(shù)據(jù)需求。如表2.1所示:信息輸入信息處理信息輸出用戶輸入所需車次檢索系統(tǒng)數(shù)據(jù)庫顯示出符合用戶需求的車次及相關(guān)信息用戶輸入個(gè)人信息及所需訂購的車票信息更新系統(tǒng)中的訂票信息,將新信息存入系統(tǒng)數(shù)據(jù)庫操作反饋(如訂票成功)用戶輸入自己的名字、身份證號(hào);或交易的訂單號(hào)檢索系統(tǒng)數(shù)據(jù)庫符合用戶需求的
21、訂票信息用戶輸入自己的名字檢索系統(tǒng)數(shù)據(jù)庫以得到訂票記錄,刪除用戶請(qǐng)求的訂票記錄,更新系統(tǒng)數(shù)據(jù)庫顯示出操作反饋(如退票成功等) 表2.1 信息輸入輸出2.2.3 性能需求為了保證系統(tǒng)能夠長期、安全、穩(wěn)定、可靠、高效的運(yùn)行,本系統(tǒng)應(yīng)該滿足以下的性能需求。(1) 準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是系統(tǒng)的必要性能。系統(tǒng)應(yīng)能及時(shí)而且準(zhǔn)確的根據(jù)用戶權(quán)限及所輸入的信息做出響應(yīng)。由于本系統(tǒng)的查詢功能對(duì)于整個(gè)系統(tǒng)的功能和性能完成舉足輕重。作為系統(tǒng)的很多數(shù)據(jù)來源,而車票的數(shù)量和時(shí)間又影響用戶的決策活動(dòng),其準(zhǔn)確性和及時(shí)性很大程度上決定了系統(tǒng)的成敗。在系統(tǒng)開發(fā)過程中,必須采用一定的方法保證系統(tǒng)的準(zhǔn)確性和及時(shí)性。
22、(2) 易用性本系統(tǒng)是直接面對(duì)用戶的,而用戶往往對(duì)計(jì)算機(jī)并不是非常熟悉。這就要求系統(tǒng)能夠提供良好的用戶接口,易用的人機(jī)交互界面。要實(shí)現(xiàn)這一點(diǎn),就要求系統(tǒng)應(yīng)該盡量使用用戶熟悉的術(shù)語和中文信息的界面,從而保證系統(tǒng)的易用性。(3) 安全性網(wǎng)上訂票系統(tǒng)中涉及到的數(shù)據(jù)是客運(yùn)公司相當(dāng)重要的信息,系統(tǒng)要保證用戶的權(quán)限,對(duì)于車次等信息用戶只享有查詢服務(wù),不得更改;系統(tǒng)還要提供方便的手段供系統(tǒng)維護(hù)人員進(jìn)行數(shù)據(jù)備份、日常安全管理、以及系統(tǒng)意外崩潰時(shí)數(shù)據(jù)的恢復(fù)等工作。同時(shí)系統(tǒng)還要保證對(duì)數(shù)據(jù)庫進(jìn)行及時(shí)更新,保證數(shù)據(jù)一致性。2.2.4 數(shù)據(jù)流圖 本系統(tǒng)的數(shù)據(jù)流圖如圖2.2所示:事務(wù)事務(wù)事務(wù)用戶信息事務(wù)用戶事務(wù)接收事務(wù)車
23、次信息車次信息更新數(shù)據(jù)庫事務(wù)接收事務(wù)訂單信息反饋事務(wù)用戶事務(wù)事務(wù)更新數(shù)據(jù)庫接收事務(wù)事務(wù)訂單信息事務(wù)查詢訂單修改訂單反饋用戶訂票事務(wù)接收事務(wù)反饋用戶更新數(shù)據(jù)庫更新數(shù)據(jù)庫用戶信息接收事務(wù)退票 圖2.2 數(shù)據(jù)流圖2.2.5 數(shù)據(jù)字典 如圖2.32.5所示: 名字:車次信息別名:描述:存放車次信息的文件,以供用戶查詢定義:車次信息=車號(hào)+出發(fā)地+目的地+發(fā)車日期+開出時(shí)刻+到達(dá)時(shí)刻+ 坐位類型+票價(jià)位置:輸出到CRT終端或類似的顯示部件圖2.3 車次信息數(shù)據(jù)字典名字:訂票信息別名:訂單信息描述:存放訂單信息的文件,以供用戶查詢,并作相應(yīng)操作定義:訂票記錄=用戶名+車號(hào)+發(fā)車日期+訂購日期+訂購票數(shù)+總
24、價(jià)位置:輸出到CRT終端或類似的顯示部件圖2.4 訂票信息數(shù)據(jù)字典名字:會(huì)員信息別名:用戶信息描述:存放會(huì)員信息的文件,以供會(huì)員方便的查詢訂單信息,進(jìn)而做出相應(yīng)的操作定義:會(huì)員信息=真實(shí)姓名+身份證號(hào)+性別+籍貫+聯(lián)系電話位置:輸出到CRT終端或類似的顯示部件 圖2.5 會(huì)員信息數(shù)據(jù)字典2.2.6 實(shí)體聯(lián)系圖 用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫結(jié)構(gòu)能充分滿足各種信息的輸出和輸入。針對(duì)火車站網(wǎng)上訂票系統(tǒng),通過對(duì)網(wǎng)上訂票工作的過程、內(nèi)容以及數(shù)據(jù)流程分析,設(shè)計(jì)如下所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):1)車次信息包括:車號(hào)、出發(fā)地、目的地、發(fā)車日期、開出時(shí)刻、剩余座位數(shù)、票價(jià)。2
25、)訂票記錄包括:訂單號(hào)、身份證號(hào)、車號(hào)、訂購日期、訂購票數(shù)、總價(jià)。3)會(huì)員信息包括:真實(shí)姓名、身份證號(hào)、性別、籍貫、聯(lián)系電話。E-R圖如圖2.2所示: nnn11m查詢退票訂票訂單號(hào)用戶身份證號(hào)車號(hào)訂購日期總價(jià)發(fā)車日期訂票信息會(huì)員真實(shí)姓名籍貫性別電話車次車次 出發(fā)地目的地發(fā)車日期開出時(shí)刻坐位類型票價(jià)訂購票數(shù)圖2.6 實(shí)體聯(lián)系圖(E-R圖)第3章 數(shù)據(jù)庫設(shè)計(jì)3.1 SQL Server 2005數(shù)據(jù)庫簡介 Microsoft的SQL Server作為眾多數(shù)據(jù)庫軟件的一種,是網(wǎng)絡(luò)世界的一個(gè)支撐。 從20世紀(jì)80年代后期開發(fā)SQL Server,到2005年底SQL Server 2005的發(fā)布,M
26、icrosoft經(jīng)歷十幾年的磨練,使SQL Server從無到有,從小到大,而且新一代的SQL Server已經(jīng)開始逐漸成為Windows操作系統(tǒng)未來的核心,成為主流數(shù)據(jù)庫軟件。 SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了。Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows
27、 NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。到了2005年底,Microsoft公司經(jīng)過5年的努力,推出了其最新版本SQL Server 2005。3.2 系統(tǒng)數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) 高鐵車票訂票系統(tǒng)數(shù)據(jù)庫忠各個(gè)表格的設(shè)計(jì)結(jié)果如下表所示.每個(gè)表格分別表示在數(shù)據(jù)庫中的一個(gè)表.3.2.1 車次表字段名數(shù)據(jù)類型是否可空說明CidintNOT NULL車號(hào)(主鍵)0Carnamevarchar(50)NOT NULL車名CTypevarchar(50)NOT NULL車次類型表 3.1 車次表3.2.2 訂單表字段名數(shù)據(jù)類型是否可空說明OidintNOT NULL訂
28、單號(hào)(主鍵)OCarvarchar(50)NOT NULL車號(hào)(外鍵)Oticketypevarchar(10)NOT NULL訂票類型ObuyTimedatetimeNOT NULL訂單時(shí)間OusetimedatetimeNOT NULL發(fā)車時(shí)間OmoneymoneyNOT NULL價(jià)格Oadminvarchar(50)NOT NULL用戶名表3.2 訂單表 3.2.3 售票表字段名數(shù)據(jù)類型是否可空說明SidintNOT NULL車號(hào)(主鍵)SCarvarchar(50)NOT NULL車次(外鍵)SticketTypevarchar(10)NOT NULL車次類型(外鍵)Stimedate
29、timeNOT NULL發(fā)車日期(外鍵)Smoneymoney NULL價(jià)格SadminvarcharNULL用戶名表3.3 售票表3.2.4 系統(tǒng)表字段名數(shù)據(jù)類型是否可空說明SysidinNOT NULL車號(hào)(主鍵)SysBuyTimevarchar(50) NULL買票時(shí)間SysOrderTimevarchar(50) NULL訂票時(shí)間SysuipiaoTimeVarchar(50)NULL退票時(shí)間表3.4 系統(tǒng)表3.2.5 退票表字段名數(shù)據(jù)類型是否可空說明TidintNOT NULL退票車號(hào)Tnamevarchar(50)NOT NULL退票類型TtimedatetimeNOT NULL
30、退票時(shí)間TmoneymoneyNULL退票價(jià)格表3.5 退票表第4章 系統(tǒng)的總體設(shè)計(jì)4.1 系統(tǒng)軟件的結(jié)構(gòu)設(shè)計(jì)4.1.1 軟件結(jié)構(gòu) 本高鐵車票訂票系統(tǒng)可劃分為信息查詢、網(wǎng)上訂票、取消訂票三個(gè)部分。其中信息查詢又可分為車次查詢和訂單查詢兩個(gè)部分。其層次圖如圖4.1所示?;疖嚻本W(wǎng)上訂票系統(tǒng)信息查詢車次查詢訂票查詢網(wǎng)上訂票取消訂票圖4.1 高鐵車票訂票系統(tǒng)層次圖4.1.2 模塊算法 1.各級(jí)別算法 1) 界面級(jí)算法 處理輸入信息,產(chǎn)生相應(yīng)任務(wù)。如圖4.2所示:輸入數(shù)據(jù)產(chǎn)生任務(wù)客戶端校驗(yàn)數(shù)據(jù)數(shù)據(jù)信息反饋信息加工 圖4.2 界面級(jí)算法示意圖2) 數(shù)據(jù)庫級(jí)算法執(zhí)行相應(yīng)數(shù)據(jù)庫操作,并直接返回信息反饋.如圖4
31、.3所示:底層數(shù)據(jù)庫操作(封裝)用戶界面級(jí)模塊任務(wù)數(shù)據(jù)校驗(yàn),調(diào)用相關(guān)模塊功能圖4.3 數(shù)據(jù)庫級(jí)算法示意圖3) 任務(wù)級(jí)算法執(zhí)行所需功能,滿足用戶需求.如圖4.4所示:失敗任務(wù)觸發(fā)權(quán)限校驗(yàn)生成數(shù)據(jù)請(qǐng)求并記錄數(shù)據(jù)處理并反饋界面顯示圖4.4任務(wù)級(jí)算法示意圖2. 調(diào)用關(guān)系1)界面模塊調(diào)用任務(wù)模塊2)任務(wù)模塊調(diào)用數(shù)據(jù)模塊3)數(shù)據(jù)模塊調(diào)用界面模塊顯示4.2 系統(tǒng)流程圖系統(tǒng)頂層流程圖如圖3.5所示。圖4.6圖4.9為各模塊詳細(xì)系統(tǒng)流程圖。查詢程序訂票程序退票程序火車站網(wǎng)上訂票系統(tǒng)系統(tǒng)數(shù)據(jù)庫事務(wù)相應(yīng)信息操作反饋 圖4.5 系統(tǒng)頂層流程圖 輸入所需車次的重要信息查詢程序系統(tǒng)數(shù)據(jù)庫符合用戶需求的車次信息事務(wù)圖4.6
32、 車次信息查詢系統(tǒng)流程圖查詢程序系統(tǒng)數(shù)據(jù)庫符合用戶需求的訂票信息事務(wù)輸入查詢條件 圖4.7 訂單信息查詢系統(tǒng)流程圖 訂票程序系統(tǒng)數(shù)據(jù)庫操作反饋事務(wù)輸入訂票信息 圖4.8 訂票系統(tǒng)流程圖退票程序系統(tǒng)數(shù)據(jù)庫操作反饋事務(wù)輸入退票信息 圖4.9退票系統(tǒng)流程圖第5章 系統(tǒng)的詳細(xì)設(shè)計(jì)5.1 用戶操作業(yè)務(wù)流程圖5.1.1 用戶系統(tǒng)主程序流程圖。如圖5.1 所示:NYYYNY開始主界面NY選擇訂票窗口選擇查詢窗口查詢界面訂票訂票界面選擇退票窗口YN退票退票界面退出N查詢車次信息訂票查詢訂票信息退票結(jié)束登錄框登錄,確定訪問權(quán)限 圖5.1 用戶程序主流程圖5.1.2 車次信息查詢業(yè)務(wù)流程圖.如圖5.2所示:NNN
33、YYYNNYY查詢界面用戶輸入要查詢條件查詢讀數(shù)據(jù)文件輸出查詢結(jié)果關(guān)閉窗口結(jié)束開始訂票訂票界面繼續(xù)查詢車次信息查詢車次信息訂票返回主頁 圖5.2車次信息查詢業(yè)務(wù)流程圖5.1.3 訂票處理流程圖.如圖5.3所示:NNYYNYNY開始訂票界面訂票輸入訂票信息N返回主頁繼續(xù)訂票提交信息有效性修改數(shù)據(jù)文件Y關(guān)閉窗口結(jié)束錯(cuò)誤提示圖5.3訂票處理流程圖5.1.4 訂票信息查詢處理流程圖.如圖5.4所示:NNNYYYNY查詢界面讀數(shù)據(jù)文件輸出查詢結(jié)果關(guān)閉窗口結(jié)束開始Y返回主頁主界面退票退票界面繼續(xù)查詢訂票信息查詢訂票信息退票圖 5.4訂票信息查詢處理流程圖5.1.5 退票處理流程圖.如圖5.5所示:NNYY
34、NYNY開始退票界面退票N返回主頁繼續(xù)退票提交信息有效性Y關(guān)閉窗口結(jié)束錯(cuò)誤提示輸入退票信息圖5.5退票處理流程圖5.2 接口設(shè)計(jì)5.2.1 用戶接口 用戶通過界面接口來實(shí)現(xiàn)參數(shù)的輸入,進(jìn)入相應(yīng)的界面后輸入提示的信息即可產(chǎn)生相應(yīng)的任務(wù);在用戶登錄時(shí),如果用戶輸入的信息是非法的系統(tǒng)會(huì)提示有錯(cuò)誤信息。5.2.2 外部接口 本系統(tǒng)得數(shù)據(jù)庫是用SQL,然后在計(jì)算機(jī)上創(chuàng)建OLEDB數(shù)據(jù)源,然后用的asp的幾個(gè)數(shù)據(jù)庫連接來實(shí)現(xiàn)與數(shù)據(jù)庫的連接。5.2.3 內(nèi)部接口 本系統(tǒng)包括如下幾個(gè)方面:登陸界面,訂票,車票時(shí)刻信息查詢。需要的數(shù)據(jù)表有:Admin、Car、OrderTicket等表,這幾個(gè)數(shù)據(jù)表都有自己的主
35、鍵,表之間通過主鍵實(shí)現(xiàn)連接。5.3 詳細(xì)頁面設(shè)計(jì)本身這個(gè)系統(tǒng)主要包括兩個(gè)登錄窗口:一個(gè)乘客登錄窗口,一個(gè)管理員登錄窗口。當(dāng)一個(gè)乘客訪問這個(gè)頁面的時(shí)候,他首先可看到的是主頁面上有3個(gè)基本功能:銷售車票,預(yù)定車票,退回車票。你通過售票車票,可以查詢車次,價(jià)格等信息。乘客訂票是需要乘客進(jìn)行注冊(cè)后才能擁有的功能,而第3個(gè)功能就是乘客訂票,通過輸入車次等信息,可以進(jìn)行訂票。管理員登錄窗口,我們?cè)O(shè)為初始值,管理員登錄后擁有線路的添加,刪改的功能。5.4 物理結(jié)構(gòu)設(shè)計(jì)要點(diǎn)給出本系統(tǒng)內(nèi)所使用的每個(gè)數(shù)據(jù)結(jié)構(gòu)中的每個(gè)數(shù)據(jù)項(xiàng)的存儲(chǔ)要求,訪問方法、存取單位、存取的物理關(guān)系(索引、設(shè)備、存儲(chǔ)區(qū)域)、設(shè)計(jì)考慮和保密條件。
36、設(shè)計(jì)系統(tǒng)界面,主要界面如下:5.4.1 系統(tǒng)登錄主界面 5.4.2 售票車票系統(tǒng)的主界面 5.4.3 車票預(yù)定系統(tǒng)主界面5.4.4 退票系統(tǒng)主界面第6章 測(cè)試6.1 數(shù)據(jù)與數(shù)據(jù)庫完整性的測(cè)試測(cè)試目標(biāo) 確保數(shù)據(jù)庫訪問和進(jìn)程正常進(jìn)行,數(shù)據(jù)不會(huì)遭到損壞技術(shù)調(diào)用各個(gè)數(shù)據(jù)庫訪問方法和進(jìn)程,并在其中填充有效和無效的數(shù)據(jù) (或?qū)?shù)據(jù)的請(qǐng)求)。檢查數(shù)據(jù)庫,確保數(shù)據(jù)已按預(yù)期的方式填充,并且所有的數(shù)據(jù)庫事件已正常發(fā)生;或者檢查所返回的數(shù)據(jù),確保為正當(dāng)?shù)睦碛蓹z索到了正確的數(shù)據(jù)。完成標(biāo)準(zhǔn)所有的數(shù)據(jù)庫訪問和進(jìn)程都按照設(shè)計(jì)的方式運(yùn)行,數(shù)據(jù)沒有遭到損壞。需考慮的特殊事項(xiàng)進(jìn)程應(yīng)該以手工方式調(diào)用應(yīng)使用小型或最小的數(shù)據(jù)庫來使所有
37、無法接受的事件具有更大的可視度6.2 功能的測(cè)試測(cè)試目標(biāo) 確保功能正常,其中包括導(dǎo)航,數(shù)據(jù)輸入,處理和檢索等功能技術(shù)用有效的和無效的數(shù)據(jù)來執(zhí)行各個(gè)用例。1在使用有效的數(shù)據(jù)時(shí)得到預(yù)期的結(jié)果2在使用無效的數(shù)據(jù)時(shí)顯示相應(yīng)的錯(cuò)誤信息和警告消息3各業(yè)務(wù)規(guī)則都得到了有效的應(yīng)用完成標(biāo)準(zhǔn)所有計(jì)劃的測(cè)試全部執(zhí)行所發(fā)現(xiàn)的缺陷全部解決需考慮的特殊事項(xiàng)產(chǎn)品已完成功能的提交是否在測(cè)試的范圍內(nèi)6.3 業(yè)務(wù)周期測(cè)試 業(yè)務(wù)周期測(cè)試是模擬一段時(shí)間內(nèi)系統(tǒng)的運(yùn)行情況6.4 用戶界面的測(cè)試測(cè)試目標(biāo) 系統(tǒng)的界面美觀,得體,功能正常,符合用戶的要求,窗口的對(duì)象和特征符合標(biāo)準(zhǔn)。技術(shù)人工測(cè)試或自動(dòng)化測(cè)試工具進(jìn)行測(cè)試,模擬用戶的操作,確保界面
38、能夠正確的瀏覽,在不同的瀏覽器下顯示正常。完成標(biāo)準(zhǔn)核實(shí)頁面達(dá)到用戶的標(biāo)準(zhǔn)需考慮的特殊事項(xiàng)不同瀏覽器,不同的窗口大小的顯示。結(jié) 論二十一世紀(jì)是一個(gè)高速、快捷的年代。在這個(gè)高速發(fā)展的年代里,速度成了我們追求的目標(biāo);二是提高工作效率;三是降低成本。因此,辦公自動(dòng)化的高速度、高效率、高便捷、低成本便成了我們的目的,為此開發(fā)了這個(gè)高鐵車票訂票系統(tǒng)。本系統(tǒng)可以大大簡化退票、訂票、查詢等十分繁瑣的工作,簡化辦公環(huán)節(jié),提高工作效率,而且易學(xué)、易用,滿足客戶需求。這次系統(tǒng)的設(shè)計(jì)從最開始的可行性研究,需求分析,到系統(tǒng)的總體設(shè)計(jì),詳細(xì)設(shè)計(jì),再到編碼、測(cè)試等的一個(gè)整體過程,使我真正明白了要做一個(gè)軟件的難度,特別是要做
39、一個(gè)真正可用的軟件,就更難了。在老師和同學(xué)的幫助下,我把以往所學(xué)的軟件工程、數(shù)據(jù)庫知識(shí)結(jié)合起來,利用asp開發(fā)工具,加上SQL Server 2005數(shù)據(jù)庫系統(tǒng),完成了本次課程設(shè)計(jì),盡量使它能滿足各個(gè)方面的要求。當(dāng)然,我的個(gè)人能力有限,還有很多不足的地方,敬請(qǐng)諒解。在這次課程設(shè)計(jì)過程中我遇到了不少的難題,比如數(shù)據(jù)庫操作問題,界面設(shè)計(jì)問題,函數(shù)使用與實(shí)現(xiàn)問題,消息處理問題等等。其中,最關(guān)鍵的是在最初對(duì)系統(tǒng)的需求分析做的不透徹,導(dǎo)致后續(xù)設(shè)計(jì)工作乃至編碼時(shí)的修改工作量變大。以至于為了能按時(shí)完成設(shè)計(jì)任務(wù),我一連度過了幾個(gè)通宵。尤其,越接近結(jié)束,就越是時(shí)常出現(xiàn)問題。所以,通過這次課程設(shè)計(jì)我深刻體會(huì)到軟件
40、工程還是必須學(xué)精通點(diǎn)、學(xué)透徹點(diǎn)。通過這次課程設(shè)計(jì),我學(xué)會(huì)了如何對(duì)所學(xué)課程綜合運(yùn)用,鞏固了軟件工程的一般規(guī)范,對(duì)數(shù)據(jù)庫的使用也有了更進(jìn)一步了解??傮w來說,課程設(shè)計(jì)讓我學(xué)了不少知識(shí)。我認(rèn)為課程設(shè)計(jì)是我們學(xué)習(xí)生涯中相當(dāng)重要的一課,除了驗(yàn)證學(xué)生的學(xué)習(xí)成果外,也是訓(xùn)練一個(gè)人獨(dú)立思考及解決問題的能力.在這里,我要感謝指導(dǎo)老師和同學(xué)在這次課程設(shè)計(jì)中對(duì)我的幫助。致 謝在論文完成之際,我要特別感謝我的指導(dǎo)老師李月峰老師的熱情關(guān)懷和悉心指導(dǎo)。在我撰寫論文的過程中,李老師傾注了大量的心血和汗水,無論是在論文的選題、構(gòu)思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了李老師悉心細(xì)致的教誨和無私的幫助
41、,特別是他廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠地感謝和深深的謝意。 在論文的寫作過程中,也得到了許多同學(xué)的寶貴建議,同時(shí)還得到許多在工作過程中許多同事的支持和幫助,在此一并致以誠摯的謝意。 感謝所有關(guān)心、支持、幫助過我的良師益友。 最后,向在百忙中抽出時(shí)間對(duì)本文進(jìn)行評(píng)審并提出寶貴意見的各位老師表示衷心地感謝!參 考 文 獻(xiàn)1 張孝祥;徐明華 等著.ASP.NET基礎(chǔ)與案例開發(fā)詳解.第1版.北京:清華大學(xué)出版社,20092 康會(huì)光,王俊偉,張瑞萍.SQL Server 2005 中文版標(biāo)準(zhǔn)教程. 第1版.北京:清華大學(xué)出版社,20073 四維科
42、技,曹衍龍.數(shù)據(jù)庫開發(fā)實(shí)用工程案例精選.北京:人民郵電出版社,20044 飛思科技產(chǎn)品研發(fā)中心.NET核心技術(shù)高級(jí)特性.第1版.北京:電子工業(yè)出版社,20025 陳豫龍.DELPHI 6數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航.J第I版.北京:人民郵電出版社,2002,20(11):35-366 薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論.北京:高等教育出版社,2000年7 張立厚等著,管理信息系統(tǒng),世界圖書出版公司,2002,28(8):38-408 陳淑珍,楊濤.基于Internet的遠(yuǎn)程教學(xué)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).現(xiàn)代教育技術(shù),2001,(36) :34-359 胡延平,盧曉慶,馮明東,王慧;基于.Net架構(gòu)的交通旅游售票系統(tǒng)
43、的設(shè)計(jì)與實(shí)現(xiàn)J;計(jì)算機(jī)工程與設(shè)計(jì);2005年01期10 邱巖,王慶玲;用.NET實(shí)現(xiàn)系統(tǒng)整合的關(guān)鍵技術(shù)J;計(jì)算機(jī)工程與應(yīng)用;2003年24期11 于松濤.精通SQL server 2000數(shù)據(jù)庫管理與開發(fā)M.北京:人民郵電出版社,2003.1012 孫涌.現(xiàn)代軟件工程.北京希望電子出版社,2003年8月:1-246附錄A 譯文模擬測(cè)試模糊測(cè)試(Fuzz testing )是一項(xiàng)對(duì)代碼質(zhì)量有著深遠(yuǎn)影響的簡單技術(shù)。在本文中,Elliotte Rusty Harold 故意將隨機(jī)的壞數(shù)據(jù)插入應(yīng)用程序,以觀察發(fā)生的結(jié)果。他也解釋了如何使用如校驗(yàn)和、XML 數(shù)據(jù)存儲(chǔ)及代碼驗(yàn)證等防護(hù)性編碼技術(shù),來加固您的
44、程序以抵制隨機(jī)數(shù)據(jù)。他以一個(gè)練習(xí)進(jìn)行總結(jié),在練習(xí)中他以一個(gè)代碼破壞者的角度進(jìn)行思考 這是一種用于防護(hù)代碼的至關(guān)重要的技術(shù)。多年來,我驚嘆于有如此大量能夠使 Microsoft Word 崩潰的壞文件。少數(shù)字節(jié)錯(cuò)位,會(huì)使整個(gè)應(yīng)用程序毀于一旦。在舊式的、無內(nèi)存保護(hù)的操作系統(tǒng)中,整個(gè)計(jì)算機(jī)通常就這樣崩潰掉了。Word 為什么不能意識(shí)到它接收到了壞的數(shù)據(jù),并發(fā)出一條錯(cuò)誤信息呢?為什么它會(huì)僅僅因?yàn)樯贁?shù)字節(jié)被損壞就破壞自己的棧、堆呢?當(dāng)然,Word 并不是惟一一個(gè)面對(duì)畸形文件時(shí)表現(xiàn)得如此糟糕的程序。本文介紹了一種試圖避免這種災(zāi)難的技術(shù)。在模糊測(cè)試中,用隨機(jī)壞數(shù)據(jù)(也稱做 fuzz)攻擊一個(gè)程序,然后等著觀
45、察哪里遭到了破壞。模糊測(cè)試的技巧在于,它是不符合邏輯的:自動(dòng)模糊測(cè)試不去猜測(cè)哪個(gè)數(shù)據(jù)會(huì)導(dǎo)致破壞(就像人工測(cè)試員那樣),而是將盡可能多的雜亂數(shù)據(jù)投入程序中。由這個(gè)測(cè)試驗(yàn)證過的失敗模式通常對(duì)程序員來說是個(gè)徹底的震憾,因?yàn)槿魏伟催壿嬎伎嫉娜硕疾粫?huì)想到這種失敗。模糊測(cè)試是一項(xiàng)簡單的技術(shù),但它卻能揭示出程序中的重要 bug。它能夠驗(yàn)證出現(xiàn)實(shí)世界中的錯(cuò)誤模式并在您的軟件發(fā)貨前對(duì)潛在的應(yīng)當(dāng)被堵塞的攻擊渠道進(jìn)行提示。模糊測(cè)試的實(shí)現(xiàn)是一個(gè)非常簡單的過程:1. 準(zhǔn)備一份插入程序中的正確的文件。 2. 用隨機(jī)數(shù)據(jù)替換該文件的某些部分。 3. 用程序打開文件。 4. 觀察破壞了什么。 可以用任意多種方式改變?cè)撾S機(jī)數(shù)據(jù)
46、。例如,可以將整個(gè)文件打亂,而不是僅替換其中的一部分,也可以將該文件限制為 ASCII 文本或非零字節(jié)。不管用什么方式進(jìn)行分割,關(guān)鍵是將大量隨機(jī)數(shù)據(jù)放入應(yīng)用程序并觀察出故障的是什么。測(cè)試基于 C 的應(yīng)用程序當(dāng)字符串包含額外的零時(shí),許多用 C 編寫的程序都會(huì)出問題 這類問題太過頻繁以至于額外的零能夠徹底隱藏代碼中其他的問題。一旦驗(yàn)證出程序存在零字節(jié)問題,就可以移除它們,從而讓其他的問題浮現(xiàn)出來。 可以手動(dòng)進(jìn)行初始化測(cè)試,但要想達(dá)到最佳的效果則確實(shí)需要采用自動(dòng)化模糊測(cè)試。在這種情況下,當(dāng)面臨破壞輸入時(shí)首先需要為應(yīng)用程序定義適當(dāng)?shù)腻e(cuò)誤行為。(如果當(dāng)輸入數(shù)據(jù)被破壞時(shí),您發(fā)現(xiàn)程序正常運(yùn)行,且未定義發(fā)生的
47、事件,那么這就是第一個(gè) bug。)隨后將隨機(jī)數(shù)據(jù)傳遞到程序中直到找到了一個(gè)文件,該文件不會(huì)觸發(fā)適當(dāng)?shù)腻e(cuò)誤對(duì)話框、消息、異常,等等。存儲(chǔ)并記錄該文件,這樣就能在稍后重現(xiàn)該問題。如此重復(fù)。盡管模糊測(cè)試通常需要一些手動(dòng)編碼,但還有一些工具能提供幫助。例如,清單 1 顯示了一個(gè)簡單的 Java 類,該類隨機(jī)更改文件的特定長度。我常愿意在開始的幾個(gè)字節(jié)后面啟動(dòng)模糊測(cè)試,因?yàn)槌绦蛩坪醺赡茏⒁獾皆缙诘腻e(cuò)誤而不是后面的錯(cuò)誤。(您的目的是想找到程序未檢測(cè)到的錯(cuò)誤,而不是尋找已經(jīng)檢測(cè)到的。)清單 1. 用隨機(jī)數(shù)據(jù)替換文件部分的類import java.io.*;import java.security.Secu
48、reRandom;import java.util.Random;public class Fuzzer private Random random = new SecureRandom(); private int count = 1; public File fuzz(File in, int start, int length) throws IOException byte data = new byte(int) in.length(); DataInputStream din = new DataInputStream(new FileInputStream(in); din.re
49、adFully(data); fuzz(data, start, length); String name = fuzz_ + count + _ + in.getName(); File fout = new File(name); FileOutputStream out = new FileOutputStream(fout); out.write(data); out.close(); din.close(); count+; return fout; / Modifies byte array in place public void fuzz(byte in, int start,
50、 int length) byte fuzz = new bytelength; random.nextBytes(fuzz); System.arraycopy(fuzz, 0, in, start, fuzz.length); 關(guān)于代碼我可以用很多種方式優(yōu)化 清單 1 中的代碼。例如,有著 java.nio 的內(nèi)存映射文件是一個(gè)相當(dāng)不錯(cuò)的選擇。我也能夠改進(jìn)這個(gè)錯(cuò)誤處理及可配置性。因?yàn)椴幌胱屵@些細(xì)節(jié)混淆這里所要說明的觀點(diǎn),所以我將代碼保持了原樣。 模糊測(cè)試文件很簡單。將其傳至應(yīng)用程序通常不那么困難。如 AppleScript 或 Perl 腳本語言通常是編寫模糊測(cè)試的最佳選擇。對(duì)于 GUI 程序,最困難的部分是辨認(rèn)出應(yīng)用程序是否檢測(cè)出正
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度板材產(chǎn)品進(jìn)出口代理合同3篇
- 2025版建筑工程保險(xiǎn)承包合同2篇
- 2024年度互聯(lián)網(wǎng)金融平臺(tái)擔(dān)保保證合同范本3篇
- 濱州學(xué)院《聚合物合成工藝設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 畢節(jié)幼兒師范高等??茖W(xué)校《網(wǎng)絡(luò)管理與維護(hù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 北京中醫(yī)藥大學(xué)東方學(xué)院《供配電安全技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 年上海市房屋租賃合同自行成交版
- 2025年度情侶婚禮策劃服務(wù)合同范本2篇
- 房地產(chǎn)項(xiàng)目合同開發(fā)協(xié)議
- 展板制作安裝合同模板
- DB44-T 2480-2024 鋁及鋁合金深井鑄造安全技術(shù)規(guī)范
- 中醫(yī)適宜技術(shù)發(fā)展現(xiàn)狀
- 部編人教版四年級(jí)數(shù)學(xué)上冊(cè)期末考試卷(可打印)
- 一例阿爾茨海默病患者的護(hù)理查房
- 農(nóng)貿(mào)市場安全生產(chǎn)工作方案
- 咸陽租房合同
- 《鋼筋保護(hù)層檢測(cè)》課件
- YJ-T 27-2024 應(yīng)急指揮通信保障能力建設(shè)規(guī)范
- 合伙人協(xié)議書決策機(jī)制
- 西藏畜牧獸醫(yī)知識(shí)培訓(xùn)課件
- 護(hù)理專業(yè)人才培養(yǎng)方案論證報(bào)告
評(píng)論
0/150
提交評(píng)論