客戶關系管理系統_第1頁
客戶關系管理系統_第2頁
客戶關系管理系統_第3頁
客戶關系管理系統_第4頁
客戶關系管理系統_第5頁
已閱讀5頁,還剩82頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊客戶關系管理系統頁目錄TOC\o"1-3"\h\u31600第一章緒論 5148071.1系統的開發背景 5172501.1.1客戶關系管理系統的發展 5106101.1.2客戶關系管理系統的現狀 5154521.2系統實現的目標 632601.3系統開發的意義 614066第二章系統需求分析 75732.1系統的設計目標 7119732.2系統的可行性分析 7310782.2.1用戶群體與市場分析 7303472.2.2技術能力分析 7161132.2.3可行性分析總結 7249432.3系統設計的特點 75457第三章關鍵技術分析 8154273.1系統使用的技術 84063.1.1JSP編程技術 8156993.1.2Oracle開源數據庫的開發 9308273.1.3Java語言概述 1020223.1.4SSH框架 11133433.2系統架構設計 1322193.3開發環境與技術 15979第四章系統設計 16232034.1總體設計 1695454.1.1整體分析 1682654.1.2數據流分析 1615054.2詳細設計 17233004.2.1系統功能模塊設計 17278464.2.2系統E-R圖 18233404.2.3數據庫設計 2024422第五章系統實現 24299885.1數據庫連接 24231955.2用戶登錄管理 24195415.3營銷管理 2436375.3.1銷售機會管理 26192285.3.2客戶開發計劃 27301515.4客戶管理 28222315.5服務管理 29166105.6統計報表 3324945.7基礎數據 33200055.8權限管理 3518478第六章系統測試 36224736.1測試的作用和意義 37300866.2測試方法 3796196.3測試內容 37278576.4測試結果 37305466.5開發技巧和難點分析 3817357結束語 3913396致謝 4021259參考文獻 413956附錄一 423956附錄二 61緒論1.1系統的開發背景 1.1.1客戶關系管理系統的發展 隨著市場的開放,各個企業之間的競爭逐漸加劇,并且也從獨立的企業與企業之間的競爭發展成為了一個個群體之間的競爭。在這些群集中,不同的企業扮演著不同的角色,比如有原料供應商、制造商、分銷機構、零售商等。在企業與企業之間需要進行大量的信息交互、流程管理和對各種異常情況的處理,前者主要是針對一些動態的數據信息即供應鏈管理,后者則是更多的是一些靜態資料的管理及合作伙伴信息管理。對于普通的中小企業來說,資金和人力都有限,因此對于定制比較復雜的供應鏈管理來說是不現實的。中小企業更傾向于首先把散亂的資料、協議有效的管理起來,在一定程度上有效地提高工作效率和企業信息化建設的進程。因此,在這樣一種市場需求下,一款通用性強、功能實用、易于上手,面向全行業中小企業的企業管理系統就產生了。 企業的客戶資源才會是最重要的資源。在21世紀,客戶管理的道理網絡技術的充分支持。此時客戶也有條件要求企業尊重他們,并對服務的質量和及時性等方面提出更高要求。網絡時代到來,使得顧客可以有更大的選擇權,市場由原來的供方主導變為顧客主導。企業在處理與客戶的關系時,被動地處理顧客的抱怨、解答顧客的問題,顧客服務并未成為整體服務產品的核心。在這種情況下,企業越來越感覺到沒有信息技術支持的客戶信息管理系統力不從心。于是CRM系統便應運而生。并將成為21世紀企業競爭獲勝的通行證。何謂客戶關系管理,客戶關系管理時企業為贏得顧客的高度滿意,建立起與客戶的長期良好關系所開展的工作。本項目將詳細展示該系統的開發與實現。1.1.2客戶關系管理系統的現狀 對于企業來說最重要的是客戶,而這些客戶又分為了不同的客戶群體,例如有大客戶、小客戶,有正在聯系的客戶、有即將聯系的客戶等等。而且這些客戶有可能屬于屬于不同的行業,不同的區域地區。這時如何對這些客戶進行有效的管理,今兒指導企業對客戶的下一步行動,從而提升企業的價值,成了企業發展的關鍵所在。 傳統的客戶管理時采用人工手動記錄的方式,通過通信員將客戶的信息記錄在通信本上實現的。但是這種方式記錄非常慢,而且容易出錯,對于后期的查找和維護以為是非常困難的。不難看出,企業想在競爭激烈的市場中占有一席之地,就必須牢牢把握住客戶。 目前,企業管理系統已經逐步被企業所使用,功能也在不斷地完善。而客戶管理系統作為客戶管理中的一個重要組成部分,也是值得重視的。 鑒于以上的原因,通過對客戶管理的具體工作進行分析,編寫了客戶管理系統,用來方便的管理客戶方面的工作。 系統通過對各種信息的錄入、編輯、查詢、刪除等各個功能的實現,基本上可以滿足企業部門的需要,在很大的程度上提高客戶管理的效率和合理性,以及統計數據的真實性。 系統的功能和傳統管理模式相比較,毫無疑問會大大提高客戶信息管理的運作效率,輔助提高企業的管理水平,為減少差錯,節省人力,為以后統計各類信息提供有效的技術保障。 目前,客戶管理系統已經越來越多的應用到了很多企業之中,并起到了良好的效果。1.2系統實現的目標 整個客戶關系管理系統都要以客戶為中心,從而簡化與各類客戶關系的信息,如銷售、服務以及支持等等。在構建CRM系統時,還應當注意與其他管理系統的協調,例如人力資源管理系統、進銷存管理系統等等。例如現在系統的使用者是某中小型企業,系統通過該系統來改善現有客戶的管理混亂狀態,從而加強企業和客戶之間的聯系。 本系統主要對客戶信息的管理。一方面錄入客戶信息、并對客戶各方面的信息進行分析;另一方面根據客戶反饋的信息,及時統計各種相關數據并根據數據作出分析,發現問題并給出措施建議。 本課題就是要開發一個基于web的客戶管理系統。 依據客戶管理需要完成的內容,本系統要完成的主要功能分析如下: 1.客戶基本信息的錄入:主要包括基本資料、交費和任務的登記。 2.登錄的權限設置:對于不同的角色能夠賦予不同的權限。 3.營銷管理:為了更好地開發客戶,需要設置銷售機會管理模塊和客戶開發計劃管理。 4.客戶的服務管理:在建立了客戶聯系人之后,為了能夠更好地保證服務質量,減少客戶流失,需要對不同客戶的不同服務項目進行歸類管理。 5.統計報表:為了更好地查詢和分析數據,需要對客戶構成、客戶貢獻及客戶服務進行分析。1.3系統開發的意義客戶管理系統主要是將客戶關系管理、人物管理、客戶交費、投訴管理、查詢報表等多功能于一身的客戶管理軟件,操作簡單方便,界面美觀大方,能滿足企業進行客戶管理的需求,客戶關系管理系統通過準確、智能、高效、創新的營銷策略,協助企業不斷提高銷售額、提升客戶忠誠度。第二章系統需求分析2.1系統的設計目標 系統使用簡潔的框架結構,可以進行客戶的查看、信息錄入等操作,實現客戶的管理、客戶的統計分析、系統維護等模塊組成。以及一些常規的設置和數據庫管理等操作。2.2系統的可行性分析2.2.1用戶群體與市場分析 客戶管理系統將能為企業實現有效的客戶關系管理。它既是一種國際領先的、以“客戶價值”為中心的企業管理理論、商業策略和企業運作實踐,也是一種以信息技術為手段、有效提高企業利益、客戶滿意度、雇員生產力的管理軟件。 客戶管理系統是通過贏得、發展、保持有價值的客戶,增加企業收入,優化盈利性,提高客戶滿意度的商務戰略。通過獲得更多的客戶線索、更廣泛地共享客戶信息,協同工作,增加收益,提高給客戶的價值,實現企業和客戶的“雙贏”。 企業希望通過客戶管理系統能夠了解更多的客戶需求,從而為客戶提供個性化的產品和服務,提高客戶滿意度,與此同時能夠獲得更大的利潤。 客戶管理系統是一種旨在健全、改善企業與客戶之間的新型管理系統。指的是企業利用信息及時,通過有意義的交流來了解并影響客戶的行為,以提高客戶招攬率、客戶保持率、客戶忠誠度和客戶收益率??蛻艄芾硐到y是一種把客戶信息轉換成良好的客戶關系的可重復性過程。利用激勵因素來刺激客戶進一步消費,并激發其“感激”心理,對保持長期的銷售和提高客戶保持率十分重要。2.2.2技術能力分析 根據本系統的功能需求,采用JSP與開源的Oracle數據庫引擎開發。JSP將網頁邏輯與網頁設計和顯示分離,支持可充用的基于組件的設計,使基于Web的應用程序的開發變的迅速和容易。而Oracle作為一種快速的、多線程的多用戶和健壯的SQL數據庫服務器,根據第三方測試結果,在千萬級的數據環境中保持較高的執行速度。因此在技術層面上,是完全可行的。2.2.3可行性分析總結 綜合企業用戶群體的特點和不斷增長的需求,以及技術、市場前景趨勢等因素,客戶管理的信息化系統有很大的發展前途,而客戶管理系統則是建立在此基礎上的,因此本系統的開發是具有可行性的。2.3系統設計的特點 系統的設計上需要安全性和用戶操作的流暢性。因此要在對用戶的管理和資格審核環節做出限定,只有經過審核確認的會員才有權使用,而且需要對管理員進行不同的權限分配。搜索將在系統功能中占據重要的位置,可以使用多個屬性字段進行模糊搜索,并在搜索結果提供比較的通道。第三章關鍵技術分析3.1系統使用的技術 本系統采用Oracle數據庫,使用JavaEE進行開發,采取B/S架構。數據庫設計原則上符合第三范式,且規范,易于維護。程序需使用MVC模式,采用三層架構,保證系統的可維護性和可擴展性。主要基于Struts+Spring+hibernate框架進行開發。JSP編程技術JavaServerPage或簡稱為JSP是由Sun公司在Java語言上開發出來的一種動態網頁制作技術,它提供了一種建立動態網頁的簡單方法,并未開發人員提供了一個Server端框架,基于這個框架,開發人員可以綜合使用HTML,XML,Java語言以及其他腳本語言,靈活、快速抵創建和維護動態網頁,特別是目前的商業系統。作為JavaTM技術的一部分,JSP能夠快速的開發出給予所有Web服務器和應用服務器環境,獨立與平臺的應用程序,而且具有非常強的可伸縮性。同時,JSP把用戶界面從系統內容中分離出來,使得設計人員能夠在不改變底層動態內容的前提下改變網頁布局。JSP編程技術的優勢在于:1.一次編寫,到處運行。在這一點上Java比PHP更出色,除了系統之外,代碼不用做任何更改。2.JSP就是在HTML中嵌入Java代碼,所以在本質上JSP程序就是Java程序繼承了Java的一切優點。JSP程序有嚴格的Java語法和豐富的Java類庫支持。3.JSP頁面在服務器中都會被JSP編譯器編譯成對應的Servlet,所以就擁有Java跨平臺的優點,所有的JSP程序,無需改動就可以方便的遷移到其他操作系統平臺,這就是在其他動態腳本中無法想象的。4.JSP中可以使用JavaBean進行邏輯封裝,這樣就可以實現邏輯功能代碼的重用,從而大大提高系統的可重用性,同時也提高了程序的開發效率。5.JSP程序容易上手,如果有HTML和Java的基本知識,那么學習JSP程序就沒有任何難度。在JSP中可以使用Java眾多的開源工具也是其他的動態網頁語言無法比擬的。由于以上種種優勢JSP在眾多的動態語言中成為開發人員最喜歡的語言之一。JSP的運行原理:如果JSP頁面是第一次被請求運行,服務器的JSP編譯器會生成JSP頁面對應的Java代碼,并且編譯成字節碼文件。當服務器再次收到對這個JSP頁面請求的時候,會判斷這個JSP頁面是否被修改過,如果被修改過就會重新生成Java代碼并且重新編譯,而且服務器中的垃圾回收方法會把沒用的字節碼文件刪除。如果沒有修改過,服務器就會直接調用以前已經編譯過的字節碼文件。JSP在第一次訪問時由于要轉化和編譯,運行速度較慢,但是當第二次訪問該頁時,由于文件已經編譯成字節碼文件了,所以速度非常快。 JSP頁面的組成:通常來說,JSP頁面由兩部分組成:1.JSP頁面的靜態部分,如HTML,CSS標記等用來完成數據顯示和樣式。 2.JSP頁面的動態部分,如腳本程序,JSP標簽等,用來完成數據處理。 JSP運行環境:要運行JSP(注意,不是瀏覽JSP頁面),需要有支持JSP的服務器。這里分2種情況:一種是自身就支持JSP的服務器,如Jrun,Weblogic,JSWDK等;而另一種則是在不支持JSP的服務器上安裝JSP引擎的插件,如在IIS,Apache等服務器上安裝WebSphere,tomcat,Resin等插件。其中主流服務器是Weblogic和tomcat.Tomcat服務器是ApacheGroupJakarta小組開發的一個免費服務器軟件,適合于嵌入Apache中使用,而且,它的源代碼可以免費獲得,你可以自由地對它進行擴充。Tomcat服務器的兼容性很好,如WebLogic服務器采用其為Web服務器引擎,JBuilder將其作為標準的測試服務器,Sun公司也將其作為JSP技術應用的示例服務器。不足之處是它的配置比較麻煩,而且有一些安全性的問題沒有解決。但是Tomcat服務器有眾多大軟件公司的支持,而且服務器的性能穩定,其發展前景很好。Oracle開源數據庫的開發ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產品,是目前最流行的客戶/服務器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基于數據庫的一種中間件。ORACLE數據庫是目前世界上使用最為廣泛的數據庫管理系統,作為一個通用的數據庫系統,它具有完整的數據管理功能;作為一個關系數據庫,它是一個完備關系的產品;作為分布式數據庫它實現了分布式處理功能。但它的所有知識,只要在一種機型上學習了ORACLE知識,便能在各種類型的機器上使用它。Oracle特點:完整的數據管理功能:數據的大量性數據的保存的持久性數據的共享性數據的可靠性Java語言概述Java語言是由Sun公司開發的一種很新的計算機語言,它的歷史很短。Java語言的發展史是簡短而曲折的。由于它與網絡的良好結合,使得它在剛發布時就引起了轟動。因為Java語言沒有兼容低版本計算機語言的負擔,所以它在采用計算機新技術方面比傳統的計算機語言顯得更為純粹,Java語言的特點也更為鮮明。它的特點與其歷史發展是相關的。Java編程語言的風格十分接近C、C++語言。Java是一個純的面向對象的程序設計語言,它繼承了C++語言面向對象技術的核心。Java舍棄了C++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operatoroverloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據的內存空間,使得程序員不用再為內存管理而擔憂。在Java1.5版本中,Java又引入了泛型編程(GenericProgramming)、類型安全的枚舉、不定長參數和自動裝/拆箱等語言特性。Java不同于一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成二進制字節碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執行字節碼。從而實現了“一次編譯、到處執行”的跨平臺特性。不過,每次的執行編譯后的字節碼需要消耗一定的時間,這同時也在一定程度上降低了Java程序的運行效率。Java語言的特點:1.簡單性。Java語言是在C和C++計算機語言的基礎上進行簡化和改進的一種新型計算機語言。它去掉了C和C++種最難正確應用的指針和最難理解的多繼承技術等內容,通過垃圾自動回收機制簡化了程序內存管理,統一了各種數據類型在不同操作系統平臺上所占用的內存大小。2.網絡特性。Java語言是目前對網絡支持最全面,與網絡關系最密切的計算機語言之一。其對互聯網絡有著良好的支持。3.面向對象。Java語言在面向對象特性上比C++語言更為徹底的一種語言。面向對象模型是一種模擬人類社會和人解決實際問題的模型,因此更符合人們的思維習慣,而且容易擴充和維護。它的缺點是程序在開發的過程中往往會變得越來越龐大。4.平臺無關性。平臺無關性又稱為可移植性。Java語言的設計目標是讓其程序不用修改就可以在任何一種計算機平臺上運行。解決異構操作系統兼容性問題是一個很艱巨的任務。雖然Java語言并沒有完全實現最初的設計目標,但在這方面確實是同類語言中做的最好的。5.健壯性。魯棒性指的是程序執行的穩定性。Java語言的垃圾自動回收機制和異常處理機制以及它的簡單性在很大程度上保證了程序的魯棒性。6.安全性。在網絡上運行的Java語言是符合網絡安全協議的。在執行Java程序的過程中,Java虛擬機對程序的安全性進行檢測。一般說來,Java程序是安全的,它不會訪問或修改不允許訪問的內存或文件。7.多線程性。多線程性主要用來處理復雜事務或需要并行的事務。組成Java虛擬機的各個程序本身一般也采用多線程機制。采用多線程機制是提高程序運行效率的一種方法,但同時也增加了程序的設計難度。8.解釋性。Java語言是一種解釋執行的語言。這是Java語言的一個缺點,因為解釋執行的語言一般會比編譯執行的語言的執行效率要低。Java語言的優良特性使得Java應用具有無比的健壯性和可靠性,這也減少了應用系統的維護費用。Java對對象技術的全面支持和Java平臺內嵌的API能縮短應用系統的開發時間并降低成本。Java的編譯一次,到處可運行的特性使得它能夠提供一個隨處可用的開放結構和在多平臺之間傳遞信息的低成本方式。特別是Java企業應用編程接口(JavaEnterpriseAPIs)為企業計算及電子商務應用系統提供了有關技術和豐富的類庫。3.1.4SSH框架 集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。具體做法是:用面向對象的分析方法根據需求提出一些模型,將這些模型實現為基本的Java對象,然后編寫基本的DAO(DataAccessObjects)接口,并給出Hibernate的DAO實現,采用Hibernate架構實現的DAO類來實現Java類與數據庫之間的轉換和訪問,最后由Spring做管理,管理struts和hibernate。系統的基本業務流程是:在表示層中,首先通過JSP頁面實現交互界面,負責接收請求(Request)和傳送響應(Response),然后Struts根據配置文件(struts-config.xml)將ActionServlet接收到的Request委派給相應的Action處理。在業務層中,管理服務組件的SpringIoC容器負責向Action提供業務模型(Model)組件和該組件的協作對象數據處理(DAO)組件完成業務邏輯,并提供事務處理、緩沖池等容器組件以提升系統性能和保證數據的完整性。而在持久層中,則依賴于Hibernate的對象化映射和數據庫交互,處理DAO組件請求的數據,并返回處理結果。采用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離。這樣無論前端如何變化,模型層只需很少的改動,并且數據庫的變化也不會對前端有所影響,大大提高了系統的可復用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發效率。Struts2Struts對Model,View和Controller都提供了對應的組件。ActionServlet,這個類是Struts的核心控制器,負責攔截來自用戶的請求。Action,這個類通常由用戶提供,該控制器負責接收來自ActionServlet的請求,并根據該請求調用模型的業務邏輯方法處理請求,并將處理結果返回給JSP頁面顯示。Model部分:由ActionForm和JavaBean組成,其中ActionForm用于將用戶的請求參數封裝成ActionForm對象,該對象被ActionServlet轉發給Action,Action根據ActionForm里面的請求參數處理用戶的請求。JavaBean則封裝了底層的業務邏輯,包括數據庫訪問等。View部分:該部分采用JSP(或HTML、PHP……)實現。Struts提供了豐富的標簽庫,通過標簽庫可以減少腳本的使用,自定義的標簽庫可以實現與Model的有效交互,并增加了現實功能。對應上圖的JSP部分。Controller組件:Controller組件有兩個部分組成——系統核心控制器,業務邏輯控制器。系統核心控制器,對應上圖的ActionServlet。該控制器繼承了HttpServlet類,因此可以配置成標注的Servlet。該控制器負責攔截所有的HTTP請求,然后根據用戶請求決定是否要轉給業務邏輯控制器。業務邏輯控制器,負責處理用戶請求,本身不具備處理能力,而是調用Model來完成處理。對應Action部分。SpringSpring是一個開源框架,它由RodJohnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。目的:解決企業應用開發的復雜性功能:使用基本的JavaBean代替EJB,并提供了更多的企業應用功能范圍:任何Java應用簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小只有1MB多的JAR文件里發布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴于Spring的特定類??刂品崔D——Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務(transaction)管理)進行內聚性的開發。應用對象只實現它們應該做的——完成業務邏輯——僅此而已。它們并不負責(甚至是意識)其它的系統級關注點,例如日志或事務支持。容器——Spring包含并管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建——基于一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不應該被混同于傳統的重量級的EJB容器,它們經常是龐大與笨重的,難以使用??蚣堋猄pring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。HibernateHibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心接口分別加以介紹。Session接口:Session接口負責執行被持久化對象的CRUD操作(CRUD的任務是完成與數據庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以后會將HttpSession對象稱為用戶session。SessionFactory接口:SessionFactory接口負責初始化Hibernate。它充當數據存儲源的代理,并負責創建Session對象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當需要操作多個數據庫時,可以為每個數據庫指定一個SessionFactory。Configuration接口:Configuration接口負責配置并啟動Hibernate,創建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創建SessionFactory對象。Transaction接口:Transaction接口負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。Query和Criteria接口:Query和Criteria接口負責執行各種數據庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。系統架構設計該客戶管理系統采用B/S模式,服務器采用輕量級應用服務器Tomcat,該服務器運行時所占用的系統資源小,支持負載平衡與郵件服務等開發應用系統常用的功能。有著良好的跨平臺性和安全性,可以運行在包括windows、Linux、mac等操作系統上。用戶客戶端使用各種瀏覽器都能夠進行正常的瀏覽和操作。需要注意的是在程序的開發過程中,程序和路徑相關的要考慮到不同的操作系統的文件目錄結構。B/S結構,即Browser/Server(瀏覽器/服務器)結構,就是只安裝維護一個服務器(Server),而客戶端采用瀏覽器(Browse)運行軟件。它是隨著Internet技術的興起,對C/S結構的一種變化和改進。主要利用了不斷成熟的WWW瀏覽器技術,結合多種Script語言(VBScript、JavaScript等)和ActiveX技術,是一種全新的軟件系統構造技術。B/S三層體系結構采用三層客戶/服務器結構,在數據管理層(Server)和用戶界面層(Client)增加了一層結構,稱為中間件(Middleware),使整個體系結構成為三層。三層結構是伴隨著中間件技術的成熟而興起的,核心概念是利用中間件將應用分為表示層、業務邏輯層和數據存儲層三個不同的處理層次。三個層次的劃分是從邏輯上分的,具體的物理分法可以有多種組合。中間件作為構造三層結構應用系統的基礎平臺,提供了以下主要功能:負責客戶機與服務器、服務器與服務器間的連接和通信;實現應用與數據庫的高效連接;提供一個三層結構應用的開發、運行、部署和管理的平臺。這種三層結構在層與層之間相互獨立,任何一層的改變不會影響其它層的功能。B/S結構的三層體系結構圖如圖3-1所示。圖3-1B/S三層體系結構在B/S體系結構系統中,用戶通過瀏覽器向分布在網絡上的許多服務器發出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。而其余如數據請求、加工、結果返回以及動態網頁生成、對數據庫的訪問和應用程序的執行等工作全部由WebServer完成。隨著Windows將瀏覽器技術植入操作系統內部,這種結構已成為當今應用軟件的首選體系結構。顯然B/S結構應用程序相對于傳統的C/S結構應用程序是一個非常大的進步。B/S三層體系結構的主要優點:?B/S模式提供靈活的信息交流和信息發布服務。B/S模式借助Internet強大的信息發布與信息傳送能力可以有效地解決企業內部的大量不規則的信息交流?可共享性。單個應用服務器可以為處于不同平臺的客戶應用程序提供服務,在很大程度上節省了開發時間和資金投入;?較好的安全性。在這種結構中,客戶應用程序不能直接訪問數據,應用服務器不僅可控制哪些數據被改變和被訪問,而且還可控制數據的改變和訪問方式。?三層模式成為真正意義上的“瘦客戶端”,客戶端計算機不需要很高的硬件配置,也無需特殊的軟件配置要求,只要有web瀏覽器就可以使用系統。?B/S模式提供了一致的用戶界面:B/S模式的應用軟件都是基于Web瀏覽器的,這些瀏覽器的界面都很相似。對于無用戶交互功能的頁面,用戶接觸的界面都是一致的,從而可以降低軟件的培訓費用。?在B/S模式下,外部的用戶亦可通過通用的瀏覽器進行訪問。?B/S模式的結構易于擴展:由于Web的平臺無關性,B/S模式結構可以任意擴展,可以從一臺服務器、幾個用戶的工作組級擴展成為擁有成千上萬用戶的大型系統。?B/S模式具有更強的信息系統集成性:在B/S模式下,集成了解決企事業單位各種問題的服務,而非零散的單一功能的多系統模式,因而它能提供更高的工作效率。開發環境與技術系統開發平臺:MyEclipse8.5數據庫管理系統軟件:Oracle運行平臺:Win7Java開發包:JDK5.0以上Web服務器:Tomcat6.0本系統采用的MVC架構模式開發技術的具體技術:SSH框架顯示層:使用JSP技術開發數據訪問層:使用DAO模式開發持久層:使用Hibernate框架開發第四章系統設計4.1總體設計4.1.1整體分析系統整體主要流程圖,系統由登錄頁面開始,首先實現身份的識別,若和數據庫中的數據匹配,則實現登錄,根據系統的權限設置,允許登錄者對系統進行權限內操作。進入管理員界面后,系統包括了營銷管理、服務管理、客戶管理、庫存管理和郵件管理等功能模塊。系統整體流程示意圖如圖4-1所示。圖4-1系統整體主流程示意圖4.1.2數據流分析數據流圖(DFD)是一種圖形化技術,它描繪信息流和數據從輸入移動到輸出的過程中所經受的變換。在數據流圖中沒有任何的物理部件,它只是描繪數據在軟件中流動和被處理的邏輯過程。將信息處理功能和彼此之間的聯系自頂向下,逐層分解,從邏輯上精確地描述系統應具有的數據加工功能、數據輸入、數據輸出、數據存儲及數據來源和去向(外部實體)等項目。圖4-2系統數據流圖4.2詳細設計4.2.1系統功能模塊設計系統功能結構層次圖主要是介紹系統功能的大體層次結構,使讀者能夠對系統功能有一個更加直觀的把握。系統的軟件結構如圖4-3所示。圖4-3客戶管理系統功能能模塊圖4.2.2系統E-R圖系統總體E-R圖描述各個實體之間的相互關系,例如多個管理員都可以管理客戶信息,同樣多個客戶信息也可以被多個管理員管理,1個管理員可以管理多條服務信息,具體描述如圖4-4所示。圖4-4系統總體E-R圖系統管理員實體圖管理員信息包括了管理員密碼和用戶名以及編號,方便管理員登錄和操作設置。管理員擁有最高權限。系統管理員實體圖如圖4-5所示。圖4-5系統管理員實體圖營銷信息實體圖 營銷信息包括了創建人、客戶名稱、編號、客戶成功幾率、聯系人等重要信息,這些信息的管理關系著公司營銷的業績,是一項非常重要的模塊。營銷信息實體圖如圖4-6所示。圖4-6營銷信息實體圖客戶信息實體圖為了對客戶的信息進行有效地管理,用戶需要清楚客戶的名稱、狀態、等級、地區以及客戶經理。客戶信息實體圖如圖4-7所示。圖4-7客戶信息實體圖服務信息實體圖為了對服務進行更有效的管理,提高工作效率和工作質量,必須包括客戶服務信息管理。對于客戶信息的管理,需要了解服務創建人、服務創建時間、服務請求、服務類型等。服務信息實體圖如圖4-8所示。圖4-8服務信息實體圖4.2.3數據庫設計根據需求分析以及系統功能的需要,系統信息數據存放在MySQL數據表中。下面給出重要數據表的簡單描述。1.customer(客戶信息表)該表存儲了客戶的基本信息,主要用于客戶信息記錄。字段屬性描述如表4-1所示。列類型大小描述是否為空cust_idlong客戶id(自動生成)(主鍵)cust_noNumber客戶編號(唯一)否cust_namenvarchar2100客戶姓名(公司名稱)(唯一)否cust_regionNumber50客戶地區,基礎信息表外鍵是cust_manager_idNumber客戶經理編號(指派人)(user.Id)外鍵是cust_levelNumber50客戶等級是cust_satisfyNumber客戶滿意度是cust_creditNumber客戶信用度是cust_addrnvarchar2300客戶地址是cust_zipchar10客戶郵政編碼是cust_telnvarchar220客戶電話是cust_faxnvarchar220客戶傳真是cust_websitenvarchar250客戶網址是cust_licence_nonvarchar250營業執照注冊號是cust_chieftainnvarchar250法人是cust_bankrollNumber(100)注冊資金是cust_turnoverNumber(100)年營業額是cust_banknvarchar250開戶銀行是cust_bank_accountnvarchar250銀行帳號是cust_local_tax_nonvarchar250地稅登記號是cust_national_tax_nonvarchar250國稅登記號是cust_statusNumber2客戶狀態0:正常1:客戶流失預警是表4-1客戶信息表2.cst_service(服務信息表)該表存儲了記錄服務的基本信息,主要用于服務信息的記錄。字段屬性描述如表4-2所示。列類型大小描述是否為空svr_idNumber(客戶服務編號)系統自動生成(標識列、主鍵)否svr_typenvarchar220服務類型否svr_titlenvarchar2500服務概要否svr_cust_noNumber客戶編號(cst_customer.cust_id)是svr_cust_namenvarchar2100客戶名稱svr_statusnvarchar210服務狀態(0新創建、1已分配、2已處理、3已歸檔)否svr_requestnvarchar22000服務請求否svr_create_idNumber服務創建編號否svr_create_bynvarchar250服務創建人(客戶經理)svr_create_dateDate服務創建時間否svr_due_idNumber服務分配編號svr_due_tonvarchar2服務分配給的人是svr_due_dateDate服務分配時間是svr_dealnvarchar22000服務處理是svr_deal_idNumbersvr_deal_bynvarchar250服務處理人是svr_deal_dateDate服務處理時間是svr_resultnvarchar2500服務處理結果是svr_satisfyNumber服務滿意度是表4-2服務信息表3.sal_chance(營銷信息表)該表存儲了營銷信息的基本信息,主要是營銷信息的記錄,該表的字段屬性如表4-4。列類型大小描述是否為空chc_idnumber系統自動生成(標識列、主鍵)否chc_sourcenvarchar250機會來源是chc_cust_namenvarchar2100客戶名稱否chc_titlenvarchar2200概要(對銷售機會的簡要描述)否chc_ratenumber成功機率否chc_linkmannvarchar250負責人是chc_telnvarchar220負責人電話是chc_descnvarchar22000機會描述否chc_create__idnumber創建人編號外鍵(sys_user.user_id)否chc_create__bynvarchar250chc_create_datedate創建時間(默認為當前系統時間)否chc_due_idnumber指派給的人編號外鍵(sys_user.user_id)是chc_due_tonvarchar250chc_due_datedate指派時間是chc_statusnumber2銷售機會狀態為“已指派”、“未分配”或“已歸檔”。已指派或者叫開發中。已歸檔有兩種狀態:1、開發成功。2、開發失敗。未分配”1.“已指派”(2.開發成功3開發失?。┓癖?-3營銷信息表4.sys_user(用戶信息表)該表存儲了用戶信息的基本信息,主要是用戶信息的記錄,該表的字段屬性如表4-5所示。列類型大小描述是否為空user_idnumber系統自動生成(標識列、主鍵)否user_namenvarchar250用戶名否user_passwordnvarchar250用戶密碼否user_role_idnumber用戶權限(外鍵sys_role表role_id)(多對一)是user_flagnumber用戶狀態(1或0,0是禁用,1是正常)否表4-4用戶信息表第五章系統實現5.1數據庫連接Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。本系統使用Hibernate實現數據庫的連接,體現了一定的優越性。5.2用戶登錄管理用戶登錄需要驗證用戶的用戶名和密碼,從而保證用戶可見和可使用的資源。管理員和其他用戶的登錄界面是一樣的,單擊“登錄”按鈕后的調用相應函數,它根據用戶名和密碼,以及用戶種類將界面重定向到各類用戶的主界面上,登錄界面調用了LoginAction類的Login()函數判斷用戶是否已經登錄。5.3營銷管理營銷管理模塊包含銷售機會的管理和對客戶開發過程的管理,子用例圖如圖5-1所示。圖5-1子用例圖營銷的過程是開發新客戶的過程。對老客戶的銷售行為不屬于營銷管理的范疇。客戶經理有開發新客戶的任務,在客戶經理發現銷售機會時,應在系統中錄入該銷售機會的信息。銷售主管也可以在系統中創建銷售機會。所有的銷售機會由銷售主管進行分配,每個銷售機會分配給一個客戶經理。客戶經理對分配給自己的銷售機會制定客戶開發計劃,計劃好分幾步開發,以及每個步驟的時間和具體事項。制定完客戶開發計劃后,客戶經理按實際執行請跨功能填寫計劃中每個步驟的執行效果。在開發計劃結束的時候,根據開發的結果不同,設置該銷售機會為“開發失敗”或“開發成功”。如果開發客戶成功,系統自動創建新的客戶記錄。5.3.1銷售機會管理創建銷售機會使用者銷售主管、客戶經理輸入要素 創建銷售機會時需錄入以下信息:數據項說明輸入格式是否必填編號系統自動生成輸入框只讀機會來源文本客戶名稱文本是成功機率從0到100的數字數字是概要對銷售機會的簡要描述文本是聯系人文本聯系人電話文本機會描述文本是創建人自動填入當前登錄用戶,用戶不可更改輸入框只讀是創建時間當前系統時間輸入框只讀是表5-SEQ表格\*ARABIC1處理流程從頁面獲取輸入信息,在數據庫中創建新記錄。輸出要素提示“保存成功”,或報告相應錯誤。頁面必填項未填時不允許提交表單。修改銷售機會業務概述對未分配的銷售機會記錄可以編輯。使用者銷售主管、客戶經理輸入要素在銷售機會管理的列表頁面列出所有狀態為“未分配”的銷售機會記錄,可選擇一條進行編輯。在編輯頁面,可以對機會來源、客戶名稱、成功機率、概要、聯系人、聯系人電話、機會描述進行編輯。其他信息不可編輯。處理流程在列表頁面選擇“未分配”的銷售機會進行編輯,跳轉到編輯頁面;在編輯頁面填入更新的信息,提交表單,保存新的信息到數據庫。輸出要素提示“保存成功”,或報告相應錯誤。頁面必填項未填時不允許提交表單。刪除銷售機會業務概述狀態為“未分配”的銷售機會可以刪除。刪除時需要判斷當前登錄用戶為該銷售機會的創建人,否則不可刪除。使用者銷售主管、客戶經理輸入要素在“未指派”的銷售機會列表中選擇一項刪除。處理流程點選刪除操作后應提示“確認刪除?”,用戶選“確定”則執行刪除操作,否則不執行。輸出要素刪除成功后提示“刪除成功”。指派銷售機會業務概述銷售主管根據各客戶經理的負責分區、行業特長等對銷售機會進行指派。每個銷售機會指派給一個客戶經理,專事專人。指派成功后,銷售機會狀態改為“已指派”。使用者銷售主管輸入要素進行指派時需要選擇輸入客戶經理,系統自動輸入指派時間。兩相皆為必輸項。處理流程選擇要指派的銷售機會,察看銷售機會的詳細信息并選擇客戶經理進行指派。輸出要素指派成功后提示“指派成功”,該銷售機會狀態改為“已指派”(即“開發中”)。5.3.2客戶開發計劃對“已指派”的銷售機會制定開發計劃,執行開發計劃,并記錄執行結果??蛻糸_發成功還將創建新的客戶記錄。制定開發計劃業務概述客戶經理對分配給自己的銷售機會制定開發計劃。使用者客戶經理輸入要素在制定開發計劃時,應顯示出銷售機會的詳細信息??蛻艚浝砜梢酝ㄟ^新建計劃項,編輯已經有的計劃項,即刪除計劃項來針對一個銷售機會來制定客戶開發計劃。每個計劃項包括兩個輸入要素:日期和計劃內容,都是必輸項。日期的輸入格式為“2007-12-13”。編輯計劃項時,日期不可以編輯。處理流程首先選擇一“已指派”的銷售機會進行指定計劃的操作,然后制定計劃。輸出要素提交并更新當前頁面時在計劃項列表中顯示新建的計劃項。執行開發計劃業務概述完成客戶開發計劃的制定后,客戶經理開始按照計劃內容執行客戶開發計劃,并按時記錄執行結果。使用者客戶經理輸入要素對每個計劃項填寫執行效果,并保存。開發成功業務概述某個客戶開發計劃執行過程中或執行結束后如果客戶同意購買公司產品,已經下訂單或者簽訂銷售合同,則標志客戶開發成功??蛻糸_發成功時,需修改銷售機會的狀態為“開發成功”。并根據銷售機會中相應信息自動創建客戶記錄。使用者客戶經理輸入要素從列表中選擇一個狀態為“已指派”的銷售機會,點選“開發成功”操作。或者在執行計劃頁面點選“開發成功”操作。處理流程修改銷售機會的狀態為“開發成功”。根據銷售機會中相應信息(包括客戶名稱、聯系人和聯系人電話)自動創建客戶記錄。輸出要素操作成功后提示“操作成功”。開發失敗業務概述某銷售機會在確認客戶的確沒有采購需求后,或不具備開發價值時可認為“開發失敗”。使用者客戶經理輸入要素從列表中選擇一個狀態為“已指派”的銷售機會,點選“終止開發”操作。或者在執行計劃頁面點選“終止開發”操作。處理流程修改銷售機會的狀態為“開發失敗”。輸出要素操作成功后提示“操作成功”。5.4客戶管理客戶信息是公司資產的構成部分之一,應對其進行妥善保管、充分利用。每個客戶經理有責任維護自己負責的客戶信息,隨時更新。在本系統中,客戶信息將得到充分的共享,從而發揮最大的價值。有調查表明,公司的大部分利潤來自老客戶,開發新的客戶成本相對較高而且風險相對較大。因此我們有必要對超過6個月沒有購買公司產品的客戶應予以特殊關注,防止現有客戶流失。客戶管理的子用例圖如圖5-2所示。圖5-25.4.1客戶信息管理編輯客戶信息業務概述客戶經理可以編輯狀態為“正?!钡目蛻粜畔?。使用者客戶經理輸入要素有“*”標記的為必輸項。地區、客戶等級的候選項由數據字典維護;客戶經理候選項為所有狀態為“正?!钡南到y用戶。客戶滿意度和客戶信用度候選項的值都是1~5。處理流程從列表中選擇要編輯的用戶點選“編輯”按鈕,編輯特定客戶的信息,輸入新信息后點“保存”按鈕,返回列表頁面。輸出要素提示“保存成功”或報告錯誤。管理客戶聯系人業務概述每個客戶可以有多個聯系人。使用者客戶經理輸入要素新建聯系人時要輸入姓名、性別、職位和辦公電話,必輸。還可輸入手機號碼和備注信息。注意:聯系人是屬于某個客戶的。編輯聯系人時姓名、性別、職位和辦公電話為必輸項。處理流程選擇一個客戶,顯示其所有聯系人的列表,從中選擇進行編輯或刪除操作,還可以給該客戶添加聯系人。輸出要素客戶的聯系人信息。管理客戶交往記錄業務概述系統可以保存每個客戶的交往記錄。使用者客戶經理輸入要素客戶經理完成客戶服務后,需記錄和客戶交往的內容,特別是里程碑事件或有重大影響的事件。添加一個客戶交往記錄時需要記錄事件發生的日期、地點、概要和詳細信息,還可以填寫一個備注信息。交往記錄可以修改。但必輸項不能修改為空。處理流程首先選擇一個客戶,然后針對這個客戶維護交往記錄信息。輸出要素客戶的交往記錄數據。查看客戶歷史訂單業務概述客戶的歷史訂單數據是一個客戶重要的信息。本系統中不提供訂單管理的功能。訂單數據需要從銷售系統中讀取。讀取時只讀取訂單狀態為“已發貨”或“已回款”的數據(對應訂單記錄狀態為5或6)。使用者客戶經理輸入要素本系統根據客戶展示歷史訂單。處理流程首先選擇一個客戶,然后查看這個客戶的歷史訂單,再選擇一條歷史訂單查看訂單明細。輸出要素針對某一客戶顯示其全部已發貨或已回款的歷史訂單,分頁顯示,最新的訂單顯示在前面。需要在列表中顯示訂單的編號、下單日期、送貨地址、訂單狀態。對每個訂單可以查看明細。在訂單明細中需要顯示訂單的總金額。5.4.2客戶流失管理客戶流失預警業務概述系統自動檢查沒有下單的客戶,并在本系統中提出預警。訂單數據需要從銷售系統中獲得。使用者客戶經理輸入要素本功能由后臺程序完成,沒有輸入界面。處理流程客戶經理登錄本系統后在客戶流失管理中就可以看到。對客戶流失預警可以采取“暫緩流失”和“確認流失”兩種措施。。輸出要素客戶流失預警記錄。暫緩客戶流失業務概述對于系統自動產生的客戶流失預警,負責該客戶的客戶經理要第一時間采取措施,充分了解客戶流失的原因,并采取應對措施。然后在系統中使用“暫緩流失”功能點,填寫采取的措施。使用者客戶經理輸入要素處理流程選擇客戶流失預警記錄,添加加暫緩措施。輸出要素該客戶的狀態修改為“暫緩措施”。確認客戶流失業務概述如果確是存在不可逆轉的因素,客戶不可能再購買本公司的產品,則確認該客戶的流失。使用者客戶經理輸入要素在確認客戶流失時要填寫客戶流失的原因。處理流程選擇一條客戶流失預警,填寫客戶流失原因,確認客戶流失。輸出要素確認客戶流失后,該客戶的狀態修改為“已流失”。圖5-3待開發…5.5服務管理待開發…5.6統計報表圖5-5待開發…5.7基礎數據圖5-6數據字典管理業務概述對系統中需要已選擇的方式輸入的輸入項的候選項,統一通過數據字典來配置。比如服務類型、客戶等級等。使用者系統管理員輸入要素每個數據字典項包括系統自動生成的編號、類別(如:服務類型)、條目(如:咨詢)和值(如:1)構成。數據字典項有的能編輯。有的不可編輯,只能查看。對于可以編輯的數據字典項,可以修改其類別、條目和值。還可以設為不可編輯。在數據字典項的列表中,對可編輯的數據字典項顯示“編輯”和“刪除”的操作按鈕。處理流程輸出要素數據字典數據。查詢產品數據業務概述本系統中沒有產品數據,需要從銷售系統中獲得。使用者客戶經理輸入要素可以根據產品的名稱、型號、批次進行查詢。處理流程輸出要素列出符合查詢條件的產品信息。查詢庫存業務概述為了處理客戶服務的需要,本系統需要從銷售系統中讀取并查詢庫存數據。使用者客戶經理輸入要素可以根據產品和倉庫進行查詢。處理流程輸出要素列出符合查詢條件的庫存記錄。5.8權限管理與本系統相關的用戶和角色包括:系統管理員:管理系統用戶、角色與權限,保證系統正常運行。銷售主管:對客戶服務進行分配。創建銷售機會。對銷售機會進行指派。對特定銷售機會制定客戶開發計劃。分析客戶貢獻、客戶構成、客戶服務構成和客戶流失數據,定期提交客戶管理報告??蛻艚浝恚壕S護負責的客戶信息。接受客戶服務請求,在系統中創建客戶服務。處理分派給自己的客戶服務。對處理的服務進行反饋。創建銷售機會。對特定銷售機會制定客戶開發計劃。執行客戶開發計劃。對負責的流失客戶采取“暫緩流失”或“確定流失”的措施。高管:審查客戶貢獻數據、客戶構成數據、客戶服務構成數據和客戶流失數據。第六章系統測試6.1測試的作用和意義系統測試是系統的開發周期中一個十分重要的環節。盡管在系統開發周期的各個階段均采取了嚴格的技術審查,但依然難免會留下錯誤,如果沒有在投入運行前的系統測試階段被發現并糾正,問題遲早會在運行中暴露出來,到那時糾正錯誤將會付出更大的代價。系統測試占用的時間、花費的人力和成本占軟件開發的很大比例。統計表明,開發較大規模的系統,系統測試的工作量大約占整個軟件開發工作量的40%-50%.而對于一些特別重要的大系統,測試的工作量和成本更大,甚至超過系統開發其他各階段的總和的若干倍。6.2測試方法通過在計算機上直接運行被測程序,來發現程序中的錯誤。機器測試包括黑盒測試和白盒測試。黑盒測試也稱功能測試,將軟件看做黑盒子,在完全不考慮程序的內部結構和特性的情況下,研究軟件的外部特性。根據軟件的需求規格說明書測試用例,從程序的輸入和輸出特性上測試是否滿足設定的功能。白盒測試也稱結構測試,將軟件看做一個透明的白盒子,按照程序的內部結構和處理邏輯來選定測試用例,對軟件的邏輯路徑及過程進行測試,檢查與測試是否相符。6.3測試內容軟件的正常運行、關閉及退出。用戶登錄界面友好,可操作性及安全性能較好,能對不同管理級別者進行限制,以保證數據庫的安全。數據庫的可維護性好,數據的錄入、刪除及更改均能順利完成,并實現動態更新。數據查詢便捷,能對各種不同的查詢條件進行搜索,以找到最合適的答案。數據溢出、越界均能進行非法提示,以警告用戶正確使用。數據類型填寫錯誤時,系統能夠報錯。軟件對操作系統的兼容性良好,可移植性完好。6.4測試結果登陸成功(以管理員身份)進入主界面。開始對系統全方面的測試,在測試的過程中,對系統做出了在少量數據交換時的運行情況,在有大量數據交換時的數據處理能力、速度、是否發生數據錯誤等。軟件在運行、關閉及退出時保存記錄的提示功能基本完成,在軟件的不斷啟動關閉過程中沒有出現死機、程序執行效率降低等各種不良現象,功能的實現較為完善。用戶登錄界面友好,但軟件界面的色彩選擇、搭配對于長期工作者而言仍然會產生眼部不適感??刹僮餍约鞍踩阅茌^高,能完成對不同管理級別者的限制工作,可以對軟件涉及到的機密數據進行保護而無法保證數據庫的基本安全。數據庫的可維護性好,數據的錄入能順利完成,并能實現動態更新,刪除和修改也能順利完成。數據查詢比較全面,能按系統設定的查詢條件進行搜索,并可以進行模糊查詢以找到合適的答案。數據溢出、越界基本未能進行非法提示,以警告用戶正確使用。對用戶的非正常操作方式也未能提出警告。數據類型填寫錯誤時,系統有報錯功能,在數據輸入錯誤時,使用者能夠知道錯誤所在。6.5開發技巧和難點分析jsp頁面亂碼問題Java的內核和class文件是基于unicode的,這使Java程序具有良好的跨平臺性,但也帶來了一些中文亂碼問題的麻煩。原因主要有兩方面,Java和JSP文件本身編譯時產生的亂碼問題和Java程序于其他媒介交互產生的亂碼問題。首先Java(包括JSP)原文件中很可能有中文,而Java和JSP源文件的保存方式是基于字節流的,如果Java和JSP編譯成class文件過程中,使用的編碼方式與源文件的編碼不一致,就會出現亂碼?;谶@種亂碼,建議在Java文件中盡量不要寫中文(注釋部分不參與編譯,寫中文沒關系),如果必須寫的話,盡量手動帶參數-encodingGBK或-encodinggb2312或-encodingUTF-8編譯;在JSP文件加上<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>就能基本解決亂碼問題。圖形驗證碼問題大部分Web程序都不會局限于局域網,而是在整個互聯網都可以訪問。這時面對的用戶群都非常廣了,而這些用戶當中可能會有一些“破壞分子”。對于他們來說攻擊手段非常多,但是最簡單同時最有效的就是大量的惡意注冊和登錄,例如在一秒鐘之內注冊5000個用戶。這時系統的大部分資源都消耗殆盡,從而導致系統崩潰。既然有攻擊手段,肯定會有相應的防御手段。防止用戶大量惡意注冊和登錄最有效的辦法就是生產圖形驗證碼。用戶只有正確輸入圖形驗證碼上顯示的數字或者字母才能繼續進行注冊或者登錄。這樣用戶就無法再短時間內,多次進行注冊和登錄了。用戶權限問題就是用戶的權利,即用一個賬號登錄后,有些功能可以使用,有些功能無法使用,這就是管理員對其設置的權限,只有符合權限的人才可以使用對應的功能。結束語經過三個多月的設計,一個基本完整客戶關系管理系統設計完成了。設計完此畢業設計,首先讓自己對Java這門課的掌握有了進一步的加深和鞏固,能夠更熟練的應用各種功能,特別是運用它來完成設計網頁。感覺到Java在網頁設計方面的應用的廣泛和它的功能之精湛。通過對客戶關系管理系統設計,對Java的進一步了解,對Java這門課有了很大的信心和勇氣,在設計之前一直不相信自己,萎萎縮縮,都認為自己沒有辦法做成自己預期的效果,現在對自己的作品稍微滿意,對自己有了一定的肯定,明白做事是重在有心,有志者竟事成!信心是成功的一半,相信自己在今后的學習當中能夠將Java做的更加完美。但是由于畢業設計時間較短,所以該設計還有許多不盡如人意的地方,比如界面不夠美觀,渲染不夠完善等。致謝四年的大學生活即將結束,在完成畢業論文這最后一份作業的時刻,我內心既興奮,又懷念。興奮的是我即將順利走完大學四年的美好時光,并且有機會繼續深造,懷念的是大學期間的點點滴滴。經過一學期的努力,我的論文在焦老師的悉心指導和嚴格要求下已完成,從課題選擇和論文結構設計各方面,焦老師都給了極大的幫助。在此,我鄭重感謝焦老師給予我這次寶貴的學習機會,能夠在畢業實習期間完成畢業論文并繼續研究該技術是我的榮幸。同時,感謝老師在論文的具體撰寫過程中的耐心指導和幫助,他的真摯情感和的實際援助幫我渡過了很多難關。感謝大學期間的每位任課老師的無私奉獻,課堂上的認真負責讓我對學習有了新的認識,課后的真誠交流更是給了我極大的鼓勵。大學老師是我成長最好的向導。他們的教育使我較全面的掌握了專業知識,并能夠在畢業論文中得以應用。在此,特別感謝信息學院電子信息工程系各位老師的辛勤付出。四年前,我只身一人來西安求學,而在即將離開大學校園時,我已擁有很多朋友,他們是我最大的財富。感謝室友給我創造了家的歸屬感。感謝以及祝福我們的朋友,感謝他們在四年大學生活中對我的包容,在困難時刻給了我強大的精神支柱。祝愿所有的同學、朋友、老師都能夠有美好的前程!參考文獻[1]蔣衛祥.CRM系統論述[M].北京:北京大學出版社.[2]李鐘尉,陳丹丹等.Java項目開發案例全程實錄(第2版)[M].明日科技出版社

溫馨提示

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

最新文檔

評論

0/150

提交評論