jsp外貿(mào)合同管理系統(tǒng)sqlserver論文_第1頁
jsp外貿(mào)合同管理系統(tǒng)sqlserver論文_第2頁
jsp外貿(mào)合同管理系統(tǒng)sqlserver論文_第3頁
jsp外貿(mào)合同管理系統(tǒng)sqlserver論文_第4頁
jsp外貿(mào)合同管理系統(tǒng)sqlserver論文_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

要當今社會己進入信息社會時代。信息己經(jīng)受到社會的廣泛關(guān)注,被看作社會和科學(xué)技術(shù)發(fā)展的三大支柱(材料、能源、信息)。信息是管理的基礎(chǔ),是進行決策的基本依據(jù)。在一個組織里,信息己作為人力、物力、財力之外的第四種能源,占有重要的地位。然而,信息是一種非物質(zhì)的,有別于基本資源的新形式的資源。信息也是管理的對象,必須進行管理和控制。本文主要介紹了外貿(mào)管理系統(tǒng)的設(shè)計,本系統(tǒng)主要采用JSP為編程語言,數(shù)據(jù)庫采用SQLSERVER2000??梢苑奖阃赓Q(mào)管理需要。主要包括客戶信息管理、用戶管理、項目信息管理、信用證管理。本系統(tǒng)易于操作,使用方便,交互性強,具有很高的可靠性。關(guān)鍵字:外貿(mào)系統(tǒng)設(shè)計;JSP;SQLSERVER數(shù)據(jù)庫AbstractNowsocialoneselfentertheinformationsocietytime.Informationoneselfundergoestosociety'swidespreadattention,isregardedassocialandthescientifictechnologicaladvancethreebigprops(material,energy,information).Theinformationisthemanagementfoundation,iscarriesonpolicy-makingthebasicbasis.Inanorganization,informationoneselftakesoutsidethemanpower,thephysicalresource,thefinancialresourcefourthkindofenergy,holdstheimportantstatus.However,theinformationisonenon-material,isdifferentwiththebaseresourcesthenewformresources.Theinformationisalsothemanagementobject,mustcarryonthemanagementandthecontrol.thisarticlemainlyintroducedtheforeigntrademanagementsystemmanagementsystem'sdesign,thissystemmainlyusesJSPistheprogramminglanguage,thedatabaseusesSQLSERVER2000.Mayfacilitatetheforeigntrademanagementneed.Mainlyincludesthecustomerinformationmanagement,theusermanagement,theprojectinformationmanagement,theletterofcreditmanagement.Thissystemsimplifyoperation,theeasytooperate,interactivetobestrong,hastheveryhighreliability.Keywords:Foreigntradesystemdesign;JSP;SQLSERVERdatabaseTOC\o"1-3"\h\z第1章引言 41.1選題的背景 41.2選題的目的和意義 51.3本題的研究現(xiàn)狀 5第2章項目概述 72.1課題簡要說明 72.2可行性研究 72.2.1經(jīng)濟可行性 72.2.2技術(shù)可行性 72.2.3運行可行性 82.2.4時間可行性 82.2.5法律可行性 8第3章需求分析 83.1用戶功能需求 83.2性能需求 103.3主要技術(shù)分析 10第4章概要設(shè)計 114.1功能模塊圖 114.2處理流程設(shè)計 124.2.1系統(tǒng)操作流程 124.2.2數(shù)據(jù)增加流程 134.2.3數(shù)據(jù)修改流程 144.2.4數(shù)據(jù)刪除流程 154.3系統(tǒng)E-R圖 164.4數(shù)據(jù)庫設(shè)計 164.4.1SQLServer2000分析 164.4.2數(shù)據(jù)庫表結(jié)構(gòu) 174.4.3數(shù)據(jù)庫連接技術(shù) 17第5章詳細設(shè)計 235.1管理員模塊設(shè)計 235.2合同信息管理 245.3用戶賬號管理 275.4客戶信息管理 295.5項目信息管理 31第6章系統(tǒng)調(diào)試與測試 346.1程序調(diào)試 346.2程序的測試 346.2.1測試的重要性及目的 346.2.2測試的步驟 366.2.3測試的主要內(nèi)容 36第7章結(jié)論 387.1系統(tǒng)評價 387.2安全性問題 38致謝 40參考文獻 41第1章引言1.1選題的背景中國加入世貿(mào)組織后,隨著全球經(jīng)濟一體化程度的加劇,中國外貿(mào)企業(yè)面臨著空前激烈的貿(mào)易競爭,不但要求中國外貿(mào)企業(yè)在短期內(nèi)改變經(jīng)營理念,更要求中國企業(yè)在短期內(nèi)迅速改變經(jīng)營管理手段。當前,管理信息化在國際上已經(jīng)得到了非常普遍的應(yīng)用,已經(jīng)成為企業(yè)保持核心競爭力的重要手段之一。外貿(mào)行業(yè)是我們國家主要經(jīng)濟支柱產(chǎn)業(yè),也是國家對外的一道經(jīng)濟窗口,處于國際商務(wù)往來最前沿,面臨的沖擊和挑戰(zhàn)將最直接、最迅猛。因此實現(xiàn)外貿(mào)企業(yè)信息化、增強企業(yè)競爭力已經(jīng)迫在眉睫。外經(jīng)貿(mào)企業(yè)的信息化工作尤為重要,否則就不能適應(yīng)世界潮流。面對競爭已日趨激烈的全球化市場環(huán)境,在整個出口業(yè)務(wù)的過程中,越來越多的出口企業(yè)遇到種種的管理問題,嚴重限制了企業(yè)的穩(wěn)步發(fā)展。如何能夠合理、有效的解決實際問題,成為出口企業(yè)面臨的最大困難。隨著信息產(chǎn)業(yè)技術(shù)的發(fā)展,信息管理系統(tǒng)在外貿(mào)企業(yè)也和其他企業(yè)一樣得到了廣泛的應(yīng)用和發(fā)展。同時互聯(lián)網(wǎng)技術(shù)的成熟以及電子商務(wù)的興起,為我國外貿(mào)領(lǐng)域的應(yīng)用和發(fā)漲開辟了廣闊的前景。TRANSCOSMO科技有限公司(以下簡稱TRANSCOSMO)成立于1992年,一直致力于外貿(mào)出口業(yè)務(wù)。公司為海外買家提供商品信息咨詢及采購。與中東客戶進行長期,穩(wěn)定的合作,建立起廣泛的營銷網(wǎng)絡(luò)。目前TRANSCOSMO基本依靠手工和紙質(zhì)工具,也有部分采用電子文檔保存,但也僅僅是保存在計算機中,查找起來非常不方便,更缺乏統(tǒng)計功能,安全性也不好。管理信息化建設(shè)尚未建立。整個業(yè)務(wù)流程中,日常業(yè)務(wù)管理工作缺乏信息化手段的有力支撐,隨著逐年業(yè)務(wù)量的遞增,給管理工作帶來了諸多不便,已經(jīng)限制了管理工作向縱深發(fā)展。主要表現(xiàn)為:一是由于采購的產(chǎn)品種類多、數(shù)量大,導(dǎo)致整個業(yè)務(wù)流程中各個步驟進行跟蹤控制的難度加大;二是業(yè)務(wù)各個階段涉及許多紙質(zhì)單證信息,管理其基本依靠手工,查詢及統(tǒng)計分析效率低下,無法對各類出口商品建立風(fēng)險評估機制,難以提前采取措施,防范風(fēng)險的發(fā)生。因此,借助信息技術(shù),對業(yè)務(wù)各流程涉及的信息加強管理和監(jiān)督,加強業(yè)務(wù)的動態(tài)控制管理、提高效率已成為公司外貿(mào)業(yè)務(wù)管理工作發(fā)展的當務(wù)之急。1.2選題的目的和意義為了進一步加強業(yè)務(wù)信息管理工作、不斷規(guī)范操作、避免和減少業(yè)務(wù)差錯,同時全面提升信息化管理水平,適應(yīng)公司實現(xiàn)跨越式發(fā)展的需要,應(yīng)盡快建設(shè)一個應(yīng)用于全公司范圍的外貿(mào)業(yè)務(wù)管理信息系統(tǒng)。由于外貿(mào)業(yè)務(wù)管理是一種動態(tài)管理方式,更多的是著眼于從合同簽訂、報關(guān),運輸,核銷,退稅等過程的管理。現(xiàn)有的客戶關(guān)系管理系統(tǒng)和辦公自動化軟件都無法滿足企業(yè)的需求。開發(fā)外貿(mào)業(yè)務(wù)管理系統(tǒng)的主要目的就是利用軟件實現(xiàn)外貿(mào)業(yè)務(wù)各個階段所涉及的信息的管理,除了基本的錄入、修改、查詢等功能,還有供管理者使用的統(tǒng)計功能和分析功能,產(chǎn)生統(tǒng)計信息和輔助決策的信息。使工作人員對外貿(mào)業(yè)務(wù)的管理更加容易,提高工作效率、降低管理成本。電子商務(wù)中的外貿(mào)業(yè)務(wù)管理需要針對實際情況對使用者進行權(quán)限設(shè)置,從而達到靈活管理的效果。由于外貿(mào)業(yè)務(wù)中商品的多樣性和過程涉及單證的數(shù)量多,許多企業(yè)對此很少有一個較好的辦法來及時有效地實施外貿(mào)業(yè)務(wù)的一系列管理工作。開發(fā)外貿(mào)業(yè)務(wù)管理系統(tǒng),旨在為企業(yè)外貿(mào)業(yè)務(wù)管理找到一種便捷、有效、實用的方法和途徑。外貿(mào)業(yè)務(wù)管理就是對外貿(mào)業(yè)務(wù)信息的管理,主要是對客戶信息的管理、項目信息的管理和合同執(zhí)行的管理以及出口流程的管理,包括:報關(guān),運輸,交單,核銷,退稅業(yè)務(wù)。通過使用外貿(mào)業(yè)務(wù)管理系統(tǒng),能夠?qū)崿F(xiàn)客戶管理、項目管理、合同執(zhí)行控制、報關(guān)運輸跟蹤,核銷退稅信息管理等功能,能夠有效地幫助外貿(mào)企業(yè)提高工作效率,方便內(nèi)部資料管理,改變外貿(mào)業(yè)務(wù)管理效率低的局面,推動外貿(mào)業(yè)務(wù)管理各項工作躍上新臺階。1.3本題的研究現(xiàn)狀信息技術(shù)是對合同加強管理的重要手段,其快速的數(shù)據(jù)傳送、準確的分析統(tǒng)計、全面的事務(wù)跟蹤功能可以在我們的日常工作中發(fā)揮重要作用。完善的業(yè)務(wù)管理是公司健康運作的一個重要標志,然而,完善的業(yè)務(wù)管理也會需要公司許多的資源,如何簡化合同的管理而不失其完整性是許多公司的難題。外貿(mào)業(yè)務(wù)管理系統(tǒng)是一個外貿(mào)企業(yè)不可缺少的部分,它的內(nèi)容對于企業(yè)的決策者和工作者來說都至關(guān)重要,因此外貿(mào)業(yè)務(wù)管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理外貿(mào)業(yè)務(wù)中的文件信息,這種管理方式存在著許多缺點,如效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于用戶查找、更新和維護都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,采用信息管理技術(shù)是現(xiàn)代企業(yè)管理進行合同管理的必然趨勢。雖然采用手工管理的方式可以解決日常業(yè)務(wù)問題,但費時費力,而且容易出錯。也有許多外貿(mào)公司現(xiàn)在已經(jīng)是采用電子文檔保存了,但也僅僅是保存在計算機中,查找起來非常不方便,更缺乏統(tǒng)計功能,安全性也不好。目前國內(nèi)外較成熟的外貿(mào)管理系統(tǒng),在功能的設(shè)計和應(yīng)用范圍等方面差異較大。國內(nèi)較有影響的外貿(mào)管理系統(tǒng)有《智橋外貿(mào)管理軟件》智橋外貿(mào)管理信息系統(tǒng)是面向進出口企業(yè)、工廠的一套強大、高效的管理系統(tǒng)。該系統(tǒng)包括了郵件管理、業(yè)務(wù)磋商、業(yè)務(wù)成交、業(yè)務(wù)執(zhí)行、樣品跟蹤、倉庫管理、財務(wù)管理、綜合報表及經(jīng)理決策支持等功能,并集成了消息與提醒功能,能夠有效的提高員工工作效率。國外較有影響的外貿(mào)管理系統(tǒng)有:《TradeCRM4.0外貿(mào)管理系統(tǒng)》是一套以客戶為核心的管理系統(tǒng),從線索客戶的尋找,到意向客戶的跟進及產(chǎn)品開發(fā),到成交客戶的訂單及出貨跟蹤、以至到客戶服務(wù)。形成了一套對客戶挖掘及維護的完整的解決方案。雖然以上系統(tǒng)功能多,范圍廣,但是不一定完全適用于外貿(mào)企業(yè)的業(yè)務(wù)需求,而且對于中小型外貿(mào)企業(yè),以上系統(tǒng)過于復(fù)雜和龐大,某些功能可能得不到應(yīng)用,大材小用,浪費了公司引進其所花費的資金資源。除此之外,以上軟件管理范圍廣,針對性較差。我設(shè)計“TRANSCOSMO外貿(mào)管理信息系統(tǒng)”,針對TRANSCOSMO日常業(yè)務(wù)流程,著眼于從合同簽訂、報關(guān),運輸,核銷,退稅等業(yè)務(wù)過程,動態(tài)的管理。本設(shè)計詳細,實用性和針對性強。適用與中小型外貿(mào)公司,最大限度的滿足工作需要。第2章項目概述2.1課題簡要說明隨著貿(mào)易規(guī)模不斷擴大,有關(guān)貿(mào)易管理的各種信息也成倍增長。面對龐大的信息量,有必要開發(fā)貿(mào)易管理系統(tǒng)來提高管理工作的效率。今天我們使用計算機對貿(mào)易信息進行管理,具有手工管理所無法比擬的優(yōu)點。通過這樣的系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計和快速查詢,從而減少管理方面的工作量,有效地提高貿(mào)易管理的工作效率。2.2可行性研究該階段通過對系統(tǒng)目標的初步調(diào)研和分析,提出可行性方案并進行論證。我們在這里主要從技術(shù)可行性、經(jīng)濟可行性和操作可行性等方面進行分析。2.2.1經(jīng)濟可行性開發(fā)該系統(tǒng)所需的相關(guān)資料可以通過已存在的相關(guān)系統(tǒng)進行調(diào)查采集,所需的其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此,開發(fā)成本較低。而引進使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點,可以節(jié)省不少人力、物力及財力。所以,從經(jīng)濟的角度來看,該系統(tǒng)可行。2.2.2技術(shù)可行性技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。本網(wǎng)站用的是JSP開發(fā)語言,調(diào)試相對簡單,當前的計算機硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于目前單機模式相對發(fā)展成熟,故軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高、價格低,完全能滿足系統(tǒng)的需求。2.2.3運行可行性運行可行性是對組織結(jié)構(gòu)的影響,現(xiàn)有人員和機構(gòu)和環(huán)境對系統(tǒng)的適應(yīng)性及人員培訓(xùn)補充計劃的可行性。當前信息化技術(shù)已經(jīng)相當普及,各類操作人員水平都有相當?shù)母叨?,所以在運行上是可行性的。本系統(tǒng)的開發(fā),是典型的Mis開發(fā),主要是對數(shù)據(jù)的處理,包括數(shù)據(jù)的收集,數(shù)據(jù)的變換,及數(shù)據(jù)的各種報表形式的輸出。采用流行的JSP+SQLSERVER2000體系,已無技術(shù)上的問題。2.2.4時間可行性從時間上看,在兩個月的時間里學(xué)習(xí)相關(guān)知識,并開發(fā)本系統(tǒng),時間上是有點緊,但是不是不可能實現(xiàn),通過兩個多月的努力功能基本實現(xiàn)。2.2.5法律可行性①所有技術(shù)資料都為合法。②開發(fā)過程中不存在知識產(chǎn)權(quán)問題。③未抄襲任何校友錄管理系統(tǒng),不存在侵犯版權(quán)問題。④開發(fā)過程中未涉及任何法律責(zé)任。綜上所述,本系統(tǒng)的開發(fā)從技術(shù)上、從經(jīng)濟上、從法律上都是完全可靠的。第3章需求分析3.1用戶功能需求權(quán)限設(shè)置:管理員和用戶。管理員:管理用戶(添加,刪除用戶),分配權(quán)限。(好似經(jīng)理的角色)用戶:好似業(yè)務(wù)員的角色。用戶權(quán)限說明:不同用戶之間可以查看對方負責(zé)的項目信息,不能對對方的信息進行刪除和修改。項目管理:該模塊負責(zé)管理所有本管理系統(tǒng)涉及的項目信息。功能包括項目信息的添加、刪除、查詢和修改,還有對項目“把握度”的評價,分為A、B、C、D四個等級?!皞渥ⅰ睂傩钥梢杂糜诿枋鲰椖窟M展,聯(lián)系人及對手信息等或記錄洽談過程,許諾價格或服務(wù)等。項目管理中有部分項目對手的信息記錄,和對項目的成功把握度的估計,和洽談記錄等,都對項目的成功奠定了基礎(chǔ)。減少因為混淆項目信息而發(fā)生的人力和經(jīng)濟損失??蛻艄芾恚涸撃K負責(zé)管理所有本管理系統(tǒng)涉及的客戶信息。功能包括客戶信息的添加、刪除、查詢和修改,查詢沒有符合結(jié)果時,提示添加。2、添加時,如已存在,出提示信息。還有“客戶信譽度”評價,信譽度根據(jù)以下幾個因素:1)信用證是否延期2)款項是否按時支付3)是否按時供貨。對客戶信譽度的評價可以影響以后與客戶合作的選擇決策。合同管理:該模塊負責(zé)管理所有本管理系統(tǒng)涉及的合同信息。功能包括合同信息的添加、刪除、查詢和修改。輸入添加合同信息的合同,默認為已簽署合同。在合同管理模塊中可以調(diào)用客戶管理模塊產(chǎn)生的客戶信息和項目管理模塊產(chǎn)生的項目信息,合同管理、項目管理和客戶管理三個模塊耦合在一起?!跋嚓P(guān)文件”用于上傳合同文件的電子版,方便查看,減小查閱紙質(zhì)文檔的工作量。信用證管理:該模塊負責(zé)管理所有本管理系統(tǒng)涉及的信用證信息。功能包括信用證信息的添加、刪除、查詢和修改?!疤峤粏螕?jù)列表”屬性,該屬性的設(shè)計目的是可以輸入單據(jù)的名稱,防止在以后進行報關(guān),交單等步驟時發(fā)生單據(jù)遺漏,造成不必要的人力和經(jīng)濟損失?!跋嚓P(guān)文件”用于上傳信用證文件的電子版,方便查看。申報運輸管理:該模塊負責(zé)管理所有本管理系統(tǒng)涉及的申報運輸信息。功能包括申報運輸信息的添加、刪除、查詢和修改?!百M用”=單價×重量(體積)+其他費用?!斑\輸方式”分為空運和海運兩種。注:海運按體積計算費用,空運按重量計算費用?!跋嚓P(guān)文件”用于上傳申報運輸中涉及到的文件的電子版,方便查看,減少從多處查找、收集的工作量。核銷退稅管理:該模塊負責(zé)管理所有本管理系統(tǒng)涉及的核銷退稅信息。功能包括核銷退稅信息的添加、刪除、查詢和修改?!敖粏温省焙汀昂虽N率”的統(tǒng)計信息。核銷和退稅要求辦理期限為90天,倒計時功能?!跋嚓P(guān)文件”用于上傳與核銷退稅相關(guān)的文件的電子版,方便查看,減少從多處查找、收集的工作量?!坝澖y(tǒng)計”功能,公式:結(jié)匯金額(在核銷退稅管理表中)+退稅金額(在核銷退稅表中)-費用(在申報運管理表中)-買來的價格(在合同管理此項目對應(yīng)的合同中的價格)最后的結(jié)果和0比較大小,大于零盈利,小于零虧損。3.2性能需求系統(tǒng)對環(huán)境的要求服務(wù)起端的最低配置是由建立站點所需要的軟件來決定的,在最底配置的情況下,服務(wù)器的性能往往不進人意,現(xiàn)在硬件性能已經(jīng)相當出色,而且價格也很便宜,因此通常應(yīng)給服務(wù)器端配置高性能硬件。本機器的配置如下:處理器:InterPentium41.6Hz或更高。內(nèi)存:512MB硬件空間:160GB題目主要采用的技術(shù)數(shù)據(jù)庫:MicrosoftSQLServer2000。編程語言JSP服務(wù)器:Tomcat5.5,jdk1.6開發(fā)環(huán)境:WindowsXP3.3主要技術(shù)分析JSP(JavaServerPages)作為一種新的Web應(yīng)用開發(fā)技術(shù),越來越受到開發(fā)人員的關(guān)注。它為創(chuàng)建高度動態(tài)的Web應(yīng)用提供了一個獨特的開發(fā)環(huán)境,能夠適應(yīng)市場上絕大多數(shù)的服務(wù)器產(chǎn)品。JSP是由多個公司參與合作建立起來的動態(tài)網(wǎng)頁技術(shù)標準。JSP的具體特征如下:(1)分離內(nèi)容的生成和演示。使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML標識設(shè)計和格式化最終頁面。使用JSP標識或者Java片段來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標識和JavaBean組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運行。(2)生成可用的組件。絕大多數(shù)JSP頁面依賴于可重用的、跨平臺的組件來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者讓這些組件為更多的使用者或者客戶集體所使用。(3)采用標識簡化頁面開發(fā)。Web頁面開發(fā)人員不一定都是熟悉腳本語言。JavaServerPage技術(shù)封裝了許多功能,這些功能都是在易用的、與JSP相關(guān)的XML標識中進行動態(tài)內(nèi)容生成時所需要的。標準的JSP標識能夠訪問和實例化JavaBean組件、設(shè)置或者檢索組件屬性、下載Applet以及執(zhí)行用其它方法更難于編碼或耗時的功能。通過開發(fā)定制標準庫,JSP技術(shù)可以進行相當?shù)臄U展,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標識庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和同標識一樣執(zhí)行特定功能的構(gòu)件來工作。第4章概要設(shè)計4.1功能模塊圖TRANSCOSMO外貿(mào)管理信息系統(tǒng)合同管理信用證管理申報運輸管理核銷退稅管理客戶管理項目管理TRANSCOSMO外貿(mào)管理信息系統(tǒng)合同管理信用證管理申報運輸管理核銷退稅管理客戶管理項目管理4.2處理流程設(shè)計4.2.1系統(tǒng)操作流程錯誤信息系統(tǒng)主界面錯誤信息系統(tǒng)主界面系統(tǒng)登錄界面系統(tǒng)登錄界面系統(tǒng)管理系統(tǒng)管理輸入操作員及密碼輸入操作員及密碼數(shù)據(jù)庫檢查密碼錯誤 數(shù)據(jù)庫檢查密碼錯誤密碼正確密碼正確功能界面功能界面功能處理功能處理4.2.2數(shù)據(jù)增加流程添加信息時,編號字段由系統(tǒng)自動生成,且不能修改,其他信息由用戶輸入,之后對數(shù)據(jù)進行合法判斷,合法則寫入保存至數(shù)據(jù)庫,不合法則重新輸入數(shù)據(jù)。數(shù)據(jù)增加流程圖:開始開始自動生成編號輸入數(shù)據(jù)是否合法寫入數(shù)據(jù)庫結(jié)束圖3.2數(shù)據(jù)增加流程圖4.2.3數(shù)據(jù)修改流程在修改信息時,先選中一條待修改的記錄,然后直接輸入數(shù)據(jù),判斷合法性,合法則保存至數(shù)據(jù)庫,不合法重新輸入。數(shù)據(jù)修改流程圖如圖3.3所示。開始開始選擇需要修改記錄輸入數(shù)據(jù)是否合法寫入數(shù)據(jù)庫結(jié)束圖3.3數(shù)據(jù)修改流程圖4.2.4數(shù)據(jù)刪除流程當用戶選定一條記錄時,單擊刪除按鈕,會提示用戶是否確定刪除,然后刪除數(shù)據(jù)庫相關(guān)內(nèi)容。數(shù)據(jù)刪除流程圖如圖3.4所示。開始開始選擇需要刪除記錄是否刪除更新數(shù)據(jù)庫圖3.4數(shù)據(jù)刪除流程圖4.3系統(tǒng)E-R圖P1業(yè)務(wù)處理F1業(yè)務(wù)單F2客戶信息F3項目信息P1業(yè)務(wù)處理F1業(yè)務(wù)單F2客戶信息F3項目信息P3申報和運輸P2合同簽訂D1客戶信息P3申報和運輸P2合同簽訂D1客戶信息F6相關(guān)單據(jù)F6相關(guān)單據(jù)D2項目信息D2項目信息F5合同信息F5合同信息P4核銷和退稅D4合同信息客戶P4核銷和退稅D4合同信息客戶銀行銀行F4信用證信息D3信用證信息F4信用證信息D3信用證信息F7提單等相關(guān)單據(jù)F7提單等相關(guān)單據(jù)4.4數(shù)據(jù)庫設(shè)計4.4.1SQLServer2000分析本系統(tǒng)采用SQLServer2000數(shù)據(jù)庫,SQLServer是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,并于1988年推出了第一個OS/2版本。SQLServer近年來不斷更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用戶見面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特點:1.真正的客戶機/服務(wù)器體系結(jié)構(gòu)。2.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單。3.豐富的編程接口工具,為用戶進行程序設(shè)計提供了更大的選擇余地。4.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成。5.具有很好的伸縮性,可跨越從運行Windows95/98的膝上型電腦到運行Windows2000的大型多處理器等多種平臺使用。6.對Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。7.SQLServer提供數(shù)據(jù)倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。4.4.2數(shù)據(jù)庫表結(jié)構(gòu)系統(tǒng)用戶表:系統(tǒng)用戶表(表3.1)用來存儲用戶名、密碼,權(quán)限等信息,是用戶登錄的關(guān)鍵表。表3.1系統(tǒng)用戶表user_info序號名稱編碼類型寬度標志備注1編號(流水號)user_idN10Y系統(tǒng)自動管理,自動產(chǎn)生。2用戶名user_nameC50NN系統(tǒng)的登錄用戶名。用戶的唯一標識,不重復(fù)。3登錄密碼user_pwdC50NN密碼。未加密。4.4.3數(shù)據(jù)庫連接技術(shù)JDBC技術(shù)是JavaDataBaseConnectivity的縮寫,它是SUN公司提供的一種支持基本SQL功能的通用的應(yīng)用程序接口(ApplicationProgrammingInterface)。它由一組用Java語言編寫的類和接口組成。通過這些類和接口,程序開發(fā)人員可以在Java語言中方便地建立與數(shù)據(jù)庫的鏈接,通過執(zhí)行相應(yīng)SQL語句,完成對不同數(shù)據(jù)庫的訪問。因此,開發(fā)人員使用JDBCAPI可以不必編寫一個應(yīng)用程序來訪問Sybase數(shù)據(jù)庫,又另外編寫一個應(yīng)用程序去訪問Oracle數(shù)據(jù)庫,再寫一個應(yīng)用程序訪問Microsoft的SQLServer。不但如此,使用Java語言編寫的應(yīng)用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上開發(fā)不同的應(yīng)用程序。簡單地說,JDBC能完成下列三件事:同一個數(shù)據(jù)庫建立連接;向數(shù)據(jù)庫建立連接;處理數(shù)據(jù)庫返回的結(jié)果。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫功能模塊的層次上提供一個統(tǒng)一的用戶界面。說JDBC是一處低級的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫連接API要容易使用些,但它有同樣可以作為更高級的,用戶辦面更友好的API或開發(fā)工具基礎(chǔ)。很多可視化的Java開發(fā)工具,如VisualAgeForJava、VisualCafé、J++等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫的表或視圖映射為Java類,程序員通過可視化工具直接對Java對象進行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對對象的各種屬性、方法的操作來自動產(chǎn)生。另一種使用JDBCAPI的方式為,用戶程序可以提供一個界面(如菜單等)讓用戶選擇對數(shù)據(jù)庫進行的操作,選中一個任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。通過這處方式,用戶可以完成對數(shù)據(jù)庫的操作,即使他并不了解SQL語法以及JDBC編程。數(shù)據(jù)庫訪問的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問數(shù)據(jù)庫,首先通過中間件,然后由中間件對數(shù)據(jù)庫操作權(quán)限進行認證,認證通過才能對數(shù)據(jù)庫進行操作。圖5.1使用中間件的數(shù)據(jù)庫訪問三層結(jié)構(gòu)用戶對數(shù)據(jù)庫的存取權(quán)限認證是中間件中完成,對數(shù)據(jù)庫的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對數(shù)據(jù)庫進行操作后,再將處理結(jié)果通過Web服務(wù)器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過加密算法進行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進行解密認證,然后再進行數(shù)據(jù)庫的存取操作,數(shù)據(jù)庫存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫訪問模式。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層”,而”中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖5.2所示。圖5.2JDBC的三層模型因為”中間層”可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,并且可以使用一個易用的高層API,這個API可以由“中間層”進行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫的溝通橋梁。它提供了三項服務(wù)功能:一、與數(shù)據(jù)庫建立連接。二、將SQL語句傳遞給數(shù)據(jù)庫。三、從數(shù)據(jù)庫取得SQL語句的執(zhí)行結(jié)果。當JDBC要與數(shù)據(jù)庫建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫的JDBC驅(qū)動程序,Class.forName()即是在執(zhí)行此項工作。建立數(shù)據(jù)庫連接的第一步驟就是將JDBC驅(qū)動程序的類載入至JVM(JavaVirtualLMachine)中,本系統(tǒng)中利用java.lang.Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動程序載入進來。完成載入驅(qū)動程序的步驟后,必須使用java.sal.DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫間的連接對象。此連接對象的類類型為java.sal.Connection,必須通過它才能將SQL指令傳遞給數(shù)據(jù)庫,而執(zhí)行結(jié)果也需要通過連接對象來取得。當取得連接對象后,還必須取得Statement對象才能對數(shù)據(jù)庫執(zhí)行SQL指令。Statement主要實現(xiàn)兩個功能:執(zhí)行SQL語句以及取得執(zhí)行結(jié)果。在java.sql.Statement的sql對象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個ResultSet對象,這個對象提供了一個存取SQL執(zhí)行結(jié)果的管道,以便通過它將表格數(shù)據(jù)從數(shù)據(jù)庫中取出。每個Statement對象只能產(chǎn)生一個ResultSet對象。數(shù)據(jù)庫連接如圖5.3所示:圖5.3數(shù)據(jù)庫的連接處理數(shù)據(jù)庫的連接處理具體實現(xiàn)如下://建立JDBC——ODBC橋sun.jdbc.odbc.JdbcOdbcDriver;//橋建立不成功時的錯誤處理catch(ClassNotFoundExceptionevent){}//建立與數(shù)據(jù)庫的連接,并發(fā)送SQL查詢語句,將結(jié)果保存到rs對象中 Con=建立JDBC——ODBC橋 Sql=SQL查詢語句 執(zhí)行查詢 Rs=返回結(jié)果//SQL出錯處理 catch(SQLExceptione1){}有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問Sybase數(shù)據(jù)庫專門寫一個程序,為訪問Oracle數(shù)據(jù)庫又專門寫一個程序,或為訪問Informix數(shù)據(jù)庫又編寫另一個程序等等,程序員只需用JDBCAPI寫一個程序就夠了,它可向相應(yīng)數(shù)據(jù)庫發(fā)送SQL調(diào)用。同時,將Java語言和JDBC結(jié)合起來使程序員不必為不同的平臺編寫不同的應(yīng)用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是Java語言“編寫一次,處處運行”的優(yōu)勢。Java數(shù)據(jù)庫連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫的標準方法。JDBC對Java程序員而言是API,對實現(xiàn)與數(shù)據(jù)庫連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開發(fā)提供標準的接口,并為數(shù)據(jù)庫廠商及第三方中間件廠商實現(xiàn)與數(shù)據(jù)庫的連接提供了標準方法。JDBC使用已有的SQL標準并支持與其它數(shù)據(jù)庫連接標準,如ODBC之間的橋接。JDBC實現(xiàn)了所有這些面向標準的目標并且具有簡單、嚴格類型定義且高性能實現(xiàn)的接口。

