基于java網(wǎng)絡(luò)聊天室設(shè)計(jì)_第1頁
基于java網(wǎng)絡(luò)聊天室設(shè)計(jì)_第2頁
基于java網(wǎng)絡(luò)聊天室設(shè)計(jì)_第3頁
基于java網(wǎng)絡(luò)聊天室設(shè)計(jì)_第4頁
基于java網(wǎng)絡(luò)聊天室設(shè)計(jì)_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、濱江學(xué)院畢業(yè)論文(設(shè)計(jì))題 目 基于JAVA網(wǎng)絡(luò)聊天室設(shè)計(jì) 學(xué)生姓名郭勝航 學(xué) 號 20072334069 院 系濱江學(xué)院電子工程系專 業(yè)通信工程指導(dǎo)教師 張艷萍 職 稱 教授 二一一年五月 三十日目 錄目錄I第1章緒論1研究背景1研究目的、內(nèi)容及要求2目的2內(nèi)容2要求2第2章系統(tǒng)開發(fā)環(huán)境與工具的選擇3開發(fā)環(huán)境的選擇3開發(fā)工具的選擇3開發(fā)技術(shù)的選擇4第3章需求分析5項(xiàng)目概述5產(chǎn)品描述5產(chǎn)品功能6功能需求6用戶注冊6用戶登入7公聊7私聊8發(fā)送表情8聊天記錄9系統(tǒng)消息9字體屬性設(shè)置9用戶退出10第4章概要設(shè)計(jì)11目的11運(yùn)行環(huán)境11條件與限制11體系結(jié)構(gòu)概述11功能設(shè)計(jì)12用戶注冊124.5.2

2、用戶登入12公聊13私聊14表情14字體設(shè)置15記錄保存15系統(tǒng)消息16第5章詳細(xì)設(shè)計(jì)175.1 客戶端注冊17功能描述17綜合設(shè)計(jì)175.2 登入20功能描述205.3 公聊215.3.1 功能描述225.3.2 綜合設(shè)計(jì)22、私聊225.4.1 功能描述225.4.2 綜合設(shè)計(jì)22發(fā)送系統(tǒng)消息23功能描述23綜合設(shè)計(jì)23字體設(shè)置24功能描述24綜合設(shè)計(jì)24發(fā)送表情25功能描述25綜合設(shè)計(jì)25記錄保存25功能概述25綜合設(shè)計(jì)26功能邏輯實(shí)現(xiàn)26邏輯功能描述26綜合設(shè)計(jì)26第6章系統(tǒng)測試27測試舉例27測試程序登錄界面27測試程序主界面27測試程序退出27測試項(xiàng)目27單元測試28組合測試28確

3、認(rèn)測試28系統(tǒng)測試28用戶驗(yàn)收測試29測試方法29第7章缺陷與完善307.1 軟件存在的問題307.2 使界面變得更加美觀30結(jié)論31參考文獻(xiàn)32致謝33ABSTRACT34基于JAVA網(wǎng)絡(luò)聊天室設(shè)計(jì)郭勝航 20072334069南京信息工程大學(xué)濱江學(xué)院通信工程專業(yè),南京 210044摘要:網(wǎng)絡(luò)聊天室是一種應(yīng)用廣泛網(wǎng)絡(luò)聊天方式,操作簡單,功能豐富,是教學(xué)和學(xué)習(xí)面向?qū)ο蟮木幊趟枷氲睦硐腠?xiàng)目。可以使用多種編程語言設(shè)計(jì)和開發(fā)出功能完善的網(wǎng)絡(luò)聊天室。本畢業(yè)設(shè)計(jì)論文介紹用JAVA語言設(shè)計(jì)和實(shí)現(xiàn)一個網(wǎng)絡(luò)聊天室的過程,本系統(tǒng)采用C/S架構(gòu)設(shè)計(jì),整個項(xiàng)目分為服務(wù)器端和客戶端。使用了最新的Java 2標(biāo)準(zhǔn)Swi

4、ng組件,開發(fā)出簡潔美觀和布局合理的用戶和服務(wù)器界面;利用Socket網(wǎng)絡(luò)開發(fā)技術(shù)實(shí)現(xiàn)客戶端和服務(wù)器端的連接訪問,實(shí)現(xiàn)網(wǎng)絡(luò)功能;通過對數(shù)據(jù)流操作的合理設(shè)計(jì),實(shí)現(xiàn)信息傳遞、接受和數(shù)據(jù)保存。同時(shí),采用多線程、多任務(wù)的設(shè)計(jì)思想,開發(fā)出性能穩(wěn)定,功能全面的服務(wù)器。完整的實(shí)現(xiàn)系統(tǒng)的功能。通過本次畢業(yè)設(shè)計(jì)可以學(xué)到如何應(yīng)用和實(shí)現(xiàn)面向?qū)ο蟮母鞣N方法,如何使用Eclipse集成開發(fā)環(huán)境來創(chuàng)建和開發(fā)項(xiàng)目,從而完成系統(tǒng)的完整開發(fā)。關(guān)鍵詞:聊天室;Java;應(yīng)用程序;Swing組件;Socket技術(shù)第1章 緒 論1.1 研究背景根據(jù)當(dāng)前網(wǎng)絡(luò)的需求,網(wǎng)絡(luò)聊天越來越受各種網(wǎng)民所青睞。因此開發(fā)網(wǎng)絡(luò)聊天是相當(dāng)有必要,而且在網(wǎng)

5、站內(nèi)增加聊天功能,它不僅可以提高網(wǎng)站的訪問量,同時(shí)可以留著訪客,更重要的是讓訪客透過聊天室實(shí)時(shí)的互相交流。而本人也學(xué)習(xí)過JAVA語言,對網(wǎng)絡(luò)編程也較有興趣,為了更好的考驗(yàn)自己對JAVA語言的掌握程度,本人就決定以基于JAVA網(wǎng)絡(luò)聊天室設(shè)計(jì)為畢業(yè)設(shè)計(jì),希望通過這一次的能進(jìn)一步提高本人的網(wǎng)絡(luò)開發(fā)編程的能力。同時(shí)網(wǎng)絡(luò)聊天室也是網(wǎng)絡(luò)應(yīng)用中出現(xiàn)較早的應(yīng)用軟件,其開發(fā)技術(shù)和設(shè)計(jì)思想都已經(jīng)得到成熟的發(fā)展,并且已經(jīng)具有許多成功的案例。在開發(fā)技術(shù)上已經(jīng)沒有什么技術(shù)難題,并且具有廣泛的應(yīng)用和市場空間。發(fā)達(dá)國家的3G許可證發(fā)放工作都已經(jīng)基本完成,隨著3G技術(shù)標(biāo)準(zhǔn)、網(wǎng)絡(luò)設(shè)備、終端和業(yè)務(wù)的逐步成熟,3G許可證的發(fā)放已經(jīng)

