版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙緒論1.1ATM概述近年來(lái),隨著Internet網(wǎng)絡(luò)的迅速發(fā)展,其在現(xiàn)實(shí)生活中應(yīng)用很廣泛?;ヂ?lián)網(wǎng)給現(xiàn)實(shí)生活帶來(lái)很大的方便。如今,人們的交流已越來(lái)越多,對(duì)信息傳送的要求更嚴(yán)格,“信息高速公路”也就應(yīng)運(yùn)而生了。其中,Internet已擁有了數(shù)千萬(wàn)個(gè)用戶,通過(guò)Internet我們就可以與全世界來(lái)聯(lián)網(wǎng)。對(duì)于當(dāng)中各種各樣的信息,人們都可以通過(guò)網(wǎng)絡(luò)來(lái)共享和使用。比如ATM自動(dòng)取款系統(tǒng),我們可以把它當(dāng)作一個(gè)虛擬的市場(chǎng)銷售中心,每個(gè)人都可以在這個(gè)網(wǎng)絡(luò)上享受所提供的服務(wù),這樣既節(jié)約了時(shí)間,又滿足了需求。尤其是人們的生活速度越來(lái)越快,沒(méi)有大量的時(shí)間花費(fèi)在銀行等待長(zhǎng)時(shí)間的排隊(duì)。ATM銀行取款系統(tǒng)的出現(xiàn),使這一問(wèn)題迎刃而解。自動(dòng)取款機(jī)又稱ATM,是AutomaticTellerMachine的縮寫,又稱自動(dòng)柜員機(jī),是指銀行在不同地點(diǎn)設(shè)置一種小型機(jī)器,利用一張信用卡大小的膠卡上的磁帶記錄客戶的基本戶口資料(通常就是銀行卡),讓客戶可以透過(guò)機(jī)器進(jìn)行提款、存款、轉(zhuǎn)帳等銀行柜臺(tái)服務(wù),盡管大多數(shù)客戶都把這種自助機(jī)器稱為提款機(jī)。自動(dòng)存取款機(jī)是一種客戶進(jìn)行自助服務(wù)的電子化設(shè)備,它具有存款、取款、卡卡轉(zhuǎn)賬、查詢余額、修改密碼等功能,是一種新型的銀行電腦終端。它是一種高度精密的機(jī)電一體化裝置,利用磁性代碼卡或智能卡實(shí)現(xiàn)金融交易的自助服務(wù)系統(tǒng)。1.2選題意義隨著Internet網(wǎng)絡(luò)的迅速發(fā)展,作為電子商務(wù)的ATM自動(dòng)取款系統(tǒng)以其方便、快捷和高效的優(yōu)勢(shì),逐步成為新興電子商務(wù)的經(jīng)營(yíng)模式和理念,人們已經(jīng)不再只是滿足于低效率的排隊(duì)等待,而是渴望能夠充分享受網(wǎng)絡(luò)所帶來(lái)的更多的便利。ATM自動(dòng)取款系統(tǒng)恰恰適應(yīng)了如今的快節(jié)奏生活。本文以實(shí)際ATM取款機(jī)應(yīng)用為背景,闡述了系統(tǒng)開發(fā)過(guò)程的開發(fā)方法、系統(tǒng)分析以及一般步驟。2ATM系統(tǒng)開發(fā)方法2.1系統(tǒng)開發(fā)方法概述結(jié)構(gòu)化系統(tǒng)開發(fā)方法(StructuredSystemAnalysisAndDesign,SSA&D,)又稱結(jié)構(gòu)化生命周期法,是系統(tǒng)分析員、軟件工程師、程序員以及最終用戶按照用戶至上的原則,自頂向下分析與設(shè)計(jì)和自底向上逐步實(shí)施的建立計(jì)算機(jī)信息系統(tǒng)的一個(gè)過(guò)程,是組織、管理和控制信息系統(tǒng)開發(fā)過(guò)程的一種基本框架。是用系統(tǒng)的思想和系統(tǒng)工程的方法,按照用戶至上的原則結(jié)構(gòu)化、模塊化,自頂向下對(duì)系統(tǒng)進(jìn)行分析與設(shè)計(jì)。步驟如下:(1)先將整個(gè)信息系統(tǒng)開發(fā)過(guò)程劃分為若干個(gè)相對(duì)獨(dú)立的階段(系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施等);(2)在前三個(gè)階段堅(jiān)持自頂向下地對(duì)系統(tǒng)進(jìn)行結(jié)構(gòu)化劃分;(3)在系統(tǒng)調(diào)查和理順管理業(yè)務(wù)時(shí),應(yīng)從最頂層的管理業(yè)務(wù)入手,逐步深入至最基層;(4)在系統(tǒng)分析、提出目標(biāo)系統(tǒng)方案和系統(tǒng)設(shè)計(jì)時(shí),應(yīng)從宏觀整體考慮入手,先考慮系統(tǒng)整體的優(yōu)化,然后再考慮局部的優(yōu)化問(wèn)題;(5)在系統(tǒng)實(shí)施階段,則堅(jiān)持自底向上地逐步實(shí)施,即組織人員從最基層的模塊做起(編程),然后按照系統(tǒng)設(shè)計(jì)的結(jié)構(gòu),將模塊一個(gè)個(gè)拼接到一起進(jìn)行調(diào)試,自底向上、逐步地構(gòu)成整個(gè)系統(tǒng)。其主要特點(diǎn)為:(1)自頂向下整體地進(jìn)行分析與設(shè)計(jì)和自底向上逐步實(shí)施的系統(tǒng)開發(fā)過(guò)程:在系統(tǒng)規(guī)劃、分析與設(shè)計(jì)時(shí),從整體全局考慮,自頂向下地工作;在系統(tǒng)實(shí)施階段則根據(jù)設(shè)計(jì)的要求,先編制一個(gè)個(gè)具體的功能模塊,然后自底向上逐步實(shí)現(xiàn)整個(gè)系統(tǒng)。(2)用戶至上是影響成敗的關(guān)鍵因素,整個(gè)開發(fā)過(guò)程中,要面向用戶,充分了解用戶的需求與愿望。(3)符合實(shí)際,客觀性和科學(xué)化,即強(qiáng)調(diào)在設(shè)計(jì)系統(tǒng)之前,深入實(shí)際,詳細(xì)地調(diào)查研究,努力弄清實(shí)際業(yè)務(wù)處理過(guò)程的每一個(gè)細(xì)節(jié),然后分析研究,制定出科學(xué)合理的目標(biāo)系統(tǒng)設(shè)計(jì)方案。(4)嚴(yán)格區(qū)分工作階段,把整個(gè)開發(fā)過(guò)程劃分為若干工作階段,每一個(gè)階段有明確的任務(wù)和目標(biāo)、預(yù)期達(dá)到的工作成效,以便計(jì)劃和控制進(jìn)度,協(xié)調(diào)各方面的工作。前一階段的工作成果是后一階段的工作依據(jù)。(5)充分預(yù)料可能發(fā)生的變化:環(huán)境變化、內(nèi)部處理模式變化、用戶需求變化。(6)開發(fā)過(guò)程工程化,要求開發(fā)過(guò)程的每一步都要按工程標(biāo)準(zhǔn)規(guī)范化,工作文體或文檔資料標(biāo)準(zhǔn)化。系統(tǒng)開發(fā)工作的自動(dòng)化、計(jì)算機(jī)化是提高系統(tǒng)開發(fā)效率與質(zhì)量的重要途徑。計(jì)算機(jī)輔助軟件工程(簡(jiǎn)記為CASE)也是當(dāng)前信息系統(tǒng)領(lǐng)域和計(jì)算機(jī)應(yīng)用領(lǐng)域的熱門話題。CASE技術(shù)的目標(biāo)是實(shí)現(xiàn)系統(tǒng)開發(fā)生命周期內(nèi)各階段工作基于計(jì)算機(jī)的自動(dòng)化。這將導(dǎo)致系統(tǒng)開發(fā)工作的根本變化。2.2該系統(tǒng)開發(fā)方法比較各種開發(fā)方法的特點(diǎn),結(jié)合銀行取款系統(tǒng)的實(shí)際情況,整個(gè)系統(tǒng)采用結(jié)構(gòu)化生命周期法,以原型法和面向?qū)ο蟮拈_發(fā)方法作為輔助,即系統(tǒng)總體上采用結(jié)構(gòu)化生命周期法進(jìn)行系統(tǒng)分析和系統(tǒng)設(shè)計(jì),系統(tǒng)實(shí)施等步驟采用面向?qū)ο蠓椒ā1鞠到y(tǒng)開發(fā)工具使用的是基于Java的可擴(kuò)展開發(fā)平臺(tái)的Eclipse。2.3開發(fā)工具eclipse介紹Eclipse是一個(gè)開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展Eclipse的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與Eclipse環(huán)境無(wú)縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對(duì)于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。2.3.1主要組成Eclipse是一個(gè)開放源代碼的軟件開發(fā)項(xiàng)目,專注于為高度集成的工具開發(fā)提供一個(gè)全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺(tái)。它主要由Eclipse項(xiàng)目、Eclipse工具項(xiàng)目和Eclipse技術(shù)項(xiàng)目三個(gè)項(xiàng)目組成,具體包括四個(gè)部分組成——EclipsePlatform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來(lái)支持插件開發(fā),EclipsePlatform則是一個(gè)開放的可擴(kuò)展IDE,提供了一個(gè)通用的開發(fā)平臺(tái)。它提供建造塊和構(gòu)造并運(yùn)行集成軟件開發(fā)工具的基礎(chǔ)。EclipsePlatform允許工具建造者獨(dú)立開發(fā)與他人工具無(wú)縫集成的工具從而無(wú)須分辨一個(gè)工具功能在哪里結(jié)束,而另一個(gè)工具功能在哪里開始。2.3.2軟件開發(fā)包EclipseSDK(軟件開發(fā)者包)是EclipsePlatform、JDT和PDE所生產(chǎn)的組件合并,它們可以一次下載。這些部分在一起提供了一個(gè)具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無(wú)縫集成到EclipsePlatform中的工具。EclipseSDK由Eclipse項(xiàng)目生產(chǎn)的工具和來(lái)自其它開放源代碼的第三方軟件組合而成。Eclipse項(xiàng)目生產(chǎn)的軟件以GPL發(fā)布,第三方組件有各自自身的許可協(xié)議。3系統(tǒng)分析系統(tǒng)分析方法是指把要解決的問(wèn)題作為一個(gè)系統(tǒng),對(duì)系統(tǒng)要素進(jìn)行綜合分析,找出解決問(wèn)題的可行方案的咨詢方法。3.1系統(tǒng)分析方法概述系統(tǒng)分析是一種研究方略,它能在不確定的情況下,確定問(wèn)題的本質(zhì)和起因,明確咨詢目標(biāo),找出各種可行方案,并通過(guò)一定標(biāo)準(zhǔn)對(duì)這些方案進(jìn)行比較,幫助決策者在復(fù)雜的問(wèn)題和環(huán)境中作出科學(xué)抉擇。系統(tǒng)分析方法的具體步驟包括:限定問(wèn)題、確定目標(biāo)、調(diào)查研究收集數(shù)據(jù)、提出備選方案和評(píng)價(jià)標(biāo)準(zhǔn)、備選方案評(píng)估和提出最可行方案。系統(tǒng)分析的目標(biāo)是明確系統(tǒng)開發(fā)的目標(biāo)和用戶信息需求,提出系統(tǒng)的邏輯方案。為系統(tǒng)設(shè)計(jì)做好準(zhǔn)備。3.1.1限定問(wèn)題所謂問(wèn)題,是現(xiàn)實(shí)情況與計(jì)劃目標(biāo)或理想狀態(tài)之間的差距。系統(tǒng)分析的核心內(nèi)容有兩個(gè):其一是進(jìn)行“診斷”,即找出問(wèn)題及其原因;其二是“開處方”,即提出解決問(wèn)題的最可行方案。所謂限定問(wèn)題,就是要明確問(wèn)題的本質(zhì)或特性、問(wèn)題存在范圍和影響程度、問(wèn)題產(chǎn)生的時(shí)間和環(huán)境、問(wèn)題的癥狀和原因等。限定問(wèn)題是系統(tǒng)分析中關(guān)鍵的一步,因?yàn)槿绻霸\斷”出錯(cuò),以后開的“處方”就不可能對(duì)癥下藥。在限定問(wèn)題時(shí),要注意區(qū)別癥狀和問(wèn)題,探討問(wèn)題原因不能先入為主,同時(shí)要判別哪些是局部問(wèn)題,哪些是整體問(wèn)題,問(wèn)題的最后確定應(yīng)該在調(diào)查研究之后。通過(guò)親身體驗(yàn)總結(jié)各銀行ATM提款機(jī)界面流程,得到本系統(tǒng)開發(fā)的主要流程界面(主要功能取款、轉(zhuǎn)賬、查詢、修改密碼等)。3.1.2確定目標(biāo)系統(tǒng)分析目標(biāo)應(yīng)該根據(jù)客戶的要求和對(duì)需要解決問(wèn)題的理解加以確定,如有可能應(yīng)盡量通過(guò)指標(biāo)表示,以便進(jìn)行定量分析。對(duì)不能定量描述的目標(biāo)也應(yīng)該盡量用文字說(shuō)明清楚,以便進(jìn)行定性分析和評(píng)價(jià)系統(tǒng)分析的成效。3.1.3調(diào)查研究,收集數(shù)據(jù)調(diào)查研究和收集數(shù)據(jù)應(yīng)該圍繞問(wèn)題起因進(jìn)行,一方面要驗(yàn)證有限定問(wèn)題階段形成的假設(shè),另一方面要探討產(chǎn)生問(wèn)題的根本原因,為下一步提出解決問(wèn)題的備選方案做準(zhǔn)備。調(diào)查研究常用的有四種方式,即閱讀文件資料、訪談、觀察和調(diào)查。收集的數(shù)據(jù)和信息包括事實(shí)(facts)、見解(opinions)和態(tài)度(attitudes)。要對(duì)數(shù)據(jù)和信息去偽存真,交叉核實(shí),保證真實(shí)性和準(zhǔn)確性。3.1.4提出方案和評(píng)價(jià)標(biāo)準(zhǔn)通過(guò)深入調(diào)查研究,使真正有待解決的問(wèn)題得以最終確定,使產(chǎn)生問(wèn)題的主要原因得到明確,在此基礎(chǔ)上就可以有針對(duì)性地提出解決問(wèn)題的備選方案。備選方案是解決問(wèn)題和達(dá)到咨詢目標(biāo)可供選擇的建議或設(shè)計(jì),應(yīng)提出兩種以上的備選方案,以便提供進(jìn)一步評(píng)估和篩選。為了對(duì)備選方案進(jìn)行評(píng)估,要根據(jù)問(wèn)題的性質(zhì)和客戶具備的條件。提出約束條件或評(píng)價(jià)標(biāo)準(zhǔn),供下一步應(yīng)用。3.1.5方案評(píng)估根據(jù)上述約束條件或評(píng)價(jià)標(biāo)準(zhǔn),對(duì)解決問(wèn)題備選方案進(jìn)行評(píng)估,評(píng)估應(yīng)該是綜合性的,不僅要考慮技術(shù)因素,也要考慮社會(huì)經(jīng)濟(jì)等因素,評(píng)估小組應(yīng)該有一定代表性,除咨詢項(xiàng)目組成員外,也要吸收客戶組織的代表參加。根據(jù)評(píng)估結(jié)果確定最可行方案。3.1.6提交可行方案最可行方案并不一定是最佳方案,它是在約束條件之內(nèi),根據(jù)評(píng)價(jià)標(biāo)準(zhǔn)篩選出的最現(xiàn)實(shí)可行的方案。如果客戶滿意,則系統(tǒng)分析達(dá)到目標(biāo)。如果客戶不滿意,則要與客戶協(xié)商調(diào)整約束條件或評(píng)價(jià)標(biāo)準(zhǔn),甚至重新限定的問(wèn)題,開始新一輪系統(tǒng)分析,直到客戶滿意為止。3.2系統(tǒng)功能結(jié)構(gòu)圖結(jié)構(gòu)化設(shè)計(jì)方法使用的描述方式是系統(tǒng)結(jié)構(gòu)圖,也稱結(jié)構(gòu)圖或控制結(jié)構(gòu)圖。它表示了一個(gè)系統(tǒng)(或功能模塊)的層次分解關(guān)系,模塊之間的調(diào)用關(guān)系,以及模塊之間數(shù)據(jù)流和控制流信息的傳遞關(guān)系,它是描述系統(tǒng)物理結(jié)構(gòu)的主要圖表工具。系統(tǒng)結(jié)構(gòu)圖是對(duì)軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)的圖形顯示。在需求分析階段,已經(jīng)從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),使每一部分完成簡(jiǎn)單的功能且各個(gè)部分之間又保持一定的聯(lián)系,這就是功能設(shè)計(jì)。在設(shè)計(jì)階段,基于這個(gè)功能的層次結(jié)構(gòu)把各個(gè)部分組合起來(lái)成為系統(tǒng)。處理方式設(shè)計(jì):確定為實(shí)現(xiàn)軟件系統(tǒng)的功能需求所必需的算法,評(píng)估算法的性能。確定為滿足軟件系統(tǒng)的性能需求所必需的算法和模塊間的控制方式(性能設(shè)計(jì))。確定外部信號(hào)的接收發(fā)送形式。圖3-1ATM系統(tǒng)功能結(jié)構(gòu)圖該系統(tǒng)主要實(shí)現(xiàn)銀行卡用戶的存取款,以及進(jìn)行一些簡(jiǎn)單的查詢和取款業(yè)務(wù),同時(shí)能夠在系統(tǒng)里面進(jìn)行客戶密碼的修改,實(shí)現(xiàn)簡(jiǎn)單的機(jī)器與客戶交互。
3.3系統(tǒng)主要處理流程圖3.3.1系統(tǒng)辦理所有業(yè)務(wù)流程圖選擇界面(查詢、取款、轉(zhuǎn)帳、修改密碼、取消)登錄界面選擇界面(查詢、取款、轉(zhuǎn)帳、修改密碼、取消)登錄界面(卡號(hào)、密碼、驗(yàn)證碼、取消等選項(xiàng))待機(jī)界面(按確定鍵進(jìn)入登錄界面)密碼錯(cuò)誤,請(qǐng)從新輸入!密碼錯(cuò)誤,請(qǐng)從新輸入!修改密碼查詢?nèi)】钚薷拿艽a查詢?nèi)】钷D(zhuǎn)帳交易完成交易完成點(diǎn)擊退出點(diǎn)擊退出謝謝使用,再見!謝謝使用,再見!圖3-2業(yè)務(wù)流程圖該系統(tǒng)主要實(shí)現(xiàn)銀行卡用戶的存取款,以及進(jìn)行一些簡(jiǎn)單的查詢和取款業(yè)務(wù),同時(shí)能夠在系統(tǒng)里面進(jìn)行客戶密碼的修改,實(shí)現(xiàn)簡(jiǎn)單的機(jī)器與客戶交互。3.3.2用戶登錄流程圖圖3-3用戶登錄流程圖該模塊主要實(shí)現(xiàn)銀行卡用戶的登錄流程,登錄模塊時(shí)需要進(jìn)行賬號(hào)和密碼的驗(yàn)證,直到賬號(hào)和密碼同時(shí)正確才能登錄成功。3.3.3用戶修改密碼流程圖圖3-4用戶修改密碼流程圖該模塊主要實(shí)現(xiàn)銀行卡賬戶的密碼修改功能,在密碼修改過(guò)程中需要驗(yàn)證新密碼和舊密碼的輸入是否正確,直到舊密碼輸入正確,兩次輸入新密碼一致且和舊密碼不相同才能修改成功。3.3.3用戶轉(zhuǎn)賬流程圖圖3-5用戶轉(zhuǎn)賬流程圖通過(guò)該功能用戶可以選擇給對(duì)方轉(zhuǎn)賬,只要輸入對(duì)法的卡號(hào)的所轉(zhuǎn)入的金額就可以實(shí)現(xiàn)轉(zhuǎn)賬功能。但是前提是需要與數(shù)據(jù)庫(kù)中的賬號(hào)進(jìn)行余額匹配,只有在輸入的所轉(zhuǎn)入的金額小于自己賬號(hào)的余額時(shí)才能實(shí)現(xiàn)轉(zhuǎn)賬成功,如果輸入的所轉(zhuǎn)金額大于自己的賬號(hào)余額,那么就會(huì)出現(xiàn)錯(cuò)誤,此部分的代碼設(shè)計(jì)中使用了人為的異常拋出功能,將出現(xiàn)的所轉(zhuǎn)金額大于余額時(shí)的異常拋出,從而提示用戶選擇其他的操作來(lái)阻止錯(cuò)誤的發(fā)生。4系統(tǒng)設(shè)計(jì)4.1系統(tǒng)設(shè)計(jì)概述這個(gè)階段的任務(wù)是設(shè)計(jì)軟件系統(tǒng)的模塊層次結(jié)構(gòu),設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)以及設(shè)計(jì)模塊的控制流程,其目的是明確軟件系統(tǒng)"如何做"。這個(gè)階段又分兩個(gè)步驟:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。在系統(tǒng)分析的基礎(chǔ)上,設(shè)計(jì)出能滿足預(yù)定目標(biāo)的系統(tǒng)的過(guò)程。系統(tǒng)設(shè)計(jì)內(nèi)容主要包括:確定設(shè)計(jì)方針和方法,將系統(tǒng)分解為若干子系統(tǒng),確定各子系統(tǒng)的目標(biāo)、功能及其相互關(guān)系,決定對(duì)子系統(tǒng)的管理體制和控制方式,對(duì)各子系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià),對(duì)全系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià)等。系統(tǒng)設(shè)計(jì)通常應(yīng)用兩種方法:一種是歸納法,另一種是演繹法。應(yīng)用歸納法進(jìn)行系統(tǒng)設(shè)計(jì)的程序是:首先盡可能地收集現(xiàn)有的和過(guò)去的同類系統(tǒng)的系統(tǒng)設(shè)計(jì)資料;在對(duì)這些系統(tǒng)的設(shè)計(jì)、制造和運(yùn)行狀況進(jìn)行分析研究的基礎(chǔ)上,根據(jù)所設(shè)計(jì)的系統(tǒng)的功能要求進(jìn)行多次選擇,然后對(duì)少數(shù)幾個(gè)同類系統(tǒng)作出相應(yīng)修正,最后得出一個(gè)理想的系統(tǒng)。演繹法是一種公理化方法,即先從普遍的規(guī)則和原理出發(fā),根據(jù)設(shè)計(jì)人員的知識(shí)和經(jīng)驗(yàn),從具有一定功能的元素集合中選擇能符合系統(tǒng)功能要求的多種元素,然后將這些元素按照一定形式進(jìn)行組合(見系統(tǒng)結(jié)構(gòu)),從而創(chuàng)造出具有所需功能的新系統(tǒng)。在系統(tǒng)設(shè)計(jì)的實(shí)踐中,這兩種方法往往是并用的。4.1.1系統(tǒng)設(shè)計(jì)原則(1)階段開發(fā)原則系統(tǒng)框架和數(shù)據(jù)結(jié)構(gòu)全面設(shè)計(jì),具體功能實(shí)現(xiàn)分階段進(jìn)行。網(wǎng)站的建設(shè)過(guò)程可以采取以下三期:第一期工程搭建網(wǎng)站的基本構(gòu)架,實(shí)現(xiàn)電子商務(wù)網(wǎng)的大部分功能,初步實(shí)現(xiàn)網(wǎng)上交易;第二期工程實(shí)現(xiàn)網(wǎng)上競(jìng)價(jià)系統(tǒng)的全部功能;第三期工程實(shí)現(xiàn)網(wǎng)站在線的BtoB交易。(2)易用性原則方便上網(wǎng)客戶瀏覽和操作,最大限度地減輕后臺(tái)管理人員的負(fù)擔(dān),做到部分業(yè)務(wù)的自動(dòng)化處理。(3)業(yè)務(wù)完整性原則對(duì)于業(yè)務(wù)進(jìn)行中的特殊情況能夠做出及時(shí)、正確的響應(yīng),保證業(yè)務(wù)數(shù)據(jù)的完整性。(4)業(yè)務(wù)規(guī)范化原則在系統(tǒng)設(shè)計(jì)的同時(shí),也為將來(lái)的業(yè)務(wù)流程制定了較為完善的規(guī)范,具有較強(qiáng)的實(shí)際操作性。(5)可擴(kuò)展性原則系統(tǒng)設(shè)計(jì)要考慮到業(yè)務(wù)未來(lái)發(fā)展的需要,要盡可能設(shè)計(jì)得簡(jiǎn)明,各個(gè)功能模塊間的耦合度小,便于系統(tǒng)的擴(kuò)展。如果存在舊有的數(shù)據(jù)庫(kù)系統(tǒng),則需要充分考慮兼容性。4.1.2系統(tǒng)設(shè)計(jì)的方法系統(tǒng)設(shè)計(jì)的方法主要包括結(jié)構(gòu)化生命周期法(又稱瀑布法)、原型化方法(迭代法)、面向?qū)ο蠓椒?。按時(shí)間過(guò)程來(lái)分,開發(fā)方法分為生命周期法和原型法,實(shí)際上還有許多處于中間狀態(tài)的方法。原型法又按照對(duì)原型結(jié)果的處理方式分為試驗(yàn)原型法和演進(jìn)原型法。試驗(yàn)原型法只把原型當(dāng)成試驗(yàn)工具,試了以后就拋掉,根據(jù)試驗(yàn)的結(jié)論做出新的系統(tǒng)。演進(jìn)原型法則把試好的結(jié)果保留,成為最終系統(tǒng)的一部分。按照系統(tǒng)的分析要素,可以把開發(fā)方法分為三類:1、面向處理方法(ProcessingOriented,簡(jiǎn)稱PO);2、向數(shù)據(jù)方法(DataOriented,簡(jiǎn)稱DO);3、向?qū)ο蟮姆椒ǎ∣bjectOriented,簡(jiǎn)稱OO)。4.2系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)根據(jù)業(yè)務(wù)流程圖轉(zhuǎn)化為軟件的體系結(jié)構(gòu),進(jìn)而用軟件結(jié)構(gòu)圖建立物理模型,得系統(tǒng)活動(dòng)圖,如下:圖4-1系統(tǒng)結(jié)構(gòu)圖該圖按照實(shí)際的ATM系統(tǒng)順序進(jìn)行大體設(shè)計(jì),分為三大層。從儲(chǔ)戶的登入進(jìn)入主界面,在該界面中設(shè)計(jì)了ATM的主要模塊功能,如取款、查詢、修改密碼以及轉(zhuǎn)賬業(yè)務(wù),用戶可以進(jìn)入想要實(shí)現(xiàn)的模塊中進(jìn)行相關(guān)業(yè)務(wù)的處理;同時(shí)可以在任何一個(gè)界面選擇退出系統(tǒng),來(lái)終止錯(cuò)誤的操作。此圖根據(jù)業(yè)務(wù)流程圖轉(zhuǎn)化為軟件的體系結(jié)構(gòu),進(jìn)而用軟件結(jié)構(gòu)圖建立物理模型,軟件人員根據(jù)物理模型對(duì)軟件進(jìn)行系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì),繼而細(xì)化為對(duì)各個(gè)模塊的代碼實(shí)現(xiàn),系統(tǒng)結(jié)構(gòu)圖是對(duì)軟件系統(tǒng)結(jié)構(gòu)的總體設(shè)計(jì)的圖形顯示。在詳細(xì)階段確定為滿足軟件系統(tǒng)的性能需求所必需的算法和模塊間的控制方式(性能設(shè)計(jì))。確定外部信號(hào)的接收發(fā)送形式。在需求分析階段,已經(jīng)從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結(jié)構(gòu),使每一部分完成簡(jiǎn)單的功能且各個(gè)部分之間又保持一定的聯(lián)系,這就是功能設(shè)計(jì)。在設(shè)計(jì)階段,基于這個(gè)功能的層次結(jié)構(gòu)把各個(gè)部分組合起來(lái)成為系統(tǒng)。圖4-2系統(tǒng)活動(dòng)圖4.3系統(tǒng)詳細(xì)設(shè)計(jì)4.3.1系統(tǒng)詳細(xì)設(shè)計(jì)概述對(duì)概要設(shè)計(jì)的一個(gè)細(xì)化,就是詳細(xì)設(shè)計(jì)每個(gè)模塊實(shí)現(xiàn)算法,所需的局部結(jié)構(gòu)。詳細(xì)設(shè)計(jì)的實(shí)現(xiàn)根據(jù)結(jié)構(gòu)程序設(shè)計(jì)原理,將每個(gè)模塊的功能用相應(yīng)的標(biāo)準(zhǔn)語(yǔ)句表示出來(lái)。4.3.2基本任務(wù)為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)。用某種圖形、表格、語(yǔ)言等工具將每個(gè)模塊處理過(guò)程的詳細(xì)算法描述出來(lái)。為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。對(duì)于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類型進(jìn)行確切的定義。為數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫(kù)的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴于具體所使用的數(shù)據(jù)庫(kù)系統(tǒng)。其他設(shè)計(jì):根據(jù)軟件系統(tǒng)的類型,還可能要進(jìn)行以下設(shè)計(jì):①代碼設(shè)計(jì)。為了提高數(shù)據(jù)的輸入、分類、存儲(chǔ)、檢索等操作,節(jié)約內(nèi)存空間,對(duì)數(shù)據(jù)庫(kù)中的某些數(shù)據(jù)項(xiàng)的值要進(jìn)行代碼設(shè)計(jì)。②輸入/輸出格式設(shè)計(jì)。③人機(jī)對(duì)話設(shè)計(jì)。對(duì)于一個(gè)實(shí)時(shí)系統(tǒng),用戶與計(jì)算機(jī)頻繁對(duì)話,因此要進(jìn)行對(duì)話方式、內(nèi)容、格式的具體設(shè)計(jì)。編寫詳細(xì)設(shè)計(jì)說(shuō)明書。(6)評(píng)審。對(duì)處理過(guò)程的算法和數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)都要評(píng)審。4.4系統(tǒng)邏輯設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)指對(duì)系統(tǒng)所采用的數(shù)據(jù)模式、子模式、應(yīng)用程序、數(shù)據(jù)庫(kù)等根據(jù)用戶的具體要求進(jìn)行分析和設(shè)計(jì)。它也是管理信息系統(tǒng)設(shè)計(jì)的重要組成部分。數(shù)據(jù)庫(kù)設(shè)計(jì)的基本原則是盡可能提高數(shù)據(jù)組織的相對(duì)獨(dú)立性,簡(jiǎn)化其結(jié)構(gòu),即用規(guī)范化方法設(shè)施數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu),提高數(shù)據(jù)的可維護(hù)性、完整性、一致性。通過(guò)收集和分析用戶需求,確定了數(shù)據(jù)庫(kù)要保存的信息,我將此次數(shù)據(jù)庫(kù)設(shè)計(jì)為二個(gè)如下所示表的設(shè)計(jì)如下:表4-1用戶信息設(shè)計(jì)表1、客戶表(user)CardID字段信息字段名稱類型寬度小數(shù)位數(shù)空特性姓名unamevarchar30性別usexvarchar20身份證號(hào)uidvarchar30N卡號(hào)ucnovarchar30N用戶信息表定義了用戶的姓名、性別、身份證號(hào)碼和卡號(hào),其中身份證號(hào)是主鍵,用于在查詢卡信息的時(shí)候,從數(shù)據(jù)庫(kù)中提取出相關(guān)數(shù)據(jù)顯示在用戶的交互界面,方便用戶查看相關(guān)信息。而卡號(hào)是賬戶信息的表中的主鍵,在此表中屬于外鍵,定義了用戶表和賬戶信息表的關(guān)系。表4-2賬戶信息設(shè)計(jì)表2、賬戶表(card)CardID字段信息字段名稱類型寬度小數(shù)位數(shù)空特性卡號(hào)ucnovarchar30N賬戶余額cbalint20N密碼cpwdint20N賬戶信息設(shè)計(jì)表主要設(shè)計(jì)了賬戶的卡號(hào),賬戶余額以及密碼等字段,其中卡號(hào)是該表的主鍵。數(shù)據(jù)庫(kù)設(shè)計(jì)如下:1.名字:用戶登錄信息描述:助記詞登錄時(shí),用于確認(rèn)身份定義:登錄信息=帳號(hào)+密碼2.名字:修改密碼信息描述:用戶確認(rèn)修改后的信息定義:修改密碼信息=原密碼+新密碼+確認(rèn)密碼3.名字:轉(zhuǎn)賬信息描述:用戶所要轉(zhuǎn)入賬戶的信息定義:轉(zhuǎn)賬信息=用戶賬號(hào)余額+對(duì)方賬號(hào)+轉(zhuǎn)入金額4.名字:查詢余額信息描述:用戶需要清楚的知道自己賬戶中的信息定義:查詢余額信息=用戶余額4.5界面模塊設(shè)計(jì)用戶界面設(shè)計(jì)目前已成為評(píng)價(jià)軟件質(zhì)量的一條重要指標(biāo),所謂用戶界面是批軟件系統(tǒng)與用戶交互的接口,通常包括輸入、輸出設(shè)計(jì)、人機(jī)對(duì)話的界面設(shè)計(jì)。4.5.1首頁(yè)設(shè)計(jì)的窗體實(shí)現(xiàn)當(dāng)插入現(xiàn)金卡之后出現(xiàn)如上歡迎界面,系統(tǒng)出現(xiàn)選擇確定和取消的登入方式,點(diǎn)擊按鈕之后(確定)出現(xiàn)后對(duì)話框://首頁(yè)設(shè)計(jì)窗體classPanel01extendsJPanel{JLabellabel1,label2,label3,label4;JPasswordFieldtextA;JTextFieldtextC;staticJTextFieldtextB;chart[]=newchar[4];Panel01(){setLayout(newGridLayout(4,4));for(inti=0;i<4;i++){ t[i]=(char)(Math.random()*26+'A'); }Stringmm=newString(t);label2=newJLabel("請(qǐng)輸入卡號(hào):");label1=newJLabel("請(qǐng)輸入密碼:");label3=newJLabel();label4=newJLabel("請(qǐng)輸入驗(yàn)證碼:");add(textB);add(textA);add(textC);}}classPanel02extendsJPanel{JButtonbutton1,button2;Panel02(){setLayout(newGridLayout(3,6));button1=newJButton("確定");button2=newJButton("取消");}}該代碼對(duì)首頁(yè)的組件進(jìn)行了設(shè)計(jì),用戶在使用過(guò)程需要將卡號(hào),密碼和驗(yàn)證碼都輸入正確才能進(jìn)入下一步的操作,如果其中一個(gè)出現(xiàn)問(wèn)題則不能成功登陸,也不能實(shí)現(xiàn)后面相對(duì)應(yīng)的操作。//首頁(yè)添加監(jiān)聽器并添加actionclassClient00extendsJFrameimplementsActionListener{publicvoidactionPerformed(ActionEvente){char[]passwords=panel1.textA.getPassword();Stringpassword=newString("1234");//此處設(shè)置賬號(hào)123456的初始密碼為1234,每輸入一次都有提示,在連續(xù)輸入三次不正確后系統(tǒng)自動(dòng)退出。if(e.getActionCommand().equals("確定"))if(panel1.textC.getText().equals(panel1.label3.getText())){right();}elseif(e.getActionCommand()=="取消"){ this.setVisible(false); newClient08(""); }}publicvoidright(){if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")){ JOptionPane.showMessageDialog(frame,"請(qǐng)輸入賬號(hào)、密碼!");return;}Stringurl="jdbc:mysql://localhost:3306/atm?useUnicode=true&characterEncoding=gbk"; //定義與連接數(shù)據(jù)庫(kù)的url try{ Class.forName("com.mysql.jdbc.Driver"); //加載mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng) Connectioncon=DriverManager.getConnection(url,"root","123"); //連接URL為jdbc:mysql//服務(wù)器地址/數(shù)據(jù)庫(kù)名,后面的2個(gè)參數(shù)分別是登陸用戶名和密碼 Statementsql=con.createStatement();Stringql=panel1.textB.getText(); ResultSetrs=sql.executeQuery("selectcpwdfromcardwhereucno="+ql+"");在此時(shí)輸入的數(shù)據(jù)會(huì)與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)匹配,因此可能會(huì)出現(xiàn)錯(cuò)誤的信息,那么要對(duì)錯(cuò)誤的信息進(jìn)行處理,于是針對(duì)輸入密碼的錯(cuò)誤次數(shù)設(shè)置了處理過(guò)程,相應(yīng)的處理過(guò)程寫成下面的代碼:if(rs.next()){Stringqerycpwd=panel1.textA.getText();Strings=rs.getString(1);if(qerycpwd.equals(s)){ JOptionPane.showMessageDialog(frame,"連接成功!"); this.setVisible(false); newClient01("用戶取款系統(tǒng)");}else{ if(i!=2){ i++; j=3-i;JOptionPane.showMessageDialog(frame,"密碼有誤!你還有"+j+"次機(jī)會(huì),請(qǐng)你再仔細(xì)想想.");panel1.textA.setText("");} else{ JOptionPane.showMessageDialog(frame,"對(duì)不起,你輸入的密碼次數(shù)達(dá)三次,下次再見。"); System.exit(0); }}con.close();frame.repaint();}else{ JOptionPane.showMessageDialog(null,"該用戶不存在,重新輸入!","警告!",JOptionPane.YES_NO_OPTION);return;}}圖4-3登錄界面登錄模塊采用的是密碼、驗(yàn)證碼的方式,需要用戶輸入卡號(hào)、密碼和驗(yàn)證碼然后點(diǎn)擊確認(rèn)進(jìn)行驗(yàn)證登錄,程序?qū)⒏鶕?jù)輸入卡號(hào)查找對(duì)應(yīng)密碼,第一如果賬號(hào)找到則繼續(xù)下一步,在這里我用了輸入驗(yàn)證碼的方式,輸入正確則繼續(xù),程序系統(tǒng)將根據(jù)卡號(hào)調(diào)用后臺(tái)數(shù)據(jù)庫(kù)查找與卡號(hào)對(duì)應(yīng)的密碼并與用戶輸入的密碼相對(duì)比。密碼正確則繼續(xù),否則當(dāng)輸入的錯(cuò)誤密碼次數(shù)達(dá)到三次時(shí),系統(tǒng)將提示你需要與前臺(tái)服務(wù)員取得聯(lián)系。第二如果沒(méi)有找到,則提示輸入賬號(hào)錯(cuò)誤。4.5.2查詢信息頁(yè)面的設(shè)計(jì)//查詢余額頁(yè)面窗體設(shè)計(jì)classPanel06extendsJPanel{JLabellabel1,label2;JTextFieldtextA;JFrameframe;Panel06(){setLayout(newGridLayout(4,4));label1=newJLabel("你的余額為:");textA=newJTextField(6);}圖4-4查詢模塊在查詢模塊中,將通過(guò)用戶所使用的賬戶賬號(hào)來(lái)進(jìn)行余額的查詢,將顯示賬戶的實(shí)際余額,點(diǎn)擊“查詢”按鈕,在程序中通過(guò)按鈕的Action方法進(jìn)行方法的調(diào)用,就可以實(shí)現(xiàn)查詢余額的功能并且把查詢到的賬戶余額顯示在此界面上。當(dāng)用戶點(diǎn)擊“繼續(xù)”時(shí),程序則返回到初始主界面。classPanel07extendsJPanel{JButtonbutton1,button2;Panel07(){setLayout(newGridLayout(3,6));button1=newJButton("繼續(xù)");button2=newJButton("查詢");classClient03extendsJFrameimplementsActionListener{Panel06panel1;Panel07panel2;publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("繼續(xù)")){this.setVisible(false);newClient01("選擇服務(wù)種類");}elseif(e.getActionCommand()=="查詢") showcbal();}publicvoidshowcbal(){ Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據(jù)庫(kù)的url try{ Class.forName("com.mysql.jdbc.Driver"); //加載mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng) Connectioncon=DriverManager.getConnection(url,"root","123"); //連接URL為jdbc:mysql//服務(wù)器地址/數(shù)據(jù)庫(kù)名,后面的2個(gè)參數(shù)分別是登陸用戶名和密碼 ResultSetrs=sql.executeQuery("selectcbalfromcardwherecno="+ql+"");if(rs.next()){Stringucbal=rs.getString(1);}con.close();}catch(Exceptionex){ex.printStackTrace();}}}圖4-5查詢卡信息模塊這個(gè)功能用來(lái)顯示賬戶的基本信息包括用戶名、性別、身份證、卡號(hào)等,點(diǎn)擊查詢按鈕后系統(tǒng)將根據(jù)與輸入的卡號(hào)相一致的字段信息查詢后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行比較,并將匹配的信息顯示在此頁(yè)面上。當(dāng)點(diǎn)擊“取消”按鈕時(shí),系統(tǒng)將返回到初始主界面。4.5.3修改密碼界面的設(shè)計(jì)//修改密碼頁(yè)面窗體設(shè)計(jì)Panel10(){setLayout(newGridLayout(10,6));label1=newJLabel("請(qǐng)輸入原密碼:");label2=newJLabel("請(qǐng)輸入新密碼:");label3=newJLabel("再次確認(rèn)密碼:");button1=newJButton("確定");button2=newJButton("取消");修改密碼過(guò)程需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,首先要找到該賬戶的賬戶信息進(jìn)行匹配,只有輸入的原密碼正確了才能進(jìn)行下面的修改,而且兩次輸入的新密碼必須一致,如果不一致也不能進(jìn)行修改,如果都正確則需要更新數(shù)據(jù)庫(kù)中已經(jīng)存入的密碼。publicvoidupdateM(){ Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據(jù)庫(kù)的url try{Class.forName("com.mysql.jdbc.Driver");//加載mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng)Connectioncon=DriverManager.getConnection(url,"root","123");//連接URL為jdbc:mysql//服務(wù)器地址/數(shù)據(jù)庫(kù)名,后面的2個(gè)參數(shù)分別是登陸用戶名和密碼Statementsql=con.createStatement();Stringcno=Panel01.textB.getText(); ResultSetrs=sql.executeQuery("selectcpwdfromcardwherecno="+cno+"");}classbankSystem05{ publicstaticvoidmain(String[]args){ newClient02("修改密碼服務(wù)"); }}圖4-6修改密碼模塊這個(gè)模塊需要用戶輸入舊密碼后,再次輸入兩次新密碼來(lái)進(jìn)行確認(rèn),然后點(diǎn)擊“確定”按鈕進(jìn)行密碼的修改,修改成功后將給出提示信息,其中還考慮到了一些用戶可能的輸入錯(cuò)誤問(wèn)題,在程序設(shè)計(jì)時(shí)我做出了一些異常的判斷和處理,比如空輸入,輸入兩次新密碼不一致以及原密碼輸入不正確等問(wèn)題。修改更新密碼的完成,依然采用的是“確定”按鈕控件的Action事件來(lái)進(jìn)行完成。4.5.4轉(zhuǎn)賬頁(yè)面的窗體設(shè)計(jì)//轉(zhuǎn)賬頁(yè)面窗體設(shè)計(jì)Panel08(){setLayout(newGridLayout(4,4));label1=newJLabel("輸入預(yù)轉(zhuǎn)賬號(hào):");label2=newJLabel("輸入預(yù)轉(zhuǎn)金額:");}classClient04extendsJFrameimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("確定")){zhuanzhang();//程序根據(jù)輸入賬號(hào)調(diào)用數(shù)據(jù)庫(kù),修改對(duì)應(yīng)金額數(shù)。this.setVisible(false);newClient01("用戶取款系統(tǒng)");}publicvoidzhuanzhang(){if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")){ JOptionPane.showMessageDialog(frame,"請(qǐng)輸入欲轉(zhuǎn)賬號(hào)、金額!");return;}Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據(jù)庫(kù)的url try{Class.forName("com.mysql.jdbc.Driver");//加載mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng)Connectioncon=DriverManager.getConnection(url,"root","123");//連接URL為jdbc:mysql//服務(wù)器地址/數(shù)據(jù)庫(kù)名,后面的2個(gè)參數(shù)分別是登陸用戶名和密碼 ResultSetss=sql.executeQuery("selectcnofromcardwherecno="+cno+"");intshbal=Integer.parseInt(ybal);if(ss.next()){ ResultSetrs=sql.executeQuery("selectcbalfromcardwherecno="+ql+"");轉(zhuǎn)賬時(shí)用戶將根據(jù)需要自己輸入預(yù)轉(zhuǎn)賬號(hào)和預(yù)轉(zhuǎn)金額,這個(gè)模塊的設(shè)計(jì)其實(shí)質(zhì)是具體的SQL語(yǔ)句操作,系統(tǒng)根據(jù)輸入的賬號(hào)查找與之對(duì)應(yīng)的用戶數(shù)據(jù)表,從而根據(jù)操作修改金額。第一,系統(tǒng)首先根據(jù)本賬號(hào),后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行本卡金額與輸入的金額對(duì)比,如果找到且在金額允許范圍,就提示轉(zhuǎn)賬成功,并更新本賬號(hào)的數(shù)據(jù)信息。第二,如果沒(méi)有找到輸入的預(yù)轉(zhuǎn)賬號(hào),則提示沒(méi)有該用戶,并跳轉(zhuǎn)回來(lái)重新輸入預(yù)轉(zhuǎn)賬號(hào)。if(rs.next()){Stringquerybal=rs.getString(1);intqybal=Integer.parseInt(querybal);if(shbal<qybal){intnewcbal=qybal-shbal;intnewcbal2=qybal+shbal;Stringnewbal=String.valueOf(newcbal);Stringnewbal2=String.valueOf(newcbal2);sql.executeUpdate("updatecardsetcbal='"+newbal+"'wherecno="+ql+"");sql.executeUpdate("updatecardsetcbal='"+newbal2+"'wherecno="+cno+""); JOptionPane.showMessageDialog(frame,"操作已成功,謝謝使用!");this.setVisible(false);newClient01("用戶取款系統(tǒng)");}}con.close();frame.repaint();}}圖4-7轉(zhuǎn)賬業(yè)務(wù)模塊這個(gè)模塊中,用戶將根據(jù)需要自己輸入預(yù)轉(zhuǎn)賬號(hào)和預(yù)轉(zhuǎn)金額,這個(gè)模塊的設(shè)計(jì)其實(shí)質(zhì)是具體的SQL語(yǔ)句操作,系統(tǒng)根據(jù)輸入的賬號(hào)查找與之對(duì)應(yīng)的用戶數(shù)據(jù)表,從而根據(jù)操作修改金額。第一,系統(tǒng)首先根據(jù)本賬號(hào),后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行本卡金額與輸入的金額對(duì)比,如果找到且在金額允許范圍,就提示轉(zhuǎn)賬成功,并更新本賬號(hào)的數(shù)據(jù)信息。第二,如果沒(méi)有找到輸入的預(yù)轉(zhuǎn)賬號(hào),則提示沒(méi)有該用戶,并跳轉(zhuǎn)回來(lái)重新輸入預(yù)轉(zhuǎn)賬號(hào)。4.5.5取款界面的窗體設(shè)計(jì)//取款頁(yè)面窗體設(shè)計(jì)classClient02extendsJFrameimplementsActionListener{Panel04panel1;Panel05panel2;JFrameframe;publicvoidactionPerformed(ActionEvente){if(e.getActionCommand()=="100"){this.setVisible(false);qukuan();//程序根據(jù)輸入金額和輸入卡號(hào),修改數(shù)據(jù)庫(kù)。newClient01("用戶取款系統(tǒng)");}elseif(e.getActionCommand()=="500"){ this.setVisible(false); newClient01("用戶取款系統(tǒng)"); }//這里當(dāng)點(diǎn)擊取款金額200時(shí),程序返回上層操作界面。}publicvoidqukuan(){ Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據(jù)庫(kù)的url try{ Class.forName("com.mysql.jdbc.Driver"); //加載mysql數(shù)據(jù)庫(kù)驅(qū)動(dòng) Connectioncon=DriverManager.getConnection(url,"root","123"); //連接URL為jdbc:mysql//服務(wù)器地址/數(shù)據(jù)庫(kù)名,后面的2個(gè)參數(shù)分別是登陸用戶名和密碼 if(rs.next()){Stringmm=rs.getString(1);intnn=Integer.parseInt(mm);Stringqerycbal=panel1.button1.getActionCommand();intquerybal=Integer.parseInt(qerycbal);取款時(shí)用戶將根據(jù)需要自己輸入取款金額,這個(gè)模塊的設(shè)計(jì)其實(shí)質(zhì)是具體的SQL語(yǔ)句操作,系統(tǒng)根據(jù)輸入的金額查找與之對(duì)應(yīng)的用戶數(shù)據(jù)表,從而根據(jù)操作修改金額。第一,系統(tǒng)首先根據(jù)本賬號(hào),后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行本卡金額與輸入的金額對(duì)比,如果找到且在金額允許范圍,就提示取款成功,并更新本賬號(hào)的數(shù)據(jù)信息。第二,如果沒(méi)有找到輸入的預(yù)轉(zhuǎn)賬號(hào),則提示沒(méi)有該用戶,并跳轉(zhuǎn)回來(lái)重新輸入預(yù)轉(zhuǎn)賬號(hào)。if(querybal<nn){ intnewbal=nn-querybal; Stringnewbals=String.valueOf(newbal); intupdatepwd=sql.executeUpdate("updatecardsetcbal='"+newbals+"'wherecno="+ql+"");if(updatepwd==1){ JOptionPane.showMessageDialog(frame,"操作已成功,謝謝使用!");}this.setVisible(false);newClient01("用戶取款系統(tǒng)");} else{JOptionPane.showMessageDialog(null,"對(duì)不起,你的卡余額已不足!","警告!",JOptionPane.YES_NO_OPTION);this.setVisible(false);newClient01("用戶取款系統(tǒng)");}圖4-8取款模塊取款模塊是ATM系統(tǒng)中一個(gè)相對(duì)比較重要的模塊,因?yàn)锳TM機(jī)主要實(shí)現(xiàn)的功能就是取款業(yè)務(wù),用戶選擇賬戶名并點(diǎn)擊相應(yīng)的取款金額,將觸發(fā)按鈕控件的action事件,對(duì)后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行操作。此處設(shè)置的幾個(gè)數(shù)字按鈕比較大,方便用戶的操作,其中一些相應(yīng)的提示信息也會(huì)給出,以防止用戶的錯(cuò)誤操作。由于這個(gè)模塊不需要用戶手動(dòng)輸入,所以在程序設(shè)計(jì)時(shí)沒(méi)有使用輸入的異常處理。根據(jù)參考資料及網(wǎng)上查詢,在程序中我采用的SQL語(yǔ)句調(diào)用方法是預(yù)處理指令的方法,事實(shí)證明,這種方法對(duì)于處理此程序有很大的益處,而且還可以防止非法的SQL輸入。當(dāng)用戶點(diǎn)擊對(duì)應(yīng)的數(shù)據(jù)按鈕后系統(tǒng)會(huì)根據(jù)本賬號(hào)查找本卡余額并與按鈕的數(shù)字相對(duì)比,如果選擇的金額大于本卡余額將顯示相應(yīng)的提示信息(不允許透支)。4.5.6退出界面設(shè)計(jì)//轉(zhuǎn)賬頁(yè)面窗體設(shè)計(jì)classAthreadextendsThread{staticintj=1;publicvoidrun(){for(;j<2;){newClient09("提示退出對(duì)話框");try{sleep(30000);j++;}}classPanel13extendsJPanel{JLabellabel;Panel13(){label=newJLabel("謝謝使用,請(qǐng)?jiān)?0秒內(nèi)退出此卡!");}classbankSystem08{ publicstaticvoidmain(String[]args){ newClient07(""); } }圖4-9退卡模塊退卡模塊是相對(duì)簡(jiǎn)單的模塊,沒(méi)有什么具體的界面設(shè)計(jì),只是一個(gè)消息的顯示,也是一種友好的界面處理方式,以防止用戶的錯(cuò)誤操作的方法。5系統(tǒng)實(shí)現(xiàn)5.1程序設(shè)計(jì)程序設(shè)計(jì)的基本概念有程序、數(shù)據(jù)、子程序、子例程、協(xié)同例程、模塊以及順序性、并發(fā)性、并行性、和分布性等。程序是程序設(shè)計(jì)中最為基本的概念,子程序和協(xié)同例程都是為了便于進(jìn)行程序設(shè)計(jì)而建立的程序設(shè)計(jì)基本單位,順序性、并發(fā)性、并行性和分布性反映程序的內(nèi)在特性。程序設(shè)計(jì)規(guī)范是進(jìn)行程序設(shè)計(jì)的具體規(guī)定。程序設(shè)計(jì)是軟件開發(fā)工作的重要部分,而軟件開發(fā)是工程性的工作,所以要有規(guī)范。語(yǔ)言影響程序設(shè)計(jì)的功效以及軟件的可靠性、易讀性和易維護(hù)性。專用程序?yàn)檐浖藛T提供合適的環(huán)境,便于進(jìn)行程序設(shè)計(jì)工作。程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法程序設(shè)計(jì)(Programming)是指設(shè)計(jì)、編制、調(diào)試程序的方法和過(guò)程。它是目標(biāo)明確的智力活動(dòng)。由于程序是軟件的本體,軟件的質(zhì)量主要通過(guò)程序的質(zhì)量來(lái)體現(xiàn),在軟件研究中,程序設(shè)計(jì)的工作非常重要,內(nèi)容涉及到有關(guān)的基本概念、工具、方法以及方法學(xué)等。程序設(shè)計(jì)通常分為問(wèn)題建摸,算法設(shè)計(jì),編寫代碼,編譯調(diào)試和整理并寫出文檔資料五個(gè)階段。本系統(tǒng)中用Eclipse編程工具,采用結(jié)構(gòu)化的編程方法對(duì)模塊進(jìn)行程序編寫。具體源程序見附頁(yè)。5.2程序調(diào)試程序調(diào)試,是將編制的程序投入實(shí)際運(yùn)行前,用手工或編譯程序等方法進(jìn)行測(cè)試,修正語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的過(guò)程。這是保證計(jì)算機(jī)信息系統(tǒng)正確性的必不可少的步驟。編完計(jì)算機(jī)程序,必須送入計(jì)算機(jī)中測(cè)試。5.2.1程序調(diào)試的原則軟件測(cè)試的目的是盡可能多的發(fā)現(xiàn)程序中的錯(cuò)誤,而調(diào)試則是在進(jìn)行了成功的測(cè)試之后才開始的工作。程序調(diào)試是指在系統(tǒng)測(cè)試的基礎(chǔ)上,將發(fā)現(xiàn)的問(wèn)題進(jìn)行改正,使之符合設(shè)計(jì)標(biāo)準(zhǔn)。(1)用頭腦去分析思考與錯(cuò)誤征兆有關(guān)的信息。(2)避開死胡同。(3)只把調(diào)試工具當(dāng)做手段。利用調(diào)試工具,可以幫助思考,但不能代替思考,因?yàn)檎{(diào)試工具給的是一種無(wú)規(guī)律的調(diào)試方法。(4)避免用試探法,最多只能把它當(dāng)做最后手段。(5)再出現(xiàn)錯(cuò)誤的地方,可能還有別的錯(cuò)誤。(6)修改錯(cuò)誤的一個(gè)常見失誤是只修改了這個(gè)錯(cuò)誤的征兆或這個(gè)錯(cuò)誤的表現(xiàn),而沒(méi)有修改錯(cuò)誤本身。如果提出的修改不能解釋與這個(gè)錯(cuò)誤有關(guān)的全部線索,那就表明只修改了錯(cuò)誤的一部分。(7)注意修正一個(gè)錯(cuò)誤的同時(shí)可能會(huì)引入新的錯(cuò)誤。(8)修改錯(cuò)誤的過(guò)程將迫使人們暫時(shí)回到程序設(shè)計(jì)階段。修改錯(cuò)誤也是程序設(shè)計(jì)的一種形式。(9)修改源代碼程序,不要改變目標(biāo)代碼。5.2.2調(diào)試方法1、簡(jiǎn)單調(diào)試方法:步驟(1)在程序中插入打印語(yǔ)句、優(yōu)點(diǎn)是能夠顯示程序的動(dòng)態(tài)過(guò)程,比較容易檢查源程序的有關(guān)信息。確定是效率低,可能輸入大量無(wú)關(guān)的數(shù)據(jù),發(fā)現(xiàn)錯(cuò)誤帶有偶然性。(2)運(yùn)行部分程序。有時(shí)為了測(cè)試某些被懷疑有錯(cuò)的程序段,卻將整個(gè)程序反復(fù)執(zhí)行許多次,在這種情況下,應(yīng)設(shè)法使被測(cè)程序只執(zhí)行需要檢查的程序段,以提高效率。(3)借助調(diào)試工具。目前大多數(shù)程序設(shè)計(jì)語(yǔ)言都有專門的調(diào)試工具,可以用這些工具來(lái)分析程序的動(dòng)態(tài)行為。2、回溯法排錯(cuò)。確定最先發(fā)現(xiàn)錯(cuò)誤癥狀的地方,人工沿程序的控制流往回追蹤源程序代碼,直到找到錯(cuò)誤或范圍。具來(lái)分析程序的動(dòng)態(tài)行為。3、歸納法排錯(cuò)。是一種系統(tǒng)化的思考方法,是從個(gè)別推斷全體的方法,這種方法從線索(錯(cuò)誤征兆出發(fā)),通過(guò)分析這些線索之間的關(guān)系找出故障。主要有4步:(1)收集有關(guān)數(shù)據(jù)。收集測(cè)試用例,弄清測(cè)試用例觀察到哪些錯(cuò)誤征兆,以及在什么情況下出現(xiàn)錯(cuò)誤等信息。(2)組織數(shù)據(jù)。整理分析數(shù)據(jù),以便發(fā)現(xiàn)規(guī)律,即什么條件下出現(xiàn)錯(cuò)誤,什么條件下不出現(xiàn)錯(cuò)誤。(3)導(dǎo)出假設(shè)。分析研究線索之間的關(guān)系,力求找出它們的規(guī)律,從而提出關(guān)于錯(cuò)誤的一個(gè)或多個(gè)假設(shè),如果無(wú)法做出假設(shè),則應(yīng)設(shè)計(jì)并執(zhí)行更多的測(cè)試用例,以便獲得更多的數(shù)據(jù)。證明假設(shè)。假設(shè)不等于事實(shí),證明假設(shè)的合理性是極其重要的,不經(jīng)證明就根據(jù)假設(shè)排除錯(cuò)誤,往往只能消除錯(cuò)誤的征兆或只能改正部分錯(cuò)誤。證明假設(shè)的方法是用它解釋所有原始的測(cè)試結(jié)果,如果能圓滿地解釋一切現(xiàn)象,則假設(shè)得到證明,否則要么是假設(shè)不成立或不完備,要么是有多個(gè)錯(cuò)誤同時(shí)存在。4、演繹法排錯(cuò)。設(shè)想可能的原因,用已有的數(shù)據(jù)排除不正確的假設(shè),精化并證明余下的假設(shè)。5、對(duì)分查找法。如果知道每個(gè)變量子啊程序內(nèi)若干個(gè)關(guān)鍵點(diǎn)上的正確值,則可用賦值語(yǔ)句或輸入語(yǔ)句在程序中的關(guān)鍵點(diǎn)附近“注入”這些變量的正確值,然后檢查程序的輸出。如果輸出結(jié)果是正確的,則表示錯(cuò)誤發(fā)生在前半部分,否則,不妨認(rèn)為錯(cuò)誤在后半部分。這樣反復(fù)進(jìn)行多次,逐漸逼近錯(cuò)誤位置。5.2.3調(diào)試分類1、靜態(tài)調(diào)試可以采用如下兩種方法:(1)輸出寄存器的內(nèi)容。在測(cè)試中出現(xiàn)問(wèn)題,設(shè)法保留現(xiàn)場(chǎng)信息。把所有寄存器和主存中有關(guān)部分的內(nèi)容打印出來(lái)(通常以八進(jìn)制或十六進(jìn)制的形式打?。?,進(jìn)行分析研究。用這種方法調(diào)試,輸出的是程序的靜止?fàn)顟B(tài)(程序在某一時(shí)刻的狀態(tài)),效率非常低,不得已時(shí)才采用。(2)為取得關(guān)鍵變量的動(dòng)態(tài)值,在程序中插入打印語(yǔ)句。這是取得動(dòng)態(tài)信息的簡(jiǎn)單方法,并可檢驗(yàn)在某時(shí)間后某個(gè)變量是否按預(yù)期要求發(fā)生了變化。此方法的缺點(diǎn)是可能輸出大梁需要分析的信息,必須修改源程序才能插入打印語(yǔ)句,這可能改變關(guān)鍵的時(shí)序關(guān)系,引入新的錯(cuò)誤。2、動(dòng)態(tài)調(diào)試通常利用程序語(yǔ)言提供的調(diào)試功能或?qū)iT的調(diào)試工具來(lái)分析程序的動(dòng)態(tài)行為。一般程序語(yǔ)言和工具提供的調(diào)試功能有檢查主存和寄存器;設(shè)置斷點(diǎn),即當(dāng)執(zhí)行到特定語(yǔ)句或改變特定變量的值時(shí),程序停止執(zhí)行,以便分析程序此時(shí)的狀態(tài)。綜上所述,本系統(tǒng)采用的主要方法如下:(1)單元測(cè)試:是指原程序中每個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)模塊是否正確實(shí)現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯(cuò)誤。采用白盒法對(duì)各模塊進(jìn)行邏輯錯(cuò)誤排查,用黑盒法錄入一些有特征的數(shù)據(jù)從不同角度驗(yàn)證結(jié)果。(2)集成測(cè)試:在單元測(cè)試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求組裝成一個(gè)完整的系統(tǒng)進(jìn)行測(cè)試。(3)確認(rèn)測(cè)試(有效性測(cè)試):它的任務(wù)是檢查軟件的功能與性能是否與需求規(guī)格說(shuō)明書中確定的指標(biāo)相符合。一般分為用黑盒進(jìn)行確認(rèn)測(cè)試,再檢查軟件所有文檔的完整性、正確性——軟件配置審查。5.3試運(yùn)行系統(tǒng)試運(yùn)行是指對(duì)系統(tǒng)的運(yùn)行環(huán)境和資源進(jìn)行設(shè)置、系統(tǒng)運(yùn)行和控制參數(shù)設(shè)定、數(shù)據(jù)加載以及調(diào)整系統(tǒng)與業(yè)務(wù)工作同步等。6系統(tǒng)維護(hù)維護(hù)是指在已完成對(duì)軟件的研制(分析、設(shè)計(jì)、編碼和測(cè)試)工作并交付使用以后,對(duì)軟件產(chǎn)品所進(jìn)行的一些軟件工程的活動(dòng)。即根據(jù)軟件運(yùn)行的情況,對(duì)軟件進(jìn)行適當(dāng)修改,以適應(yīng)新的要求,以及糾正運(yùn)行中發(fā)現(xiàn)的錯(cuò)誤。編寫軟件問(wèn)題報(bào)告、軟件修改報(bào)告。6.1系統(tǒng)維護(hù)概述系統(tǒng)維護(hù)是軟件生存周期中時(shí)間最長(zhǎng)的一個(gè)階段,所花費(fèi)的精力和費(fèi)用也是最多的一個(gè)階段,系統(tǒng)維護(hù)的目的是保證系統(tǒng)中的各個(gè)要素隨著環(huán)境的變化始終處于最新的、正確的工作狀態(tài)。系統(tǒng)維護(hù)是信息系統(tǒng)可靠運(yùn)行的重要技術(shù)保障,我們應(yīng)給予足夠的重視。6.2軟件維護(hù)類型軟件維護(hù)活動(dòng)類型總起來(lái)大概有四種:糾錯(cuò)性維護(hù)(校正性維護(hù))、適應(yīng)性維護(hù)、完善性維護(hù)或增強(qiáng)、預(yù)防性維護(hù)或再工程。除此四類維護(hù)活動(dòng)外,還有一些其它類型的維護(hù)活動(dòng),如:支援性維護(hù)(如用戶的培訓(xùn)等)。針對(duì)以上幾種類型的維護(hù),可以采取一些維護(hù)策略,以控制維護(hù)成本。(1)改正性維護(hù)改正性維護(hù)是指改正在系統(tǒng)開發(fā)階段已發(fā)生而系統(tǒng)測(cè)試階段尚未發(fā)現(xiàn)的錯(cuò)誤。這方面的維護(hù)工作量要占整個(gè)維護(hù)工作量的17%~21%。所發(fā)現(xiàn)的錯(cuò)誤有的不太重要,不影響系統(tǒng)的正常運(yùn)行,其維護(hù)工作可隨時(shí)進(jìn)行:而有的錯(cuò)誤非常重要,甚至影響整個(gè)系統(tǒng)的正常運(yùn)行,其維護(hù)工作必須制定計(jì)劃,進(jìn)行修改,并且要進(jìn)行復(fù)查和控制。(2)適應(yīng)性維護(hù)適應(yīng)性維護(hù)是指使用軟件適應(yīng)信息技術(shù)變化和管理需求變化而進(jìn)行的修改。這方面的維護(hù)工作量占整個(gè)維護(hù)工作量的18%~25%。由于目前計(jì)算機(jī)硬件價(jià)格的不斷下降.各類系統(tǒng)軟件屢出不窮,人們常常為改善系統(tǒng)硬件環(huán)境和運(yùn)行環(huán)境而產(chǎn)生系統(tǒng)更新?lián)Q代的需求;企業(yè)的外部市場(chǎng)環(huán)境和管理需求的不斷變化也使得各級(jí)管理人員不斷提出新的信息需求。這些因素都將導(dǎo)致適應(yīng)性維護(hù)工作的產(chǎn)生。進(jìn)行這方面的維護(hù)工作也要像系統(tǒng)開發(fā)一樣,有計(jì)劃、有步驟地進(jìn)行。(3)完善性維護(hù)完善性維護(hù)是為擴(kuò)充功能和改善性能而進(jìn)行的修改,主要是指對(duì)已有的軟件系統(tǒng)增加一些在系統(tǒng)分析和設(shè)計(jì)階段中沒(méi)有規(guī)定的功能與性能特征。這些功能對(duì)完善系統(tǒng)功能是非常必要的。另外,還包括對(duì)處理效率和編寫程序的改進(jìn),這方面的維護(hù)占整個(gè)維護(hù)工作的50%~60%,比重較大.也是關(guān)系到系統(tǒng)開發(fā)質(zhì)量的重要方面。這方面的維護(hù)除了要有計(jì)劃、有步驟地完成外.還要注意將相關(guān)的文檔資料加入到前面相應(yīng)的文檔中去。(4)預(yù)防性維護(hù)預(yù)防性維護(hù)為了改進(jìn)應(yīng)用軟件的可靠性和可維護(hù)性,為了適應(yīng)未來(lái)的軟硬件環(huán)境的變化,應(yīng)主動(dòng)增加預(yù)防性的新的功能,以使應(yīng)用系統(tǒng)適應(yīng)各類變化而不被淘汰。例如將專用報(bào)表功能改成通用報(bào)表生成功能,以適應(yīng)將來(lái)報(bào)表格式的變化。這方面的維護(hù)工作量占整個(gè)維護(hù)工作量的4%左右。圖6-1軟件維護(hù)過(guò)程7ATM銀行取款系統(tǒng)測(cè)試7.1引言軟件測(cè)試(英語(yǔ):softwaretesting),描述一種用來(lái)促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過(guò)程。軟件測(cè)試的經(jīng)典定義是:在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過(guò)程。它是幫助識(shí)別開發(fā)完成(中間或最終的版本)的計(jì)算機(jī)軟件(整體或部分)的正確度(correctness)、完全度(completeness)和質(zhì)量(quality)的軟件過(guò)程;是SQA(softwarequalityassurance)的重要子域。軟件測(cè)試是軟件開發(fā)過(guò)程的重要組成部分,是用來(lái)確認(rèn)一個(gè)程序的功能、性能是否符合開發(fā)之前所提出的一些要求。軟件測(cè)試就是在軟件投入運(yùn)行前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。測(cè)試的目的:(1)測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程。(2)好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案。(3)成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。(4)測(cè)試并不僅僅是為了找出錯(cuò)誤。通過(guò)分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的發(fā)生趨勢(shì),可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前軟件開發(fā)過(guò)程中的缺陷,以便及時(shí)改進(jìn)。(5)這種分析也能幫助測(cè)試人員設(shè)計(jì)出有針對(duì)性的測(cè)試方法,改善測(cè)試的效率和有效性。(6)沒(méi)有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定軟件質(zhì)量的一種方法。(7)另外,根據(jù)測(cè)試目的的不同,還有回歸測(cè)試、壓力測(cè)試、性能測(cè)試等,分別為了檢驗(yàn)修改或優(yōu)化過(guò)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024房產(chǎn)代理銷售合同samplewith傭金計(jì)算及支付條款
- 2024年高鐵項(xiàng)目綜合維修勞務(wù)分包合同
- 2024年賽事策劃與執(zhí)行服務(wù)標(biāo)準(zhǔn)協(xié)議版B版
- 2024年度航天設(shè)備租賃換售服務(wù)合同3篇
- 2024年網(wǎng)絡(luò)信息技術(shù)研發(fā)外包合同
- 2024版電梯安裝工程合同管理與履行監(jiān)督合同
- 2024年跨境貿(mào)易三方擔(dān)保合同示范文本3篇
- 2024評(píng)標(biāo)保密協(xié)議范本:智能電網(wǎng)建設(shè)專用3篇
- 專業(yè)實(shí)驗(yàn)設(shè)施短期租賃合同版B版
- 醫(yī)療廢物知識(shí)培訓(xùn)
- 江西省外經(jīng)貿(mào)融資擔(dān)保有限公司招聘筆試題庫(kù)2024
- 2024年國(guó)家公務(wù)員考試行政職業(yè)能力測(cè)驗(yàn)真題及答案
- 2024年便攜式儲(chǔ)能行業(yè)分析報(bào)告
- 2024-2025學(xué)年廣東省廣州市廣州大附中初三3月教學(xué)質(zhì)量監(jiān)測(cè)考試數(shù)學(xué)試題(理甲卷)版含解析
- 科研倫理與學(xué)術(shù)規(guī)范期末考試試題
- 2024年秋季人教版新教材七年級(jí)上冊(cè)語(yǔ)文全冊(cè)教案(名師教學(xué)設(shè)計(jì)簡(jiǎn)案)
- 2024中華人民共和國(guó)農(nóng)村集體經(jīng)濟(jì)組織法詳細(xì)解讀課件
- 2025屆湖南省長(zhǎng)沙市青竹湖湘一外國(guó)語(yǔ)學(xué)校七年級(jí)數(shù)學(xué)第一學(xué)期期末經(jīng)典試題含解析
- 2024中國(guó)食藥同源大健康產(chǎn)業(yè)消費(fèi)洞察與產(chǎn)業(yè)發(fā)展分析白皮書
- 郵政銀行借款合同
- 2024屆廣州市番禺區(qū)重點(diǎn)名校中考數(shù)學(xué)全真模擬試題含解析
評(píng)論
0/150
提交評(píng)論