版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、系統(tǒng)軟件詳細設(shè)計說明書1.引言1.1編寫目的 本詳細設(shè)計說明書是針對網(wǎng)絡(luò)信息體系結(jié)構(gòu)的課程作業(yè)而編寫。目的是對該項目進行詳細設(shè)計,在概要設(shè)計的基礎(chǔ)上進一步明確系統(tǒng)結(jié)構(gòu),詳細地介紹系統(tǒng)的各個模塊,為進行后面的實現(xiàn)和測試作準備。本詳細設(shè)計說明書的預期讀者為本項目小組的成員以及對該系統(tǒng)感興趣,在以后想對系統(tǒng)進行擴展和維護的人員。2. 系統(tǒng)的結(jié)構(gòu)l ui:系統(tǒng)界面部分,負責接受用戶輸入,顯示系統(tǒng)輸出,負責其他模塊功能的協(xié)調(diào)調(diào)用,并含有站內(nèi)搜索功能,即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。ui部分調(diào)用common部分的功能讀取xml文件中保存的界面元素屬性信息,用戶最近訪問過的10個ftp
2、信息,用戶選擇的下載的ftp內(nèi)容列表及其他需要通過xml文件保存的信息。l client:實現(xiàn)ftp客戶端的功能,ftp連接,ftp上傳及下載:上傳或下載用戶指定的資源,并返回相應(yīng)的信息。l search:資源實時檢索部分,根據(jù)用戶輸入的資源名稱關(guān)鍵字,資源類型和選擇的檢索方式檢索用戶需要的資源,并驗證資源的可用性,返回可用資源及其大小,速度等相關(guān)信息。l preview:資源預覽部分,顯示用戶選擇的資源的部分內(nèi)容,以使用戶決定是否需要該資源。preview部分調(diào)用common部分讀取屬性文件的內(nèi)容亦顯示預覽資源內(nèi)容的顯示格式。3模塊1(ui)設(shè)計說明3.1模塊描述 實現(xiàn)用戶界面的包,含有11
3、個文件51個類,是本系統(tǒng)中最復雜的代碼。3.2功能 負責接受用戶輸入,顯示系統(tǒng)輸出,其他模塊功能的協(xié)調(diào)調(diào)用,并含有站內(nèi)搜索功能,即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。3.3交互的模塊 client,search,preview,common。3.4 模塊設(shè)計 該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:l MainFrame.java:MainFrame是含有主函數(shù)的類,也是lyra客戶端開始執(zhí)行的類,它先后進行資源的初始化,顯示主界面等工作,根據(jù)屏幕大小設(shè)置界面大小,設(shè)置界面的觀感。l FtpFrame_AboutBox.java:顯示關(guān)于窗口的類,當
4、用戶點擊幫助菜單中的關(guān)于菜單項時會彈出關(guān)于對話框。l Tools.java:FileTools是文件操作輔助類,可以實現(xiàn)文件的遞歸刪除等。l XMLController.java: JDOMTes是操作xml文件的類,用JDOM來操作xml文件,實現(xiàn)的功能有:(1)保存ftp服務(wù)器的文件列表(站內(nèi)搜索時使用),遞歸的從ftp服務(wù)器讀取列表,并存入一個xml文件中(文件的命名方法是:ip+用戶名.xml);以目錄樹的形式保存。(2)根據(jù)文件名在文件中查找文件,站內(nèi)搜索時使用。(3)保存ftp服務(wù)器的信息:ip,端口(默認端口21不保存),用戶名(默認anonymous不保存),密碼,最多存10個
5、;存在resourcesettings serversinfor.xml文件中。(4)讀取已存儲的ftp服務(wù)器信息。(5)從type.xml讀取搜索的類型。l Constants.java:放置系統(tǒng)運行時使用的一些常量,initcontent()函數(shù)對所有常量進行初始化,這個函數(shù)在MainFrame中被調(diào)用一次。iconHashMap是hash表,用于存放文件的系統(tǒng)圖標。l CustomizedController.java:包含自定義的控件類,java中的控件可能不能滿足需求,需要自己定義某些屬性。這些控件會在創(chuàng)建界面時使用。其中含有的類有:(1)CustomizedJTable 是表格類,
6、設(shè)置表格的某些屬性,如字體等。(2)CustomizedTableCellRenderer是表格單元格繪制器類,主要用于顯示文件的系統(tǒng)圖標,和文件名。(3)LeftPanel類的父類是JTabbedPane,用戶顯示主窗口左邊的面板。(4)RightPanel類的父類是JPanel,用戶顯示右邊的主題部分,包括右上邊的搜索及服務(wù)器選項,和中間的顯示服務(wù)器文件的TabbedPane。.(5)BottomPanel類是右下放顯示下載和服務(wù)器信息的JTabbedPane。(6)CustomizedJButton 是定義按鈕類,更改了按鈕的字體,java本身默認的字體不好看。(7)Customized
7、TableModel是表格類,實現(xiàn)單元格的不可編輯。(8)CustomizedTableCellRenderer_Remote類是表格繪制器,在遠程文件瀏覽器RemoteFilesPanel使用,用于顯示文件名和文件圖標。(9)FontTableCellRenderer類是表格單元格繪制器,主要功能是設(shè)置字體。(10)FontListCellRenderer類是下拉列表框單元格繪制器,主要用于設(shè)置字體。(11)CustomizedJLabel類是自定義標簽類,重新設(shè)置了標簽的字體。(12)CustomizedJTextField類是自定義文本框類,主要用于設(shè)置文本框的顯示屬性。(13)Cust
8、omizedJMenu類是自定義菜單類,重新設(shè)置了菜單的字體。(14)CustomizedJMenuItem類是自定義菜單項類,重新設(shè)置了菜單的字體。(15)CustomizedListCellRenderer類是JComboBox即組合框單元格繪制器,用于在本地路徑選擇的下拉列表中顯示磁盤圖標。l SearchResultReceiver.java, SearchResultReceiver是一個接口,主要用于返回搜索結(jié)果。搜索完成后調(diào)用接口中的函數(shù)通知調(diào)用者。其中主要有兩個函數(shù):(1)OnSearchFinished(String keywords,ArrayList resultset)
9、;result是一個10維的數(shù)組表result10,resulti是由類型為i的資源組成的數(shù)組。i:09,和類型列表框中的順序一致。(2)OnSearchFinished(String keywords,ArrayList resultset);不分類型,將所有資源放在一個數(shù)組表中。l FtpFrame.java:FtpFrame是程序主窗口類,類型為JFrame,是由三個分割窗口JSplitPane構(gòu)成的。jSplitPane_Left是左邊的分割窗口,水平分割條上邊顯示本地文件框,下邊是預覽框;jSplitPane_Right是右邊的分割窗口,水平分割條上邊是服務(wù)器選項和ftp服務(wù)器文件顯
10、示的窗口,下邊是下載和服務(wù)器信息顯示窗口;jSplitPane_Whole是整體的分割窗口,垂直分割條,左邊是jSplitPane_Lef,右邊是jSplitPane_Right。FtpFrame把LeftPanel,RightPanel,BottomPanel,PreviewWrapperPanel這幾部分安裝在相應(yīng)的分割窗格中;LeftPanel,RightPanel,BottomPanel是在CustomizedController.Java中定義的,PreviewWrapperPanel是在Preview包中定義的。l LeftPanelCtrl.java:LocalFilesPane
11、l是本地文件面板,用表格來顯示本地文件的信息。上邊是組合框,顯示了磁盤分區(qū)通過這里可以改變根目錄。表格中顯示了文件的信息,包括文件名,文件的系統(tǒng)圖標,大小,最近修改日期,屬性等。選中一個文件后可以執(zhí)行上載和刪除操作。文件夾會遞歸的刪除。GetCurrentPath()函數(shù)返回當前的路徑。DisplayPathFiles()函數(shù)在列表中顯示指定目錄下的文件。l RightPanlCtrl.java:定義右上邊的控件。含有的類有:(1)FtpServerOptionPanel類是服務(wù)器連接選項面板,包含服務(wù)器地址,端口,用戶名,密碼等,還包括最上端的搜索選項。openRemoteFilesPane
12、l()函數(shù)在下面的TabbedPane中打開一個新的服務(wù)器面板,連接服務(wù)器。(2)RemoteFilesPanel類的主要功能是連接Ftp服務(wù)器并顯示文件。這里會進行文件的上載,下載及預覽等操作。RemoteFilesPanel 的內(nèi)部類TransferController負責調(diào)用FtpClient類提供的功能與服務(wù)器進行交互,完成用戶指定的文件操作。TransferController還有三個內(nèi)部類:ConnThread類是負責連接服務(wù)器的線程(新開一個線程,目的是避免連接時阻塞),DownloadFileThread類是下載文件的線程,UploadFileThread類是上載文件的線程。(
13、3)SearchResultPanel類是顯示搜索結(jié)果的類,它有兩個子類SearchResultPanelWithinSearchEngine類的功能是在搜索引擎中搜索,SearchResultPanelWithinServer類的功能是站內(nèi)搜索。搜索引擎的搜索會調(diào)用search包中的程序,搜索引擎搜索完成后search包通過OnSearchFinished()來通知SearchResultPanelWithinSearchEngine類,然后顯示搜索結(jié)果。(4)RightTabbedPane是顯示ftp服務(wù)器文件表格的TabbedPane類。l BottomPanelCtrl.java:實現(xiàn)
14、主窗口下部面板及控件,顯示下載情況,服務(wù)器連接信息。包含的主要類有:(1)RemoteMessPanel類是顯示服務(wù)器連接信息的面板。需要顯示ftp服務(wù)器傳回的信息,并在顯示前進行編碼轉(zhuǎn)換,還需要顯示本地的相關(guān)信息。(2)DownloadingMessPanel類是顯示資源下載信息的面板,顯示下載資源的大小,下載速度,已用時間,剩余時間等信息。3.5流程邏輯總體流程:上載預覽FtpClient.class顯示下載信息searchRightPanel.classPreviewWrapperPanelBottomPanel.classLeftPanel.classFtpFrame.classMai
15、nFrame.class3.6 簡單類圖4模塊2(client)設(shè)計說明4.1模塊描述 實現(xiàn)ftp客戶端FtpClient,有兩個文件FtpClient.java和FtpLoginException.java,前者具體實現(xiàn)了ftp協(xié)議,后者是為登錄時可能拋出的異常而定義的類。4.2功能 實現(xiàn)ftp客戶端FtpClient,實現(xiàn)了ftp協(xié)議,用于和ftp服務(wù)器通訊和數(shù)據(jù)傳輸。4.3交互的模塊 ui 4.4 模塊設(shè)計 該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:l FtpClient.java:含有類FtpClient,,該類會被ui包中的界面類調(diào)用,完成ftp功能。其中要
16、功能的實現(xiàn)有:在構(gòu)造函數(shù)中根據(jù)ip和port建立與服務(wù)器的連接;登錄服務(wù)器login()(用戶名,密碼);向服務(wù)器追加ascii文件appendAscii();向服務(wù)器追加二進制文件appendBinary();設(shè)置數(shù)據(jù)傳輸方式為二進制binary,ascii碼scii();改變工作目錄cd(String newdirectory);返回上一級目錄cdup();斷開連接closeserver();刪除文件 delete(文件名);刪除文件夾 rmdir(文件夾的名字);用ascii模式下載文件getAscii(文件名);用二進制方式下載文件getBinary(文件名);取得服務(wù)器的響應(yīng)字串 g
17、etResponseString();列舉當前目錄下的文件list(),指定目錄下的文件list(文件名);創(chuàng)建文件夾mkdir(文件夾名);上載Ascii文件putAscii(文件路徑),二進制putBinary()。l FtpLoginException.java:含有類FtpLoginException,定義登錄時可能拋出的異常。5模塊3(common)設(shè)計說明5.1模塊描述 存放一些輔助類,系統(tǒng)啟動時會從properties.xml讀取一些配置信息??梢酝ㄟ^手動修改配置信息來修改系統(tǒng)的某些顯示屬性如字體,字的大小等。5.2功能存放一些輔助類,例如用于讀取和存儲系統(tǒng)配置屬性的類。用于將“
18、屬性名屬性值”對存儲在properties.xml文件中的類。5.3交互的模塊 ui 5.4 模塊設(shè)計 該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:l Properties.java: 含有類Properties,這是讀取和存儲系統(tǒng)配置屬性的類。其主要功能的實現(xiàn)如下: 函數(shù)getProperty()根據(jù)屬性名取得屬性值,如果屬性不存在返回null;函數(shù)getProperties()根據(jù)屬性名列表返回屬性值列表,返回值為ArrayList,其中的每一個元素是PropertyValue對象;函數(shù)setProperty()設(shè)置單個屬性值;函數(shù)setProperties()設(shè)置
19、多個屬性值;函數(shù)readXMLFromFile()讀取xml文件;函數(shù)buildXML()在xml文檔中存入數(shù)據(jù);l PropertyValue.java:含有類PropertyValue,在xml文件中存儲“屬性名屬性值”對。6模塊4(search)設(shè)計說明6.1模塊描述 包search主要完成天網(wǎng)和百度兩項搜索功能。它含有以下6個類:NetResource,URLParser,ConnectionTester,SearchResultRetriever,EmbeddedFileRetriever,HttpRetriever。6.2功能主要完成天網(wǎng)和百度兩項搜索功能。6.3交互的模塊 ui
20、6.4 模塊設(shè)計 該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:l NetResource.java:含有類NetResource,NetResource是對被天網(wǎng)索引的網(wǎng)絡(luò)文件資源的抽象,其字段有:fileURL(文件資源的URL,包括協(xié)議、主機字符串、路徑、文件名)、fileDate(天網(wǎng)將它編入索引的日期)、fileSize(文件的大?。?、responseTime(以毫秒計算的響應(yīng)時間)。函數(shù)smallerThan(NetResource nr)比較本條資源的響應(yīng)時間是否比nr的響應(yīng)時間小,因為規(guī)定響應(yīng)時間小的NetResource排在相應(yīng)時間大的前面。l URLP
21、arser.java:含有類URLParser,URLParser是一個工具箱類,它提供了若干靜態(tài)方法,對一個文件資源的URL進行解析。其實現(xiàn)的方法有:函數(shù)getProtocol():給定一個URL,返回其協(xié)議名稱;函數(shù)getHostName():給定一個URL,返回主機字符串;函數(shù)getPath():給定一個URL,返回文件在主機中的存放路徑;函數(shù)getFileName():給定一個URL,返回文件名;函數(shù)getSuffix():給定一個URL,返回該URL對應(yīng)的文件資源的后綴名。l ConnectionTester.java:含有類ConnectionTester,ConnectionTe
22、ster是用來對網(wǎng)絡(luò)文件資源進行連接測試的類,它實現(xiàn)了Runnable接口。SearchResultRetriever類將ConnectionTester類作為模板生成許多線程并發(fā)地對各文件資源進行連接并測試相應(yīng)時間,以提高程序效率。每個網(wǎng)絡(luò)文件都是用NetResource類表示的。對于ftp文件,ConnectionTester嘗試以匿名方式連接。如果連接失敗則丟棄該資源的URL,若連接成功則根據(jù)連接它響應(yīng)時間將其插入已排序的NetResource列表中。對于http文件,ConnectionTester建立一個新的URLConnection,并調(diào)用connect方法嘗試連接。如果連接失敗則
23、丟棄該資源的URL,若連接成功則根據(jù)連接它的響應(yīng)時間將其插入已排序的NetResource列表中。在構(gòu)造ConnectionTester類的對象時必須指定一個由NetResource類的對象組成的ArrayList,其中每個NetResource都需要測速。該類的功能主要由函數(shù)run()實現(xiàn)。l SearchResultRetriever.java:含有類SearchResultRetriever,SearchResultRetriever類根據(jù)給定的關(guān)鍵字和文件類型向天網(wǎng)文件搜索引擎發(fā)送請求,對各返回結(jié)果頁面的源文件進行分析,將所有網(wǎng)絡(luò)文件資源的URL進行分類(利用天網(wǎng)的分類方法)并保存在1
24、0個ArrayList中。該類的函數(shù)如下:函數(shù)test()判斷這個"下一頁"對應(yīng)的URL是否合法,該問題僅在用程序訪問天網(wǎng)時需要考慮函數(shù)retrieve()根據(jù)輸入的關(guān)鍵字String tokens向天網(wǎng)發(fā)出請求,取得返回的URL集合,ArrayList0保存圖片imagefile;ArrayList1保存音樂soundfile;ArrayList2保存電影videofile;ArrayList3保存壓縮zipfile;ArrayList4保存文檔docfile; ArrayList5保存程序programfile;ArrayList6保存源碼srcfile;ArrayLi
25、st7保存網(wǎng)頁webfile;ArrayList8保存目錄dirfile;ArrayList9保存其他file。對每一個ArrayList生成若干ConnectionTester線程進行響應(yīng)時間測試,在這些線程返回后每一個ArrayList中的網(wǎng)絡(luò)文件資源都已經(jīng)按照響應(yīng)時間遞增的順序排列,而無法連接的文件資源URL都已被丟棄。SearchResultRetriever類的使用方式是調(diào)用它的函數(shù)retrieve(String tokens, int type),其中tokens為表示關(guān)鍵字的字符串數(shù)組;type表明用戶需要搜索什么類型的文件。該方法將上述10個ArrayList組成一個數(shù)組并返回
26、。l EmbeddedFileRetriever.java:含有類EmbeddedFileRetriever,EmbeddedFileRetriever類的作用是提取網(wǎng)頁中文件鏈接,它實現(xiàn)了Runnable接口。HttpRetriever類將EmbeddedFileRetriever類作為模板生成若干線程并發(fā)地提取不同網(wǎng)頁內(nèi)的文件鏈接,以提高程序效率。EmbeddedFileRetriever類維護了一個網(wǎng)頁后綴名列表,由于程序只提取對應(yīng)文件資源的URL,我們需要分辨哪些后綴名是對應(yīng)網(wǎng)頁的從而及時將它們丟棄。在構(gòu)造類EmbeddedFileRetriever的對象時必須指明從哪個網(wǎng)頁URL中提
27、取文件URL,以及這些URL保存在哪個ArrayList中。函數(shù)hasFileSuffix()的功能是判斷一個url是否鏈向一個文件;函數(shù)listFiles(String URLStr)將URLStr對應(yīng)頁面中的所有文件加到ArrayList中并返回。l HttpRetriever.java:含有類HttpRetriever,HttpRetriever類的功能是根據(jù)給定的關(guān)鍵字向百度搜索引擎發(fā)送請求,抽取前20個返回結(jié)果對應(yīng)的網(wǎng)頁URL。對每一個頁面生成一個EmbeddedFileRetriever對象提取其中對文件的鏈接,并添加到一個ArrayList中。每個頁面都處理完畢后返回這個Arra
28、yList。在利用搜索文件時,應(yīng)當提供盡可能多的信息,如輸入歌手姓名和“mp3”作為關(guān)鍵字。如果僅給定歌手名稱則搜索效果不佳。這些功能都是由函數(shù)retrieve()實現(xiàn)的。6.5類圖7模塊5(preview)設(shè)計說明7.1模塊描述 系統(tǒng)的預覽部分,實現(xiàn)了不同類型資源的預覽,并可以根據(jù)用戶選擇的格式顯示資源的內(nèi)容。 7.2功能 各種類型資源的預覽,可以根據(jù)用戶的選擇格式顯示資源的內(nèi)容,并可以存儲用戶選擇的預覽內(nèi)容。7.3交互的模塊 ui 7.4 模塊設(shè)計 該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:l PreviewWrapperPanel.java:含有類Preview
29、WrapperPanel,這是系統(tǒng)的預覽部分最基本的類,它派生自Jpanel類,主要由3部分組成,其中PreviewPanel負責顯示預覽,StatusBarPanel負責顯示預覽文件的加載進度,ControlButtonPanel負責和預覽相關(guān)的控制。在顯示資源的預覽內(nèi)容前應(yīng)該先判斷該資源類型是否可以預覽。l PreviewPanel.java:含有類PreviewPanel,這是一個抽象類,負責資源內(nèi)容的預覽,有5個子類,這5個子類分別是PicturePreviewPanel類:負責圖像文件的預覽;PDFPreviewPanel類:負責PDF文件的預覽;TxtPreviewPanel類:負責文本文件的預覽;NoFileSelectedPreviewPanel類:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024股權(quán)抵押借款合同范本格式
- 2024商品買賣合同范本
- 2024年度甲方聘請乙方進行市場推廣服務(wù)的合同
- 工廠用工合同協(xié)議書(2024年)
- 2024年建筑勞務(wù)分包主體結(jié)構(gòu)合同
- 個人質(zhì)押擔保借款合同模板
- 2024年度金融服務(wù)與投資咨詢合同
- 標準版工程居間合同格式
- 合法勞務(wù)施工協(xié)議書樣式
- 精美施工合同模板
- 數(shù)字人文建設(shè)方案
- 老年人營養(yǎng)食譜編制(老年人膳食營養(yǎng)課件)
- 非手術(shù)患者VTE風險和出血評估表
- MH-T 5064-2023飛機地錨設(shè)計與維護技術(shù)指南
- 電力工程項目技術(shù)標書
- 25題戰(zhàn)略規(guī)劃崗位常見面試問題含HR問題考察點及參考回答
- unit-10-A-Debt-to-Dickens市公開課一等獎省賽課微課金獎?wù)n件
- 2024年中國兵器裝備集團限公司公開招聘47人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 報廢農(nóng)機拆解項目可行性研究報告
- 《民宿管家》課件-民宿管家之客戶溝通
- 小學生書法展覽活動方案
評論
0/150
提交評論