6、開始從歐美地區(qū)向亞洲、非洲和中東歐地區(qū)轉(zhuǎn)移。日韓是全球3G發(fā)展最為成熟的地區(qū),截止到2006年3月底,日本和韓國的3G用戶數(shù)分別占總移動用戶數(shù)的53%和94%。日本W(wǎng)CDMA用戶占全球WCDMA用戶的44%。韓國CDMA2000 1X EV-DO用戶占全球EV-DO用戶的52%。西歐移動通信市場整體發(fā)展比較成熟,移動用戶普及率處于飽和狀態(tài)。截止到2004年底,西歐移動用戶3.52億,普及率高達(dá)90.1%,個別國家像英國、丹麥、希臘等移動用戶普及率達(dá)到100%。到2007年4月底,我國移動用戶數(shù)為億以上。從調(diào)查中可以得知,移動上網(wǎng)用戶顯著增多,對網(wǎng)絡(luò)聊天室的功能提出更多的要求和功能1。研究目的、

7、內(nèi)容及要求1.2.1目的網(wǎng)絡(luò)聊天室是一項(xiàng)實(shí)用性強(qiáng),并且應(yīng)用廣泛的一個應(yīng)用,雖然其功能簡單,但是在其開發(fā)技術(shù)和過程中,能夠充分學(xué)習(xí)和使用JAVA2的技術(shù),如:開發(fā)各界面(登入、注冊、公聊、私聊等界面)使用 Swing組件技術(shù),實(shí)現(xiàn)網(wǎng)絡(luò)的功能使用 Socket/Server Socket 技術(shù),并且在開發(fā)過程當(dāng)中,能充分的使用和體會面向?qū)ο蠹夹g(shù)的原理和方法。 所以該項(xiàng)目可以使自己在JAVA技術(shù)方面得到全面應(yīng)用,使自己項(xiàng)目開發(fā)能力的一個很好體現(xiàn)。1.2.2內(nèi)容一個網(wǎng)絡(luò)聊天室的運(yùn)行,首先是要有一個完整穩(wěn)定的服務(wù)器端,并且擁有多個客服端??头艘哂袑?shí)現(xiàn)用戶注冊和用戶登入,在登入成功后,要顯示出公聊界面

8、,實(shí)現(xiàn)聊天功能并且能夠發(fā)送表情和保存聊天內(nèi)容和顯示聊天記錄等功能,在新用戶上線和用戶下線時(shí)要更新每個客戶端在線用戶列表名,并且可以和在線的用戶實(shí)現(xiàn)一對一的私聊功能。在服務(wù)器端可以實(shí)現(xiàn)不斷的監(jiān)聽客戶的連接,并且根據(jù)客戶端發(fā)送過來的不同信息,如注冊信息、登入信息、公聊信息、私聊信息、退出信息等,服務(wù)器端要作出不同的響應(yīng),根據(jù)登入時(shí)發(fā)送來的用戶名和口令檢測是否合法用戶等2。要求主要涉及圖形用戶界面的開發(fā)、布局和輸入/輸出流數(shù)據(jù)的控制,并且要通過Socket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)功能,整個程序采用Swing圖形界面,要求熟練掌握J(rèn)ava2圖形用戶界面的事件處理及部分Swing組件的使用。在代碼的編寫上要充分體現(xiàn)

9、Java面向?qū)ο箝_發(fā)思想和多態(tài)性,提高代碼的重用性和高效性,要深入理解接口的作用和內(nèi)部對象等特性等。第2章系統(tǒng)開發(fā)環(huán)境與工具的選擇開發(fā)環(huán)境的選擇在進(jìn)行開發(fā)之前,首先決定的第一個問題就是,該使用什么開發(fā)環(huán)境來編寫該系統(tǒng)?以目前常用的開發(fā)語言來講有C/C+、.NET技術(shù),JAVA、 Visual Basic幾種。還有Eclipse,、Borland JBuilder等,這些并不是程序語言,而是程序語言在建構(gòu)程序時(shí)的“集成開發(fā)工具”,不過它們在開發(fā)設(shè)計(jì)的過程中也占有相當(dāng)重要的角色,因?yàn)檫x用正確的集成開發(fā)工具,可以加速程序設(shè)計(jì)的進(jìn)行、測試與排錯,因而對整體進(jìn)度具有決定性的影響?;谝韵聨c(diǎn),選擇JAV

10、A語言開發(fā)技術(shù)。1、就執(zhí)行平臺而言,必須考慮的問題之一是用戶可能使用的操作系統(tǒng)。用戶可能使用的是Windows Linux。JAVA語言具有平臺無關(guān)性,可以不需要任何修改就可以運(yùn)行在支持JAVA的任何計(jì)算機(jī)上。2、JAVA的Swing 組件開發(fā)技術(shù)可以開發(fā)豐富的圖形界面,并且Swing API類提供了豐富的外部接口和方法,可以方便實(shí)現(xiàn)系統(tǒng)功能。3、就項(xiàng)目開發(fā)而言,純粹的面向?qū)ο?,加上?shù)量巨大的類所提供的方法(函數(shù))庫的支持,使得利用Java開發(fā)各種應(yīng)用程序,可以說是易如反掌。此外,在程序除錯、修改、升級和增加新功能等方面,因其面向?qū)ο蟮奶匦裕沟眠@些維護(hù)也變得非常容易。4、Java支持內(nèi)在的多

11、線程運(yùn)行,提供分布式的并發(fā)機(jī)制,運(yùn)行效率高。5、異常處理,為了使Java程式更穩(wěn)定、更安全,Java引入了異常處理機(jī)制。能夠在程序中產(chǎn)生異常情況的地方,執(zhí)行相對應(yīng)的處理,不至于因突發(fā)或意外的錯誤造成執(zhí)行中斷或是死機(jī)。通過這種異常處理,不僅能夠清晰地掌握整個程序執(zhí)行的流程,也使得程序的設(shè)計(jì)更為嚴(yán)謹(jǐn)。6、高性能,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯成機(jī)器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個過程。翻譯目標(biāo)代碼的速度與C/C+的性能沒什么區(qū)別。7、網(wǎng)絡(luò)功能,Java可以說是借助因特網(wǎng)而重獲新生的,自然具備編寫網(wǎng)絡(luò)功能的程序。不論是一般因特網(wǎng)局域網(wǎng)的程序,如Socket、Email、

12、基于Web服務(wù)器的Servlet、JSP程序,甚至連分布式網(wǎng)絡(luò)程序,如CORBA、RMI等的支持也是非常豐富的,使用起來也很方便。8、源回收處理,GarbageCollection是由JVM對內(nèi)存實(shí)行動態(tài)管理的。程序需要多少內(nèi)存、哪些程序的內(nèi)存已經(jīng)不使用了,需要釋放歸還給系統(tǒng),這些煩瑣且危險(xiǎn)的操作全部交由JVM去管理。讓我們能夠更專心地編寫程序,而不需要擔(dān)心內(nèi)存的問題。內(nèi)存的統(tǒng)一管理,對于跨平臺也有相當(dāng)大的幫助3。開發(fā)工具的選擇Java的開發(fā)工具很多,而且各有優(yōu)缺點(diǎn),Eclipse是一個開放可擴(kuò)展的集成開發(fā)環(huán)境(IDE)。它不僅可以用于Java的開發(fā),通過開發(fā)插件,它可以構(gòu)建其他的開發(fā)工具。E

