畢業(yè)論文-Java模擬ATM系統(tǒng)_第1頁
畢業(yè)論文-Java模擬ATM系統(tǒng)_第2頁
畢業(yè)論文-Java模擬ATM系統(tǒng)_第3頁
畢業(yè)論文-Java模擬ATM系統(tǒng)_第4頁
畢業(yè)論文-Java模擬ATM系統(tǒng)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

太原理工大學畢業(yè)設計(論文)用紙緒論1.1ATM概述近年來,隨著Internet網絡的迅速發(fā)展,其在現(xiàn)實生活中應用很廣泛?;ヂ?lián)網給現(xiàn)實生活帶來很大的方便。如今,人們的交流已越來越多,對信息傳送的要求更嚴格,“信息高速公路”也就應運而生了。其中,Internet已擁有了數(shù)千萬個用戶,通過Internet我們就可以與全世界來聯(lián)網。對于當中各種各樣的信息,人們都可以通過網絡來共享和使用。比如ATM自動取款系統(tǒng),我們可以把它當作一個虛擬的市場銷售中心,每個人都可以在這個網絡上享受所提供的服務,這樣既節(jié)約了時間,又滿足了需求。尤其是人們的生活速度越來越快,沒有大量的時間花費在銀行等待長時間的排隊。ATM銀行取款系統(tǒng)的出現(xiàn),使這一問題迎刃而解。自動取款機又稱ATM,是AutomaticTellerMachine的縮寫,又稱自動柜員機,是指銀行在不同地點設置一種小型機器,利用一張信用卡大小的膠卡上的磁帶記錄客戶的基本戶口資料(通常就是銀行卡),讓客戶可以透過機器進行提款、存款、轉帳等銀行柜臺服務,盡管大多數(shù)客戶都把這種自助機器稱為提款機。自動存取款機是一種客戶進行自助服務的電子化設備,它具有存款、取款、卡卡轉賬、查詢余額、修改密碼等功能,是一種新型的銀行電腦終端。它是一種高度精密的機電一體化裝置,利用磁性代碼卡或智能卡實現(xiàn)金融交易的自助服務系統(tǒng)。1.2選題意義隨著Internet網絡的迅速發(fā)展,作為電子商務的ATM自動取款系統(tǒng)以其方便、快捷和高效的優(yōu)勢,逐步成為新興電子商務的經營模式和理念,人們已經不再只是滿足于低效率的排隊等待,而是渴望能夠充分享受網絡所帶來的更多的便利。ATM自動取款系統(tǒng)恰恰適應了如今的快節(jié)奏生活。本文以實際ATM取款機應用為背景,闡述了系統(tǒng)開發(fā)過程的開發(fā)方法、系統(tǒng)分析以及一般步驟。2ATM系統(tǒng)開發(fā)方法2.1系統(tǒng)開發(fā)方法概述結構化系統(tǒng)開發(fā)方法(StructuredSystemAnalysisAndDesign,SSA&D,)又稱結構化生命周期法,是系統(tǒng)分析員、軟件工程師、程序員以及最終用戶按照用戶至上的原則,自頂向下分析與設計和自底向上逐步實施的建立計算機信息系統(tǒng)的一個過程,是組織、管理和控制信息系統(tǒng)開發(fā)過程的一種基本框架。是用系統(tǒng)的思想和系統(tǒng)工程的方法,按照用戶至上的原則結構化、模塊化,自頂向下對系統(tǒng)進行分析與設計。步驟如下:(1)先將整個信息系統(tǒng)開發(fā)過程劃分為若干個相對獨立的階段(系統(tǒng)規(guī)劃、系統(tǒng)分析、系統(tǒng)設計、系統(tǒng)實施等);(2)在前三個階段堅持自頂向下地對系統(tǒng)進行結構化劃分;(3)在系統(tǒng)調查和理順管理業(yè)務時,應從最頂層的管理業(yè)務入手,逐步深入至最基層;(4)在系統(tǒng)分析、提出目標系統(tǒng)方案和系統(tǒng)設計時,應從宏觀整體考慮入手,先考慮系統(tǒng)整體的優(yōu)化,然后再考慮局部的優(yōu)化問題;(5)在系統(tǒng)實施階段,則堅持自底向上地逐步實施,即組織人員從最基層的模塊做起(編程),然后按照系統(tǒng)設計的結構,將模塊一個個拼接到一起進行調試,自底向上、逐步地構成整個系統(tǒng)。其主要特點為:(1)自頂向下整體地進行分析與設計和自底向上逐步實施的系統(tǒng)開發(fā)過程:在系統(tǒng)規(guī)劃、分析與設計時,從整體全局考慮,自頂向下地工作;在系統(tǒng)實施階段則根據設計的要求,先編制一個個具體的功能模塊,然后自底向上逐步實現(xiàn)整個系統(tǒng)。(2)用戶至上是影響成敗的關鍵因素,整個開發(fā)過程中,要面向用戶,充分了解用戶的需求與愿望。(3)符合實際,客觀性和科學化,即強調在設計系統(tǒng)之前,深入實際,詳細地調查研究,努力弄清實際業(yè)務處理過程的每一個細節(jié),然后分析研究,制定出科學合理的目標系統(tǒng)設計方案。(4)嚴格區(qū)分工作階段,把整個開發(fā)過程劃分為若干工作階段,每一個階段有明確的任務和目標、預期達到的工作成效,以便計劃和控制進度,協(xié)調各方面的工作。前一階段的工作成果是后一階段的工作依據。(5)充分預料可能發(fā)生的變化:環(huán)境變化、內部處理模式變化、用戶需求變化。(6)開發(fā)過程工程化,要求開發(fā)過程的每一步都要按工程標準規(guī)范化,工作文體或文檔資料標準化。系統(tǒng)開發(fā)工作的自動化、計算機化是提高系統(tǒng)開發(fā)效率與質量的重要途徑。計算機輔助軟件工程(簡記為CASE)也是當前信息系統(tǒng)領域和計算機應用領域的熱門話題。CASE技術的目標是實現(xiàn)系統(tǒng)開發(fā)生命周期內各階段工作基于計算機的自動化。這將導致系統(tǒng)開發(fā)工作的根本變化。2.2該系統(tǒng)開發(fā)方法比較各種開發(fā)方法的特點,結合銀行取款系統(tǒng)的實際情況,整個系統(tǒng)采用結構化生命周期法,以原型法和面向對象的開發(fā)方法作為輔助,即系統(tǒng)總體上采用結構化生命周期法進行系統(tǒng)分析和系統(tǒng)設計,系統(tǒng)實施等步驟采用面向對象方法。本系統(tǒng)開發(fā)工具使用的是基于Java的可擴展開發(fā)平臺的Eclipse。2.3開發(fā)工具eclipse介紹Eclipse是一個開放源代碼的、基于Java的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,包括Java開發(fā)工具(JavaDevelopmentKit,JDK)。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要針對希望擴展Eclipse的軟件開發(fā)人員,因為它允許他們構建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣東西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。2.3.1主要組成Eclipse是一個開放源代碼的軟件開發(fā)項目,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質的工業(yè)平臺。它主要由Eclipse項目、Eclipse工具項目和Eclipse技術項目三個項目組成,具體包括四個部分組成——EclipsePlatform、JDT、CDT和PDE。JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),EclipsePlatform則是一個開放的可擴展IDE,提供了一個通用的開發(fā)平臺。它提供建造塊和構造并運行集成軟件開發(fā)工具的基礎。EclipsePlatform允許工具建造者獨立開發(fā)與他人工具無縫集成的工具從而無須分辨一個工具功能在哪里結束,而另一個工具功能在哪里開始。2.3.2軟件開發(fā)包EclipseSDK(軟件開發(fā)者包)是EclipsePlatform、JDT和PDE所生產的組件合并,它們可以一次下載。這些部分在一起提供了一個具有豐富特性的開發(fā)環(huán)境,允許開發(fā)者有效地建造可以無縫集成到EclipsePlatform中的工具。EclipseSDK由Eclipse項目生產的工具和來自其它開放源代碼的第三方軟件組合而成。Eclipse項目生產的軟件以GPL發(fā)布,第三方組件有各自自身的許可協(xié)議。3系統(tǒng)分析系統(tǒng)分析方法是指把要解決的問題作為一個系統(tǒng),對系統(tǒng)要素進行綜合分析,找出解決問題的可行方案的咨詢方法。3.1系統(tǒng)分析方法概述系統(tǒng)分析是一種研究方略,它能在不確定的情況下,確定問題的本質和起因,明確咨詢目標,找出各種可行方案,并通過一定標準對這些方案進行比較,幫助決策者在復雜的問題和環(huán)境中作出科學抉擇。系統(tǒng)分析方法的具體步驟包括:限定問題、確定目標、調查研究收集數(shù)據、提出備選方案和評價標準、備選方案評估和提出最可行方案。系統(tǒng)分析的目標是明確系統(tǒng)開發(fā)的目標和用戶信息需求,提出系統(tǒng)的邏輯方案。為系統(tǒng)設計做好準備。3.1.1限定問題所謂問題,是現(xiàn)實情況與計劃目標或理想狀態(tài)之間的差距。系統(tǒng)分析的核心內容有兩個:其一是進行“診斷”,即找出問題及其原因;其二是“開處方”,即提出解決問題的最可行方案。所謂限定問題,就是要明確問題的本質或特性、問題存在范圍和影響程度、問題產生的時間和環(huán)境、問題的癥狀和原因等。限定問題是系統(tǒng)分析中關鍵的一步,因為如果“診斷”出錯,以后開的“處方”就不可能對癥下藥。在限定問題時,要注意區(qū)別癥狀和問題,探討問題原因不能先入為主,同時要判別哪些是局部問題,哪些是整體問題,問題的最后確定應該在調查研究之后。通過親身體驗總結各銀行ATM提款機界面流程,得到本系統(tǒng)開發(fā)的主要流程界面(主要功能取款、轉賬、查詢、修改密碼等)。3.1.2確定目標系統(tǒng)分析目標應該根據客戶的要求和對需要解決問題的理解加以確定,如有可能應盡量通過指標表示,以便進行定量分析。對不能定量描述的目標也應該盡量用文字說明清楚,以便進行定性分析和評價系統(tǒng)分析的成效。3.1.3調查研究,收集數(shù)據調查研究和收集數(shù)據應該圍繞問題起因進行,一方面要驗證有限定問題階段形成的假設,另一方面要探討產生問題的根本原因,為下一步提出解決問題的備選方案做準備。調查研究常用的有四種方式,即閱讀文件資料、訪談、觀察和調查。收集的數(shù)據和信息包括事實(facts)、見解(opinions)和態(tài)度(attitudes)。要對數(shù)據和信息去偽存真,交叉核實,保證真實性和準確性。3.1.4提出方案和評價標準通過深入調查研究,使真正有待解決的問題得以最終確定,使產生問題的主要原因得到明確,在此基礎上就可以有針對性地提出解決問題的備選方案。備選方案是解決問題和達到咨詢目標可供選擇的建議或設計,應提出兩種以上的備選方案,以便提供進一步評估和篩選。為了對備選方案進行評估,要根據問題的性質和客戶具備的條件。提出約束條件或評價標準,供下一步應用。3.1.5方案評估根據上述約束條件或評價標準,對解決問題備選方案進行評估,評估應該是綜合性的,不僅要考慮技術因素,也要考慮社會經濟等因素,評估小組應該有一定代表性,除咨詢項目組成員外,也要吸收客戶組織的代表參加。根據評估結果確定最可行方案。3.1.6提交可行方案最可行方案并不一定是最佳方案,它是在約束條件之內,根據評價標準篩選出的最現(xiàn)實可行的方案。如果客戶滿意,則系統(tǒng)分析達到目標。如果客戶不滿意,則要與客戶協(xié)商調整約束條件或評價標準,甚至重新限定的問題,開始新一輪系統(tǒng)分析,直到客戶滿意為止。3.2系統(tǒng)功能結構圖結構化設計方法使用的描述方式是系統(tǒng)結構圖,也稱結構圖或控制結構圖。它表示了一個系統(tǒng)(或功能模塊)的層次分解關系,模塊之間的調用關系,以及模塊之間數(shù)據流和控制流信息的傳遞關系,它是描述系統(tǒng)物理結構的主要圖表工具。系統(tǒng)結構圖是對軟件系統(tǒng)結構的總體設計的圖形顯示。在需求分析階段,已經從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結構,使每一部分完成簡單的功能且各個部分之間又保持一定的聯(lián)系,這就是功能設計。在設計階段,基于這個功能的層次結構把各個部分組合起來成為系統(tǒng)。處理方式設計:確定為實現(xiàn)軟件系統(tǒng)的功能需求所必需的算法,評估算法的性能。確定為滿足軟件系統(tǒng)的性能需求所必需的算法和模塊間的控制方式(性能設計)。確定外部信號的接收發(fā)送形式。圖3-1ATM系統(tǒng)功能結構圖該系統(tǒng)主要實現(xiàn)銀行卡用戶的存取款,以及進行一些簡單的查詢和取款業(yè)務,同時能夠在系統(tǒng)里面進行客戶密碼的修改,實現(xiàn)簡單的機器與客戶交互。

