版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、.系統(tǒng)軟件詳細(xì)設(shè)計說明書1.引言1.1編寫目的 本詳細(xì)設(shè)計說明書是針對網(wǎng)絡(luò)信息體系結(jié)構(gòu)的課程作業(yè)而編寫。目的是對該項目進行詳細(xì)設(shè)計,在概要設(shè)計的基礎(chǔ)上進一步明確系統(tǒng)結(jié)構(gòu),詳細(xì)地介紹系統(tǒng)的各個模塊,為進行后面的實現(xiàn)和測試作準(zhǔn)備。本詳細(xì)設(shè)計說明書的預(yù)期讀者為本項目小組的成員以及對該系統(tǒng)感興趣,在以后想對系統(tǒng)進行擴展和維護的人員。2. 系統(tǒng)的結(jié)構(gòu)l ui:系統(tǒng)界面部分,負(fù)責(zé)接受用戶輸入,顯示系統(tǒng)輸出,負(fù)責(zé)其他模塊功能的協(xié)調(diào)調(diào)用,并含有站內(nèi)搜索功能,即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。ui部分調(diào)用common部分的功能讀取xml文件中保存的界面元素屬性信息,用戶最近訪問過的10個ft
2、p信息,用戶選擇的下載的ftp內(nèi)容列表及其他需要通過xml文件保存的信息。l client:實現(xiàn)ftp客戶端的功能,ftp連接,ftp上傳及下載:上傳或下載用戶指定的資源,并返回相應(yīng)的信息。l search:資源實時檢索部分,根據(jù)用戶輸入的資源名稱關(guān)鍵字,資源類型和選擇的檢索方式檢索用戶需要的資源,并驗證資源的可用性,返回可用資源及其大小,速度等相關(guān)信息。l preview:資源預(yù)覽部分,顯示用戶選擇的資源的部分內(nèi)容,以使用戶決定是否需要該資源。preview部分調(diào)用common部分讀取屬性文件的內(nèi)容亦顯示預(yù)覽資源內(nèi)容的顯示格式。3模塊1(ui)設(shè)計說明3.1模塊描述 實現(xiàn)用戶界面的包,含有1
3、1個文件51個類,是本系統(tǒng)中最復(fù)雜的代碼。3.2功能 負(fù)責(zé)接受用戶輸入,顯示系統(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、當(dāng)用戶點擊幫助菜單中的關(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,端口(默認(rèn)端口21不保存),用戶名(默認(rèn)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)圖標(biāo)。l CustomizedController.java:包含自定義的控件類,java中的控件可能不能滿足需求,需要自己定義某些屬性。這些控件會在創(chuàng)建界面時使用。其中含有的類有:(1)CustomizedJTable 是表格類
6、,設(shè)置表格的某些屬性,如字體等。(2)CustomizedTableCellRenderer是表格單元格繪制器類,主要用于顯示文件的系統(tǒng)圖標(biāo),和文件名。(3)LeftPanel類的父類是JTabbedPane,用戶顯示主窗口左邊的面板。(4)RightPanel類的父類是JPanel,用戶顯示右邊的主題部分,包括右上邊的搜索及服務(wù)器選項,和中間的顯示服務(wù)器文件的TabbedPane。.(5)BottomPanel類是右下放顯示下載和服務(wù)器信息的JTabbedPane。(6)CustomizedJButton 是定義按鈕類,更改了按鈕的字體,java本身默認(rèn)的字體不好看。(7)Customize
7、dTableModel是表格類,實現(xiàn)單元格的不可編輯。(8)CustomizedTableCellRenderer_Remote類是表格繪制器,在遠(yuǎn)程文件瀏覽器RemoteFilesPanel使用,用于顯示文件名和文件圖標(biāo)。(9)FontTableCellRenderer類是表格單元格繪制器,主要功能是設(shè)置字體。(10)FontListCellRenderer類是下拉列表框單元格繪制器,主要用于設(shè)置字體。(11)CustomizedJLabel類是自定義標(biāo)簽類,重新設(shè)置了標(biāo)簽的字體。(12)CustomizedJTextField類是自定義文本框類,主要用于設(shè)置文本框的顯示屬性。(13)Cus
8、tomizedJMenu類是自定義菜單類,重新設(shè)置了菜單的字體。(14)CustomizedJMenuItem類是自定義菜單項類,重新設(shè)置了菜單的字體。(15)CustomizedListCellRenderer類是JComboBox即組合框單元格繪制器,用于在本地路徑選擇的下拉列表中顯示磁盤圖標(biāo)。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是左邊的分割窗口,水平分割條上邊顯示本地文件框,下邊是預(yù)覽框;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:LocalFilesPan
11、el是本地文件面板,用表格來顯示本地文件的信息。上邊是組合框,顯示了磁盤分區(qū)通過這里可以改變根目錄。表格中顯示了文件的信息,包括文件名,文件的系統(tǒng)圖標(biāo),大小,最近修改日期,屬性等。選中一個文件后可以執(zhí)行上載和刪除操作。文件夾會遞歸的刪除。GetCurrentPath()函數(shù)返回當(dāng)前的路徑。DisplayPathFiles()函數(shù)在列表中顯示指定目錄下的文件。l RightPanlCtrl.java:定義右上邊的控件。含有的類有:(1)FtpServerOptionPanel類是服務(wù)器連接選項面板,包含服務(wù)器地址,端口,用戶名,密碼等,還包括最上端的搜索選項。openRemoteFilesPan
12、el()函數(shù)在下面的TabbedPane中打開一個新的服務(wù)器面板,連接服務(wù)器。(2)RemoteFilesPanel類的主要功能是連接Ftp服務(wù)器并顯示文件。這里會進行文件的上載,下載及預(yù)覽等操作。RemoteFilesPanel 的內(nèi)部類TransferController負(fù)責(zé)調(diào)用FtpClient類提供的功能與服務(wù)器進行交互,完成用戶指定的文件操作。TransferController還有三個內(nèi)部類:ConnThread類是負(fù)責(zé)連接服務(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:實
14、現(xiàn)主窗口下部面板及控件,顯示下載情況,服務(wù)器連接信息。包含的主要類有:(1)RemoteMessPanel類是顯示服務(wù)器連接信息的面板。需要顯示ftp服務(wù)器傳回的信息,并在顯示前進行編碼轉(zhuǎn)換,還需要顯示本地的相關(guān)信息。(2)DownloadingMessPanel類是顯示資源下載信息的面板,顯示下載資源的大小,下載速度,已用時間,剩余時間等信息。3.5流程邏輯總體流程:上載預(yù)覽FtpClient.class顯示下載信息searchRightPanel.classPreviewWrapperPanelBottomPanel.classLeftPanel.classFtpFrame.classMa
15、inFrame.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)字串
17、getResponseString();列舉當(dāng)前目錄下的文件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(文件的大?。esponseTime(以毫秒計算的響應(yīng)時間)。函數(shù)smallerThan(NetResource nr)比較本條資源的響應(yīng)時間是否比nr的響應(yīng)時間小,因為規(guī)定響應(yīng)時間小的NetResource排在相應(yīng)時間大的前面。l URL
21、Parser.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,ConnectionT
22、ester是用來對網(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)的分類方法)并保存在
24、10個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;ArrayList7保存網(wǎng)頁webf
25、ile;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)鍵字的字符串?dāng)?shù)組;type表明用戶需要搜索什么類型的文件。該方法將上述10個ArrayList組成一個數(shù)組并返回。l Embedded
26、FileRetriever.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中提取文件URL,以及這些
27、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中。每個頁面都處理完畢后返回這個ArrayList。在利用搜索
28、文件時,應(yīng)當(dāng)提供盡可能多的信息,如輸入歌手姓名和“mp3”作為關(guān)鍵字。如果僅給定歌手名稱則搜索效果不佳。這些功能都是由函數(shù)retrieve()實現(xiàn)的。6.5類圖7模塊5(preview)設(shè)計說明7.1模塊描述 系統(tǒng)的預(yù)覽部分,實現(xiàn)了不同類型資源的預(yù)覽,并可以根據(jù)用戶選擇的格式顯示資源的內(nèi)容。 7.2功能 各種類型資源的預(yù)覽,可以根據(jù)用戶的選擇格式顯示資源的內(nèi)容,并可以存儲用戶選擇的預(yù)覽內(nèi)容。7.3交互的模塊 ui 7.4 模塊設(shè)計 該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:l PreviewWrapperPanel.java:含有類PreviewWrapperPane
29、l,這是系統(tǒng)的預(yù)覽部分最基本的類,它派生自Jpanel類,主要由3部分組成,其中PreviewPanel負(fù)責(zé)顯示預(yù)覽,StatusBarPanel負(fù)責(zé)顯示預(yù)覽文件的加載進度,ControlButtonPanel負(fù)責(zé)和預(yù)覽相關(guān)的控制。在顯示資源的預(yù)覽內(nèi)容前應(yīng)該先判斷該資源類型是否可以預(yù)覽。l PreviewPanel.java:含有類PreviewPanel,這是一個抽象類,負(fù)責(zé)資源內(nèi)容的預(yù)覽,有5個子類,這5個子類分別是PicturePreviewPanel類:負(fù)責(zé)圖像文件的預(yù)覽;PDFPreviewPanel類:負(fù)責(zé)PDF文件的預(yù)覽;TxtPreviewPanel類:負(fù)責(zé)文本文件的預(yù)覽;NoFileSelectedPreviewPanel類:負(fù)責(zé)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年航天器熱控系統(tǒng)合作協(xié)議書
- 承包山藥合同范本
- 金壇區(qū)防水工程合同范本
- 個人單身公寓出租合同范本
- 貿(mào)易電子合同范本
- 小學(xué)語文第三冊第六單元《坐井觀天》說課稿
- 春種秋收(短篇小說集)1955年3月版
- 電動車維修更換合同范本
- 吳中區(qū)車庫租賃合同范本
- 前臺文員職業(yè)道德與責(zé)任感建立計劃
- 2023年中國建筑第八工程局有限公司招聘考試真題
- 2024年湖北省公務(wù)員考試《行測》真題及答案解析
- 醫(yī)院感染現(xiàn)患率調(diào)查方案
- 湖北省十堰市第二中學(xué)2024-2025學(xué)年七年級上學(xué)期期中考試語文試題(含答案)
- 兄妹4人繼承房產(chǎn)協(xié)議書范文
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級語文)部編版期中考試(下學(xué)期)試卷及答案
- GB/T 44692.2-2024危險化學(xué)品企業(yè)設(shè)備完整性第2部分:技術(shù)實施指南
- 學(xué)位英語4000詞(開放大學(xué))
- 護理病侵入性肺曲霉菌病案臨床病例呼吸科
- 項目式學(xué)習(xí)在小學(xué)英語教學(xué)中的應(yīng)用與研究
- 期中測試卷(試題)-2024-2025學(xué)年數(shù)學(xué)六年級上冊北師大版
評論
0/150
提交評論