13、clipse是開放源代碼的項(xiàng)目,并可以免費(fèi)下載。支持最新的Java標(biāo)準(zhǔn),并且縮短了開發(fā)周期。一直以其友好的集成開發(fā)環(huán)境在業(yè)界受到廣泛的贊譽(yù),這也是Eclipse一直是廣大程序員最喜愛的Java開發(fā)工具的原因之一。Eclipse的可視化集成開發(fā)環(huán)境包括文本編輯器、工程創(chuàng)建工具、對象瀏覽器和調(diào)試器等。用戶可以在集成開發(fā)環(huán)境中創(chuàng)建工程和打開工程,建立、打開和編輯文件,并可以編譯、運(yùn)行和調(diào)試應(yīng)用程序。可以說在Eclipse集成開發(fā)環(huán)境中開發(fā)Java程序,快速而且高效。其主要特點(diǎn)如下:。4。2.3開發(fā)技術(shù)的選擇本課題選擇了java Socket技術(shù)開發(fā)網(wǎng)絡(luò)聊天室。什么是socket? socket是一種

14、用于表達(dá)兩臺機(jī)器之間連接“終端”的軟件抽象。對于一個給定的連接,在每臺機(jī)器上都有一個socket,你可以想象一個虛擬的電纜工作在兩臺機(jī)器之間,“電纜”插在兩臺機(jī)器的socket上。當(dāng)然,物理硬件和兩臺機(jī)器之間的“電纜”這些連接裝置都是未知的,抽象的所有目的就是為了讓我們不必了解更多的細(xì)節(jié)。簡單的說,一臺計(jì)算機(jī)上的socket同另一臺計(jì)算機(jī)通話創(chuàng)建一個通信信道,程序員可以用這個信道在兩臺機(jī)器之間發(fā)送數(shù)據(jù)。當(dāng)你發(fā)送數(shù)據(jù)時(shí),TCP/IP協(xié)議棧的每一層都給你的數(shù)據(jù)里添加適當(dāng)?shù)膱?bào)頭。有個好消息是java語言隱藏了所有這些細(xì)節(jié),這也是為什么他們有時(shí)被叫做“流socket”5。思考一下socket像電話聽筒

15、一樣在電話的任意一端你和我通過一個專門的信道來進(jìn)行通話和接聽。會話將一直進(jìn)行下去直到我們決定掛斷電話(除非我們使用蜂窩電話),除非我們掛斷電話,否則我們各自的電話線路都會占線。如果你需要在兩臺機(jī)器之間進(jìn)行通訊而不使用高級機(jī)制像ORBs(以及CORBA, RMI, IIOP等等),socket比較適合你。Socket的底層機(jī)制則相當(dāng)棘手。幸運(yùn)的是,java平臺給我們一些雖然簡單但是相當(dāng)強(qiáng)大的高層抽象以至于我們創(chuàng)建和使用socket更加容易一些。一般而言,java socket有下面兩種類型:1 TCP socket(由Socket類實(shí)現(xiàn),下面的章節(jié)我們將對其討論)2 UDP socket(由Da

16、tagramSocket類實(shí)現(xiàn))TCP和UDP扮演同樣的角色,但是實(shí)現(xiàn)是不同的。兩者都接收傳輸協(xié)議數(shù)據(jù)包并把它們傳遞到表示層。TCP把信息分解成數(shù)據(jù)包(datagrams)并在接收端重新組裝起來。它還對丟失的數(shù)據(jù)包進(jìn)行重新傳輸?shù)恼埱?。TCP減少了上層的擔(dān)憂。UDP沒有組裝和重傳請求的功能。它只是傳輸數(shù)據(jù)包。更高層的層必須確保信息的完整性以及組合順序的正確性6。第3章 需求分析3.1項(xiàng)目概述3.1.1產(chǎn)品描述人們?nèi)粘I钪性絹碓蕉嗟厥褂眠@項(xiàng)新的技術(shù)來為自己的工作和學(xué)習(xí)服務(wù)。一個操作簡單、界面友好、運(yùn)行穩(wěn)定的網(wǎng)絡(luò)聊天室對于小型局域網(wǎng)內(nèi)的用戶可以起到很好的交流作用。本聊天室,所謂聊天室就是一個可以讓

17、許多用戶同時(shí)互相通信的網(wǎng)上園地,個人用戶可以通過網(wǎng)上聊天室將自己融入整個主流社會中。由于目前上網(wǎng)的一般都是具有高學(xué)歷的新一代創(chuàng)業(yè)者,因此,在網(wǎng)上聊天室這個虛擬的社會中,可以結(jié)交各層次各地方的朋友,從而為自己獲取更多的知識和更多的閱歷。該小聊天室是為許多喜愛上網(wǎng)聊天的朋友開發(fā)設(shè)計(jì)的,希望能在現(xiàn)有的眾多聊天室中給大家多一種的選擇。和許多大型的網(wǎng)絡(luò)聊天室相比該小聊天室比較簡單,但能實(shí)現(xiàn)聊天的基本功能,點(diǎn)對多聊天,點(diǎn)對點(diǎn)聊天等,基于時(shí)間和技術(shù)的原因,很遺憾傳送文件的功能尚未實(shí)現(xiàn)。本聊天室主要由注冊界面、登錄界面、聊天室界面、私聊界面、功能設(shè)置界面等構(gòu)成。整個設(shè)計(jì)簡潔明了、實(shí)用,使用簡單??蛻舳说侨胗脩?/p>

18、登入用戶注冊通信公聊私聊功能設(shè)置字體顏色字體類型字體大小表情記錄保存公聊記錄添加文字圖3-1 客戶端結(jié)構(gòu)圖服務(wù)器監(jiān)聽請求發(fā)送系統(tǒng)消息顯示登入情況監(jiān)管客戶信息圖3-2 服務(wù)器結(jié)構(gòu)圖3.1.2產(chǎn)品功能本項(xiàng)目具有以下主要功能5客戶端: 用戶注冊功能,實(shí)現(xiàn)用戶的登入用戶名注冊和個人信息,并存入服務(wù)器數(shù)據(jù)庫中。 用戶登入功能,實(shí)現(xiàn)合法注冊用戶的登入。 公聊功能,實(shí)現(xiàn)用戶和在線的所有用戶聊天方式。 私聊功能,實(shí)現(xiàn)用戶和在線的其他用戶一對一的聊天方式。 查看聊天記錄,實(shí)現(xiàn)用戶查看已聊天的歷史聊天內(nèi)容。 發(fā)送表情和設(shè)置聊天內(nèi)容字體,并可以設(shè)置字體顏色等。服務(wù)端: 可以不斷的監(jiān)聽客戶端請求 顯示登入客戶的信息

19、發(fā)送系統(tǒng)消息3.2功能需求3.2.1用戶注冊需求描述:用戶填寫系統(tǒng)給出的注冊項(xiàng)目,并提交給系統(tǒng),成功注冊后,系統(tǒng)生成用戶所注冊的登入用戶名,并保存在數(shù)據(jù)庫當(dāng)中。執(zhí)行者:用戶前置條件:無后置條件:無正常過程: 向服務(wù)端發(fā)送注冊請求 服務(wù)端響應(yīng)客戶端,客戶端彈出注冊信息表單 用戶填寫完表單后將注冊數(shù)據(jù)傳給服務(wù)端處理,并保存在數(shù)據(jù)庫中 返回客戶端一個響應(yīng),顯示用戶注冊的用戶名,提示注冊成功。異常過程(可選): 用戶填寫表單的數(shù)據(jù)格式不正確或表單中存在空缺的項(xiàng),客戶端給予提示信息。 用戶注冊的項(xiàng)在數(shù)據(jù)庫中發(fā)生沖突,客戶端提示注冊不成功并提示用戶重新填寫表單。 服務(wù)器未啟動或出現(xiàn)異常3.2.2用戶登入需