3.3系統(tǒng)主要處理流程圖3.3.1系統(tǒng)辦理所有業(yè)務流程圖選擇界面(查詢、取款、轉帳、修改密碼、取消)登錄界面選擇界面(查詢、取款、轉帳、修改密碼、取消)登錄界面(卡號、密碼、驗證碼、取消等選項)待機界面(按確定鍵進入登錄界面)密碼錯誤,請從新輸入!密碼錯誤,請從新輸入!修改密碼查詢取款修改密碼查詢取款轉帳交易完成交易完成點擊退出點擊退出謝謝使用,再見!謝謝使用,再見!圖3-2業(yè)務流程圖該系統(tǒng)主要實現(xiàn)銀行卡用戶的存取款,以及進行一些簡單的查詢和取款業(yè)務,同時能夠在系統(tǒng)里面進行客戶密碼的修改,實現(xiàn)簡單的機器與客戶交互。3.3.2用戶登錄流程圖圖3-3用戶登錄流程圖該模塊主要實現(xiàn)銀行卡用戶的登錄流程,登錄模塊時需要進行賬號和密碼的驗證,直到賬號和密碼同時正確才能登錄成功。3.3.3用戶修改密碼流程圖圖3-4用戶修改密碼流程圖該模塊主要實現(xiàn)銀行卡賬戶的密碼修改功能,在密碼修改過程中需要驗證新密碼和舊密碼的輸入是否正確,直到舊密碼輸入正確,兩次輸入新密碼一致且和舊密碼不相同才能修改成功。3.3.3用戶轉賬流程圖圖3-5用戶轉賬流程圖通過該功能用戶可以選擇給對方轉賬,只要輸入對法的卡號的所轉入的金額就可以實現(xiàn)轉賬功能。但是前提是需要與數(shù)據庫中的賬號進行余額匹配,只有在輸入的所轉入的金額小于自己賬號的余額時才能實現(xiàn)轉賬成功,如果輸入的所轉金額大于自己的賬號余額,那么就會出現(xiàn)錯誤,此部分的代碼設計中使用了人為的異常拋出功能,將出現(xiàn)的所轉金額大于余額時的異常拋出,從而提示用戶選擇其他的操作來阻止錯誤的發(fā)生。4系統(tǒng)設計4.1系統(tǒng)設計概述這個階段的任務是設計軟件系統(tǒng)的模塊層次結構,設計數(shù)據庫的結構以及設計模塊的控制流程,其目的是明確軟件系統(tǒng)"如何做"。這個階段又分兩個步驟:概要設計和詳細設計。在系統(tǒng)分析的基礎上,設計出能滿足預定目標的系統(tǒng)的過程。系統(tǒng)設計內容主要包括:確定設計方針和方法,將系統(tǒng)分解為若干子系統(tǒng),確定各子系統(tǒng)的目標、功能及其相互關系,決定對子系統(tǒng)的管理體制和控制方式,對各子系統(tǒng)進行技術設計和評價,對全系統(tǒng)進行技術設計和評價等。系統(tǒng)設計通常應用兩種方法:一種是歸納法,另一種是演繹法。應用歸納法進行系統(tǒng)設計的程序是:首先盡可能地收集現(xiàn)有的和過去的同類系統(tǒng)的系統(tǒng)設計資料;在對這些系統(tǒng)的設計、制造和運行狀況進行分析研究的基礎上,根據所設計的系統(tǒng)的功能要求進行多次選擇,然后對少數(shù)幾個同類系統(tǒng)作出相應修正,最后得出一個理想的系統(tǒng)。演繹法是一種公理化方法,即先從普遍的規(guī)則和原理出發(fā),根據設計人員的知識和經驗,從具有一定功能的元素集合中選擇能符合系統(tǒng)功能要求的多種元素,然后將這些元素按照一定形式進行組合(見系統(tǒng)結構),從而創(chuàng)造出具有所需功能的新系統(tǒng)。在系統(tǒng)設計的實踐中,這兩種方法往往是并用的。4.1.1系統(tǒng)設計原則(1)階段開發(fā)原則系統(tǒng)框架和數(shù)據結構全面設計,具體功能實現(xiàn)分階段進行。網站的建設過程可以采取以下三期:第一期工程搭建網站的基本構架,實現(xiàn)電子商務網的大部分功能,初步實現(xiàn)網上交易;第二期工程實現(xiàn)網上競價系統(tǒng)的全部功能;第三期工程實現(xiàn)網站在線的BtoB交易。(2)易用性原則方便上網客戶瀏覽和操作,最大限度地減輕后臺管理人員的負擔,做到部分業(yè)務的自動化處理。(3)業(yè)務完整性原則對于業(yè)務進行中的特殊情況能夠做出及時、正確的響應,保證業(yè)務數(shù)據的完整性。(4)業(yè)務規(guī)范化原則在系統(tǒng)設計的同時,也為將來的業(yè)務流程制定了較為完善的規(guī)范,具有較強的實際操作性。(5)可擴展性原則系統(tǒng)設計要考慮到業(yè)務未來發(fā)展的需要,要盡可能設計得簡明,各個功能模塊間的耦合度小,便于系統(tǒng)的擴展。如果存在舊有的數(shù)據庫系統(tǒng),則需要充分考慮兼容性。4.1.2系統(tǒng)設計的方法系統(tǒng)設計的方法主要包括結構化生命周期法(又稱瀑布法)、原型化方法(迭代法)、面向對象方法。按時間過程來分,開發(fā)方法分為生命周期法和原型法,實際上還有許多處于中間狀態(tài)的方法。原型法又按照對原型結果的處理方式分為試驗原型法和演進原型法。試驗原型法只把原型當成試驗工具,試了以后就拋掉,根據試驗的結論做出新的系統(tǒng)。演進原型法則把試好的結果保留,成為最終系統(tǒng)的一部分。按照系統(tǒng)的分析要素,可以把開發(fā)方法分為三類:1、面向處理方法(ProcessingOriented,簡稱PO);2、向數(shù)據方法(DataOriented,簡稱DO);3、向對象的方法(ObjectOriented,簡稱OO)。4.2系統(tǒng)總體結構設計根據業(yè)務流程圖轉化為軟件的體系結構,進而用軟件結構圖建立物理模型,得系統(tǒng)活動圖,如下:圖4-1系統(tǒng)結構圖該圖按照實際的ATM系統(tǒng)順序進行大體設計,分為三大層。從儲戶的登入進入主界面,在該界面中設計了ATM的主要模塊功能,如取款、查詢、修改密碼以及轉賬業(yè)務,用戶可以進入想要實現(xiàn)的模塊中進行相關業(yè)務的處理;同時可以在任何一個界面選擇退出系統(tǒng),來終止錯誤的操作。此圖根據業(yè)務流程圖轉化為軟件的體系結構,進而用軟件結構圖建立物理模型,軟件人員根據物理模型對軟件進行系統(tǒng)總體結構設計,繼而細化為對各個模塊的代碼實現(xiàn),系統(tǒng)結構圖是對軟件系統(tǒng)結構的總體設計的圖形顯示。在詳細階段確定為滿足軟件系統(tǒng)的性能需求所必需的算法和模塊間的控制方式(性能設計)。確定外部信號的接收發(fā)送形式。在需求分析階段,已經從系統(tǒng)開發(fā)的角度出發(fā),把系統(tǒng)按功能逐次分割成層次結構,使每一部分完成簡單的功能且各個部分之間又保持一定的聯(lián)系,這就是功能設計。在設計階段,基于這個功能的層次結構把各個部分組合起來成為系統(tǒng)。圖4-2系統(tǒng)活動圖4.3系統(tǒng)詳細設計4.3.1系統(tǒng)詳細設計概述對概要設計的一個細化,就是詳細設計每個模塊實現(xiàn)算法,所需的局部結構。詳細設計的實現(xiàn)根據結構程序設計原理,將每個模塊的功能用相應的標準語句表示出來。4.3.2基本任務為每個模塊進行詳細的算法設計。用某種圖形、表格、語言等工具將每個模塊處理過程的詳細算法描述出來。為模塊內的數(shù)據結構進行設計。對于需求分析、概要設計確定的概念性的數(shù)據類型進行確切的定義。為數(shù)據結構進行物理設計,即確定數(shù)據庫的物理結構。物理結構主要指數(shù)據庫的存儲記錄格式、存儲記錄安排和存儲方法,這些都依賴于具體所使用的數(shù)據庫系統(tǒng)。其他設計:根據軟件系統(tǒng)的類型,還可能要進行以下設計:①代碼設計。為了提高數(shù)據的輸入、分類、存儲、檢索等操作,節(jié)約內存空間,對數(shù)據庫中的某些數(shù)據項的值要進行代碼設計。②輸入/輸出格式設計。③人機對話設計。對于一個實時系統(tǒng),用戶與計算機頻繁對話,因此要進行對話方式、內容、格式的具體設計。編寫詳細設計說明書。(6)評審。對處理過程的算法和數(shù)據庫的物理結構都要評審。4.4系統(tǒng)邏輯設計數(shù)據庫設計指對系統(tǒng)所采用的數(shù)據模式、子模式、應用程序、數(shù)據庫等根據用戶的具體要求進行分析和設計。它也是管理信息系統(tǒng)設計的重要組成部分。數(shù)據庫設計的基本原則是盡可能提高數(shù)據組織的相對獨立性,簡化其結構,即用規(guī)范化方法設施數(shù)據存儲的結構,提高數(shù)據的可維護性、完整性、一致性。通過收集和分析用戶需求,確定了數(shù)據庫要保存的信息,我將此次數(shù)據庫設計為二個如下所示表的設計如下:表4-1用戶信息設計表1、客戶表(user)CardID字段信息字段名稱類型寬度小數(shù)位數(shù)空特性姓名unamevarchar30性別usexvarchar20身份證號uidvarchar30N卡號ucnovarchar30N用戶信息表定義了用戶的姓名、性別、身份證號碼和卡號,其中身份證號是主鍵,用于在查詢卡信息的時候,從數(shù)據庫中提取出相關數(shù)據顯示在用戶的交互界面,方便用戶查看相關信息。而卡號是賬戶信息的表中的主鍵,在此表中屬于外鍵,定義了用戶表和賬戶信息表的關系。表4-2賬戶信息設計表2、賬戶表(card)CardID字段信息字段名稱類型寬度小數(shù)位數(shù)空特性卡號ucnovarchar30N賬戶余額cbalint20N密碼cpwdint20N賬戶信息設計表主要設計了賬戶的卡號,賬戶余額以及密碼等字段,其中卡號是該表的主鍵。數(shù)據庫設計如下:1.名字:用戶登錄信息描述:助記詞登錄時,用于確認身份定義:登錄信息=帳號+密碼2.名字:修改密碼信息描述:用戶確認修改后的信息定義:修改密碼信息=原密碼+新密碼+確認密碼3.名字:轉賬信息描述:用戶所要轉入賬戶的信息定義:轉賬信息=用戶賬號余額+對方賬號+轉入金額4.名字:查詢余額信息描述:用戶需要清楚的知道自己賬戶中的信息定義:查詢余額信息=用戶余額4.5界面模塊設計用戶界面設計目前已成為評價軟件質量的一條重要指標,所謂用戶界面是批軟件系統(tǒng)與用戶交互的接口,通常包括輸入、輸出設計、人機對話的界面設計。4.5.1首頁設計的窗體實現(xiàn)當插入現(xiàn)金卡之后出現(xiàn)如上歡迎界面,系統(tǒng)出現(xiàn)選擇確定和取消的登入方式,點擊按鈕之后(確定)出現(xiàn)后對話框://首頁設計窗體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("請輸入卡號:");label1=newJLabel("請輸入密碼:");label3=newJLabel();label4=newJLabel("請輸入驗證碼:");add(textB);add(textA);add(textC);}}classPanel02extendsJPanel{JButtonbutton1,button2;Panel02(){setLayout(newGridLayout(3,6));button1=newJButton("確定");button2=newJButton("取消");}}該代碼對首頁的組件進行了設計,用戶在使用過程需要將卡號,密碼和驗證碼都輸入正確才能進入下一步的操作,如果其中一個出現(xiàn)問題則不能成功登陸,也不能實現(xiàn)后面相對應的操作。//首頁添加監(jiān)聽器并添加actionclassClient00extendsJFrameimplementsActionListener{publicvoidactionPerformed(ActionEvente){char[]passwords=panel1.textA.getPassword();Stringpassword=newString("1234");//此處設置賬號123456的初始密碼為1234,每輸入一次都有提示,在連續(xù)輸入三次不正確后系統(tǒ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,"請輸入賬號、密碼!");return;}Stringurl="jdbc:mysql://localhost:3306/atm?useUnicode=true&characterEncoding=gbk"; //定義與連接數(shù)據庫的url try{ Class.forName("com.mysql.jdbc.Driver"); //加載mysql數(shù)據庫驅動 Connectioncon=DriverManager.getConnection(url,"root","123"); //連接URL為jdbc:mysql//服務器地址/數(shù)據庫名,后面的2個參數(shù)分別是登陸用戶名和密碼 Statementsql=con.createStatement();Stringql=panel1.textB.getText(); ResultSetrs=sql.executeQuery("selectcpwdfromcardwhereucno="+ql+"");在此時輸入的數(shù)據會與數(shù)據庫進行數(shù)據匹配,因此可能會出現(xiàn)錯誤的信息,那么要對錯誤的信息進行處理,于是針對輸入密碼的錯誤次數(shù)設置了處理過程,相應的處理過程寫成下面的代碼: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+"次機會,請你再仔細想想.");panel1.textA.setText("");} else{ JOptionPane.showMessageDialog(frame,"對不起,你輸入的密碼次數(shù)達三次,下次再見。"); System.exit(0); }}con.close();frame.repaint();}else{ JOptionPane.showMessageDialog(null,"該用戶不存在,重新輸入!","警告!",JOptionPane.YES_NO_OPTION);return;}}圖4-3登錄界面登錄模塊采用的是密碼、驗證碼的方式,需要用戶輸入卡號、密碼和驗證碼然后點擊確認進行驗證登錄,程序將根據輸入卡號查找對應密碼,第一如果賬號找到則繼續(xù)下一步,在這里我用了輸入驗證碼的方式,輸入正確則繼續(xù),程序系統(tǒng)將根據卡號調用后臺數(shù)據庫查找與卡號對應的密碼并與用戶輸入的密碼相對比。密碼正確則繼續(xù),否則當輸入的錯誤密碼次數(shù)達到三次時,系統(tǒng)將提示你需要與前臺服務員取得聯(lián)系。第二如果沒有找到,則提示輸入賬號錯誤。4.5.2查詢信息頁面的設計//查詢余額頁面窗體設計classPanel06extendsJPanel{JLabellabel1,label2;JTextFieldtextA;JFrameframe;Panel06(){setLayout(newGridLayout(4,4));label1=newJLabel("你的余額為:");textA=newJTextField(6);}圖4-4查詢模塊在查詢模塊中,將通過用戶所使用的賬戶賬號來進行余額的查詢,將顯示賬戶的實際余額,點擊“查詢”按鈕,在程序中通過按鈕的Action方法進行方法的調用,就可以實現(xiàn)查詢余額的功能并且把查詢到的賬戶余額顯示在此界面上。當用戶點擊“繼續(xù)”時,程序則返回到初始主界面。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("選擇服務種類");}elseif(e.getActionCommand()=="查詢") showcbal();}publicvoidshowcbal(){ Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據庫的url try{ Class.forName("com.mysql.jdbc.Driver"); //加載mysql數(shù)據庫驅動 Connectioncon=DriverManager.getConnection(url,"root","123"); //連接URL為jdbc:mysql//服務器地址/數(shù)據庫名,后面的2個參數(shù)分別是登陸用戶名和密碼 ResultSetrs=sql.executeQuery("selectcbalfromcardwherecno="+ql+"");if(rs.next()){Stringucbal=rs.getString(1);}con.close();}catch(Exceptionex){ex.printStackTrace();}}}圖4-5查詢卡信息模塊這個功能用來顯示賬戶的基本信息包括用戶名、性別、身份證、卡號等,點擊查詢按鈕后系統(tǒng)將根據與輸入的卡號相一致的字段信息查詢后臺數(shù)據庫進行比較,并將匹配的信息顯示在此頁面上。當點擊“取消”按鈕時,系統(tǒng)將返回到初始主界面。4.5.3修改密碼界面的設計//修改密碼頁面窗體設計Panel10(){setLayout(newGridLayout(10,6));label1=newJLabel("請輸入原密碼:");label2=newJLabel("請輸入新密碼:");label3=newJLabel("再次確認密碼:");button1=newJButton("確定");button2=newJButton("取消");修改密碼過程需要對數(shù)據庫進行操作,首先要找到該賬戶的賬戶信息進行匹配,只有輸入的原密碼正確了才能進行下面的修改,而且兩次輸入的新密碼必須一致,如果不一致也不能進行修改,如果都正確則需要更新數(shù)據庫中已經存入的密碼。publicvoidupdateM(){ Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據庫的url try{Class.forName("com.mysql.jdbc.Driver");//加載mysql數(shù)據庫驅動Connectioncon=DriverManager.getConnection(url,"root","123");//連接URL為jdbc:mysql//服務器地址/數(shù)據庫名,后面的2個參數(shù)分別是登陸用戶名和密碼Statementsql=con.createStatement();Stringcno=Panel01.textB.getText(); ResultSetrs=sql.executeQuery("selectcpwdfromcardwherecno="+cno+"");}classbankSystem05{ publicstaticvoidmain(String[]args){ newClient02("修改密碼服務"); }}圖4-6修改密碼模塊這個模塊需要用戶輸入舊密碼后,再次輸入兩次新密碼來進行確認,然后點擊“確定”按鈕進行密碼的修改,修改成功后將給出提示信息,其中還考慮到了一些用戶可能的輸入錯誤問題,在程序設計時我做出了一些異常的判斷和處理,比如空輸入,輸入兩次新密碼不一致以及原密碼輸入不正確等問題。修改更新密碼的完成,依然采用的是“確定”按鈕控件的Action事件來進行完成。4.5.4轉賬頁面的窗體設計//轉賬頁面窗體設計Panel08(){setLayout(newGridLayout(4,4));label1=newJLabel("輸入預轉賬號:");label2=newJLabel("輸入預轉金額:");}classClient04extendsJFrameimplementsActionListener{publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equals("確定")){zhuanzhang();//程序根據輸入賬號調用數(shù)據庫,修改對應金額數(shù)。this.setVisible(false);newClient01("用戶取款系統(tǒng)");}publicvoidzhuanzhang(){if(panel1.textA.getText().equals("")||panel1.textB.getText().equals("")){ JOptionPane.showMessageDialog(frame,"請輸入欲轉賬號、金額!");return;}Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據庫的url try{Class.forName("com.mysql.jdbc.Driver");//加載mysql數(shù)據庫驅動Connectioncon=DriverManager.getConnection(url,"root","123");//連接URL為jdbc:mysql//服務器地址/數(shù)據庫名,后面的2個參數(shù)分別是登陸用戶名和密碼 ResultSetss=sql.executeQuery("selectcnofromcardwherecno="+cno+"");intshbal=Integer.parseInt(ybal);if(ss.next()){ ResultSetrs=sql.executeQuery("selectcbalfromcardwherecno="+ql+"");轉賬時用戶將根據需要自己輸入預轉賬號和預轉金額,這個模塊的設計其實質是具體的SQL語句操作,系統(tǒng)根據輸入的賬號查找與之對應的用戶數(shù)據表,從而根據操作修改金額。第一,系統(tǒng)首先根據本賬號,后臺數(shù)據庫進行本卡金額與輸入的金額對比,如果找到且在金額允許范圍,就提示轉賬成功,并更新本賬號的數(shù)據信息。第二,如果沒有找到輸入的預轉賬號,則提示沒有該用戶,并跳轉回來重新輸入預轉賬號。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轉賬業(yè)務模塊這個模塊中,用戶將根據需要自己輸入預轉賬號和預轉金額,這個模塊的設計其實質是具體的SQL語句操作,系統(tǒng)根據輸入的賬號查找與之對應的用戶數(shù)據表,從而根據操作修改金額。第一,系統(tǒng)首先根據本賬號,后臺數(shù)據庫進行本卡金額與輸入的金額對比,如果找到且在金額允許范圍,就提示轉賬成功,并更新本賬號的數(shù)據信息。第二,如果沒有找到輸入的預轉賬號,則提示沒有該用戶,并跳轉回來重新輸入預轉賬號。4.5.5取款界面的窗體設計//取款頁面窗體設計classClient02extendsJFrameimplementsActionListener{Panel04panel1;Panel05panel2;JFrameframe;publicvoidactionPerformed(ActionEvente){if(e.getActionCommand()=="100"){this.setVisible(false);qukuan();//程序根據輸入金額和輸入卡號,修改數(shù)據庫。newClient01("用戶取款系統(tǒng)");}elseif(e.getActionCommand()=="500"){ this.setVisible(false); newClient01("用戶取款系統(tǒng)"); }//這里當點擊取款金額200時,程序返回上層操作界面。}publicvoidqukuan(){ Stringurl="jdbc:mysql://localhost:3306/atm"; //定義與連接數(shù)據庫的url try{ Class.forName("com.mysql.jdbc.Driver"); //加載mysql數(shù)據庫驅動 Connectioncon=DriverManager.getConnection(url,"root","123"); //連接URL為jdbc:mysql//服務器地址/數(shù)據庫名,后面的2個參數(shù)分別是登陸用戶名和密碼 if(rs.next()){Stringmm=rs.getString(1);intnn=Integer.parseInt(mm);Stringqerycbal=panel1.button1.getActionCommand();intquerybal=Integer.parseInt(qerycbal);取款時用戶將根據需要自己輸入取款金額,這個模塊的設計其實質是具體的SQL語句操作,系統(tǒng)根據輸入的金額查找與之對應的用戶數(shù)據表,從而根據操作修改金額。第一,系統(tǒng)首先根據本賬號,后臺數(shù)據庫進行本卡金額與輸入的金額對比,如果找到且在金額允許范圍,就提示取款成功,并更新本賬號的數(shù)據信息。第二,如果沒有找到輸入的預轉賬號,則提示沒有該用戶,并跳轉回來重新輸入預轉賬號。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,"對不起,你的卡余額已不足!","警告!",JOptionPane.YES_NO_OPTION);this.setVisible(false);newClient01("用戶取款系統(tǒng)");}圖4-8取款模塊取款模塊是ATM系統(tǒng)中一個相對比較重要的模塊,因為ATM機主要實現(xiàn)的功能就是取款業(yè)務,用戶選擇賬戶名并點擊相應的取款金額,將觸發(fā)按鈕控件的action事件,對后臺數(shù)據庫進行操作。此處設置的幾個數(shù)字按鈕比較大,方便用戶的操作,其中一些相應的提示信息也會給出,以防止用戶的錯誤操作。由于這個模塊不需要用戶手動輸入,所以在程序設計時沒有使用輸入的異常處理。根據參考資料及網上查詢,在程序中我采用的SQL語句調用方法是預處理指令的方法,事實證明,這種方法對于處理此程序有很大的益處,而且還可以防止非法的SQL輸入。當用戶點擊對應的數(shù)據按鈕后系統(tǒng)會根據本賬號查找本卡余額并與按鈕的數(shù)字相對比,如果選擇的金額大于本卡余額將顯示相應的提示信息(不允許透支)。4.5.6退出界面設計//轉賬頁面窗體設計classAthreadextendsThread{staticintj=1;publicvoidrun(){for(;j<2;){newClient09("提示退出對話框");try{sleep(30000);j++;}}classPanel13extendsJPanel{JLabellabel;Panel13(){label=newJLabel("謝謝使用,請在30秒內退出此卡!");}classbankSystem08{ publicstaticvoidmain(String[]args){ newClient07(""); } }圖4-9退卡模塊退卡模塊是相對簡單的模塊,沒有什么具體的界面設計,只是一個消息的顯示,也是一種友好的界面處理方式,以防止用戶的錯誤操作的方法。5系統(tǒng)實現(xiàn)5.1程序設計程序設計的基本概念有程序、數(shù)據、子程序、子例程、協(xié)同例程、模塊以及順序性、并發(fā)性、并行性、和分布性等。程序是程序設計中最為基本的概念,子程序和協(xié)同例程都是為了便于進行程序設計而建立的程序設計基本單位,順序性、并發(fā)性、并行性和分布性反映程序的內在特性。程序設計規(guī)范是進行程序設計的具體規(guī)定。程序設計是軟件開發(fā)工作的重要部分,而軟件開發(fā)是工程性的工作,所以要有規(guī)范。語言影響程序設計的功效以及軟件的可靠性、易讀性和易維護性。專用程序為軟件人員提供合適的環(huán)境,便于進行程序設計工作。程序設計=數(shù)據結構+算法程序設計(Programming)是指設計、編制、調試程序的方法和過程。它是目標明確的智力活動。由于程序是軟件的本體,軟件的質量主要通過程序的質量來體現(xiàn),在軟件研究中,程序設計的工作非常重要,內容涉及到有關的基本概念、工具、方法以及方法學等。程序設計通常分為問題建摸,算法設計,編寫代碼,編譯調試和整理并寫出文檔資料五個階段。本系統(tǒng)中用Eclipse編程工具,采用結構化的編程方法對模塊進行程序編寫。具體源程序見附頁。5.2程序調試程序調試,是將編制的程序投入實際運行前,用手工或編譯程序等方法進行測試,修正語法錯誤和邏輯錯誤的過程。這是保證計算機信息系統(tǒng)正確性的必不可少的步驟。編完計算機程序,必須送入計算機中測試。5.2.1程序調試的原則軟件測試的目的是盡可能多的發(fā)現(xiàn)程序中的錯誤,而調試則是在進行了成功的測試之后才開始的工作。程序調試是指在系統(tǒng)測試的基礎上,將發(fā)現(xiàn)的問題進行改正,使之符合設計標準。(1)用頭腦去分析思考與錯誤征兆有關的信息。(2)避開死胡同。(3)只把調試工具當做手段。利用調試工具,可以幫助思考,但不能代替思考,因為調試工具給的是一種無規(guī)律的調試方法。(4)避免用試探法,最多只能把它當做最后手段。(5)再出現(xiàn)錯誤的地方,可能還有別的錯誤。(6)修改錯誤的一個常見失誤是只修改了這個錯誤的征兆或這個錯誤的表現(xiàn),而沒有修改錯誤本身。如果提出的修改不能解釋與這個錯誤有關的全部線索,那就表明只修改了錯誤的一部分。(7)注意修正一個錯誤的同時可能會引入新的錯誤。(8)修改錯誤的過程將迫使人們暫時回到程序設計階段。修改錯誤也是程序設計的一種形式。(9)修改源代碼程序,不要改變目標代碼。5.2.2調試方法1、簡單調試方法:步驟(1)在程序中插入打印語句、優(yōu)點是能夠顯示程序的動態(tài)過程,比較容易檢查源程序的有關信息。確定是效率低,可能輸入大量無關的數(shù)據,發(fā)現(xiàn)錯誤帶有偶然性。(2)運行部分程序。有時為了測試某些被懷疑有錯的程序段,卻將整個程序反復執(zhí)行許多次,在這種情況下,應設法使被測程序只執(zhí)行需要檢查的程序段,以提高效率。(3)借助調試工具。目前大多數(shù)程序設計語言都有專門的調試工具,可以用這些工具來分析程序的動態(tài)行為。2、回溯法排錯。確定最先發(fā)現(xiàn)錯誤癥狀的地方,人工沿程序的控制流往回追蹤源程序代碼,直到找到錯誤或范圍。具來分析程序的動態(tài)行為。3、歸納法排錯。是一種系統(tǒng)化的思考方法,是從個別推斷全體的方法,這種方法從線索(錯誤征兆出發(fā)),通過分析這些線索之間的關系找出故障。主要有4步:(1)收集有關數(shù)據。收集測試用例,弄清測試用例觀察到哪些錯誤征兆,以及在什么情況下出現(xiàn)錯誤等信息。(2)組織數(shù)據。整理分析數(shù)據,以便發(fā)現(xiàn)規(guī)律,即什么條件下出現(xiàn)錯誤,什么條件下不出現(xiàn)錯誤。(3)導出假設。分析研究線索之間的關系,力求找出它們的規(guī)律,從而提出關于錯誤的一個或多個假設,如果無法做出假設,則應設計并執(zhí)行更多的測試用例,以便獲得更多的數(shù)據。證明假設。假設不等于事實,證明假設的合理性是極其重要的,不經證明就根據假設排除錯誤,往往只能消除錯誤的征兆或只能改正部分錯誤。證明假設的方法是用它解釋所有原始的測試結果,如果能圓滿地解釋一切現(xiàn)象,則假設得到證明,否則要么是假設不成立或不完備,要么是有多個錯誤同時存在。4、演繹法排錯。設想可能的原因,用已有的數(shù)據排除不正確的假設,精化并證明余下的假設。5、對分查找法。如果知道每個變量子啊程序內若干個關鍵點上的正確值,則可用賦值語句或輸入語句在程序中的關鍵點附近“注入”這些變量的正確值,然后檢查程序的輸出。如果輸出結果是正確的,則表示錯誤發(fā)生在前半部分,否則,不妨認為錯誤在后半部分。這樣反復進行多次,逐漸逼近錯誤位置。5.2.3調試分類1、靜態(tài)調試可以采用如下兩種方法:(1)輸出寄存器的內容。在測試中出現(xiàn)問題,設法保留現(xiàn)場信息。把所有寄存器和主存中有關部分的內容打印出來(通常以八進制或十六進制的形式打?。?,進行分析研究。用這種方法調試,輸出的是程序的靜止狀態(tài)(程序在某一時刻的狀態(tài)),效率非常低,不得已時才采用。(2)為取得關鍵變量的動態(tài)值,在程序中插入打印語句。這是取得動態(tài)信息的簡單方法,并可檢驗在某時間后某個變量是否按預期要求發(fā)生了變化。此方法的缺點是可能輸出大梁需要分析的信息,必須修改源程序才能插入打印語句,這可能改變關鍵的時序關系,引入新的錯誤。2、動態(tài)調試通常利用程序語言提供的調試功能或專門的調試工具來分析程序的動態(tài)行為。一般程序語言和工具提供的調試功能有檢查主存和寄存器;設置斷點,即當執(zhí)行到特定語句或改變特定變量的值時,程序停止執(zhí)行,以便分析程序此時的狀態(tài)。綜上所述,本系統(tǒng)采用的主要方法如下:(1)單元測試:是指原程序中每個程序單元進行測試,檢查各個模塊是否正確實現(xiàn)規(guī)定的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。采用白盒法對各模塊進行邏輯錯誤排查,用黑盒法錄入一些有特征的數(shù)據從不同角度驗證結果。(2)集成測試:在單元測試的基礎上,將所有模塊按照設計要求組裝成一個完整的系統(tǒng)進行測試。(3)確認測試(有效性測試):它的任務是檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標相符合。一般分為用黑盒進行確認測試,再檢查軟件所有文檔的完整性、正確性——軟件配置審查。5.3試運行系統(tǒng)試運行是指對系統(tǒng)的運行環(huán)境和資源進行設置、系統(tǒng)運行和控制參數(shù)設定、數(shù)據加載以及調整系統(tǒng)與業(yè)務工作同步等。6系統(tǒng)維護維護是指在已完成對軟件的研制(分析、設計、編碼和測試)工作并交付使用以后,對軟件產品所進行的一些軟件工程的活動。即根據軟件運行的情況,對軟件進行適當修改,以適應新的要求,以及糾正運行中發(fā)現(xiàn)的錯誤。編寫軟件問題報告、軟件修改報告。6.1系統(tǒng)維護概述系統(tǒng)維護是軟件生存周期中時間最長的一個階段,所花費的精力和費用也是最多的一個階段,系統(tǒng)維護的目的是保證系統(tǒng)中的各個要素隨著環(huán)境的變化始終處于最新的、正確的工作狀態(tài)。系統(tǒng)維護是信息系統(tǒng)可靠運行的重要技術保障,我們應給予足夠的重視。6.2軟件維護類型軟件維護活動類型總起來大概有四種:糾錯性維護(校正性維護)、適應性維護、完善性維護或增強、預防性維護或再工程。除此四類維護活動外,還有一些其它類型的維護活動,如:支援性維護(如用戶的培訓等)。針對以上幾種類型的維護,可以采取一些維護策略,以控制維護成本。(1)改正性維護改正性維護是指改正在系統(tǒng)開發(fā)階段已發(fā)生而系統(tǒng)測試階段尚未發(fā)現(xiàn)的錯誤。這方面的維護工作量要占整個維護工作量的17%~21%。所發(fā)現(xiàn)的錯誤有的不太重要,不影響系統(tǒng)的正常運行,其維護工作可隨時進行:而有的錯誤非常重要,甚至影響整個系統(tǒng)的正常運行,其維護工作必須制定計劃,進行修改,并且要進行復查和控制。(2)適應性維護適應性維護是指使用軟件適應信息技術變化和管理需求變化而進行的修改。這方面的維護工作量占整個維護工作量的18%~25%。由于目前計算機硬件價格的不斷下降.各類系統(tǒng)軟件屢出不窮,人們常常為改善系統(tǒng)硬件環(huán)境和運行環(huán)境而產生系統(tǒng)更新?lián)Q代的需求;企業(yè)的外部市場環(huán)境和管理需求的不斷變化也使得各級管理人員不斷提出新的信息需求。這些因素都將導致適應性維護工作的產生。進行這方面的維護工作也要像系統(tǒng)開發(fā)一樣,有計劃、有步驟地進行。(3)完善性維護完善性維護是為擴充功能和改善性能而進行的修改,主要是指對已有的軟件系統(tǒng)增加一些在系統(tǒng)分析和設計階段中沒有規(guī)定的功能與性能特征。這些功能對完善系統(tǒng)功能是非常必要的。另外,還包括對處理效率和編寫程序的改進,這方面的維護占整個維護工作的50%~60%,比重較大.也是關系到系統(tǒng)開發(fā)質量的重要方面。這方面的維護除了要有計劃、有步驟地完成外.還要注意將相關的文檔資料加入到前面相應的文檔中去。(4)預防性維護預防性維護為了改進應用軟件的可靠性和可維護性,為了適應未來的軟硬件環(huán)境的變化,應主動增加預防性的新的功能,以使應用系統(tǒng)適應各類變化而不被淘汰。例如將專用報表功能改成通用報表生成功能,以適應將來報表格式的變化。這方面的維護工作量占整個維護工作量的4%左右。圖6-1軟件維護過程7ATM銀行取款系統(tǒng)測試7.1引言軟件測試(英語:softwaretesting),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質量的過程。軟件測試的經典定義是:在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。它是幫助識別開發(fā)完成(中間或最終的版本)的計算機軟件(整體或部分)的正確度(correctness)、完全度(completeness)和質量(quality)的軟件過程;是SQA(softwarequalityassurance)的重要子域。軟件測試是軟件開發(fā)過程的重要組成部分,是用來確認一個程序的功能、性能是否符合開發(fā)之前所提出的一些要求。軟件測試就是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼的最終復審,是軟件質量保證的關鍵步驟。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。測試的目的:(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案。(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。(4)測試并不僅僅是為了找出錯誤。通過分析錯誤產生的原因和錯誤的發(fā)生趨勢,可以幫助項目管理者發(fā)現(xiàn)當前軟件開發(fā)過程中的缺陷,以便及時改進。(5)這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性。(6)沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定軟件質量的一種方法。(7)另外,根據測試目的的不同,還有回歸測試、壓力測試、性能測試等,分別為了檢驗修改或優(yōu)化過

溫馨提示

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

評論

0/150

提交評論