即時通訊系統(tǒng)_第1頁
即時通訊系統(tǒng)_第2頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目概述1.1xxxxxxxx即時通訊系統(tǒng)概述即時通訊是當(dāng)今流行的一種以Internet網(wǎng)絡(luò)及其它有線、無線網(wǎng)絡(luò)為基礎(chǔ)的實時通訊方式,是一種便捷的網(wǎng)絡(luò)通訊技術(shù),是基于互聯(lián)網(wǎng)的新型通訊方式,它通過通訊系統(tǒng)建立網(wǎng)絡(luò)虛擬環(huán)境,通過計算機(jī)鍵盤或無線設(shè)備在網(wǎng)絡(luò)上進(jìn)行實時交談,是提供公共通訊、商務(wù)通訊及商務(wù)合作的新媒介,可以彌補(bǔ)傳統(tǒng)通訊形式的不足,尤其是電子郵件及語音的不足,為用戶提供實時有效的溝通手段。21世紀(jì)是信息的時代,隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息在傳遞方面也有了嶄新的一面。現(xiàn)今聊天軟件成為信息傳遞最為廣泛的應(yīng)用工具,它發(fā)揮了即時性通信的特點,可以讓用戶在第一時間內(nèi)得到信息的交流。Internet的出現(xiàn)連通了整個世界,而聊天軟件的出現(xiàn)則連通了每一位網(wǎng)上的用戶。隨著網(wǎng)絡(luò)應(yīng)用的發(fā)展,聊天軟件已經(jīng)成為最熱門的網(wǎng)絡(luò)應(yīng)用之一。經(jīng)歷了近幾年突飛猛進(jìn)的發(fā)展之后,即時通訊工具早已不再是簡單的互聯(lián)網(wǎng)通訊工具,它已經(jīng)成為一個集互動交流、休閑娛樂、信息管理為一體的多元化互聯(lián)網(wǎng)應(yīng)用平臺。xxxxxxxx是中國最大的軟件和IT服務(wù)外包企業(yè),為進(jìn)一步擴(kuò)大企業(yè)規(guī)模,增強(qiáng)員工間的溝通,提高協(xié)作效率,提升企業(yè)知名度,公司決定上一套xxxxxxxx即時通訊系統(tǒng),以便于進(jìn)一步加快企業(yè)信息化建設(shè)的步伐。1.2xxxxxxxx公司組織機(jī)構(gòu)xxxxxxxx技術(shù)有限公司的前身分別是文思信息技術(shù)有限公司和海輝軟件(國際)集團(tuán)公司,這兩家公司都是軟件外包服務(wù)提供商。2012年8月11日文思信息與海輝軟件宣布合并,根據(jù)雙方簽訂的合并協(xié)議,雙方股票將以1比1的方式進(jìn)行合并,兩家公司的股東將各自持有合并后的新公司約50%的股份,原海輝股票將保留在納斯達(dá)克全球精選市場上市。合并以后的公司中文名稱為“xxxxxxxx技術(shù)有限公司”,英文名稱為“Pactera”,納斯達(dá)克股票代碼:PACT。海輝軟件(國際)集團(tuán)公司成立于1996年,是一家一流的全球服務(wù)外包提供商,在中國內(nèi)地、香港、日本、美國、新加坡等國家和地區(qū)均設(shè)有辦公機(jī)構(gòu)。海輝擁有超過6000名專業(yè)人士的人力資源和成熟、可靠的全球交付平臺,為《財富》500強(qiáng)客戶提供高質(zhì)、安全的IT服務(wù)。文思信息技術(shù)有限公司成立于1995年,是一家信息技術(shù)服務(wù)提供商及離岸軟件開發(fā)公司。文思是第一家在紐約股票交易所上市的中國軟件服務(wù)外包企業(yè)。據(jù)國際數(shù)據(jù)公司(IDC)的統(tǒng)計,以2007年銷售額衡量,文思信息技術(shù)在為歐美市場提供離岸軟件開發(fā)行業(yè)中位居中國第一。文思信息技術(shù)有限公司(下稱“文思”)宣布在2012年11月6日召開的特別股東大會上,公司股東批準(zhǔn)了文思與海輝軟件(國際)集團(tuán)公司(下稱“海輝”)的對等合并計劃。這標(biāo)志著xxxxxxxx技術(shù)有限公司(下稱“xxxxxxxx”)正式誕生。合并以后的新公司的規(guī)模達(dá)2.3萬人,將成為中國最大的軟件和IT服務(wù)外包企業(yè)。目前公司組織機(jī)構(gòu)如下圖1-1所示:總經(jīng)理總經(jīng)理技術(shù)副總經(jīng)理行政副總經(jīng)理技術(shù)總監(jiān)總經(jīng)理助理CMMI開發(fā)部市場部測試部UI設(shè)計部開發(fā)一組開發(fā)二組開發(fā)三組圖1-1公司組織機(jī)構(gòu)圖Fig1-1DiagramoftheCompany'sOrganizationalStructure1.3系統(tǒng)業(yè)務(wù)流程經(jīng)過前期調(diào)研分析和綜合其它各方面相關(guān)理論知識,給出整個xxxxxxxx即時通訊系統(tǒng)的業(yè)務(wù)流程圖如下圖1-2所示:整個xxxxxxxx即時通訊系統(tǒng)的開發(fā)主要圍繞上述業(yè)務(wù)流程進(jìn)行開發(fā),開發(fā)過程采用面向?qū)ο蟮拈_發(fā)技術(shù),具體開發(fā)過程見下面的章節(jié)。1.4系統(tǒng)功能模塊根據(jù)上述業(yè)務(wù)流程,整個xxxxxxxx系統(tǒng)主要分為以下兩個功能模塊,如圖1-3所示。下面模塊劃分只是抽象意義上的劃分,各模塊之間需要共享數(shù)據(jù),相互協(xié)作,完成整個系統(tǒng)流程,單一事物功能模塊間是相互獨立的。用戶用戶注冊登錄聊天信息查詢信息維護(hù)查詢聊天記錄圖1-2即時通訊系統(tǒng)流程Fig1-2theWorkflowofinstantmessagingSystem用戶管理模塊用戶管理模塊即時通訊模塊文思海輝即時通訊系統(tǒng)注冊登錄注冊查詢信息信息維護(hù)刪除注冊用戶授予管理員權(quán)限顯示在線用戶聊天短信群發(fā)查詢聊天記錄圖1-3系統(tǒng)功能模塊Fig1-3FunctionModelsofSystem2系統(tǒng)需求分析2.1需求陳述根據(jù)調(diào)研分析得知,xxxxxxxx即時通訊系統(tǒng)整體采用C/S結(jié)構(gòu)(客戶端/瀏覽器)模式,C/S功能強(qiáng)大,可以減輕服務(wù)器端壓力,用于面對用戶將來提出更加復(fù)雜的需求。同時C/S一般面向相對固定的用戶群,對信息安全的控制能力很強(qiáng)。整個系統(tǒng)模塊共需要完成2項中心任務(wù),即:用戶管理、即時通訊。每項任務(wù)具體描述如下:2.1.1用戶管理(1)、用戶注冊——由用戶進(jìn)行注冊,包括用戶名、密碼、昵稱、郵箱和性別。(2)、用戶登錄——判斷登錄的用戶是否存在。(3)、用戶信息查詢——①普通用戶:可以查詢出本用戶信息。②管理員:可以查詢出所有注冊用戶信息。(4)、用戶信息維護(hù)——①普通用戶:可自行修改個人信息。包括用戶名、密碼、昵稱、郵箱和性別。②管理員:可修改任何人信息,包括用戶名、密碼、昵稱、郵箱和性別。(5)、刪除注冊用戶——①普通用戶:無權(quán)限刪除。②管理員:可刪除已注冊任何賬號。(6)、授予管理員權(quán)限——①普通用戶:無權(quán)限授予。②管理員:可授予任意普通用戶管理員權(quán)限。2.1.2即時通訊(1)、在線用戶顯示——普通用戶和管理員登錄后,會顯示出其他在線用戶。(2)、短信發(fā)送——普通用戶和管理員通過系統(tǒng)界面進(jìn)行聊天。(3)、短信群送——普通用戶和管理員可短信群送。(4)、聊天記錄查詢——①普通用戶:可查詢用戶自身聊天記錄。②管理員:可查詢?nèi)坑脩袅奶煊涗洝?.2可行性分析2.2.1經(jīng)濟(jì)可行性分析基于局域網(wǎng)、C/S架構(gòu)的即時通訊系統(tǒng)在很多資料上都能找到,包括書本和網(wǎng)絡(luò)上都有很多類似的系統(tǒng),開發(fā)這樣一個系統(tǒng)所需要的花費不是很大,需要的開發(fā)工具、需要的軟件等都可以在網(wǎng)上找到試用版,不需要購買,所以不需要花費太多金錢,在經(jīng)濟(jì)上完全能夠完成本系統(tǒng)的設(shè)計。2.2.2人力可行性分析完成本系統(tǒng)不需要太多的人力資源,有老師、公司同事和同學(xué)的幫助,也可以在網(wǎng)上找到與本系統(tǒng)相關(guān)的很多資源,在人力資源上能夠完成本系統(tǒng)的設(shè)計。2.2.3技術(shù)可行性分析基于MyEclipse的即時通訊軟件,實現(xiàn)一般通訊軟件的基本功能(登錄,聊天,退出),沒有十分復(fù)雜的其他功能,如:好友分組、建群、截圖等,只是一些簡單的通訊功能,如:登錄、注冊、與好友聊天等基本的功能,這些都能夠運用所學(xué)的知識實現(xiàn)。本系統(tǒng)使用的編程語言是JAVA語言,所使用的平臺是MyEclipse平臺,對于MyEclipse的使用還是比較熟悉。雖然沒有系統(tǒng)的學(xué)習(xí)過JAVA編程。對于JAVA的一些知識有所欠缺,但是,學(xué)校開設(shè)了JAVA課程,使自己對于JAVA編程語言有一定了解,能夠在短時間之內(nèi)掌握一些基本的JAVA知識。完成這個通訊軟件的基礎(chǔ)知識大都已經(jīng)具備,同時,在網(wǎng)絡(luò)上有許多開源社區(qū),有很多開源愛好者,能夠查到許多開源源代碼,自己能夠充分運用這些網(wǎng)絡(luò)資源,完成這個畢業(yè)設(shè)計。2.3UseCase建模2.3.1定義活動者根據(jù)xxxxxxxx即時通訊系統(tǒng)模塊的需求可以確定2個活動者,用戶管理模塊和即時通訊模塊。用戶管理模塊的功能包括:用戶注冊、用戶登錄、用戶信息查詢、用戶信息維護(hù)、刪除注冊用戶、授予已注冊的用戶管理員權(quán)限。即時通訊模塊的功能包括:顯示在線用戶、聊天、短信群發(fā)、查詢聊天記錄。2.3.2UseCase圖根據(jù)系統(tǒng)需求分析,結(jié)合上節(jié)系統(tǒng)活動者的定義分析,得到xxxxxxxx即時通訊系統(tǒng)模塊的兩個用例如下:(1)用戶管理管理用例(2)即時通訊用例結(jié)合活動者和用例得到用戶管理模塊的用例圖如下圖2-1所示。圖2-1用戶管理UseCase圖Fig2-1UseCaseforUserManagement根據(jù)如上用例圖得到用戶管理用例描述如下表2-1所示:表2-1用戶管理用例描述Table2-1Usermanagementoftheusecasedescriptions用例名稱用戶管理用例描述當(dāng)用戶在系統(tǒng)中注冊之后,用戶可進(jìn)行用戶信息查詢、信息維護(hù)操作,管理員還可以進(jìn)行刪除注冊用戶、授予普通用戶管理員權(quán)限操作。參與者普通用戶、管理員優(yōu)先級1前置條件用戶已經(jīng)注冊后置條件進(jìn)行用戶管理相關(guān)操作基本操作流程普通用戶在系統(tǒng)中注冊系統(tǒng)驗證注冊信息是否符合要求符合要求的信息,系統(tǒng)將信息保存到數(shù)據(jù)庫中普通用戶或管理員登錄到系統(tǒng)系統(tǒng)驗證用戶身份登錄到系統(tǒng)的所有已注冊用戶可進(jìn)行查詢用戶信息、用戶信息維護(hù)操作,管理員還可進(jìn)行刪除注冊用戶、授予管理員權(quán)限操作。系統(tǒng)保存用戶更改的信息用戶退出系統(tǒng)可選操作流程無被泛化的用例普通用戶和管理員被包含的用例無被擴(kuò)展的用例無結(jié)合活動者和用例得到即時通訊模塊的用例圖如下圖2-2所示。圖2-2即時通訊UseCase圖Fig2-2UseCaseforInstantMessaging表2-2即時通訊用例描述Table2-2Instantmessagingoftheusecasedescriptions用例名稱即時通訊用例描述當(dāng)用戶登錄到系統(tǒng)后,可以看到在線用戶、與在線用戶聊天、查詢自身聊天記錄等操作,管理員還可查詢所有用戶的聊天記錄參與者普通用戶、管理員優(yōu)先級2前置條件用戶登錄到系統(tǒng)后置條件進(jìn)行即時通訊相關(guān)操作基本操作流程用戶登錄到系統(tǒng)中系統(tǒng)判斷用戶身份普通用戶可查看在線用戶、與在線用戶聊天、查詢自身聊天記錄,管理員還可以查看所有用戶的聊天記錄系統(tǒng)自動保存用戶的聊天記錄用戶退出系統(tǒng)可選操作流程無被泛化的用例普通用戶和管理員被包含的用例無被擴(kuò)展的用例無3系統(tǒng)架構(gòu)設(shè)計軟件的系統(tǒng)架構(gòu)是指通過某種特定的技術(shù)平臺,完成軟件系統(tǒng)整體功能的開發(fā)過程。也可以通俗地理解為:總體設(shè)計和總體結(jié)構(gòu)布局。一般而言,軟件系統(tǒng)架構(gòu)有兩個要素:(1)它是一個軟件系統(tǒng)從整體到部分的最高層次的劃分。(2)建造一個系統(tǒng)所做出的最高層次的,以后難以更改的,商業(yè)和技術(shù)的決定。3.1架構(gòu)設(shè)計目標(biāo)軟件架構(gòu)設(shè)計要達(dá)到如下的目標(biāo):(1)可行性(Feasible)。架構(gòu)具有可行性是架構(gòu)設(shè)計的基石。(2)可靠性(Reliable)。軟件系統(tǒng)對于用戶的商業(yè)經(jīng)營和管理來說極為重要,因此軟件系統(tǒng)必須非??煽俊#?)安全行(Secure)。軟件系統(tǒng)所承擔(dān)的交易的商業(yè)價值極高,系統(tǒng)的安全性非常重要。(4)可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場需求的變化進(jìn)行調(diào)整。(5)可擴(kuò)展性(Extensible)。在新技術(shù)出現(xiàn)的時候,一個軟件系統(tǒng)應(yīng)當(dāng)允許導(dǎo)入新技術(shù),從而對現(xiàn)有系統(tǒng)進(jìn)行功能和性能的擴(kuò)展。(6)可維護(hù)性(Maintainable)。軟件系統(tǒng)的維護(hù)包括兩方面,一是排除現(xiàn)有的錯誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費。(7)可升級性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場擴(kuò)展得可能性。(8)客戶體驗(CustomerExperience)。軟件系統(tǒng)必須易于使用。軟件的最終用戶很可能是不具有計算機(jī)專業(yè)技術(shù)的人員。3.2系統(tǒng)架構(gòu)設(shè)計下面我們將根據(jù)架構(gòu)設(shè)計原則和信息系統(tǒng)原理來建立系統(tǒng)的架構(gòu)設(shè)計模型。將信息系統(tǒng)中比較關(guān)心的對象分層,可分為三層:用戶層、業(yè)務(wù)層、數(shù)據(jù)訪問層(如下圖3-1所示),再把各層中的一些公共部分提出來:客戶端、服務(wù)器端等,這樣得到包圖如圖3-2所示:業(yè)務(wù)數(shù)據(jù)訪問層業(yè)務(wù)數(shù)據(jù)訪問層UI(UserInterface)UI控制邏輯層業(yè)務(wù)層DAO層系統(tǒng)服務(wù)層數(shù)據(jù)訪問層抽象數(shù)據(jù)訪問接口DatabaseproviderXMLproviderOtherprovider圖3-1系統(tǒng)體系架構(gòu)圖Fig3-1TheDiagramofSystemArchitecture圖3-2即時通訊系統(tǒng)模塊包圖Fig3-2PackageDiagramofInstantMessagingModel1.用戶界面包用戶界面包的職責(zé)是:(1)與用戶的交互,顯示用戶需要的各部分功能按鈕。(2)對于輸入的數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗,輸出結(jié)果。(3)向業(yè)務(wù)處理對象發(fā)送處理請求。(4)顯示用戶信息、系統(tǒng)當(dāng)前時間用戶界面包圖展開如圖3-3所示:圖3-3用戶界面包展開圖Fig3-3PackageDiagramofUsersInterface用戶界面包包含的類見圖3-4:圖3-4用戶界面類圖Fig3-4ClassDiagramofUsersInterface2.客戶端包客戶端包的職責(zé)是:(1)對客戶的業(yè)務(wù)進(jìn)行處理(2)啟動監(jiān)聽線程客戶端包圖展開如圖3-5所示:圖3-5客戶端包圖展開Fig3-5PackageDiagramofclient客戶端包包含的類見圖3-6:圖3-6客戶端類圖Fig3-6ClassDiagramofclient3.服務(wù)器包服務(wù)器包的職責(zé)是:(1)用戶上線、下線的處理(2)建立服務(wù)器(3)監(jiān)聽客戶端請求服務(wù)器包圖展開如圖3-7所示:圖3-7服務(wù)器包圖展開Fig3-7PackageDiagramofServer服務(wù)器包包含的類見圖3-8:圖3-8服務(wù)器類圖Fig3-8ClassDiagramofServer4.數(shù)據(jù)訪問包數(shù)據(jù)訪問層的職責(zé)是:(1)實現(xiàn)數(shù)據(jù)的持久化操作。(2)實現(xiàn)事務(wù)處理。數(shù)據(jù)訪問包圖展開如圖3-9所示:圖3-9數(shù)據(jù)訪問包圖展開Fig3-9PackageDiagramofDataAccess數(shù)據(jù)訪問包包含的類見圖3-10:圖3-10數(shù)據(jù)訪問類圖Fig3-10ClassDiagramofDataAccess5.業(yè)務(wù)邏輯包業(yè)務(wù)邏輯包的職責(zé)是:(1)實現(xiàn)各種業(yè)務(wù)的處理。(2)判斷用戶的權(quán)限。(3)向數(shù)據(jù)訪問對象發(fā)送數(shù)據(jù)持久化操作的請求。(4)向用戶界面層返回處理結(jié)果。業(yè)務(wù)邏輯包圖展開如圖3-11所示:圖3-11業(yè)務(wù)邏輯包圖展開Fig3-11PackageDiagramofBusinesslogic業(yè)務(wù)邏輯包包含的類見圖3-12:圖3-12業(yè)務(wù)邏輯類圖Fig3-12ClassDiagramofBusinesslogic對于每一個業(yè)務(wù)處理中需要持久化操作的對象都可以對應(yīng)為一個數(shù)據(jù)庫訪問對象,在很多業(yè)務(wù)處理中需要請求多個數(shù)據(jù)庫訪問對象來進(jìn)行數(shù)據(jù)的讀寫操作,而這些操作又必須在同一個事務(wù)中,這時需要用同一個數(shù)據(jù)庫連接對象來進(jìn)行統(tǒng)一的事務(wù)處理。6.實體包實體包的主要職責(zé)是:(1)作為數(shù)據(jù)容器用來持久化儲存數(shù)據(jù)。實體類包圖展開如圖3-13所示:圖3-13實體類包圖展開Fig3-13PackageDiagramofEntity實體類包包含的類見圖3-14:圖3-14實體類類圖Fig3-14ClassDiagramofEntity7.工具包工具包的主要職責(zé)是:(1)選擇數(shù)據(jù)庫類型,連接數(shù)據(jù)庫。(2)對線程的一些控制。(3)提供當(dāng)前系統(tǒng)時間。工具包圖展開如圖3-15所示:圖3-15工具包圖展開Fig3-15PackageDiagramofTool工具包包含的類見圖3-16:圖3-16工具類圖Fig3-16ClassDiagramofTool3.3系統(tǒng)架構(gòu)類圖將包圖展開,得到類圖,它是架構(gòu)的靜態(tài)結(jié)構(gòu)圖,表達(dá)了各個類之間的靜態(tài)聯(lián)系。xxxxxxxx即時通訊系統(tǒng)架構(gòu)類圖如下圖3-13所示。圖3-13系統(tǒng)架構(gòu)類圖Fig3-13ClassDiagramofSystemArchitecture4系統(tǒng)詳細(xì)設(shè)計本部分設(shè)計主要涉及軟件系統(tǒng)的動態(tài)建模和系統(tǒng)類圖的詳細(xì)設(shè)計。軟件系統(tǒng)的動態(tài)模型分為交互模型和活動狀態(tài)模型,其中的交互模型主要由順序圖和協(xié)作圖構(gòu)成,活動狀態(tài)模型主要包括活動圖和狀態(tài)圖。通過為軟件系統(tǒng)項目建立動態(tài)模型,從而產(chǎn)生體現(xiàn)系統(tǒng)動態(tài)行為的可視化分析結(jié)果——包括對象的時間特性和對象為完成目標(biāo)任務(wù)而相互進(jìn)行通信的機(jī)制、對象行為的改變和狀態(tài)變化情況,以及對象可能出現(xiàn)的各種活動狀況等信息。4.1系統(tǒng)交互圖4.1.1系統(tǒng)順序圖與用戶管理模塊、即時通訊模塊進(jìn)行交互的活動者(角色),都是用戶。用戶與用戶管理模塊和即時通訊模塊的順序圖如下圖4-1和圖4-2所示:圖4-1用戶與用戶管理順序圖Fig4-1SequenceDiagrambetweenUserandUserManagement圖4-2用戶與即時通訊模塊順序圖Fig4-2SequenceDiagrambetweenUserandInstantMessagingModel4.1.2系統(tǒng)協(xié)作圖交互圖用來說明系統(tǒng)如何實現(xiàn)一個用例或用例中的一個特殊場景。UML提供兩類交互圖:時序圖和協(xié)作圖。時序圖按時間順序描述系統(tǒng)元素之間的交互;協(xié)作圖則按照時間和空間順序來描述系統(tǒng)元素之間的交互。下面介紹本系統(tǒng)的協(xié)作圖,如圖4-3,圖4-4所示:圖4-3用戶管理協(xié)作圖Fig4-3CollaborationDiagramofUserManagement圖4-4即時通訊協(xié)作圖Fig4-4CollaborationDiagramofInstantMessaging4.1.3系統(tǒng)狀態(tài)圖狀態(tài)圖是通過類對對象的生命周期建立模型來描述對象隨時間變化的動態(tài)行為。狀態(tài)圖顯示了一個狀態(tài)機(jī),它基本上是一個狀態(tài)機(jī)中的元素的一個投影,也就意味著狀態(tài)圖包括狀態(tài)機(jī)的所有特性。用戶管理模塊狀態(tài)圖如下圖4-5所示。圖4-5用戶管理的狀態(tài)圖Fig4-5StateDiagramforUserManagement即時通訊模塊狀態(tài)圖如下圖4-6所示。圖4-6即時通訊的狀態(tài)圖Fig4-6StateDiagramforinstantmessaging4.1.4系統(tǒng)活動圖活動圖是描述活動是如何協(xié)同工作的。當(dāng)一個操作必須完成一系列事情,而又無法確定以什么樣的順序來完成這些事情時,活動圖可以更清晰地描述這些事情。在用戶管理模塊中,主要涉及普通用戶與管理員的活動。用戶先在系統(tǒng)中注冊,注冊后的用戶默認(rèn)為普通用戶,然后根據(jù)用戶名、密碼可以登錄到系統(tǒng)中,普通用戶可以查看本用戶信息、修改個人信息,管理員還可以查詢所有注冊用戶信息、修改所有注冊用戶信息、刪除已注冊任何賬號、授予普通用戶管理員權(quán)限等活動。完成活動后退出系統(tǒng),下面給出系統(tǒng)用戶管理模塊的活動圖,如下圖4-7所示。圖4-7用戶與管理員在用戶管理模塊的活動圖Fig4-7ActivityDiagramforUserandAdministratorManagement4.2業(yè)務(wù)邏輯對象類設(shè)計4.2.1發(fā)現(xiàn)業(yè)務(wù)邏輯類本小節(jié)的主要任務(wù)是對系統(tǒng)架構(gòu)類圖中的業(yè)務(wù)邏輯類進(jìn)行設(shè)計,由系統(tǒng)分析中的UseCase交互圖我們可以發(fā)現(xiàn)業(yè)務(wù)邏輯類包括用戶管理類和即時通訊類,根據(jù)UseCase交互圖中的消息找到對象類相應(yīng)的方法。4.2.2業(yè)務(wù)邏輯對象類圖用戶管理對象類圖如下圖4-8所示。圖4-8用戶管理對象類圖Fig4-8ObjectClassDiagramforUserManagement即時通訊對象類圖如下圖4-9所示。圖4-9即時通訊對象類圖Fig4-9OptimalObjectClassDiagramforInstantMessaging4.3數(shù)據(jù)庫設(shè)計關(guān)系型數(shù)據(jù)庫是目前應(yīng)用最廣泛的數(shù)據(jù)庫。既然是面向?qū)ο笙到y(tǒng)設(shè)計,數(shù)據(jù)庫設(shè)計當(dāng)然也要是面向?qū)ο蟮摹,F(xiàn)在要考慮如何對類進(jìn)行持久化操作,即如何將對象類映射到關(guān)系數(shù)據(jù)庫的二維表。目前可以采用數(shù)據(jù)庫建模工具來實現(xiàn),象PowerDesigner、Rose等。4.3.1ER圖用戶管理模塊的普通用戶和管理員可以映射為一張表,即時通訊模塊的普通用戶和管理員也可以映射到一張表。xxxxxxxx即時通訊系統(tǒng)的ER模型圖見圖4-10。11*用戶聊天記錄昵稱用戶名密碼郵箱性別聊天名字1名字2聊天內(nèi)容序列號序列號圖4-10即時通訊系統(tǒng)ER圖Fig4-10E-RDiagramofInstantMessagingSystem4.3.2關(guān)系模型設(shè)計xxxxxxxx即時通訊系統(tǒng)的關(guān)系模式如下:(1)用戶信息表(序列號,用戶名,密碼,昵稱,郵箱,性別,權(quán)限)(2)聊天記錄表(序列號,名字1,名字2,聊天記錄)4.3.3物理表結(jié)構(gòu)圖即時通訊系統(tǒng)總共使用到了兩張數(shù)據(jù)表,用戶信息表(Userinfo)與聊天記錄表(chatinfo)。用戶信息表(Userinfo)用來記錄所有已注冊的用戶的登錄名稱、密碼、昵稱、郵箱、性別、權(quán)限等信息id為主鍵,其結(jié)構(gòu)如表4-1所示:表4-1用戶表Table4-1Userinfo列名數(shù)據(jù)類型是否主鍵可否為空idint是否namechar(40)否否passchar(20)否否aliasmailsexpowerchar(40)char(40)char(5)char(20)否否否否否否否否用戶聊天記錄表(chatinfo)用來記錄用戶的聊天對象、聊天內(nèi)容等信息,id為主鍵,其結(jié)構(gòu)如表4-2所示:表4-2用戶聊天記錄表Table4-2chatinfo列名數(shù)據(jù)類型是否主鍵可否為空idInt是否name1char(40)否是name2char(40)否是infochar(200)否是4.4開發(fā)環(huán)境的選擇4.4.1系統(tǒng)開發(fā)工具本系統(tǒng)采用MyEclipse6.0作為xxxxxxxx即時通訊系統(tǒng)開發(fā)工具。MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate[1]。MyEclipse是一個十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對各種開源產(chǎn)品的支持十分不錯。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項功能??梢哉fMyEclipse是幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。根據(jù)官方最新消息,MyEclipse2013已經(jīng)正式發(fā)布!MyEclipse2013[2]支持HTML5、JQuery和主流的Javascript庫。隨著MyEclipse2013支持Html5,你可以添加音頻、視頻和API元素到你的項目,從而為移動設(shè)備創(chuàng)建復(fù)雜的Web應(yīng)用程序。你甚至還可以通過HTML5可視化設(shè)計器設(shè)計令人難以置信的用戶界面。同時,隨著MyEclipse2013支持JQuery,你可以通過插件提升性能,并添加動畫效果到設(shè)計中。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:(1)JavaEE模型(2)WEB開發(fā)工具(3)EJB開發(fā)工具(4)應(yīng)用程序服務(wù)器的連接器(5)JavaEE項目部署服務(wù)(6)數(shù)據(jù)庫服務(wù)(7)MyEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨的擴(kuò)展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse5.5以前版本需先安裝Eclipse。MyEclipse5.5以后版本安裝時不需安裝Eclipse。Tomcat是Apache軟件基金會(ApacheSoftwareFoundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet2.4和JSP2.0規(guī)范。因為Tomcat技術(shù)先進(jìn)、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web應(yīng)用服務(wù)器。目前最新版本是8.0。Tomcat服務(wù)器是一個免費的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用。)頁面的訪問請求。實際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨立運行的,所以當(dāng)你運行tomcat時,它實際上作為一個與Apache獨立的進(jìn)程單獨運行的。訣竅是,當(dāng)配置正確時,Apache為HTML頁面服務(wù),而Tomcat實際上運行JSP頁面和Servlet。另外,Tomcat和IIS等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為8.0.0-RC1(alpha)Released。Tomcat很受廣大程序員的喜歡,因為它運行時占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個感興趣的程序員都可以更改它或在其中加入新的功能。名稱由來Tomcat最初是由Sun的軟件構(gòu)架師詹姆斯·鄧肯·戴維森開發(fā)的。后來他幫助將其變?yōu)殚_源項目,并由Sun貢獻(xiàn)給Apache軟件基金會。由于大部分開源項目O'Reilly都會出一本相關(guān)的書,并且將其封面設(shè)計成某個動物的素描,因此他希望將此項目以一個動物的名字命名。因為他希望這種動物能夠自己照顧自己,最終,他將其命名為Tomcat(英語公貓或其他雄性貓科動物)。而O'Reilly出版的介紹Tomcat的書籍(ISBN0-596-00318-8)[1]的封面也被設(shè)計成了一個公貓的形象。而Tomcat的Logo兼吉祥物也被設(shè)計成了一只公貓。4.4.2數(shù)據(jù)庫的選擇SQLServer2008在Microsoft的數(shù)據(jù)平臺上發(fā)布,可以組織管理任何數(shù)據(jù)。可以將結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化文檔的數(shù)據(jù)直接存儲到數(shù)據(jù)庫中??梢詫?shù)據(jù)進(jìn)行查詢、搜索、同步、報告和分析之類的操作。數(shù)據(jù)可以存儲在各種設(shè)備上,從數(shù)據(jù)中心最大的服務(wù)器一直到桌面計算機(jī)和移動設(shè)備,它都可以控制數(shù)據(jù)而不用管數(shù)據(jù)存儲在哪里。SQLServer2008允許使用Microsoft.NET和VisualStudio開發(fā)的自定義應(yīng)用程序中使用數(shù)據(jù),在面向服務(wù)的架構(gòu)(SOA)和通過MicrosoftBizTalkServer進(jìn)行的業(yè)務(wù)流程中使用數(shù)據(jù)。信息工作人員可以通過日常使用的工具直接訪問數(shù)據(jù)。SQLServer2008出現(xiàn)在微軟數(shù)據(jù)平臺愿景上是因為它使得公司可以運行他們最關(guān)鍵任務(wù)的應(yīng)用程序,同時降低了管理數(shù)據(jù)基礎(chǔ)設(shè)施和發(fā)送觀察和信息給所有用戶的成本。這個平臺有以下特點:可信任的——使得公司可以以很高的安全性、可靠性和可擴(kuò)展性來運行他們最關(guān)鍵任務(wù)的應(yīng)用程序。高效的——使得公司可以降低開發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時間和成本。智能的——提供了一個全面的平臺,可以在你的用戶需要的時候給他發(fā)送觀察和信息。4.4.3系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計xxxxxxxx即時通訊系統(tǒng)采用C/S結(jié)構(gòu),系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖見圖4-11??蛻粽埱罂蛻粽埱蠼缑嬲故緦覷I業(yè)務(wù)邏輯層BLLADODirect數(shù)據(jù)訪問層數(shù)據(jù)更新程序ORM類模型代碼生成器SQL/Oracle圖4-11系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖Fig4-11NetArchitectureDiagramofSystem客戶機(jī)(服務(wù)器)配置情況及支持軟件安裝如下表4-8所示。表4-8客戶機(jī)(服務(wù)器)配置情況Table4-8Thecircumstancesoftheclient(server)客戶機(jī)(服務(wù)器)配置支持軟件安裝1.系統(tǒng):Windows764位2.處理器:Intel(R)Core(TM)i3CPUM380@2.53GHz2.53GHz3.內(nèi)存(RAM):6.00GBMyEclipseSqlserver2005以上5編碼5.1概述開發(fā)工具及編程腳本(1)JAVA語言簡介紹JAVA是一種最新的、面向?qū)ο蟮木幊陶Z言[2]。它使得程序員可以快速地編寫各種基于MicrosoftMyEclipse平臺的應(yīng)用程序,MicrosoftMyEclipse提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計算與通訊領(lǐng)域。正是由于JAVA面向?qū)ο蟮淖吭皆O(shè)計,使它成為構(gòu)建各類組件的理想之選——無論是高級的商業(yè)對象還是系統(tǒng)級的應(yīng)用程序。使用簡單的JAVA語言結(jié)構(gòu),這些組件可以方便的轉(zhuǎn)化為XML網(wǎng)絡(luò)服務(wù),從而使它們可以由任何語言在任何操作系統(tǒng)上通過Internet進(jìn)行調(diào)用。最重要的是,JAVA使得C++程序員可以高效的開發(fā)程序,而絕不損失C/C++原有的強(qiáng)大的功能。因為這種繼承關(guān)系,JAVA與C/C++具有極大的相似性,熟悉類似語言的開發(fā)者可以很快的轉(zhuǎn)向JAVA。JAVA語言有以下一些功能:eq\o\ac(○,1)效率與安全性eq\o\ac(○,2)支持現(xiàn)有的網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)eq\o\ac(○,3)清除大量程序錯誤eq\o\ac(○,4)JAVA語言允許類型定義的、擴(kuò)展的元數(shù)據(jù)eq\o\ac(○,5)擴(kuò)展交互性(2)Socket技術(shù)所謂Socket通常也稱作“套接字”,應(yīng)用程序通常通過“套接字”向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。依照連接啟動的方式和本地套接字需要連接的目標(biāo),套接字之間的連接過程可以分為三個步驟:服務(wù)器監(jiān)聽,客戶端請求,連接確認(rèn)。服務(wù)器端監(jiān)聽:服務(wù)器端套接字并不定位監(jiān)聽具體的某一個客戶端套接字,而是處于等待連接的狀態(tài),實時監(jiān)控網(wǎng)絡(luò)狀態(tài)。客戶端請求:是指由客戶端套接字提出連接請求,要連接的目標(biāo)是服務(wù)器端套接字。為此,客戶端套接字必須首先描述它要連接的服務(wù)器套接字,指出服務(wù)器端套接字的地址和端口號,然后就向服務(wù)器端套接字提出連接請求。連接確認(rèn):是指當(dāng)服務(wù)器端套接字監(jiān)聽到或者接收到客戶端套接字的連接請求,它就響應(yīng)客戶端套接字的請求,創(chuàng)建一個新的線程,把服務(wù)器端套接字的信息發(fā)送給客戶端,一旦客戶端確認(rèn)了此信息,連接就創(chuàng)建好了。而服務(wù)器端套接字還是繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收和處理其他客戶端套接字的連接請求。(3)Client/Server結(jié)構(gòu)(客戶端/服務(wù)器模式)C/S結(jié)構(gòu)(Client/Server,客戶機(jī)/服務(wù)器),是20世紀(jì)80年代末逐步成長起來的一種模式,是軟件系統(tǒng)體系結(jié)構(gòu)中的一種。利用它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到客戶端和服務(wù)器端來實現(xiàn),降低了系統(tǒng)通訊的開銷?,F(xiàn)在大多數(shù)應(yīng)用軟件系統(tǒng)都是Client/Server形式的兩層結(jié)構(gòu),由于現(xiàn)在的軟件應(yīng)用系統(tǒng)正在向分布式的Web應(yīng)用發(fā)展,Web和Client/Server應(yīng)用都可以進(jìn)行同樣的業(yè)務(wù)處理,應(yīng)用不同的模塊共享邏輯組件;因此,內(nèi)部的和外部的用戶都可以訪問新的和現(xiàn)有的應(yīng)用系統(tǒng),通過現(xiàn)有應(yīng)用系統(tǒng)中的邏輯可以擴(kuò)展出新的應(yīng)用系統(tǒng)。這也就是目前應(yīng)用系統(tǒng)的發(fā)展方向。C/S結(jié)構(gòu)的關(guān)鍵在于功能的分布,一些功能放在客戶端執(zhí)行,另一些功能則放在服務(wù)器端執(zhí)行。功能的分布在于減少計算機(jī)系統(tǒng)的各種問題。C/S模式簡單來說就是基于企業(yè)內(nèi)部網(wǎng)絡(luò)的應(yīng)用系統(tǒng)。與B/S(Browser/Server,瀏覽器/服務(wù)器)模式相比,C/S模式應(yīng)用系統(tǒng)的最大好處不在于依賴企業(yè)外網(wǎng)環(huán)境,也就是說無論用戶能否上網(wǎng),都不會影響應(yīng)用。(4)TCP/IP協(xié)議TCP/IP是國際互聯(lián)網(wǎng)所采用進(jìn)行網(wǎng)際互連的通信協(xié)議[3],實際所稱的TCP/IP協(xié)議包括了在國際互聯(lián)網(wǎng)絡(luò)應(yīng)用的一組協(xié)議,互聯(lián)網(wǎng)協(xié)議族是此協(xié)議族的另一個名字。TCP協(xié)議TCP(TransmissionControlProtocol)傳輸控制協(xié)議是一個TCP/IP的組中能夠完成可靠數(shù)據(jù)傳送的傳輸層協(xié)議,并經(jīng)過順序響應(yīng)能完成對應(yīng)用程序的虛擬連接服務(wù),在需要的時候進(jìn)行包轉(zhuǎn)發(fā)。與IP協(xié)議相結(jié)合,TCP是網(wǎng)絡(luò)協(xié)議的核心。應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)?、?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分割成適當(dāng)長度的報文段。之后TCP把結(jié)果包傳給IP層,由它來通過網(wǎng)絡(luò)將包傳送給接收端實體的TCP層。TCP為了保證不發(fā)生丟包,就給每個字節(jié)一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然后接收端實體對已成功收到的字節(jié)發(fā)回一個相應(yīng)的確認(rèn)(ACK);如果發(fā)送端實體在合理的往返時延(RTT)內(nèi)未收到確認(rèn),那么對應(yīng)的數(shù)據(jù)(假設(shè)丟失了)將會被重傳。TCP用一個校驗和函數(shù)來檢驗數(shù)據(jù)是否有錯誤;在發(fā)送和接收時都要計算和校驗。TCP服務(wù)提供了可靠性、有效流控制、數(shù)據(jù)流傳輸、多路復(fù)用技術(shù)和全雙工操作等。UDP協(xié)議UDP協(xié)議的是英文UserDatagramProtocol的縮寫,中文名是用戶數(shù)據(jù)報協(xié)議[7]。是OSI參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù),IETFRFC768是UDP的正式規(guī)范。UDP協(xié)議主要是用來支持那些需要在計算機(jī)之間傳輸數(shù)據(jù)的應(yīng)用[12]。在網(wǎng)絡(luò)中它與TCP協(xié)議一樣用于處理數(shù)據(jù)包,是一種無連接的協(xié)議。UDP用來支持那些要在計算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會議系統(tǒng)在內(nèi)的眾多的客戶/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都會使用到UDP協(xié)議。與所熟知的TCP協(xié)議一樣,UDP協(xié)議直接位于IP(網(wǎng)際協(xié)議)協(xié)議的頂層。根據(jù)OSI參考模型,UDP和TCP都屬于傳輸層協(xié)議。UDP協(xié)議使用端口號為不同的應(yīng)用保留其各自的數(shù)據(jù)傳輸通道。UDP和TCP協(xié)議正是采用這一機(jī)制實現(xiàn)對同一時刻內(nèi)多項應(yīng)用同時發(fā)送和接收數(shù)據(jù)的支持。發(fā)送數(shù)據(jù)的一方(可以是客戶端或服務(wù)器端)將UDP數(shù)據(jù)報通過源端口發(fā)送出去,而接收數(shù)據(jù)的一方則通過目標(biāo)端口接收數(shù)據(jù)。有的網(wǎng)絡(luò)應(yīng)用只能使用預(yù)先為其預(yù)留或注冊的靜態(tài)端口;而另外一些網(wǎng)絡(luò)應(yīng)用則可以使用未被注冊的動態(tài)端口。因為UDP報頭使用兩個字節(jié)存放端口號,所以端口號的有效范圍是從0到65535。一般來說,大于49151的端口號都代表動態(tài)端口。5.2腳本習(xí)慣說明(1)Java命名約定。采用適用于相關(guān)領(lǐng)域的術(shù)語采用大小寫混合使名字可讀盡量少用縮寫,但如果用了,要明智地使用,且在整個工程中統(tǒng)一避免使用長的名字(一般小于15個字母)避免使用類似的名字,或者僅僅是大小寫不同的名字避免使用下劃線(除靜態(tài)常量等)(2)包(Package)采用完整的英文描述符,應(yīng)該都是由小寫字母組成。對于全局包,將你的Internet域名反轉(zhuǎn)并接上包名。例如:java.awt,com.ambysoft.www.persistence(3)類(Class)采用完整的英文描述符,所有單詞的第一個字母大寫(一些專有的縮寫詞,比如:AWTException等則除外)。Class的名字建議使用名詞或者名詞短語。例如:Customer,SavingsAccount,LayoutManager等(4)接口(Interface)接口的名字取決于接口的主要功能和用途。如果接口是使對象具有某種特定的功能,則接口的名字建議使用可以描述這種功能的形容詞(加上-able或者-ible后綴)例如:Searchable,Sortable等如果接口不是使對象具有某種特定的功能則建議使用名詞或者名詞短語(同類的命名規(guī)則)。(5)組件/部件(Component)使用完整的英文描述來說明組件的用途,末端應(yīng)接上組件類型。okButton,customerList,fileMenu(6)異常(Exception)通常采用字母e表示異常。(7)類變量字段采用完整的英文描述,第一個字母小寫,任何中間單詞的首字母大寫。firstName,lastName(8)靜態(tài)常量字段(staticfinal)全部采用大寫字母,單詞之間用下劃線分隔。MIN_BALANCE,DEFAULT_DATE方法方法命名采用大小寫混合的形式。以小寫字母開頭,名字中其他單詞的首字母以大寫字母開頭,所有其它的單詞都為小寫字母,不要使用下劃線分隔單詞。方法的命名應(yīng)該能描繪出方法的作用和功能,方法的名字建議使用祈使動詞或者動詞短語。例如:showStatus(),drawCircle()(9)成員函數(shù)被訪問字段名的前面加上前綴get。getFirstName(),getLastName()