20、求描述:用戶填寫登入用戶名和口令,經(jīng)服務(wù)器驗(yàn)證成功后進(jìn)入聊天室主界面。執(zhí)行者:用戶前置條件:用戶成功注冊或已經(jīng)擁有一個合法的用戶名后置條件:無正常過程: 向服務(wù)端請求連接,并發(fā)送登錄信息。 服務(wù)端處理并查詢數(shù)據(jù)庫中的用戶信息 返回客戶端一個響應(yīng),提示登錄成功,彈出聊天室主界面。 刷新其他在線用戶的用戶列表信息異常過程(可選): 用戶填寫的用戶名或口令不正確或沒有注冊 提示登錄失敗。 客戶端設(shè)置的服務(wù)器地址或端口有誤 服務(wù)器未啟動或出現(xiàn)異常3.2.3公聊需求描述:用戶在聊天室公聊界面的發(fā)言內(nèi)容,聊天室中的其他在線用戶可以正常接受并正確顯示(包括發(fā)送的表情和用戶設(shè)置的字體顏色)。執(zhí)行者:登入用戶前

21、置條件:用戶登錄成功后置條件:無正常過程: 客戶端用戶登入成功后,啟動客戶端功能線程 客戶端將用戶發(fā)送的信息打包傳送給服務(wù)端 服務(wù)端進(jìn)行數(shù)據(jù)分析后,并將用戶的信息進(jìn)行正確的處理 傳給處在聊天室的所有在線其他用戶并正常顯示。異常過程(可選): 客戶端與服務(wù)端斷開連接,客戶端提示信息發(fā)送失敗。3.2.3私聊需求描述:用戶可選擇聊天室的在線用戶列表中其他用戶聊天。并且對方有消息提示,雙方發(fā)送的信息對于聊天室的其他用戶是不可見的。執(zhí)行者:用戶前置條件:用戶登錄成功,私聊的對方在線后置條件:無正常過程: 客戶端與服務(wù)端建立通訊 客戶端將用戶發(fā)送的信息打包傳送給服務(wù)端 服務(wù)端進(jìn)行數(shù)據(jù)分析,查找目的用戶的I

22、D,并將用戶的信息傳給目的用戶 目的用戶收到服務(wù)器的信息后,正確的顯示并保存。異常過程(可選): 客戶端與服務(wù)端斷開連接,客戶端提示信息發(fā)送失敗。特殊需求(可選):不能與不在線的用戶進(jìn)行私聊3.2.4發(fā)送表情需求描述:用戶的聊天內(nèi)容可以是表情圖片執(zhí)行者:用戶前置條件:用戶可以正常聊天后置條件:無正常過程: 客戶端與服務(wù)端建立通訊 客戶端將表情所表示的信息傳送給服務(wù)端 服務(wù)器端進(jìn)行數(shù)據(jù)分析后,查找目的用戶的用戶名,并將所處理的信息傳給目的用戶 目的用戶端通過本地文件將信息翻譯成表情并正確顯示在顯示窗體中。異常過程(可選): 客戶端與服務(wù)端斷開連接,客戶端提示服務(wù)器異常。 客戶端發(fā)送的表情信息不正

23、確或本地文件不存在異常3.2.5聊天記錄需求描述:用戶可以查詢聊天的歷史紀(jì)錄,包括公聊記錄和私聊記錄。執(zhí)行者:用戶前置條件:用戶正確登入后后置條件:無正常過程: 發(fā)送、接收信息的同時(shí)將信息保存在本地文件中異常過程(可選): 服務(wù)端異常導(dǎo)致客戶端退出,客戶端提示服務(wù)器異常。 客戶端讀取信息時(shí)目標(biāo)文件不存在3.2.6系統(tǒng)消息需求描述:在聊天室的每一個用戶都能接收服務(wù)端發(fā)送的的信息提示消息7。執(zhí)行者:服務(wù)端前置條件:服務(wù)端正常運(yùn)行后置條件:無正常過程: 服務(wù)器向所有在線用戶發(fā)送消息 客戶端接收到消息,進(jìn)行消息處理,并正確顯示。異常過程(可選): 服務(wù)端異常,重啟服務(wù)器。 出現(xiàn)網(wǎng)絡(luò)異常,發(fā)送系統(tǒng)消息失

24、敗。3.2.7字體屬性設(shè)置需求描述:用戶可改變輸入消息的字體及顏色執(zhí)行者:用戶前置條件:用戶可以正常聊天后置條件:無正常過程: 用戶為聊天信息手動設(shè)置新的字體和顏色 客戶端將聊天信息及字體和顏色信息封裝,發(fā)送到服務(wù)端。 服務(wù)端處理接受到的數(shù)據(jù)并正確轉(zhuǎn)發(fā) 目的客戶端將接收到的信息解包,根據(jù)信息的內(nèi)容,改變信息顯示的字體及顏色,并在目的客戶端正確顯示出字體效果。異常過程(可選): 對方不支持字體屬性的顯示3.2.8用戶退出需求描述:用戶在正常情況下退出聊天室。執(zhí)行者:用戶前置條件:用戶成功登錄聊天室后置條件:無正常過程: 向服務(wù)器發(fā)送用戶登出消息 服務(wù)器進(jìn)行用戶退出的數(shù)據(jù)處理 服務(wù)器向聊天室其他用

25、戶發(fā)送登出消息 刷新其他在線用戶的用戶列表信息第4章 概要設(shè)計(jì)4.1目的該階段目的在于明確網(wǎng)絡(luò)聊天室系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和軟件總體結(jié)構(gòu),各個軟件模塊的功能說明,數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),系統(tǒng)運(yùn)行配置與應(yīng)用方式以及使用的關(guān)鍵技術(shù)。4.2 運(yùn)行環(huán)境運(yùn)行環(huán)境見下表。名 稱操作系統(tǒng)類型推薦操作系統(tǒng)版本推薦硬件(CPU/RAM/HD)客戶端Windows平臺windows 2000以上(IE6.0 以上)/256M/40G服務(wù)器Windows平臺windows 2000以上P/8G/120G4.3條件與限制1.軟件設(shè)計(jì)應(yīng)當(dāng)表現(xiàn)出層次結(jié)構(gòu),它應(yīng)巧妙地利用各個軟件部件之間的控制關(guān)系。2.設(shè)計(jì)應(yīng)當(dāng)是模塊化的,即該軟件應(yīng)當(dāng)從邏

