jsp562企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)sqlserver論文_第1頁
jsp562企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)sqlserver論文_第2頁
jsp562企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)sqlserver論文_第3頁
jsp562企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)sqlserver論文_第4頁
jsp562企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)sqlserver論文_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-PAGEIV-目錄摘要 IIIAbstract IV引言 V1項(xiàng)目概述 61.1現(xiàn)系統(tǒng)概述 61.2公司組織機(jī)構(gòu) 61.3系統(tǒng)業(yè)務(wù)流程 71.4系統(tǒng)功能模塊 72系統(tǒng)需求分析 92.1需求陳述 92.2UseCase建模 102.2.1定義活動(dòng)者 102.2.2UseCase圖 103系統(tǒng)架構(gòu)設(shè)計(jì) 113.1架構(gòu)設(shè)計(jì)目標(biāo) 113.2系統(tǒng)架構(gòu)設(shè)計(jì) 113.3系統(tǒng)架構(gòu)類圖 164系統(tǒng)詳細(xì)設(shè)計(jì) 174.1系統(tǒng)模塊設(shè)計(jì) 174.1.1登陸 174.1.2產(chǎn)品信息管理 174.2數(shù)據(jù)庫設(shè)計(jì) 194.2.1ER圖 194.3.2物理表結(jié)構(gòu)圖 194.4開發(fā)環(huán)境的選擇 204.4.1系統(tǒng)開發(fā)工具 204.4.2數(shù)據(jù)庫的選擇 214.4.3系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì) 215編碼 235.1概述開發(fā)工具及編程腳本 235.1.1JSP技術(shù) 235.1.2JavaBean技術(shù) 235.1.3JDBC技術(shù) 245.1.4用JDBC訪問數(shù)據(jù)庫 255.2腳本習(xí)慣說明 276系統(tǒng)調(diào)試與測(cè)試 296.1程序調(diào)試 296.2程序的測(cè)試 296.2.1測(cè)試的重要性及目的 296.2.2測(cè)試的步驟 306.2.3測(cè)試的主要內(nèi)容 31結(jié)束語 32致謝 33參考文獻(xiàn) 34附錄A譯文 35附錄B原文 36附錄C程序清單 37附錄D其他 38摘要課題目標(biāo)是設(shè)計(jì)并實(shí)現(xiàn)一個(gè)B/S體系結(jié)構(gòu)的企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)。結(jié)合實(shí)踐,理解網(wǎng)頁開發(fā)技術(shù)和數(shù)據(jù)庫的基本知識(shí),學(xué)習(xí)相關(guān)開發(fā)工具和應(yīng)用軟件,熟悉系統(tǒng)設(shè)計(jì)的過程,熟練掌握網(wǎng)絡(luò)數(shù)據(jù)庫編程方法,本系統(tǒng)用JSP技術(shù)來編寫本系統(tǒng),數(shù)據(jù)庫用SQLSERVER2000來連接系統(tǒng)。本論文主要是對(duì)客戶管理、加工管理、產(chǎn)品管理、投訴反饋、售后回訪、事務(wù)提醒等功能實(shí)現(xiàn),涵蓋知識(shí)面廣,可有效地提高學(xué)生綜合運(yùn)用所學(xué)知識(shí)分析解決問題的能力,增強(qiáng)學(xué)生對(duì)事物的理解與掌握能力,培養(yǎng)學(xué)生掌握科學(xué)的研究方法,正確的設(shè)計(jì)思想,獨(dú)立思考,勇于進(jìn)取,探索創(chuàng)新,為今后進(jìn)一步學(xué)習(xí)與工作奠定了良好的基礎(chǔ)。關(guān)鍵詞:計(jì)算機(jī)技術(shù);企業(yè)客戶服務(wù)及產(chǎn)品管理系統(tǒng);JSPAbstractThetopicgoalisdesignsandrealizesaB/Sarchitectureenterprisecustomerserviceandtheproductmanagementsystem.Theunionpractice,understoodthatthehomepagedevelopmenttechnologyandthedatabaseelementaryknowledge,thestudyrelateddevelopmentkitandtheapplicationsoftware,thefamiliarsystemdesign'sprocess,mastersthenetworkdatabaseprogrammingmethodskilled.thissystemarrangesthecompbooksystemwiththeJSPtechnology,thedatabaseusestheSQLSERVER2000connectedsystems.Thepresentpapermainlyinvolvesthesoftware,thedatabaseandthenetworkingandsoon.Thecoveringaspectofknowledgeisbroad,butenhancesthestudenttosynthesizetheutilizationeffectivelytostudytheknowledgeanalysistosolvethequestionability,strengthensthestudenttheunderstandingwithtograspabilitytothething,trainsthestudenttograspthesciencetheresearchtechnique,thecorrectdesignconcept,theindependentthinking,daresenterprising,theexplorationinnovation,willfurtherstudyandtheworkforthepresenthaslaidthegoodfoundation.Keywords:Computertechnology;Enterprisecustomerserviceandproductmanagementsystem;JSP引言在現(xiàn)在飛速發(fā)展的環(huán)境下,客戶與產(chǎn)品形成了密不可分的關(guān)系,客戶服務(wù)對(duì)于一個(gè)公司已經(jīng)是畢不可少的了,產(chǎn)品管理更是重中之重,產(chǎn)品管理業(yè)是對(duì)客戶負(fù)責(zé),也是公司生存的保障,現(xiàn)在的公司生產(chǎn)的產(chǎn)品是多元化的,所以產(chǎn)品管理也變的復(fù)雜,產(chǎn)品管理需要系統(tǒng)化的管理制度,給管理者方便明了的管理產(chǎn)品,一個(gè)嚴(yán)密的產(chǎn)品管理系統(tǒng)是必不可缺的。數(shù)以千萬的產(chǎn)品產(chǎn)出,售出,存放等,需要產(chǎn)品管理系統(tǒng)都能明了的表現(xiàn)出來,方便對(duì)產(chǎn)品的質(zhì)量,數(shù)量的了解,以便把客戶最需要最好的產(chǎn)品售給客戶??蛻糇鳛楣旧娴膶?duì)象,客戶服務(wù)就成了必需品,現(xiàn)在的公司以把客戶與產(chǎn)品連成線,有客戶才會(huì)生產(chǎn)產(chǎn)品,有客戶才能售出產(chǎn)品,同樣,也了解了生產(chǎn)什么樣產(chǎn)品,以便滿足客戶,產(chǎn)品數(shù)以千萬,客戶同樣數(shù)以千萬,并且賣出的產(chǎn)品也必須得到保障,首先對(duì)客戶就要有售后服務(wù),還要知道那些客戶要什么產(chǎn)品,都必須分出類別,客戶的一些方便對(duì)客戶服務(wù)。做出這個(gè)客戶服務(wù)和產(chǎn)品管理系統(tǒng)就能方便公司管理人員管理。產(chǎn)品管理技術(shù)在全球的應(yīng)用領(lǐng)域十分廣泛,包括機(jī)械、電子、汽車、航空、航天以及非制造業(yè)等。目前,汽車工業(yè)已經(jīng)在全球范圍內(nèi)開始實(shí)施產(chǎn)品管理技術(shù)(如福特、通用等),航空/航天工業(yè)用管理技術(shù)對(duì)企業(yè)進(jìn)行重組(如波音、麥道等),非制造業(yè)(如交通、商業(yè)、電子出版等)應(yīng)用管理技術(shù)的增長(zhǎng)速度也十分迅速。產(chǎn)品管理系統(tǒng)在文檔管理、變更控制、配置管理與信息跟蹤等方面也得到廣泛的應(yīng)用,并把它作為支持企業(yè)重組(如技術(shù)重組、產(chǎn)品重組、信息重組等)、并行工程、虛擬制造等的使能技術(shù)。企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)主要完成對(duì)客戶管理、加工管理、產(chǎn)品管理、投訴反饋、售后回訪、事務(wù)提醒等幾個(gè)方面的描述。本論文包括需求分析、系統(tǒng)功能、系統(tǒng)設(shè)計(jì)、程序設(shè)計(jì)、系統(tǒng)測(cè)試及存在問題等方面,較為系統(tǒng)地介紹了“企業(yè)信息管理信息系統(tǒng)”課題開發(fā)的整個(gè)過程。1項(xiàng)目概述1.1現(xiàn)系統(tǒng)概述產(chǎn)品管理技術(shù)在全球的應(yīng)用領(lǐng)域十分廣泛,包括機(jī)械、電子、汽車、航空、航天以及非制造業(yè)等。目前,汽車工業(yè)已經(jīng)在全球范圍內(nèi)開始實(shí)施產(chǎn)品管理技術(shù)(如福特、通用等),航空/航天工業(yè)用管理技術(shù)對(duì)企業(yè)進(jìn)行重組(如波音、麥道等),非制造業(yè)(如交通、商業(yè)、電子出版等)應(yīng)用管理技術(shù)的增長(zhǎng)速度也十分迅速。產(chǎn)品管理系統(tǒng)在文檔管理、變更控制、配置管理與信息跟蹤等方面也得到廣泛的應(yīng)用,并把它作為支持企業(yè)重組(如技術(shù)重組、產(chǎn)品重組、信息重組等)、并行工程、虛擬制造等的使能技術(shù)。企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)主要完成對(duì)客戶管理、加工管理、產(chǎn)品管理、投訴反饋、售后回訪、事務(wù)提醒等幾個(gè)方面的描述。1.2公司組織機(jī)構(gòu)企業(yè)機(jī)構(gòu)企業(yè)機(jī)構(gòu)技術(shù)科生產(chǎn)課件工會(huì)辦公室宣傳科人事科財(cái)務(wù)科技術(shù)科生產(chǎn)課件工會(huì)辦公室宣傳科人事科財(cái)務(wù)科圖1-1公司組織機(jī)構(gòu)圖Fig1-1DiagramoftheCompany'sOrganizationalStructure1.3系統(tǒng)業(yè)務(wù)流程經(jīng)過前期調(diào)研分析和綜合其它各方面相關(guān)理論知識(shí),給出整個(gè)系統(tǒng)的業(yè)務(wù)流程圖如下圖1-2所示:整個(gè)系統(tǒng)的開發(fā)主要圍繞上述業(yè)務(wù)流程進(jìn)行開發(fā),開發(fā)過程采用面向?qū)ο蟮拈_發(fā)技術(shù),具體開發(fā)過程見下面的章節(jié)。圖1-2系統(tǒng)流程Fig1-2theWorkflowofSystem1.4系統(tǒng)功能模塊根據(jù)上述業(yè)務(wù)流程,整個(gè)系統(tǒng)抽象出以下幾個(gè)功能模塊,如圖1-3所示。下面模塊劃分只是抽象意義上的劃分,各模塊之間需要共享數(shù)據(jù),相互協(xié)作,完成整個(gè)系統(tǒng)流程,單一事物功能模塊間是相互獨(dú)立的。圖1-3系統(tǒng)功能模塊Fig1-3FunctionModelsofSystem2系統(tǒng)需求分析2.1需求陳述通常,需求陳述的內(nèi)容包括:?jiǎn)栴}范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等??傊?,需求陳述應(yīng)該闡明“做什么”而不是“怎樣做”。它應(yīng)該描述用戶的需求而不是提出解決問題的方法。應(yīng)該指出哪些是系統(tǒng)必要的性質(zhì),哪些是任選的性質(zhì)。應(yīng)該避免對(duì)設(shè)計(jì)策略施加過多的約束,也不要描述系統(tǒng)的內(nèi)部結(jié)構(gòu),因?yàn)檫@樣做將限制實(shí)現(xiàn)的靈活性。對(duì)系統(tǒng)性能及系統(tǒng)與外界環(huán)境交互協(xié)議的描述,是合適的需求。此外,對(duì)采用的軟件工程標(biāo)準(zhǔn)、模塊構(gòu)造準(zhǔn)則、將來可能做的擴(kuò)充以及可維護(hù)性要求等方面的描述,也都是適當(dāng)?shù)男枨蟆O旅嬉云髽I(yè)客戶服務(wù)及產(chǎn)品管理系統(tǒng)為例說明如何進(jìn)行系統(tǒng)需求陳述。本系統(tǒng)需要具有以下功能:(1)由于一項(xiàng)新的軟件在被使用之前,對(duì)于使用者來說是陌生和嶄新的,所以要求系統(tǒng)具有良好的人機(jī)界面。(2)能夠?qū)崿F(xiàn)信息管理功能,能成功的對(duì)各種信息進(jìn)行查詢及管理。(3)查詢數(shù)據(jù)方便,數(shù)據(jù)的穩(wěn)定性和可靠性好。系統(tǒng)采用B/S模式。整個(gè)系統(tǒng)最關(guān)鍵的就是數(shù)據(jù)庫系統(tǒng),一個(gè)強(qiáng)大的數(shù)據(jù)庫可以支持完善一個(gè)優(yōu)秀的軟件設(shè)計(jì),通過軟件系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的連接來實(shí)現(xiàn)通過軟件界面觀察和處理操作數(shù)據(jù)。系統(tǒng)任務(wù)確定之后,下面的工作就是進(jìn)行系統(tǒng)分析。面向?qū)ο蟮姆治龅闹饕蝿?wù)是分析問題領(lǐng)域,找出問題解決方案,發(fā)現(xiàn)對(duì)象,分析對(duì)象的內(nèi)部構(gòu)成和外部關(guān)系,建立軟件系統(tǒng)的對(duì)象模型。分析問題領(lǐng)域是軟件系統(tǒng)開發(fā)的一項(xiàng)基本工作,是項(xiàng)目開發(fā)之初必須首先進(jìn)行的重要工作。分析問題領(lǐng)域的結(jié)果是對(duì)問題領(lǐng)域的清晰,精確的定義,明確目標(biāo)系統(tǒng)將做什么。分析問題領(lǐng)域的主要任務(wù)是:對(duì)問題領(lǐng)域進(jìn)行抽象,提出解決方案;對(duì)未來的系統(tǒng)進(jìn)行需求分析,確定系統(tǒng)的職責(zé)范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等。實(shí)施面向?qū)ο蠓治龅囊话悴襟E如下:1.分析用戶需求,建立UseCase并通過用例圖來描述用戶的需求。2.通過建立域模型以識(shí)別類與對(duì)象,從而識(shí)別系統(tǒng)中的各種對(duì)象。3.確定對(duì)象的內(nèi)部特征,從而定義出各個(gè)屬性與服務(wù),以進(jìn)一步細(xì)化類的結(jié)構(gòu)。4.識(shí)別對(duì)象之間的關(guān)系并使用設(shè)計(jì)模式對(duì)類的結(jié)構(gòu)進(jìn)行優(yōu)化和改造。5.獲得對(duì)象之間的行為關(guān)系,繪制出各種動(dòng)態(tài)圖形(順序圖、協(xié)作圖、狀態(tài)圖等)。2.2UseCase建模2.2.1定義活動(dòng)者根據(jù)的需求可以確定2個(gè)活動(dòng)者,即客戶及系統(tǒng)管理員??蛻艨梢赃M(jìn)行網(wǎng)上轉(zhuǎn)賬及余額查詢;系統(tǒng)管理員可以管理客戶的賬戶。2.2.2UseCase圖根據(jù)系統(tǒng)需求分析,結(jié)合上節(jié)系統(tǒng)活動(dòng)者的定義分析,得到系統(tǒng)的用例圖3-1如下:圖2-1客戶服務(wù)與產(chǎn)品管理系統(tǒng)UseCase圖Fig3-1UseCaseforSalesManagement3系統(tǒng)架構(gòu)設(shè)計(jì)軟件的系統(tǒng)架構(gòu)是指通過某種特定的技術(shù)平臺(tái),完成軟件系統(tǒng)整體功能的開發(fā)過程。也可以通俗地理解為:總體設(shè)計(jì)和總體結(jié)構(gòu)布局。一般而言,軟件系統(tǒng)架構(gòu)有兩個(gè)要素:1.它是一個(gè)軟件系統(tǒng)從整體到部分的最高層次的劃分。2.建造一個(gè)系統(tǒng)所做出的最高層次的,以后難以更改的,商業(yè)和技術(shù)的決定。3.1架構(gòu)設(shè)計(jì)目標(biāo)軟件架構(gòu)設(shè)計(jì)要達(dá)到如下的目標(biāo):1.可行性(Feasible)。架構(gòu)具有可行性是架構(gòu)設(shè)計(jì)的基石。2.可靠性(Reliable)。軟件系統(tǒng)對(duì)于用戶的商業(yè)經(jīng)營(yíng)和管理來說極為重要,因此軟件系統(tǒng)必須非??煽?。3.安全行(Secure)。軟件系統(tǒng)所承擔(dān)的交易的商業(yè)價(jià)值極高,系統(tǒng)的安全性非常重要。4.可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場(chǎng)需求的變化進(jìn)行調(diào)整。5.可擴(kuò)展性(Extensible)。在新技術(shù)出現(xiàn)的時(shí)候,一個(gè)軟件系統(tǒng)應(yīng)當(dāng)允許導(dǎo)入新技術(shù),從而對(duì)現(xiàn)有系統(tǒng)進(jìn)行功能和性能的擴(kuò)展。6.可維護(hù)性(Maintainable)。軟件系統(tǒng)的維護(hù)包括兩方面,一是排除現(xiàn)有的錯(cuò)誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個(gè)易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費(fèi)。7.可升級(jí)性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場(chǎng)擴(kuò)展得可能性。8.客戶體驗(yàn)(CustomerExperience)。軟件系統(tǒng)必須易于使用。軟件的最終用戶很可能是不具有計(jì)算機(jī)專業(yè)技術(shù)的人員。3.2系統(tǒng)架構(gòu)設(shè)計(jì)下面我們將根據(jù)架構(gòu)設(shè)計(jì)原則和信息系統(tǒng)原理來建立系統(tǒng)的架構(gòu)設(shè)計(jì)模型。將信息系統(tǒng)中比較關(guān)心的對(duì)象分層,可分為三層:用戶界面層、業(yè)務(wù)層、數(shù)據(jù)訪問層(如下圖3-2所示),再把各層中的一些公共部分提出來:權(quán)限管理、異常處理,這樣得到包圖如圖3-2-1所示:圖3-2系統(tǒng)體系架構(gòu)圖Fig3-2TheDiagramofSystemArchitecture圖3-2-1包圖Fig3-2-1PackageDiagramofSalesManagementModel1.用戶界面包用戶界面包的職責(zé)是:(1)與用戶的交互,接收用戶的各種輸入以及輸出各種提示信息或處理結(jié)果。(2)對(duì)于輸入的數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗(yàn),過濾非法數(shù)據(jù)。(3)向業(yè)務(wù)處理對(duì)象發(fā)送處理請(qǐng)求。用戶界面包圖展開如圖3-3所示:圖3-3用戶界面包展開圖Fig3-3PackageDiagramofUsersInterface用戶界面包包含的類見圖2-4:圖3-4用戶界面類圖Fig3-4ClassDiagramofUsersInterface2.業(yè)務(wù)邏輯包業(yè)務(wù)邏輯包的職責(zé)是:(1)實(shí)現(xiàn)各種業(yè)務(wù)處理邏輯或處理算法。(2)驗(yàn)證請(qǐng)求者的權(quán)限。(3)向數(shù)據(jù)訪問對(duì)象發(fā)送數(shù)據(jù)持久化操作的請(qǐng)求。(4)向用戶界面層返回處理結(jié)果。業(yè)務(wù)邏輯包圖展開如圖3-5所示:圖3-5業(yè)務(wù)邏輯包圖展開Fig3-5PackageDiagramofBusiness業(yè)務(wù)邏輯包包含的類見圖3-6:圖3-6業(yè)務(wù)邏輯類圖Fig3-6ClassDiagramofBusiness3.數(shù)據(jù)訪問包數(shù)據(jù)訪問層的職責(zé)是:(1)實(shí)現(xiàn)數(shù)據(jù)的持久化操作。(2)實(shí)現(xiàn)事務(wù)處理。數(shù)據(jù)訪問包圖展開如圖2-7所示:圖3-7數(shù)據(jù)訪問包圖展開Fig3-7PackageDiagramofDataAccess數(shù)據(jù)訪問包包含的類見圖3-8:圖3-8數(shù)據(jù)訪問類圖Fig3-8ClassDiagramofDataAccess對(duì)于每一個(gè)業(yè)務(wù)處理中需要持久化操作的對(duì)象都可以對(duì)應(yīng)為一個(gè)數(shù)據(jù)庫訪問對(duì)象,在很多業(yè)務(wù)處理中需要請(qǐng)求多個(gè)數(shù)據(jù)庫訪問對(duì)象來進(jìn)行數(shù)據(jù)的讀寫操作,而這些操作又必須在同一個(gè)事務(wù)中,這時(shí)需要用同一個(gè)數(shù)據(jù)庫連接對(duì)象來進(jìn)行統(tǒng)一的事務(wù)處理。這里的數(shù)據(jù)庫連接類的創(chuàng)建用到了單件(Singleton)模式,保證一個(gè)類僅有一個(gè)實(shí)例,一個(gè)客戶在同一時(shí)刻只能用一個(gè)數(shù)據(jù)庫連接對(duì)象。4.權(quán)限管理包權(quán)限管理的主要職責(zé)是:(1)驗(yàn)證請(qǐng)求者的請(qǐng)求權(quán)限。(2)提供請(qǐng)求者的權(quán)限列表。權(quán)限管理包圖展開如圖3-9所示:圖3-9權(quán)限管理包圖展開Fig3-9PackageDiagramofAccessAuthorization權(quán)限管理包包含的類見圖3-10:圖3-10權(quán)限管理類圖Fig3-10ClassDiagramofAccessAuthorization5.異常處理包異常處理的職責(zé):(1)匯報(bào)運(yùn)行時(shí)的詳細(xì)異常信息。(2)記錄異常處理日志。異常處理包圖展開如圖3-11所示:圖3-11異常處理包圖展開Fig3-11PackageDiagramofExceptionProcessing異常處理包包含的類見圖3-12:圖3-12異常處理類圖Fig3-12ClassDiagramofExceptionProcessing因?yàn)楫惓L幚眍愋捅容^多,如:系統(tǒng)異常、數(shù)據(jù)庫異常、業(yè)務(wù)邏輯異常等,針對(duì)不同類型的異常處理方式也容易變,如:顯示錯(cuò)誤,記錄文本日志,記錄數(shù)據(jù)庫日志等,所以這里使用了橋接(Bridge)模式來實(shí)現(xiàn),使各部分的變化比較獨(dú)立。3.3系統(tǒng)架構(gòu)類圖將包圖展開,得到類圖,它是架構(gòu)的靜態(tài)結(jié)構(gòu)圖,表達(dá)了各個(gè)類之間的靜態(tài)聯(lián)系。企業(yè)客戶服務(wù)及產(chǎn)品管理系統(tǒng)中的系統(tǒng)架構(gòu)類圖如下圖3-13所示。圖3-13系統(tǒng)架構(gòu)類圖Fig3-13ClassDiagramofSystemArchitecture4系統(tǒng)詳細(xì)設(shè)計(jì)4.1系統(tǒng)模塊設(shè)計(jì)4.1.1登陸在用戶登錄界面,在用戶名對(duì)應(yīng)的文本框中輸入用戶名,在密碼對(duì)應(yīng)的文本框中輸入密碼,如果用戶名和密碼同時(shí)與數(shù)據(jù)庫中的用戶名和密碼相對(duì)應(yīng),點(diǎn)擊“確定”后進(jìn)入系統(tǒng)的主界面。如果輸入的信息不正確,則給出提示。輸入:用戶名和密碼。處理:校檢字符的有效性。用戶要登錄本系統(tǒng)需要提供用戶名和密碼,在這里就是要檢驗(yàn)用戶是否滿足輸入的要求,即檢驗(yàn)用戶名和密碼文本框是否為空,若為空,則提示用戶輸入用戶名和密碼。檢驗(yàn)用戶名是否存在或密碼是否正確,即是否存在用戶輸入的用戶名,并且密碼是否正確。輸出:登錄成功,進(jìn)入用戶的系統(tǒng)使用資源頁面,不成功則顯示錯(cuò)誤信息頁面。界面如下圖所示:4.1.2產(chǎn)品信息管理管理員進(jìn)入系統(tǒng)后可以對(duì)產(chǎn)品信息進(jìn)行管理,包括對(duì)產(chǎn)品信息的添加、修改、刪除的功能。a)添加產(chǎn)品的信息操作: 點(diǎn)擊添加產(chǎn)品信息按鈕。并輸入所需添加產(chǎn)品的內(nèi)容,內(nèi)容包括產(chǎn)品編號(hào),產(chǎn)品名稱,產(chǎn)品單位,生產(chǎn)日期,生產(chǎn)數(shù)量,成本金額。檢測(cè)所輸入的內(nèi)容是否符合用戶數(shù)據(jù)庫表中字段定義。若不符合則提示輸入有誤。 提示信息添加成功。 更新產(chǎn)品數(shù)據(jù)庫表的信息。b)刪除產(chǎn)品信息 點(diǎn)擊刪除按鈕來刪除產(chǎn)品的相關(guān)信息。 根據(jù)產(chǎn)品的表中的關(guān)鍵字產(chǎn)品編號(hào)刪除表中的一切以產(chǎn)品編號(hào)為主鍵的其他字段。執(zhí)行sql語句delete并且刪除相關(guān)屬性。 更新數(shù)據(jù)庫表的信息。c) 修改產(chǎn)品 點(diǎn)擊修改產(chǎn)品按鈕。并輸入需要修改的內(nèi)容,內(nèi)容包括產(chǎn)品編號(hào),產(chǎn)品名稱,產(chǎn)品單位,生產(chǎn)日期,生產(chǎn)數(shù)量,成本金額。 檢驗(yàn)用戶輸入的內(nèi)容是否符合數(shù)據(jù)庫表中字段定義。若不符合則提示輸入有誤。 如果用記錄存在,進(jìn)行修改操作,輸入新的字段,并根據(jù)數(shù)據(jù)庫表中對(duì)應(yīng)字段的定義檢查輸入是否合法,如果輸入有錯(cuò)誤則進(jìn)行提示。 如果輸入正確,執(zhí)行(UPDATE)SQL語句,更新數(shù)據(jù)庫表中該項(xiàng)目所對(duì)應(yīng)的記錄。 提示信息修改成功。 更新數(shù)據(jù)庫表的信息。界面如圖:4.2數(shù)據(jù)庫設(shè)計(jì)關(guān)系型數(shù)據(jù)庫是目前應(yīng)用最廣泛的數(shù)據(jù)庫。既然是面向?qū)ο笙到y(tǒng)設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì)當(dāng)然也要是面向?qū)ο蟮摹,F(xiàn)在要考慮如何對(duì)類進(jìn)行持久化操作,即如何將對(duì)象類映射到關(guān)系數(shù)據(jù)庫的二維表。目前可以采用數(shù)據(jù)庫建模工具來實(shí)現(xiàn),象PowerDesigner、Rose等。4.2.1ER圖2.操作員實(shí)體E-R圖如圖所示:操作員實(shí)體密碼性別操作員實(shí)體密碼性別聯(lián)系電話用戶編號(hào)聯(lián)系電話用戶編號(hào)圖2-11操作員實(shí)體E—R圖4.3.2物理表結(jié)構(gòu)圖將ER模型中的實(shí)體轉(zhuǎn)換為物理表,得到物理表結(jié)構(gòu)如下:設(shè)計(jì)表“admin”列名數(shù)據(jù)類型長(zhǎng)度允許空IdInt4否UsernameNvarchar50否PasswordNvarchar50否CreattimeDatetime8否FlagInt4否IsuseInt4否LogintimesInt4否QuanxianNvarchar1000否設(shè)計(jì)表“system”列名數(shù)據(jù)類型長(zhǎng)度允許空IdInt4否SitenameNvarchar100否urlNvarchar100否KeywordNvarchar500否DescriptionNvarchar500否EmailNvarchar100否StateNvarchar50否ReasonsNvarchar100否DirNvarchar100否RecordNvarchar50否CopyrightText16否UpInt4否設(shè)計(jì)表“member”列名數(shù)據(jù)類型長(zhǎng)度允許空Id Int4否Usernamenvarchar50否PasswordNvarchar100否TypeNvarchar50否RegtimeDatetime8否IfuseInt4否LogintimesInt4否LasttimeDatetime8否LastipNvarchar50否4.4開發(fā)環(huán)境的選擇4.4.1系統(tǒng)開發(fā)工具本系統(tǒng)采用VisualStuido2005作為系統(tǒng)開發(fā)工具。VisualStudio是微軟公司推出的開發(fā)環(huán)境,是目前最流行的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境。使用VisualStudio2005,專業(yè)開發(fā)人員能夠:使用改進(jìn)后的可視化設(shè)計(jì)工具、編程語言和代碼編輯器,享受高效率的開發(fā)環(huán)境,在統(tǒng)一的開發(fā)環(huán)境中開發(fā)并調(diào)試多層次的服務(wù)器應(yīng)用程序使用集成的可視化數(shù)據(jù)庫設(shè)計(jì)和報(bào)告工具,創(chuàng)建SQLServer2005解決方案4.4.2數(shù)據(jù)庫的選擇SQLServer2000是一個(gè)具備完全Web支持的數(shù)據(jù)庫產(chǎn)品,其特點(diǎn)如下:真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。1.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡(jiǎn)單。豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地2.SQLServer與WindowsNT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQLServer也可以很好地與MicrosoftBackOffice產(chǎn)品集成。3.很好的伸縮性,可跨越從運(yùn)行Windows95/98的膝上型電腦Windows2000的大型多處理器等多種平臺(tái)使用。4.對(duì)Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到Web頁面上。5.SQLServer提供數(shù)據(jù)倉庫功能,這個(gè)功能只在Oracle和其他更昂貴的DBMS中才有。4.4.3系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)本系統(tǒng)采用B/S結(jié)構(gòu),系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖見圖4-11。圖4-11系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖Fig4-11NetArchitectureDiagramofSystem客戶機(jī)配置情況如下表4-8所示。(Table4-8)支持軟件安裝情況如下表4-9所示。(Table4-9)服務(wù)器OS:MsWindows2003ServerSQLServer2000數(shù)據(jù)庫管理軟件客戶機(jī)OS:MsWindowsxpProfessional/MsWindows2000ProfessionalMicrosoftoffice2003Adobe6.0IE5.0以上5編碼5.1概述開發(fā)工具及編程腳本5.1.1JSP技術(shù)JSP是由Sun微系統(tǒng)公司于1999年6月推出的一項(xiàng)技術(shù),是基于JavaServlet以及整個(gè)Java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立先進(jìn)、安全和跨平臺(tái)的動(dòng)態(tài)網(wǎng)站。JSP技術(shù)在多個(gè)方面加速了動(dòng)態(tài)Web頁面的開發(fā)。與微軟公司的ASP技術(shù)相比,JSP具有如下優(yōu)點(diǎn):(1)開放的技術(shù):JSP技術(shù)基于平臺(tái)和服務(wù)器的相互獨(dú)立,技術(shù)支持來自廣泛的、專門的、各種工具包,有服務(wù)器的組件和數(shù)據(jù)庫產(chǎn)品開發(fā)商提供。相比之下,ASP技術(shù)主要依賴MICROSOFT支持。(2)平臺(tái)和服務(wù)器的獨(dú)立性:JSP編寫的代碼可運(yùn)行在任何符合JAVA語法結(jié)構(gòu)的環(huán)境中。這樣JSP就能夠運(yùn)行在多種WEB服務(wù)器上并支持來自多家開發(fā)商提供的各種工具包。(3)開放的開發(fā)過程,開放的源碼:自1995年以來,SUN用開放過程方法同國(guó)際JAVA組織合作開發(fā)和修改JAVA技術(shù)和規(guī)范。(4)JSP標(biāo)記可擴(kuò)充性:JSP技術(shù)能夠?yàn)殚_發(fā)者擴(kuò)展JSP標(biāo)記,充分利用與XML兼容的標(biāo)記技術(shù)強(qiáng)大的功能,大大減少對(duì)腳本語言的依賴。(5)JSP跨平臺(tái)的可重用性:JSP組件(EJB,JavaBean或定制的JSP標(biāo)記)都是跨平臺(tái)可重用的。5.1.2JavaBean技術(shù)JSP作為一個(gè)很好的動(dòng)態(tài)網(wǎng)站開發(fā)語言得到了越來越廣泛的應(yīng)用,在各類JSP應(yīng)用程序中,JSP+JavaBean的組合成為了一種事實(shí)上最常見的JSP程序的標(biāo)準(zhǔn).JavaBean是描述Java的軟件組件模型,有點(diǎn)類似于Microsoft的COM組件概念。在Java模型中,通過JavaBean可以無限擴(kuò)充Java程序的功能,通過JavaBean的組合可以快速的生成新的應(yīng)用程序。對(duì)于程序員來說,最好的一點(diǎn)就是JavaBean可以實(shí)現(xiàn)代碼的重復(fù)利用,另外對(duì)于程序的易維護(hù)性等等也有很重大的意義。JavaBean通過Java虛擬機(jī)(JavaVirtualMachine)可以得到正確的執(zhí)行,具有平臺(tái)無關(guān)性。一個(gè)JavaBean有三個(gè)部分組成:屬性(Property)Bean的屬性就是對(duì)象的屬性,但提供了屬性讀取和設(shè)置的接口支持。例如一個(gè)時(shí)鐘Bean可以有時(shí)區(qū)和鎮(zhèn)鈴屬性,日歷Bean可以有年份和月份屬性。每個(gè)屬性通常遵守簡(jiǎn)單的方法命名規(guī)則。這樣可以很方便的找出Bean提供的屬性,然后查詢屬性值或改變屬性值,對(duì)Bean進(jìn)行操作。方法(Method)由于Bean本身是Java對(duì)象,調(diào)用這個(gè)對(duì)象的方法是與其交互作用的唯一途徑。JavaBean嚴(yán)格遵守面向?qū)ο蟮念愒O(shè)計(jì)邏輯,不讓外界訪問其任何實(shí)例字段(沒有Public字段)。這樣,方法調(diào)用的是接觸Bean的唯一途徑。事件(Event)Bean與其他軟件組件交流信息的主要方式是發(fā)送和接收事件。這與對(duì)象之間通過消息通信類似。JavaBean傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從JSP誕生后,JavaBean更多的應(yīng)用在非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出來了越來越強(qiáng)的生命力。利用非可視化JavaBean,來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等等,可以很好地實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺(tái)程序(如JSP)的分離,使得系統(tǒng)具有更好的健壯性和靈活性。5.1.3JDBC技術(shù)JDBC是Java的開發(fā)者——Sun的JavaSoft公司制定的Java數(shù)據(jù)庫連接JavaDataBaseConnectivity技術(shù)的簡(jiǎn)稱,是為各種常用數(shù)據(jù)庫提供無縫聯(lián)接的技術(shù)。JDBC在Web和Internet應(yīng)用程序中的作用和ODBC在Windows系列平臺(tái)應(yīng)用程序中的作用類似。JDBC有一個(gè)非常獨(dú)特的動(dòng)態(tài)連接結(jié)構(gòu),它使得系統(tǒng)模塊化。使用JDBC來完成對(duì)數(shù)據(jù)庫的訪問包括以下四個(gè)主要組件:Java的應(yīng)用程序、JDBC驅(qū)動(dòng)器管理器、驅(qū)動(dòng)器和數(shù)據(jù)源。簡(jiǎn)單地說,JDBC能完成下列三件事:(1)同一個(gè)數(shù)據(jù)庫建立連接;(2)向數(shù)據(jù)庫發(fā)送SQL語句;(3)處理數(shù)據(jù)庫返回的結(jié)果。JDBC是一種可用于執(zhí)行SQL語句的JavaAPI(ApplicationProgrammingInterface,應(yīng)用程序設(shè)計(jì)接口)。它由一些Java語言寫的類、界面組成。JDBC給數(shù)據(jù)庫應(yīng)用開發(fā)人員、數(shù)據(jù)庫前臺(tái)工具開發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計(jì)接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用程序。通過使用JDBC,開發(fā)人員可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫。也就是說,開發(fā)人員可以不必寫一個(gè)程序訪問Sybase,寫另一個(gè)程序訪問Oracle,再寫一個(gè)程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動(dòng)地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。不但如此,使用Java編寫的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上編寫不同的應(yīng)用。Java和JDBC的結(jié)合可以讓開發(fā)人員在開發(fā)數(shù)據(jù)庫應(yīng)用時(shí)真正實(shí)現(xiàn)“WriteOnce,RunEverywhere!”Java具有健壯、安全、易用等特性,而且支持自動(dòng)網(wǎng)上下載,是一種很好的與數(shù)據(jù)庫線連接而使用的編程語言。它所需要的是Java應(yīng)用如何同各種各樣的數(shù)據(jù)庫連接,JDBC正是實(shí)現(xiàn)這種連接的關(guān)鍵。JDBC擴(kuò)展了Java的能力,如使用Java和JDBCAPI就可以公布一個(gè)Web頁,頁中帶有能訪問遠(yuǎn)端數(shù)據(jù)庫的Applet?;蛘咂髽I(yè)可以通過JDBC讓全部的職工(他們可以使用不同的操作系統(tǒng),如Windwos,Machintosh或UNIX)在Intranet上連接到幾個(gè)全球數(shù)據(jù)庫上,而這幾個(gè)全球數(shù)據(jù)庫可以是不相同的。5.1.4用JDBC訪問數(shù)據(jù)庫所有的數(shù)據(jù)庫的對(duì)象和方法都在java.sql.*里面,所以首先要importjava.sql.*,要想連接數(shù)據(jù)庫,首先要將驅(qū)動(dòng)程序調(diào)入。Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");這是JDBC-ODBC的驅(qū)動(dòng)程序。要想連接一個(gè)指定的數(shù)據(jù)庫,必須創(chuàng)建Connection類的一個(gè)實(shí)例。Stringurl="jdbc:odbc:Groceryprices";Connectioncon=DriverManager.getConnection(url);注意在此用到的數(shù)據(jù)庫名稱是在ODBC設(shè)置控制面板中輸入的數(shù)據(jù)資源名。URL語法對(duì)于不同類型的數(shù)據(jù)庫會(huì)很不一樣。語法是這樣的:jdbc:subprotocol:subname開頭都是JDBC,后面是子協(xié)議,然后是ODBC名稱。若要使用純JDBC驅(qū)動(dòng)程序,必須安裝第三方軟件提供的驅(qū)動(dòng)程序,一般在數(shù)據(jù)庫的官方網(wǎng)站上可以找到這里不做討論。本系統(tǒng)采用JDBC-ODBC的驅(qū)動(dòng)程序連接數(shù)據(jù)庫,并使用JavaBean組件,有效的避免了代碼的重復(fù),具體過程如下:packageexam;importjava.sql.*;publicclassExamBean{StringstrDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; //JDBC-ODBC驅(qū)動(dòng)程序StringstrDBUrl="jdbc:odbc:exam";privateConnectionconn=null;privateStatementstmt=null;ResultSetrs=null;//<!--注冊(cè)數(shù)據(jù)庫驅(qū)動(dòng)程序-->publicExamBean(){try{Class.forName(strDBDriver);} //<!—異常處理-->catch(java.lang.ClassNotFoundExceptione){System.err.println("exam():"+e.getMessage());}}//<!—建立數(shù)據(jù)庫連接及定義數(shù)據(jù)查詢-->publicResultSetexecuteQuery(Stringsql){rs=null;try{conn=DriverManager.getConnection(strDBDriver); //創(chuàng)建數(shù)據(jù)庫連接對(duì)象stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//支持?jǐn)?shù)據(jù)回滾rs=stmt.executeQuery(sql);}catch(SQLExceptionex){System.err.println("aq.executeQuery:"+ex.getMessage());}returnrs;}//<!—定義數(shù)據(jù)更新操作-->publicvoidexecuteUpdate(Stringsql){stmt=null;try{conn=DriverManager.getConnection(strDBDriver);stmt=conn.createStatement();stmt.executeUpdate(sql);stmt.close();}catch(SQLExceptionex){System.err.println("aq.executeQuery:"+ex.getMessage());}}//<!—關(guān)閉數(shù)據(jù)庫連接-->publicvoidcloseStmt(){try{stmt.close();}catch(SQLExceptione){e.printStackTrace();}}publicvoidcloseConn(){try{conn.close();}catch(SQLExceptione){e.printStackTrace();}}5.2腳本習(xí)慣說明無論是哪一種JSP實(shí)現(xiàn),在一定的階段,它們的某些版本都會(huì)出現(xiàn)給系統(tǒng)帶來危險(xiǎn)的安全隱患,即使JSP開發(fā)者遵從了安全編程慣例也無濟(jì)于事。例如,在Allaire的JRun的一個(gè)版本中,如果請(qǐng)求URL包含字符串“.jsp%00”類似地,Tomcat的一個(gè)版本也有一個(gè)安全隱患。只要請(qǐng)求類如下面的格式,它會(huì)讓攻擊者看到JSP頁面的源代碼:http://server/page.js%2570這里的騙局在于,%25是URL編碼的“%”,而70是“p”的十六進(jìn)制值。Web服務(wù)器不會(huì)調(diào)用JSP處理器(因?yàn)閁RL沒有以“.jsp”結(jié)尾),但靜態(tài)文件處理器會(huì)設(shè)法把URL映射到正確的文件名字(再一次解碼URL)。另外,許多Web服務(wù)器和JSP實(shí)現(xiàn)都帶有示范腳本,這些示范腳本常常包含安全隱患。在把服務(wù)器部署到一個(gè)不無惡意的環(huán)境(即Internet)之前,禁止對(duì)所有這些腳本的訪問有利于安全。簡(jiǎn)而言之,JSP開發(fā)者應(yīng)該清楚:在自己正在開發(fā)的平臺(tái)上,當(dāng)前有哪些安全隱患。訂閱BUGTRAQ和所有供應(yīng)商提供的郵件列表是跟蹤這類信息的好方法。6系統(tǒng)調(diào)試與測(cè)試6.1程序調(diào)試在設(shè)計(jì)系統(tǒng)的過程中,存在一些錯(cuò)誤是必然的。對(duì)于語句的語法錯(cuò)誤,在程序運(yùn)行時(shí)自動(dòng)提示,并請(qǐng)求立即糾正,因此,這類錯(cuò)誤比較容易發(fā)現(xiàn)和糾正。但另一類錯(cuò)誤是在程序執(zhí)行時(shí)由于不正確的操作或?qū)δ承?shù)據(jù)的計(jì)算公式的邏輯錯(cuò)誤導(dǎo)致的錯(cuò)誤結(jié)果。這類錯(cuò)誤隱蔽性強(qiáng),有時(shí)會(huì)出現(xiàn),有時(shí)又不出現(xiàn),因此,對(duì)這一類動(dòng)態(tài)發(fā)生的錯(cuò)誤的排查是耗時(shí)費(fèi)力的。6.2程序的測(cè)試6.2.1測(cè)試的重要性及目的(1)測(cè)試的重要性軟件的測(cè)試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測(cè)試學(xué)僅處于運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點(diǎn),即認(rèn)為軟件生命周期每一階段中都應(yīng)包含測(cè)試,從而檢驗(yàn)本階段的成果是否接近預(yù)期的目標(biāo),盡可能早的發(fā)現(xiàn)錯(cuò)誤并加以修正,如果不在早期階段進(jìn)行測(cè)試,錯(cuò)誤的延時(shí)擴(kuò)散常常會(huì)導(dǎo)致最后成品測(cè)試的巨大困難。事實(shí)上,對(duì)于軟件來講,不論采用什么技術(shù)和什么方法,軟件中仍然會(huì)有錯(cuò)。采用新的語言、先進(jìn)的開發(fā)方式、完善的開發(fā)過程,可以減少錯(cuò)誤的引入,但是不可能完全杜絕軟件中的錯(cuò)誤,這些引入的錯(cuò)誤需要測(cè)試來找出,軟件中的錯(cuò)誤密度也需要測(cè)試來進(jìn)行估計(jì)。測(cè)試是所有工程學(xué)科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計(jì)的那天起測(cè)試就一直伴隨著。統(tǒng)計(jì)表明,在典型的軟件開發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測(cè)試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個(gè)軟件生存期時(shí),測(cè)試的成本比例也許會(huì)有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測(cè)試工作。在實(shí)踐中,軟件測(cè)試的困難常常使人望而卻步或敷衍了事,這是由于對(duì)測(cè)試仍然存在一些不正確的看法和錯(cuò)誤的態(tài)度,這包括:①認(rèn)為測(cè)試工作不如設(shè)計(jì)和編碼那樣容易取得進(jìn)展難以給測(cè)試人員某種成就感;②以發(fā)現(xiàn)軟件錯(cuò)誤為目標(biāo)的測(cè)試是非建設(shè)性的,甚至是破壞性的,測(cè)試中發(fā)現(xiàn)錯(cuò)位是對(duì)責(zé)任者工作的一種否定;③測(cè)試工作枯燥無味,不能引起人們的興趣;④測(cè)試工作是艱苦而細(xì)致的工作;⑤對(duì)自己編寫的程序盲目自信,在發(fā)現(xiàn)錯(cuò)誤后,顧慮別人對(duì)自己的開發(fā)能力的看法。這些觀點(diǎn)對(duì)軟件測(cè)試工作是極為不利的,必須澄清認(rèn)識(shí)、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。(2)測(cè)試的目的如果測(cè)試的目的是為了盡可能多地找出錯(cuò)誤,那么測(cè)試就應(yīng)該直接針對(duì)軟件比較復(fù)雜的部分或是以前出錯(cuò)比較多的位置。①軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;②測(cè)試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤;③一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;④一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。這種觀點(diǎn)可以提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目,查找不出錯(cuò)誤的測(cè)試就是沒有價(jià)值的,事實(shí)并非如此。首先,測(cè)試并不僅僅是為了要找出錯(cuò)誤。通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便改進(jìn)。同時(shí),這種分析也能幫助我們?cè)O(shè)計(jì)出有針對(duì)性地檢測(cè)方法,改善測(cè)試的有效性。其次,沒有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。6.2.2測(cè)試的步驟與開發(fā)過程類似,測(cè)試過程也必須分步驟進(jìn)行,每個(gè)步驟在邏輯上是前一個(gè)步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個(gè)子系統(tǒng)組成,每個(gè)子系統(tǒng)又由若干個(gè)模塊組成。因此,大型軟件系統(tǒng)的測(cè)試基本上由下述幾個(gè)步驟組成:(1)模塊測(cè)試在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。(2)系統(tǒng)測(cè)試在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤。(3)驗(yàn)收測(cè)試在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯(cuò)誤。6.2.3測(cè)試的主要內(nèi)容為了保證測(cè)試的質(zhì)量,將測(cè)試過程分成幾個(gè)階段,即:代碼審查、單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。(1)單元測(cè)試單元測(cè)試集中在檢查軟件設(shè)計(jì)的最小單位—模塊上,通過測(cè)試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯(cuò)誤。(2)集成測(cè)試集成測(cè)試是將模塊按照設(shè)計(jì)要求組裝起來同時(shí)進(jìn)行測(cè)試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個(gè)別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。(3)確認(rèn)測(cè)試確認(rèn)測(cè)試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測(cè)試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。(4)系統(tǒng)測(cè)試軟件開發(fā)完成以后,最終還要與系統(tǒng)中其他部分配套運(yùn)行,進(jìn)行系統(tǒng)測(cè)試。包括恢復(fù)測(cè)試、安全測(cè)試、強(qiáng)度測(cè)試和性能測(cè)試等。單獨(dú)對(duì)系統(tǒng)的測(cè)試主要從以下幾方面入手:①功能測(cè)試:測(cè)試是否滿足開發(fā)要求,是否提供設(shè)計(jì)所描述的功能,是否用戶的需求都得到滿足。功能測(cè)試是系統(tǒng)測(cè)試最常用和必須的測(cè)試,通常還會(huì)以正式的軟件說明書為測(cè)試標(biāo)準(zhǔn)。②強(qiáng)度測(cè)試及性能測(cè)試:測(cè)試系統(tǒng)能力最高

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論