布爾型的獲取成員函數(shù)所有的布爾型獲取函數(shù)必須用單詞is做前綴。isPersistent(),isString();設(shè)置成員函數(shù)被訪問字段名的前面加上前綴set。setFirstName(),setLastName(),setWarpSpeed()5.3腳本通過修改工具包中的perties配置文件來進(jìn)行數(shù)據(jù)庫的連接,具體代碼如下:driver=com.microsoft.jdbc.sqlserver.SQLServerDriverurl=jdbc\:microsoft\:sqlserver\://localhost\:1433;DatabaseName\=mydbusername=sapassword=1234566測試6.1測試原則及測試方法概述軟件測試是為了發(fā)現(xiàn)錯誤而不斷執(zhí)行程序的過程?;蛘哒f,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測試用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程按順序逐個對測試項目做出說明。軟件測試過程應(yīng)該遵循如下的原則:(1)盡早地和不斷地進(jìn)行軟件測試。不應(yīng)把軟件測試僅僅看作是軟件開發(fā)的一個獨立階段,而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個階段中。堅持在軟件開發(fā)的各個階段的技術(shù)評審,這樣才能在開發(fā)過程中盡早發(fā)現(xiàn)和預(yù)防錯誤,把出現(xiàn)的錯誤克服在早期,杜絕某些發(fā)生錯誤的隱患。(2)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。測試以前應(yīng)當(dāng)根據(jù)測試的要求選擇測試用例(Testcase),用來檢驗程序員編制的程序,因此不但需要測試的輸入數(shù)據(jù),而且需要針對這些輸入數(shù)據(jù)的預(yù)期輸出結(jié)果。(3)程序員應(yīng)避免檢查自己的程序。程序員應(yīng)盡可能避免測試自己編寫的程序,程序開發(fā)小組也應(yīng)盡可能避免測試本小組開發(fā)的程序。如果條件允許,最好建立獨立的軟件測試小組或測試機(jī)構(gòu)。這點不能與程序的調(diào)試(debuging)相混淆。調(diào)試由程序員自己來做可能更有效。(4)在設(shè)計測試用例時,應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件。合理的輸入條件是指能驗證程序正確的輸入條件,不合理的輸入條件是指異常的,臨界的,可能引起問題異變的輸入條件。軟件系統(tǒng)處理非法命令的能力必須在測試時受到檢驗。用不合理的輸入條件測試程序時,往往比用合理的輸入條件進(jìn)行測試能發(fā)現(xiàn)更多的錯誤。(5)充分注意測試中的群集現(xiàn)象。在被測程序段中,若發(fā)現(xiàn)錯誤數(shù)目多,則殘存錯誤數(shù)目也比較多。這種錯誤群集性現(xiàn)象,已為許多程序的測試實踐所證實。根據(jù)這個規(guī)律,應(yīng)當(dāng)對錯誤群集的程序段進(jìn)行重點測試,以提高測試投資的效益。(6)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性。測試之前應(yīng)仔細(xì)考慮測試的項目,對每一項測試做出周密的計劃,包括被測程序的功能、輸入和輸出、測試內(nèi)容、進(jìn)度安排、資源要求、測試用例的選擇、測試的控制方式和過程等,還要包括系統(tǒng)的組裝方式、跟蹤規(guī)程、調(diào)試規(guī)程,回歸測試的規(guī)定,以及評價標(biāo)準(zhǔn)等。對于測試計劃,要明確規(guī)定,不要隨意解釋。(7)應(yīng)當(dāng)對每一個測試結(jié)果做全面檢查。有些錯誤的征兆在輸出實測結(jié)果時已經(jīng)明顯地出現(xiàn)了,但是如果不仔細(xì)地全面地檢查測試結(jié)果,就會使這些錯誤被遺漏掉。所以必須對預(yù)期的輸出結(jié)果明確定義,對實測的結(jié)果仔細(xì)分析檢查,抓住征侯,暴露錯誤。(8)妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告,為維護(hù)提供方便。測試過程按4個步驟進(jìn)行,即單元測試、組裝測試、確認(rèn)測試和系統(tǒng)測試。圖6-1顯示出軟件測試經(jīng)歷的4個步驟。圖6-1軟件測試的過程Fig6-1Softwaretestsprocess軟件測試的種類大致可以分為人工測試和基于計算機(jī)的測試。而基于計算機(jī)的測試由可以分為白盒測試和黑盒測試。黑盒測試根據(jù)軟件產(chǎn)品的功能設(shè)計規(guī)格,在計算機(jī)上進(jìn)行測試,以證實每個實現(xiàn)了的功能是否符合要求。這種測試方法就是黑盒測試。黑盒測試意味著測試要在軟件的接口處進(jìn)行。就是說,這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求分析規(guī)格說明,檢查程序的功能是否符合它的功能說明。用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。在本次xxxxxxxx即時通訊系統(tǒng)的測試中采用的是黑盒測試6.2測試項目測試用例(1)模塊名稱。(2)操作過程及數(shù)據(jù)。(3)預(yù)期結(jié)果(4)實際結(jié)果(5)偏差(6)用例類別下面是xxxxxxxx即時通訊的測試用例:表6-1用戶管理模塊測試案例tab6-1usermanagementmodeltestscase模塊操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果偏差用例類別用戶注冊點擊注冊按鈕,填完信息后點擊注冊用戶名q注冊成功注冊成功0功能點密碼q郵箱12345@昵稱q性別男用戶登錄輸入用戶名和密碼,點擊登錄用戶名q登錄成功登錄成功0功能點密碼q普通用戶查詢信息點擊查詢用個人信息顯示個人信息顯示個人信息0功能點管理員查詢所有用戶信息點擊查詢所有用戶信息顯示所有用戶信息顯示所有用戶信息0功能點用戶信息維護(hù)點擊修改個人信息用戶名q修改成功修改成功0功能點密碼1郵箱12345@昵稱q性別女刪除注冊用戶管理員點擊刪除注冊用戶,輸入用戶名用戶名q刪除成功刪除成功0功能點授予管理員權(quán)限管理員點擊授予管理員權(quán)限,輸入用戶名用戶名w授權(quán)成功授權(quán)成功0功能點表6-2即時通訊模塊測試案例tab6-2instantmessagingtestscase模塊操作過程及數(shù)據(jù)預(yù)期結(jié)果實際結(jié)果偏差用例類別聊天點擊進(jìn)入聊天,登錄到服務(wù)器,選擇聊天對象,輸入聊天內(nèi)容,發(fā)送消息聊天對象ww收到聊天內(nèi)容w收到聊天內(nèi)容0功能點聊天內(nèi)容Hello!顯示在線用戶點擊登錄服務(wù)器無無能夠看到在線用戶能夠看到在線用戶0功能點短信群送群發(fā)短信短信內(nèi)容大家好所有在線用戶均能看到消息所有在線用戶均能看到消息0功能點普通用戶查詢自身聊天記錄點擊查看聊天記錄無無能夠看到自己的聊天記錄能夠看到自己的聊天記錄0功能點查看所有用戶聊天記錄點擊查詢所有人聊天記錄,輸入將要查看的用戶名用戶名q能夠看到q用戶的所有聊天記錄能夠看到q用戶的所有聊天記錄0功能點6.3軟件測試結(jié)論6.3.1軟件能力在測試過程中需求中涉及的功能都已實現(xiàn),出現(xiàn)的問題得到了解決,并得到預(yù)期結(jié)果,所以該軟件可運行。6.3.2缺陷和限制因為本次測試采用的是黑盒測試,功能雖然都已實現(xiàn),但仍存在一些缺陷和限制:(1)功能的限制:由于技術(shù)能力有限,所有某些功能可能不夠完善;(2)頁面的美化:由于沒有系統(tǒng)的學(xué)習(xí)過頁面美化的課程,所有頁面的設(shè)計顯得有些簡單;(3)測試的缺陷:由于采用的黑盒測試,測試的結(jié)果取決于測試用例的設(shè)計,測試用例的設(shè)計部分來源于經(jīng)驗,所以測試可能還不夠全面、透徹。6.3.3建議(1)進(jìn)一步學(xué)習(xí)相關(guān)技術(shù),虛心請教(2)多學(xué)習(xí)一些美工的知識,多查閱一些資料(3)盡可能的測試到所以可能性,找有經(jīng)驗的人請教測試用例的設(shè)計方法。多設(shè)計一些測試用例,盡量把可能的結(jié)果的測試到,盡早發(fā)現(xiàn)系統(tǒng)中的不足,完善系統(tǒng)。6.3.4測試結(jié)論下面以《xxxxxxxx即時通訊系統(tǒng)》的測試報告為例,說明軟件系統(tǒng)測試結(jié)論。表6-3xxxxxxxx即時通訊系統(tǒng)軟件問題統(tǒng)計分析表Table6-3pacterainstantmessagingsystemsoftwarequestionstatisticsanalyticaltable問題數(shù)量代碼行數(shù)(千行)10提交bug總數(shù)45有效bug總數(shù)40發(fā)現(xiàn)bug效率88.89%bug密度(個/千行)4關(guān)閉bug數(shù)3848遺留bug數(shù)1遺留bug比率10%測試用例數(shù)108測試用例密度(個/千行)10.8圖6-3xxxxxxxx即時通訊系統(tǒng)軟件測試結(jié)果Fig6-3pacterainstantmessagingsystemsoftwaretestsresult圖6-4xxxxxxxx即時通訊系統(tǒng)軟件測試結(jié)果Fig6-4pacterainstantmessagingsystemsoftwaretestsresult經(jīng)過重復(fù)、詳細(xì)的測試,上述軟件系統(tǒng)所發(fā)現(xiàn)的問題,已經(jīng)得到全面糾正,系統(tǒng)可以投入運行。結(jié)論經(jīng)過幾個月的畢業(yè)設(shè)計,即時通訊系統(tǒng)終于完成了。本文在對相關(guān)理論知識的基礎(chǔ)上設(shè)計了一個基于C/S(客戶端/服務(wù)器模式)的即時通訊系統(tǒng),分析系統(tǒng)的工作流程,并應(yīng)用MyEclipse平臺具體實現(xiàn)了一些基本的功能,如:注冊、登錄、授權(quán)、查看用戶信息、用戶信息維護(hù)、聊天、查看聊天記錄等。本系統(tǒng)功能雖簡單,但目的的了解基于MyEclipse的窗體應(yīng)用程序的開發(fā)過程,如果要完善系統(tǒng)還需更多的時間。畢業(yè)設(shè)計的過程是一個學(xué)習(xí)與研究的過程,而且,我深刻地認(rèn)識到如果在實踐中學(xué)習(xí)與研究,所學(xué)習(xí)的知識和技能就會更扎實。我使用MyEclipse為開發(fā)平臺、SQLServer2008為后臺數(shù)據(jù)庫,Socket等相關(guān)技術(shù)完成系統(tǒng),雖然系統(tǒng)已基本完成,但我對于MyEclipse的核心技術(shù)和高級編程還是很陌生,不能熟練運用,對于JAVA語言也不是很熟悉,這是我以后需解決的問題。在此次的畢業(yè)設(shè)計中,我深深地體會到進(jìn)行軟件開發(fā)不是一件容易的事情,它需要開發(fā)者具備全面的專業(yè)知識、嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度、縝密的思維以及較高的分析問題、解決問題的能力,而我在很多方面還有欠缺??傊?,我以后要多專心研究軟件開發(fā),以更加飽滿的熱情投入到本專業(yè)的學(xué)習(xí)中去,認(rèn)真做好每一件事情,爭取得到更多的收獲。設(shè)計中所使用的新技術(shù)、新方法、個人獨創(chuàng)的或有新意的地方,以及通過該設(shè)計所得到的心得體會,系統(tǒng)的缺陷或以后在理論、技術(shù)或其他方面需加強(qiáng)的地方。