26、輯上被劃分成多個部件,分別實(shí)現(xiàn)各種特定功能和子功能。3.設(shè)計(jì)最終應(yīng)當(dāng)給出具體的模塊(例如子程序或過程),這些模塊就具有獨(dú)立的功能特性。4.應(yīng)當(dāng)應(yīng)用在軟件需求分析期間得到的信息,采取循環(huán)反復(fù)的方法來獲得設(shè)計(jì)9。4.4體系結(jié)構(gòu)概述本系統(tǒng)采用C/S的結(jié)構(gòu)設(shè)計(jì)模式,客戶端接收用戶的發(fā)送的信息到服務(wù)器,服務(wù)器通過處理轉(zhuǎn)發(fā)到另一個客戶端。客戶端采用圖形用戶界面,方便與用戶交互。服務(wù)器端用控制臺的方式方便控制操作。系統(tǒng)設(shè)計(jì)總體原則:本設(shè)計(jì)不限制用戶的組網(wǎng)方式。但對于互聯(lián)網(wǎng)環(huán)境下的安全問題,本系統(tǒng)不能保證解決。系統(tǒng)要具有較強(qiáng)的靈活性,包括對功能設(shè)置的管理。整個系統(tǒng)要使用簡單,界面要美觀、大方,具有人性化特點(diǎn)。

27、模塊劃分盡量簡單明了,充分考慮用戶已經(jīng)習(xí)慣的劃分分類10??蛻舳朔譃橛脩糇?、用戶登錄、信息通訊、管理和查詢聊天記錄。用戶注冊和用戶登錄封裝在用戶登錄的界面中,用戶列表模塊封裝在系統(tǒng)的主界面中。信息通訊、管理和查詢聊天記錄模塊封裝在聊天界面中。服務(wù)端實(shí)現(xiàn)消息接收、消息轉(zhuǎn)發(fā)。4.5功能設(shè)計(jì)4.5.1用戶注冊通過注冊模塊實(shí)現(xiàn)用戶的在線注冊,所填寫的注冊項(xiàng)目有:用戶名、口令、口令確認(rèn)、性別、年齡、E-mail。用戶注冊界面正確填寫注冊項(xiàng)確認(rèn)注冊成功 填 寫 錯誤 正確圖4-1注冊活動圖 用戶登入用戶用過登入界面,填寫登入用戶名和密碼實(shí)現(xiàn)系統(tǒng)的登入用戶進(jìn)入登入界面輸入用戶名,口令提交進(jìn)入系統(tǒng)登入信息不

28、合法 登入信息合法 圖4-2登錄活動圖4.5.3公聊用戶登入成功后進(jìn)入公聊界面,通過輸入聊天內(nèi)容實(shí)現(xiàn)和其他的用戶聊天,并可以顯示其他用戶發(fā)送的公聊信息。用戶輸入信息發(fā)送信息格式有錯圖4-3公聊活動圖4.5.4私聊用戶通過選擇在線用戶列表的其他用戶,通過單擊列表中的用戶名顯示與其私聊的對話框,實(shí)現(xiàn)和選中的用戶進(jìn)行私聊方式進(jìn)行交流,其他用戶不可見。用戶選擇其他用戶輸入信息發(fā)送信息格式有誤格式正確圖4-4私聊流程圖4.5.5表情 在用戶公聊或私聊時(shí)可以同時(shí),可以單擊表情按鈕打開表情窗體,通過鼠標(biāo)事件可將選擇的表情寫入發(fā)送窗口中,以增強(qiáng)聊天的表達(dá)方式的效果??梢允沽奶旃δ芨S富更有趣。用戶單擊表情功能

29、選擇表情顯示表情在發(fā)送框發(fā)送表情圖4-5表情活動圖4.5.6字體設(shè)置 用戶在聊天界面的功能模塊中,單擊字體功能按鈕,在彈出的字體設(shè)置框中選擇所需要設(shè)置的字體顏色、字體大小、字體類型、字體顯示方式,并在字體設(shè)置框中通過字體效果圖顯示出當(dāng)前設(shè)置的字體效果,并將設(shè)置好的字體屬性應(yīng)用到自己的發(fā)送信息中。應(yīng)用到發(fā)送信息中顯示設(shè)置的字體效果用戶手動設(shè)置圖4-6字體設(shè)置活動圖4.5.7記錄保存用戶在公聊和私聊的過程的同時(shí),將顯示在信息窗體中的聊天內(nèi)容保存到本地文件中,用戶在下次登入時(shí)會自動顯示歷史聊天內(nèi)容。用戶保存按鈕保存到記錄文件單擊 圖4-7 記錄保存活動圖4.5.8系統(tǒng)消息用戶管理員通過啟動服務(wù)器后,

30、可以通過服務(wù)器操作界面象全部在線的用戶發(fā)送系統(tǒng)消息,用于發(fā)送公告,提示等系統(tǒng)消息,可以方便管理員和客戶的交流和管理11。用戶服務(wù)器顯示出系統(tǒng)消息發(fā)送系統(tǒng)消息 啟動 發(fā)送系統(tǒng)消息 消息內(nèi)容有誤 正確圖4-8系統(tǒng)消息活動圖第5章 詳細(xì)設(shè)計(jì)本系統(tǒng)采用C/S設(shè)計(jì)模式,系統(tǒng)分為客戶端和服務(wù)器端,客戶端包括注冊模塊、登入模塊、公聊模塊、私聊模塊、功能設(shè)置模塊、和客戶端功能實(shí)現(xiàn)模塊等。服務(wù)器端包括服務(wù)器界面,服務(wù)器功能實(shí)現(xiàn)模塊等。5.1 客戶端注冊功能描述用戶必須填寫注冊給定的全部選項(xiàng),并且按照正確的格式輸入,如年齡一項(xiàng)只能輸入數(shù)字的格式等等,并可以在申請注冊前驗(yàn)證輸入的用戶名是否已被使用。綜合設(shè)計(jì)實(shí)現(xiàn)該功

31、能所寫的類為13:(1) Register類: 用于構(gòu)建注冊的主界面主要成員變量 :String custName,String custPassword,String age,String email,String sex,String head;主要方法: Register() /實(shí)現(xiàn)界面元素和設(shè)定元素屬性actionPerformed () /按鈕事件響應(yīng)mes() /點(diǎn)擊事件處理actionPerformed()圖5-1注冊的主界面(2)SendRegInfoThread類 用來檢測注冊的用戶名是否已被使用主要成員變量String username; Socket socket; Ob

32、jectInputStream o_in;ObjectOutputStream o_out;主要方法:publicSendRegInfoThread(String name) username=name;/構(gòu)造方法用于初始化public void run() /實(shí)現(xiàn)將信息的發(fā)送給服務(wù)器圖5-2用戶名可以使用圖5-3檢測到注冊的用戶名已被使用(3) SendRegInfoSucThresd類 /發(fā)送注冊消息內(nèi)容主要成員變量Socket socket; ObjectOutputStream o_out; ObjectInputStream o_in; HashMap hm; Object info

33、; 主要方法public SendRegInfoSucThread(Object info) =info;/構(gòu)造方法public void run() /實(shí)現(xiàn)將注冊信息發(fā)送給服務(wù)器(4)RegisterData /用戶發(fā)送給服務(wù)器端的注冊類型數(shù)據(jù)主要成員變量: private String userName;private String passWord;private String userAge;private String email;private String sex;主要方法:分別get,set上面的五個變量,獲得用戶的輸入的名字,密碼,年齡,電子郵件和性別的信息

34、。5.2 登入功能描述 在設(shè)置好IP和端口號的條件下,用戶在登入界面輸入已注冊好的用戶名和密碼登入,通過驗(yàn)證后登入聊天室主界面,輸入錯誤返回提示。實(shí)現(xiàn)該功能的主要類和方法14(1)Land類 /實(shí)現(xiàn)登入的主窗體主要成員變量:String hostid; /服務(wù)器IP地址int server_port; /服務(wù)端口Socket client_socket; /final File propertyFile; /屬性文件:主要方法:public Land() /用于初始化登入界面的元素public void actionPerformed(ActionEvent e)/連接服務(wù)器的方法體publi