Java具有堅固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動下載等特性,是編寫數(shù)據(jù)庫應(yīng)用程序的杰出語言。所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫之間進行對話的方法。而JDBC正是作為此種用途的機制。JDBC擴展了Java的功能。例如,用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁,而該applet使用的信息可能來自遠程數(shù)據(jù)庫企業(yè)也可以用JDBC通過Intranet將所有職員連到一個或多個內(nèi)部數(shù)據(jù)庫中(即使這些職員所用的計算機有Windows、Macintosh和UNIX等各種不同的操作系統(tǒng))。隨著越來越多的程序員開始使用Java編程語言,對從Java中便捷地訪問數(shù)據(jù)庫的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結(jié)合,因為它使信息傳播變得容易和經(jīng)濟。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫,并能便捷地存取信息,即使這些信息是儲存在不同數(shù)據(jù)庫管理系統(tǒng)上。新程序的開發(fā)期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對于商務(wù)上的銷售信息服務(wù),Java和JDBC可為外部客戶提供獲取信息更新的更好方法。簡單地說,JDBC可做三件事:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句并處理結(jié)果。下列代碼段給出了以上三步的基本示例:Connectioncon=DriverManager.getConnection("jdbc:odbc:wombat","login","password");Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("SELECTa,b,cFROMTable1");while(rs.next()){intx=rs.getInt("a");Strings=rs.getString("b");floatf=rs.getFloat("c");}上述代碼對基于JDBC的數(shù)據(jù)庫訪問做了經(jīng)典的總結(jié)。第5章詳細設(shè)計5.1管理員模塊設(shè)計當系統(tǒng)登陸時,首先出現(xiàn)的是一個用戶登陸的界面,主要是維護系統(tǒng)的安全性和完整性。擁有管理員權(quán)限的操作員能進行相應(yīng)操作,沒有權(quán)限的操作員不能對相應(yīng)的窗口進行操作。如下圖所示:主要代碼如下:packageutil;importjava.sql.*;publicclassDBConn{static{try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");// Class.forName("com.mysql.jdbc.Driver");//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(Exceptionex){ex.printStackTrace();}}publicstaticConnectiongetConn(){try{ Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databasename=hshygl","sa","123");// conn=DriverManager.getConnection("jdbc:mysql://localhost/fzshop","root","123");// Connectionconn=DriverManager.getConnection("jdbc:odbc:temp");returnconn;}catch(Exceptionex){ex.printStackTrace();returnnull;}}publicstaticvoidclose(Connectionconn,Statementst,ResultSetrs){ if(rs!=null){try{rs.close();}catch(SQLExceptionex){}}if(st!=null){try{st.close();}catch(Exceptionex){}}if(conn!=null){try{conn.close();}catch(Exceptionex){}5.2合同信息管理該模塊主要功能合同信息進行管理,包括對合同信息的添加、修改及刪除,界面如下圖所示:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否為數(shù)字和英文驗證 * */ publicintgetIntAndChar(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z'))){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為整數(shù)驗證 * */ publicintgetInt(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!(c>='0'&&c<='9')){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為非法字符驗證 * */ publicbooleangetLawlessChar(Stringstr){ booleanflag=false; charc; for(inti=0;i<str.length();i++){ c=str.charAt(i); switch(c){ case'<':flag=true;break; case'>':flag=true;break; case'"':flag=true;break; case'&':flag=true;break; case'':flag=true;break; } } returnflag; }5.3用戶賬號管理該進入該模塊后可以對用戶進行管理。界面如下圖所示:主要代碼如下:packageservlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil.Validate;importbean.InsertUpdateDelBean;publicclassAmountServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicAmountServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); Stringid=request.getParameter("id"); Stringamount=request.getParameter("amount"); Stringsql="updateuserssetamount=amount+"+amount+"whereid="+id; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); sql="insertintopayment(usersid,name,price)values("+id+",'老干部網(wǎng)站',"+amount+")"; ib.insertANDupdateANDdel(sql); request.setAttribute("message","操作成功!"); RequestDispatcherrd=request.getRequestDispatcher("/admin/users_amount.jsp"); rd.forward(request,response); }5.4客戶信息管理該模塊主要功能客戶信息進行管理,包括對客戶信息的添加、修改及刪除,界面如下圖所示:主要代碼如下:packageservlet;importjava.io.IOException;importjava.util.ArrayList;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importutil.Validate;importbean.AllBean;importbean.InsertUpdateDelBean;importbean.SelectBean;publicclassBegindateServletextendsHttpServlet{ /** *Constructoroftheobject. */ publicBegindateServlet(){ super(); } /** *Destructionoftheservlet.<br> */ publicvoiddestroy(){ super.destroy();//Justputs"destroy"stringinlog //Putyourcodehere } /** *ThedoGetmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstoget. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } /** *ThedoPostmethodoftheservlet.<br> * *Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost. * *@paramrequesttherequestsendbytheclienttotheserver *@paramresponsetheresponsesendbytheservertotheclient *@throwsServletExceptionifanerroroccurred *@throwsIOExceptionifanerroroccurred */ publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); Stringusersid=request.getParameter("usersid"); Stringitem=request.getParameter("item"); Validatev=newValidate(); AllBeanab=newAllBean(); SelectBeansb=newSelectBean(); ArrayListalItem=ab.getItem(item); if(alItem.get(2)==null||alItem.get(2).equals("")){ Stringsql="select*fromuserswheredatediff(day,getdate(),begindate)<0anddatediff(day,getdate(),enddate)>0andid="+usersid; Stringargs[]={"id","name","age","sex","phone","address","yearcard","begindate","enddate","amount","loss"}; ArrayListal=sb.select(args,sql); if(al==null||al.size()==0){ request.setAttribute("message","凍結(jié)"); }else{ sql="insertintoconsume(usersid,name)values('"+usersid+"','"+alItem.get(1)+"')"; InsertUpdateDelBeanib=newInsertUpdateDelBean(); ib.insertANDupdateANDdel(sql); request.setAttribute("message","操作成功!"); }5.5項目信息管理該模塊可以對項目信息進行管理,包括對項目信息的添加、修改、刪除的功能。界面如下圖所示:主要代碼如下:packageutil;importjava.io.UnsupportedEncodingException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassValidate{ /** *是否為數(shù)字和英文驗證 * */ publicintgetIntAndChar(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z'))){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為整數(shù)驗證 * */ publicintgetInt(Stringstr){ charc; inti; for(i=0;i<str.length();i++){ c=str.charAt(i); if(!(c>='0'&&c<='9')){ break; } }//判斷字符是否在某個區(qū)間 if(i<str.length()){ return-1; }else{ return0; } } /** *是否為非法字符驗證 * */ publicbooleangetLawlessChar(Stringstr){ booleanflag=false; charc; for(inti=0;i<str.length();i++){ c=str.charAt(i); switch(c){ case'<':flag=true;break; case'>':flag=true;break; case'"':flag=true;break; case'&':flag=true;break; case'':flag=true;break; } } returnflag; }第6章系統(tǒng)調(diào)試與測試6.1程序調(diào)試在設(shè)計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法錯誤,在程序運行時自動提示,并請求立即糾正,因此,這類錯誤比較容易發(fā)現(xiàn)和糾正。但另一類錯誤是在程序執(zhí)行時由于不正確的操作或?qū)δ承?shù)據(jù)的計算公式的邏輯錯誤導(dǎo)致的錯誤結(jié)果。這類錯誤隱蔽性強,有時會出現(xiàn),有時又不出現(xiàn),因此,對這一類動態(tài)發(fā)生的錯誤的排查是耗時費力的。6.2程序的測試6.2.1測試的重要性及目的(1)測試的重要性軟件的測試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學(xué)僅處于運行維護階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應(yīng)包含測試,從而檢驗本階段的成果是否接近預(yù)期的目標,盡可能早的發(fā)現(xiàn)錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導(dǎo)致最后成品測試的巨大困難。事實上,對于軟件來講,不論采用什么技術(shù)和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是所有工程學(xué)科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護階段也考慮在內(nèi),討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態(tài)度,這包括:①認為測試工作不如設(shè)計和編碼那樣容易取得進展難以給測試人員某種成就感;②以發(fā)現(xiàn)軟件錯誤為目標的測試是非建設(shè)性的,甚至是破壞性的,測試中發(fā)現(xiàn)錯位是對責(zé)任者工作的一種否定;③測試工作枯燥無味,不能引起人們的興趣;④測試工作是艱苦而細致的工作;⑤對自己編寫的程序盲目自信,在發(fā)現(xiàn)錯誤后,顧慮別人對自己的開發(fā)能力的看法。這些觀點對軟件測試工作是極為不利的,必須澄清認識、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。(2)測試的目的如果測試的目的是為了盡可能多地找出錯誤,那么測試就應(yīng)該直接針對軟件比較復(fù)雜的部分或是以前出錯比較多的位置。①軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;②測試是為了證明程序有錯,而不是證明程序無錯誤;③一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;④一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。這種觀點可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點可能會產(chǎn)生誤導(dǎo),認為發(fā)現(xiàn)錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實并非如此。首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助我們設(shè)計出有針對性地檢測方法,改善測試的有效性。其次,沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定測試質(zhì)量的一種方法。6.2.2測試的步驟與開發(fā)過程類似,測試過程也必須分步驟進行,每個步驟在邏輯上是前一個步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由若干個模塊組成。因此,大型軟件系統(tǒng)的測試基本上由下述幾個步驟組成:(1)模塊

溫馨提示

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

評論

0/150

提交評論