致謝經(jīng)過幾個月的努力,目前整個系統(tǒng)的開發(fā)工作終于基本完成了。在這次也是設(shè)計中我學(xué)到了很多,也收獲了很多。在這里要感謝的人也很多。感謝王珊珊老師在論文上對我的指導(dǎo),整個畢業(yè)設(shè)計過程中,從選題到畢業(yè)設(shè)計最后,老師時刻關(guān)注著我的進(jìn)度,并對過程中出現(xiàn)的錯誤和可能要出錯及應(yīng)該注意的地方加以指導(dǎo)、說明,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!感謝大學(xué)同學(xué)們對我的幫助,包括設(shè)計上和技術(shù)上的幫助。感謝公司,在得知我的畢業(yè)設(shè)計的情況后,主動減輕了我的工作負(fù)擔(dān),并為我提供了大量參考資料,以及技術(shù)上的支持。感謝我的老師,同學(xué)這四年來對我的教導(dǎo),讓我不僅學(xué)到了書本上的知識,更重要的是學(xué)到了如何做人。如何做事,學(xué)到了人生應(yīng)該有的態(tài)度。沒有他們,我也不可能完成整套系統(tǒng)。

參考文獻(xiàn)[1]蔡昭權(quán).利用Socket實現(xiàn)多線程通信程序[J],惠州學(xué)院學(xué)報,2010,24(6):60-105.[2]陳鐘.JAVA編程語言程序設(shè)計與開發(fā)[M].北京:清華大學(xué)出版社,2008[3]劉彬,趙榮彩,叢建剛.即時通信協(xié)議分析與監(jiān)控技術(shù)研究[J].計算機(jī)應(yīng)用研究,2007,24(9):260-265.[4]陳鑫.基于Spring框架的Web服務(wù)架構(gòu)的研究與設(shè)計[D].廣西:桂林工學(xué)院,2008:12-30.[5]程永喜,蔣珉.基于TCP/IP協(xié)議的WinSock網(wǎng)絡(luò)編程及應(yīng)用[J].計算機(jī)時代,2009,21(8):40-45.[6]常逢佳.聊天系統(tǒng)在教學(xué)中的應(yīng)用探析[J].河北軟件職業(yè)技術(shù)學(xué)院學(xué)報,2009,12(4):18-40.[7]彭力,汪秉文.即時通訊軟件服務(wù)器的設(shè)計與實現(xiàn)[J].微機(jī)發(fā)展,2008,15(10):95-165.[8]陳洪,劉雙與,楊玉華.P2P技術(shù)發(fā)展與應(yīng)用[J].計算機(jī)工程,20010,5(19):25-140.[9]杜松波.企業(yè)即時通訊系統(tǒng)服務(wù)器的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2007:15-35.[10]孫玉鈺.基于P2P網(wǎng)絡(luò)的聊天系統(tǒng)的研發(fā)[J].長春大學(xué)學(xué)報.2006,5(4):10-45.[11]凌俊峰.TCP/IP協(xié)議淺釋[J].韶關(guān)學(xué)院學(xué)報,2010,5(1):10-15.[12]Jean-JacquesVandewalle,EricVetillard.DevelopingSmartCard-BasedApplicationsUsingJavaCard[J],Springer-VerlagLondonUK,2008,18(20):105-124.[13]JonPostel.InternetProtocol[J].IPprotocol,2009,15(8):3-8.[14]J.Huddleston,R.Raghuram,S.FahadGilani.BeginningJAVA2005Databases:FromNovicetoProfessional[M].England:ApressPress,2006[15]JonPostel.TransmissionControlMessageProtocol[J].TCPprotocol,2009,12(11):6-10.[16]J.Shiegoka.InstantMessaginginJava[M].Amercia:ManningPublications,2010[17]A.Troelsen.ProJAVAwithMyEclipse3.0,SpecialEdition[M].America:ApressPress,2007[18]B.Beizer.Black-BoxTesting:TechniquesforFunctionalTestingofSoftwareandSystems[C].France:Placeofpublication:JohnWileySons,2010:39-214. 附錄A中文譯文12.1引言到目前為止,只學(xué)習(xí)如何使用對話框和命令窗口進(jìn)行輸入輸出。使用JOptionPane.showInputDialog方法獲取輸入,使用JOptionPane.showMessageDialog和System.out.println方法顯示結(jié)果。這些做法不僅具有局限性,而且很不方便。例如,要讀入十個數(shù)字,必須打開十個輸入對話框。從本章開始,將學(xué)習(xí)Java圖形用戶界面程序設(shè)計??梢詣?chuàng)建個性化的圖形用戶界面(GUI,讀作goo-ee),在同一用戶界面上,既可以讀取輸入,又可以顯示輸出。本章介紹JavaGUI程序設(shè)計基礎(chǔ)。具體討論GUI組件以及它們之間的關(guān)系,介紹容器和布局管理器、顏色、字體、邊界和工具提示。12.2GUI組件可以使用像按鈕(button)、標(biāo)簽(label)、文本域(textfield)、復(fù)選框、單選按鈕和組合框等GUI對象來創(chuàng)建圖形用戶界面。每類GUI對象都定義在一個類中,例如:JButton、JLabel、JTextField、JCheckBox、JRadioButton和JComboBox等。每個GUI組件類都提供幾個構(gòu)造方法,可以利用它們創(chuàng)建GUI組件對象。下面的例子用來創(chuàng)建按鈕、標(biāo)簽、文本域、復(fù)選框、單選按鈕和組合框://CreateabuttonwithtextOKJButtonjbtOK=newJButton("OK");//Createalabelwithtext"Enteryourname:"JLabeljlblName=newJLabel("Enteryourname:");//Createatextfieldwithtext"TypeNameHere"JTextFieldjtfName=newJTextField("TypeNameHere");//CreateacheckboxwithtextboldJCheckBoxjchkBold=newJCheckBox("Bold");//CreatearadiobuttonwithtextredJRadioButtonjrbRed=newJRadioButton("Red");//Createacomboboxwithchoicesred,green,andblueJComboBoxjcboColor=newJComboBox(newString[]{"Red","Green","Blue"});圖12-1展示了這些對象在一個框架中如何顯示。如何在一個框架中添加組件將在12.4.2節(jié)中介紹。圖12-1顯示GUI組件對象Swing和AWT為什么GUI組件的類名都有前綴J呢?為什么不用Button來命名JButton呢?事實上,在包java.awt中已經(jīng)有了名為Button的類。剛引入Java的時候,和圖形用戶界面相關(guān)的類都存放在稱為抽象窗口工具集(AbstractWindowTookit,AWT)的庫中。對Java運行的每一個平臺,AWT的組件自動地通過它們各自的代理映射成特定平臺(platform-specific)的組件,這些代理稱為同位體(peer)。AWT適用于開發(fā)簡單的圖形用戶界面,但不適用于開發(fā)復(fù)雜的GUI項目。此外,AWT容易發(fā)生與平臺特性相關(guān)的故障,因為它基于同位體的解決方案非常依賴底層平臺。隨著Java2的發(fā)行,AWT的用戶界面組件被更穩(wěn)定、通用和靈活的庫取代,該庫稱為Swing組件庫(Swingcomponents)。大多數(shù)Swing組件都是直接用Java代碼繪制在畫布上,而java.awt.Window或java.awt.Panel子類的組件例外,它們必須使用特定平臺上本地的GUI來繪制。Swing組件更少地依賴目標(biāo)機(jī)器上的平臺,更少使用本地的GUI資源。因此,不依賴本地GUI的Swing組件稱為輕型組件(lightweightcomponent),AWT組件稱為重型組件(heavyweightcomponent)。為了區(qū)別新的Swing組件類和AWT組件,SwingGUI組件類的名字開頭都有前綴字母J。盡管Java2仍然支持AWT組件,但是最好學(xué)習(xí)如何使用Swing組件編程,因為AWT用戶界面組件終究要退出舞臺。本書只使用SwingGUI組件。12.3JavaGUIAPI為開發(fā)GUI程序所做的JavaAPI設(shè)計是應(yīng)用類、繼承性和接口的一個絕佳范例。這些API包含下列基本類,它們的層次結(jié)構(gòu)關(guān)系如圖12-2和圖12-3所示。GUI類可以分成三組:容器類(containerclass)、輔助類(helperclass)和組件類(componentclass)。容器類用來包含其他組件,例如:JFrame、JPanel和JApplet等。輔助類是組件和容器用來繪制和放置對象的,例如:Graphics、Color、Font、FontMetrics和Dimension等。圖形用戶界面(GUI)組件類都是JComponent類的子類,例如:JButton、JTextField、JTextArea、JComboBox、JList、JRadioButton和JMenu等。注JFrame、JApplet、JDialog和JComponent類及其子類都分組包含在javax.swing包中。圖12-2中的其他類均分組包含在java.awt包中。圖12-2JavaGUI程序設(shè)計使用該層次結(jié)構(gòu)圖中所列的類圖12-3JComponent和它的子類是創(chuàng)建圖形用戶界面的基本元素12.3.1SwingComponent類是所有用戶界面類的父類,而JComponent類是所有輕型Swing組件類的父類。由于JComponent是一個抽象類,所以,不能用newJComponent()創(chuàng)建JComponent的實例,但是,可以使用JComponent具體子類的構(gòu)造方法來創(chuàng)建JComponent的實例。這樣,熟悉這些類的繼承層次結(jié)構(gòu)就是非常必要的了。例如,下述語句的結(jié)果都顯示為true:JButtonjbtOK=newJButton("OK");System.out.println(jbtOKinstanceofJButton);System.out.println(jbtOKinstanceofAbstractButton);System.out.println(jbtOKinstanceofJComponent);System.out.println(jbtOKinstanceofContainer);System.out.println(jbtOKinstanceofComponent);System.out.println(jbtOKinstanceofObject);12.3.2容器類容器類是GUI組件,用于盛裝其他GUI組件的容器。Window、Panel、Applet、Frame和Dialog都是AWT組件的容器類。要使用Swing組件作容器,可以使用Component、Container、JFrame、JDialog、JApplet和JPanel。?Container用來組織組件??蚣蹻rame、面板Panel和applet都是容器的例子。?JFrame是不能包含在另一個窗口內(nèi)的窗口。在JavaGUI應(yīng)用程序中,它是包含其他Swing用戶界面組件的容器。?JDialog是一個彈出式窗口或消息框,一般用作接收來自用戶的附加信息或通知事件發(fā)生的臨時窗口。?JApplet是Applet的一個子類。要創(chuàng)建基于Swing的Javaapplet必須擴(kuò)展JApplet。?JPanel是一個存放用戶界面組件的不可見的容器。面板可以嵌套,可以把面板放在包含面板的容器中。JPanel也可以作為畫布來畫圖。12.3.3GUI輔助類輔助類都不是Component的子類,例如Graphics、Color、Font、FontMetrics、Dimension和LayoutManager等。它們用來描述GUI組件的屬性,例如,圖形環(huán)境、顏色、字體以及大小等。?Graphics是一個抽象類,提供一個圖形環(huán)境,用于繪制字符串、直線和簡單幾何圖形。?Color類用來處理GUI組件的顏色。例如,可以在JFrame、JPanel等一類組件中指定背景色或前景色,或者指定繪制的線條、幾何圖形和字符串的顏色。?Font指定GUI組件上文本和圖形的字體。例如,可以指定按鈕上文本的字體(比如SanSerif字體)、字型(比如粗體)和大?。ū热?4磅)。?FontMetrics是一個用于獲取字體屬性的抽象類。?Dimension將組件的寬度和高度(精度為整數(shù))封裝在單個對象中。?LayoutManager是一個接口,它的實例指定組件在容器中的擺放方式。注輔助類包含在java.awt包中。Swing組件不能取代AWT的全部類,只能替代AWT的GUI組件類(例如Button、TextField、TextArea)。AWT輔助類保持不變。附錄B英文原文12.1.IntroductionUntilnow,youhaveonlyuseddialogboxesandthecommandwindowforinputandoutput.YouusedJOptionPane

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論