35、c void run() /顯示登入主窗體主方法圖5-4登入的主窗體圖5-5登入失?。?)LoginData 類 /發(fā)送登入數(shù)據(jù)類型主要變量:private String userName;private String passWord;主要方法:分別用get,set方法獲得userName和passWord兩個變量的值。5.3 公聊圖5-6公聊時(shí)序圖 功能描述用戶在公聊界面的信息輸入框中輸入要發(fā)送的信息和表情等,用戶可以通過功能設(shè)置按鈕設(shè)置自己定義的字體屬性 ,如:字體類型 、字體大小 、字體顏色 、字體顯示方式、表情等,并可以應(yīng)用到信息輸入框中, 點(diǎn)發(fā)送按鈕實(shí)現(xiàn)信息的發(fā)送。并可以顯示其他用

36、戶發(fā)送的公聊信息和系統(tǒng)所發(fā)送的系統(tǒng)信息,并且按照發(fā)送來的信息中包含好的顯示方式正確顯示出信息。用戶上線或下線時(shí)要在顯示窗體中給出提示,并刷新用列表中的用戶名。并可以通過雙擊用戶名彈出與該用戶進(jìn)行私聊的對話窗體。 綜合設(shè)計(jì)實(shí)現(xiàn)該功能的主要類和方法(1)PublicChat類 /公聊界面本模塊主要要實(shí)現(xiàn)顯示在線用戶列表,可以保存聊天記錄,可以發(fā)送表情圖片,可以顯示對方發(fā)過來的字體信息,并且自己可以發(fā)送消息,顯示自己的用戶名的功能。并且有保存聊天記錄,背景,字體,表情的按鈕。5.4、私聊 功能描述用戶在私聊界面的信息輸入框中輸入要發(fā)送的信息和表情等,用戶可以通過功能設(shè)置按鈕設(shè)置自己定義的字體屬性 ,

37、如:字體類型 、字體大小 、字體顏色 、字體顯示方式、表情等,并可以應(yīng)用到信息輸入框中, 點(diǎn)發(fā)送按鈕實(shí)現(xiàn)私聊信息的發(fā)送。并可以顯示其他用戶發(fā)送過來的私聊信息,并且按照發(fā)送來的信息中包含好的顯示方式正確顯示出信息。 綜合設(shè)計(jì)實(shí)現(xiàn)該功能所用的主要類和方法:(1)PersonalChat類 /私聊界面類其中包括顯示聊天內(nèi)容的文本面板,顯示發(fā)送消息的文本面板,發(fā)送消息按鈕,關(guān)閉窗體按鈕,顯示聊天內(nèi)容的按鈕等。圖5-7私聊時(shí)序圖5.5發(fā)送系統(tǒng)消息5.5.1功能描述服務(wù)器端收到用戶上線或下線時(shí)發(fā)送給其他在線用戶消息提示,并可以根據(jù)需要,主動發(fā)送消息給客戶,實(shí)現(xiàn)服務(wù)器端的管理。5.5.2綜合設(shè)計(jì)實(shí)現(xiàn)功能的主

38、要類和方法(1) ServerInterFace類 /服務(wù)器的用戶界面privatevoid initCompenent() /組件初始化class StartServer implements ActionListener /內(nèi)部類啟動和關(guān)閉監(jiān)聽(2) TalentServer類 /服務(wù)器啟動模塊public void run() / 發(fā)送系統(tǒng)消息 class SysinfoBuAction implements ActionListener /啟動服務(wù)器圖5-8服務(wù)器顯示客戶端出入情況圖5-9聊天主窗口5.6字體設(shè)置5.6.1功能描述每個用戶可以根據(jù)自己的個人喜好設(shè)置自己要發(fā)送的內(nèi)容的字體

39、屬性。并可以在其他目的客戶界面按照自己所設(shè)置的顯示方式顯示。主要設(shè)置了三種字體的屬性,分別為字體的樣式、大小和字型。5.6.2綜合設(shè)計(jì)實(shí)現(xiàn)該功能的主要類和方法15:(1) Fontset類 /字體設(shè)置窗體面板public void actionPerformed(ActionEvent e) /實(shí)現(xiàn)設(shè)置字體顏色,選擇字體類型,選擇字體大小,選擇字體顯示方式功能private void updataFont() /顯示更改后的字體表現(xiàn)圖5-10設(shè)置字體屬性,并顯示效果5.7發(fā)送表情5.7.1功能描述 用戶本地保存按照一定方式命名的圖片文件,通過本地圖片文件構(gòu)建出表情窗體,在用戶公聊或私聊時(shí)可以同

40、時(shí),可以單擊表情按鈕打開表情窗體,通過鼠標(biāo)事件可以將選擇的表情寫入發(fā)送窗口中,以增強(qiáng)聊天的表達(dá)方式和效果??梢允沽奶旃δ?、更豐富更有趣。5.7.2綜合設(shè)計(jì)實(shí)現(xiàn)功能的主要類和方法(1)FaceFrame類 /顯示表情窗體圖5-11表情窗體效果圖5.8記錄保存5.8.1功能概述本系統(tǒng)可以在應(yīng)用中將用戶聊天的記錄保存在本地文件當(dāng)中,用戶在本地下次登入后,可以查看歷史聊天記錄。方便用戶繼續(xù)聊天。5.8.2綜合設(shè)計(jì)實(shí)現(xiàn)該功能使用的主要類和方法:(1)ChatInfoSave類 /保存信息的方法類5.9功能邏輯實(shí)現(xiàn)5.9.1邏輯功能描述本系統(tǒng)采用數(shù)據(jù)對象流的形式發(fā)送和接受信息??蛻舳诉B接服務(wù)器成功后就啟動

41、一個客戶端線程和服務(wù)器通信??蛻舳税l(fā)送的信息分為:注冊消息、注冊時(shí)用戶名驗(yàn)證消息、登入消息、公聊消息、私了消息、下線消息等。 服務(wù)器端啟動一個線程不斷的監(jiān)聽客戶的請求,當(dāng)接受到客戶請求時(shí)就啟動一個和該客戶端通信的線程。服務(wù)器端發(fā)送的信息分為:注冊成功消息 注冊失敗消息、注冊時(shí)驗(yàn)證用戶名成功消息、注冊時(shí)驗(yàn)證用戶名失敗消息、登入成功消息、登入失敗消息、轉(zhuǎn)發(fā)公聊消息、轉(zhuǎn)發(fā)的私了消息、刷新列表名消息等。5.9.2綜合設(shè)計(jì)(1)TransferMap類 /用于客戶端與服務(wù)器之間的消息傳遞(2)LoginData類 /用于登入時(shí)發(fā)送的信息對象類型(3)RegisterData類 /用于注冊時(shí)發(fā)送的信息對象

42、類型(4)ChatInformation /用于用戶公聊或私聊時(shí)發(fā)送的信息對象類型(5)ClientThread類 /客戶端連接服務(wù)器成功后啟動的線程(6)ServerAffairThread類 服務(wù)器端為用戶啟動的服務(wù)器線程(7)LineDialog類 /實(shí)現(xiàn)提示用戶私聊消息(8)Display_chatifn類 /顯示信息內(nèi)容第6章系統(tǒng)測試為了確保本系統(tǒng)能夠正常運(yùn)行,需要在發(fā)布之后做一次較全面的測試。現(xiàn)將具體操作及過程舉例說明如下:測試舉例測試程序登錄界面打開程序后,首先出現(xiàn)的是登錄頁面,在設(shè)置好網(wǎng)絡(luò)IP和端口號之后,輸入用戶名和密碼,如果連接服務(wù)器成功則提示用戶輸入的用戶名和密碼是否正確

43、,否則提示連接不到服務(wù)器,并提示正確設(shè)置服務(wù)器IP和服務(wù)端口。測試程序主界面進(jìn)入主界面后,主頁面會顯示在線用戶列表區(qū)、信息顯示區(qū)、功能設(shè)置區(qū)、信息發(fā)送區(qū)、功能按鈕區(qū)。用戶可以在用戶列表中看到目前在線的其他用戶,并在信息顯示區(qū)內(nèi)看到系統(tǒng)提示。用戶可以在信息發(fā)送區(qū)內(nèi)輸入自己的發(fā)送內(nèi)容,并可以通過功能設(shè)置區(qū)設(shè)置字體內(nèi)容的屬性和發(fā)送表情??梢酝ㄟ^單擊用戶列表名中的用戶彈出私聊窗體,進(jìn)行私聊,發(fā)送的信息其他用戶不可以見。在主界面的顯示區(qū)中可以不斷的查看到其他用戶發(fā)送過來的信息,并可以通過點(diǎn)擊查看記錄按鈕查看保存的聊天記錄。測試程序退出當(dāng)單擊退出按鈕或窗體的關(guān)閉時(shí),用戶將發(fā)送退出信息,離開聊天室,其他用戶

44、可以得到系統(tǒng)提示用戶下線并刷新用戶列表。當(dāng)服務(wù)器出線異常或關(guān)閉時(shí),客戶端將提示服務(wù)中斷并退出系統(tǒng)。測試項(xiàng)目由于實(shí)際開發(fā)過程中還是不可避免地會產(chǎn)生差錯,系統(tǒng)中通??赡茈[藏著錯誤和缺陷,不經(jīng)周密測試的系統(tǒng)投入運(yùn)行,將會造成難以想象的后果,因此系統(tǒng)測試是軟件開發(fā)過程中為保證軟件質(zhì)量必須進(jìn)行的工作。大量統(tǒng)計(jì)資料表明,系統(tǒng)測試的工作量往往占軟件開發(fā)總工作量的30%以上。因此,我們必須重視測試工作。由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對某些特定情況考慮不周造成的。因此測試不是為了表明程序正確;成功的測試也不是沒有發(fā)現(xiàn)錯誤的測試。有意義的軟件測試應(yīng)該是從“破壞”軟件系統(tǒng)的角度

45、出發(fā),精心設(shè)計(jì)最有可以暴露程序系統(tǒng)缺陷的測試方案。因此軟件測試的目標(biāo)應(yīng)該是以盡可能少的代價(jià)和時(shí)間找出軟件系統(tǒng)中潛在的錯誤和缺陷。從產(chǎn)品角度看,測試計(jì)劃中的測試項(xiàng)目包括軟件結(jié)構(gòu)中的分系統(tǒng)層、子系統(tǒng)層、功能模塊層、程序模塊層中的各類模塊,從測試本身看,分為單元測試,組合測試,確認(rèn)測試等。測試對象是隨不同階段而異的,最基本、最初的測試是單元測試,后面的組合測試、確認(rèn)測試都是以被測過的模塊作為測試對象的16。單元測試單元測試也稱模塊測試或程序測試,單元測試是對每個模塊單獨(dú)進(jìn)行的,驗(yàn)證模塊接口與設(shè)計(jì)說明書是否一致,對模塊的所有主要處理路徑進(jìn)行測試且與預(yù)期的結(jié)構(gòu)進(jìn)行對照,還要對所有錯誤處理路徑進(jìn)行測試。對

46、源碼進(jìn)行審查,對照設(shè)計(jì)說明書,表態(tài)地檢查源程序是否符合功能的邏輯要求,是進(jìn)行單元測試前的重要工作工。單元測試一般是由程序員完成,也稱程序調(diào)試。組合測試組合測試也稱集成測試或子系統(tǒng)測試,通常采用自頂向下測試和自底向上測試兩種測試方法。組合測試的對象是指已經(jīng)通過單元測試的模塊,不是對零散模塊進(jìn)行單個測試,而是用系統(tǒng)化的方法裝配和測試軟件系統(tǒng),是一個嚴(yán)格的過程,必須認(rèn)真地進(jìn)行,其計(jì)劃的產(chǎn)生和單元模塊測試的完成日期要協(xié)調(diào)起來,這種測試應(yīng)在系統(tǒng)目標(biāo)機(jī)上進(jìn)行,造成系統(tǒng)應(yīng)用的環(huán)境條件,除了開發(fā)部分項(xiàng)目負(fù)責(zé)人參加以外,還應(yīng)該有相應(yīng)系統(tǒng)的用戶參加,給評審員進(jìn)行演示。確認(rèn)測試確認(rèn)測試是對通過組合測試的軟件進(jìn)行的,

47、這些軟件已經(jīng)存于系統(tǒng)目標(biāo)設(shè)備的介質(zhì)上,確認(rèn)測試的目的是表明軟件是可以工作的,并且符合“軟件需求說明書”中規(guī)定的全部功能和性能要求。確認(rèn)測試是按照這些要求定出的“確認(rèn)測試計(jì)劃”進(jìn)行的。測試工作是由一個獨(dú)立的組織進(jìn)行,而且測試要從用戶的角度出發(fā)。系統(tǒng)測試系統(tǒng)測試是對整體性能的測試,主要解決各子系統(tǒng)之間的數(shù)據(jù)通信和數(shù)據(jù)共享問題以及檢測系統(tǒng)是否達(dá)到用戶的實(shí)際要求,系統(tǒng)測試的依據(jù)是系統(tǒng)分析報(bào)告。系統(tǒng)測試應(yīng)在系統(tǒng)的整個范圍內(nèi)進(jìn)行,這種測試不只對軟件進(jìn)行,而是對構(gòu)成系統(tǒng)的硬、軟件一起進(jìn)行。系統(tǒng)測試與建構(gòu)同時(shí)進(jìn)行或略慢。系統(tǒng)測試需要確認(rèn)從頭到尾的功能正常才算完成,應(yīng)當(dāng)盡量避免系統(tǒng)測試延到項(xiàng)目末尾進(jìn)行。用戶驗(yàn)收

48、測試在系統(tǒng)測試完成后,進(jìn)行用戶的驗(yàn)收測試,它是用戶在實(shí)際應(yīng)用環(huán)境中所進(jìn)行的真實(shí)數(shù)據(jù)測試。在具體的測試中,一般應(yīng)遵循以下原則:由程序設(shè)計(jì)者之外的人進(jìn)行測試;測試用例應(yīng)由兩部分組成:輸入數(shù)據(jù)和預(yù)期輸出結(jié)果;應(yīng)選用不合理的輸入數(shù)據(jù)與非法輸入測試;不僅要檢驗(yàn)程序是否實(shí)現(xiàn)預(yù)期功能,還應(yīng)檢查程序是否做了不應(yīng)該做的工作;集中測試容易出錯的程序模塊;對程序修改以后,必須重新進(jìn)行測試。測試方法一般來說,對程序測試有兩種測試方法:如果已經(jīng)知道了軟件系統(tǒng)應(yīng)具有的功能,可通過測試來對每個功能是否都能正常使用;如果知道程序的內(nèi)部工作過程,可以通過測試來檢測程序內(nèi)部是否按照規(guī)格說明書的規(guī)定正常進(jìn)行。前一種方法稱為黑盒測試

49、,后一種方法稱為白盒子測試。黑盒測試又稱為功能測試,白盒子測試又稱為結(jié)構(gòu)測試【17】。因?yàn)闀r(shí)間和項(xiàng)目的關(guān)系,沒有完全按照上述的測試方法進(jìn)行系統(tǒng)的測試,但在在開發(fā)的過程當(dāng)中,保證部分合理的測試,并正確運(yùn)行驗(yàn)證,證明本系統(tǒng)具有相當(dāng)程序的穩(wěn)定性。第7章缺陷與完善7.1 軟件存在的問題軟件雖然已經(jīng)編寫好了,但是還存在許多需要改進(jìn)的地方,同時(shí)還存在著一些小問題。還有一些功能上的缺陷:(1)操作的方便性、比如可以為一些常用按鈕設(shè)置快捷鍵,象登入系統(tǒng)時(shí),輸入完用戶名和密碼后直接回車;在用戶輸入完要發(fā)送的內(nèi)容時(shí),設(shè)置發(fā)送內(nèi)容的快捷方式ctrl+回車等。(2)在功能方面可以進(jìn)一步增加,如實(shí)現(xiàn)用戶間的文件傳輸,并

50、可以進(jìn)行視屏,共享音樂等高級功能。(3)執(zhí)行效率方面可以有待提高,優(yōu)化代碼結(jié)構(gòu),減少系統(tǒng)內(nèi)存泄露,提高運(yùn)行穩(wěn)定性等7.2 使界面變得更加美觀由于一直專注于功能的實(shí)現(xiàn),從而忽略了界面的設(shè)計(jì),本軟件今后可以為用戶添加不同的頭像,并可以使窗體風(fēng)格更合理和更美觀,并且要使用戶有更多的自定義功能,設(shè)置自己的喜好和風(fēng)格。結(jié) 論首先,我選擇本課題緣由是對項(xiàng)目有較深的理解和對聊天通訊軟件有豐富的使用和接觸經(jīng)驗(yàn),可以設(shè)計(jì)和開發(fā)本項(xiàng)目時(shí)更有效率。并且對網(wǎng)絡(luò)開發(fā)有濃厚的興趣,對具有網(wǎng)絡(luò)功能的項(xiàng)目更有成就感。大學(xué)四年的學(xué)習(xí)期間,通過學(xué)校開設(shè)的基礎(chǔ)課程,扎實(shí)系統(tǒng)的學(xué)習(xí)了軟件的基礎(chǔ)知識,并對面向?qū)ο缶幊陶Z言有了進(jìn)一步的理

51、解,對軟件專業(yè)逐步的建立起自己的知識體系框架。通過這次的畢業(yè)設(shè)計(jì),使自己在JAVA2編程語言的使用方面得到一個全面鍛煉自己的機(jī)會,在個模塊的界面開發(fā)方面,充分的學(xué)習(xí)和利用了JAVA Swing界面開發(fā)技術(shù),使自己在界面應(yīng)用和布局方面得到更多的實(shí)踐,應(yīng)用Socket技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)連接功能,對網(wǎng)絡(luò)的實(shí)現(xiàn)和通信方面有了進(jìn)一步的理解,并通過多線程方面的應(yīng)用,使客戶端和服務(wù)端可以實(shí)現(xiàn)多任務(wù)功能,在整個開發(fā)過程當(dāng)中應(yīng)用軟件工程的開發(fā)步驟,使自己專業(yè)理論知識的到進(jìn)一步的鞏固,項(xiàng)目開發(fā)經(jīng)驗(yàn)有不少的收獲。通過完成這次畢業(yè)設(shè)計(jì)項(xiàng)目,使自己在項(xiàng)目實(shí)際開發(fā)方面有了進(jìn)一步的提高,并使自己感覺到成功的喜悅,并對自己在專業(yè)的

52、未來發(fā)展更充滿信心,對自己在今后的工作中更好的幫助。參考文獻(xiàn)1 美Rogers Cadenhead. Java編程入門經(jīng)典.梅興文譯.第4版.北京:人民郵電出版社,20072美Bruce Eckel. Thinking In Java.英文第4版.北京:機(jī)械工業(yè)出版社,20073陳軼.姚曉昆編著.Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo).北京:清華大學(xué)出版社,20064楊昭編著.二級Java語言程序設(shè)計(jì)教程.北京:中國水利水電出版社,20065趙文靖編著.Java程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,20066Java.西安:西安電子科技大學(xué)出版社,20067王路群.Java高級程序設(shè)計(jì).北京:中國水

53、利水電出版社,20068雍俊海編著.Java程序設(shè)計(jì)習(xí)題集.北京:清華大學(xué)出版社,20069朱福喜編著.Java語言習(xí)題與解析.北京:清華大學(xué)出版社,200610 吳其慶編著.Java程序設(shè)計(jì)實(shí)例教程.北京:冶金工業(yè)出版社,200611 柳西玲.許斌編著.Java語言應(yīng)用開發(fā)基礎(chǔ).北京:清華大學(xué)出版社,200612 施霞萍等編著.Java程序設(shè)計(jì)教程 第2版.北京:機(jī)械工業(yè)出版社,200613 美Herbert Schidt著.Java參考大全.鄢愛蘭.鹿江春譯.北京:清華大學(xué)出版社,200614 宛延闿等編著.實(shí)用Java程序設(shè)計(jì)教程.北京:機(jī)械工業(yè)出版社,200615 陳國君等編著.Java2程序設(shè)計(jì)基礎(chǔ).北京:清華大學(xué)出版社,200616 鄭莉.王行言.馬素霞編著.Java語言程序設(shè)計(jì).北京:清華大學(xué)出版社,200617 丁振凡主編.Java語言實(shí)用教程.北京:北京郵電大學(xué)出版社,2005致 謝在這幾個月的畢業(yè)設(shè)計(jì)過程中,通過導(dǎo)師的指導(dǎo),了解并熟悉了完成一個項(xiàng)目的具體過程和步驟,使自己在整個過程當(dāng)中不段的學(xué)習(xí)解決問題的能力。軟件專業(yè)是一門比較熱門和前沿的學(xué)科,涉及許多知識領(lǐng)域和技術(shù),擁有許多最新知識資料,應(yīng)在項(xiàng)目的開發(fā)過程中,不斷的查閱相關(guān)的幫助文檔。程序的開發(fā)過程要養(yǎng)成良好的習(xí)慣,并遵循一定的標(biāo)準(zhǔn)規(guī)范,將項(xiàng)目進(jìn)行合理分析設(shè)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論