系統(tǒng)軟件詳細設(shè)計說明書_第1頁
系統(tǒng)軟件詳細設(shè)計說明書_第2頁
系統(tǒng)軟件詳細設(shè)計說明書_第3頁
系統(tǒng)軟件詳細設(shè)計說明書_第4頁
系統(tǒng)軟件詳細設(shè)計說明書_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

..系統(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è)計說明書的預(yù)期讀者為本項目小組的成員以及對該系統(tǒng)感興趣,在以后想對系統(tǒng)進行擴展和維護的人員。2.系統(tǒng)的結(jié)構(gòu)ui:系統(tǒng)界面部分,負責(zé)接受用戶輸入,顯示系統(tǒng)輸出,負責(zé)其他模塊功能的協(xié)調(diào)調(diào)用,并含有站內(nèi)搜索功能,即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。ui部分調(diào)用common部分的功能讀取xml文件中保存的界面元素屬性信息,用戶最近訪問過的10個ftp信息,用戶選擇的下載的ftp內(nèi)容列表及其他需要通過xml文件保存的信息。client:實現(xiàn)ftp客戶端的功能,ftp連接,ftp上傳及下載:上傳或下載用戶指定的資源,并返回相應(yīng)的信息。search:資源實時檢索部分,根據(jù)用戶輸入的資源名稱關(guān)鍵字,資源類型和選擇的檢索方式檢索用戶需要的資源,并驗證資源的可用性,返回可用資源及其大小,速度等相關(guān)信息。preview:資源預(yù)覽部分,顯示用戶選擇的資源的部分內(nèi)容,以使用戶決定是否需要該資源。preview部分調(diào)用common部分讀取屬性文件的內(nèi)容亦顯示預(yù)覽資源內(nèi)容的顯示格式。3.模塊1〔ui設(shè)計說明3.1模塊描述實現(xiàn)用戶界面的包,含有11個文件51個類,是本系統(tǒng)中最復(fù)雜的代碼。3.2功能負責(zé)接受用戶輸入,顯示系統(tǒng)輸出,其他模塊功能的協(xié)調(diào)調(diào)用,并含有站內(nèi)搜索功能,即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。3.3交互的模塊client,search,preview,common。3.4模塊設(shè)計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:MainFrame.java:MainFrame是含有主函數(shù)的類,也是lyra客戶端開始執(zhí)行的類,它先后進行資源的初始化,顯示主界面等工作,根據(jù)屏幕大小設(shè)置界面大小,設(shè)置界面的觀感。FtpFrame_AboutBox.java:顯示關(guān)于窗口的類,當(dāng)用戶點擊幫助菜單中的關(guān)于菜單項時會彈出關(guān)于對話框。Tools.java:FileTools是文件操作輔助類,可以實現(xiàn)文件的遞歸刪除等。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個;存在resource\settings\serversinfor.xml文件中。 〔4讀取已存儲的ftp服務(wù)器信息。 〔5從type.xml讀取搜索的類型。Constants.java:放置系統(tǒng)運行時使用的一些常量,initcontent〔函數(shù)對所有常量進行初始化,這個函數(shù)在MainFrame中被調(diào)用一次。iconHashMap是hash表,用于存放文件的系統(tǒng)圖標。CustomizedController.java:包含自定義的控件類,java中的控件可能不能滿足需求,需要自己定義某些屬性。這些控件會在創(chuàng)建界面時使用。其中含有的類有:〔1CustomizedJTable是表格類,設(shè)置表格的某些屬性,如字體等?!?CustomizedTableCellRenderer是表格單元格繪制器類,主要用于顯示文件的系統(tǒng)圖標,和文件名。〔3LeftPanel類的父類是JTabbedPane,用戶顯示主窗口左邊的面板。〔4RightPanel類的父類是JPanel,用戶顯示右邊的主題部分,包括右上邊的搜索及服務(wù)器選項,和中間的顯示服務(wù)器文件的TabbedPane。.〔5BottomPanel類是右下放顯示下載和服務(wù)器信息的JTabbedPane?!?Customizedutton是定義按鈕類,更改了按鈕的字體,java本身默認的字體不好看?!?CustomizedTableModel是表格類,實現(xiàn)單元格的不可編輯。〔8CustomizedTableCellRenderer_Remote類是表格繪制器,在遠程文件瀏覽器RemoteFilesPanel使用,用于顯示文件名和文件圖標。〔9FontTableCellRenderer類是表格單元格繪制器,主要功能是設(shè)置字體。〔10FontListCellRenderer類是下拉列表框單元格繪制器,主要用于設(shè)置字體。〔11CustomizedJLabel類是自定義標簽類,重新設(shè)置了標簽的字體。〔12CustomizedJTextField類是自定義文本框類,主要用于設(shè)置文本框的顯示屬性。〔13CustomizedJMenu類是自定義菜單類,重新設(shè)置了菜單的字體。〔14CustomizedJMenuItem類是自定義菜單項類,重新設(shè)置了菜單的字體?!?5CustomizedListCellRenderer類是JComboBox即組合框單元格繪制器,用于在本地路徑選擇的下拉列表中顯示磁盤圖標。SearchResultReceiver.java,SearchResultReceiver是一個接口,主要用于返回搜索結(jié)果。搜索完成后調(diào)用接口中的函數(shù)通知調(diào)用者。其中主要有兩個函數(shù):〔1OnSearchFinished<String[]keywords,ArrayList[]resultset>;result是一個10維的數(shù)組表result[10],result[i]是由類型為i的資源組成的數(shù)組。i:0-9,和類型列表框中的順序一致?!?OnSearchFinished<String[]keywords,ArrayListresultset>;不分類型,將所有資源放在一個數(shù)組表中。FtpFrame.java:FtpFrame是程序主窗口類,類型為JFrame,是由三個分割窗口JSplitPane構(gòu)成的。jSplitPane_Left是左邊的分割窗口,水平分割條上邊顯示本地文件框,下邊是預(yù)覽框;jSplitPane_Right是右邊的分割窗口,水平分割條上邊是服務(wù)器選項和ftp服務(wù)器文件顯示的窗口,下邊是下載和服務(wù)器信息顯示窗口;jSplitPane_Whole是整體的分割窗口,垂直分割條,左邊是jSplitPane_Lef,右邊是jSplitPane_Right。FtpFrame把LeftPanel,RightPanel,BottomPanel,PreviewWrapperPanel這幾部分安裝在相應(yīng)的分割窗格中;LeftPanel,RightPanel,BottomPanel是在CustomizedController.Java中定義的,PreviewWrapperPanel是在Preview包中定義的。LeftPanelCtrl.java: LocalFilesPanel是本地文件面板,用表格來顯示本地文件的信息。上邊是組合框,顯示了磁盤分區(qū)通過這里可以改變根目錄。表格中顯示了文件的信息,包括文件名,文件的系統(tǒng)圖標,大小,最近修改日期,屬性等。選中一個文件后可以執(zhí)行上載和刪除操作。文件夾會遞歸的刪除。GetCurrentPath〔函數(shù)返回當(dāng)前的路徑。DisplayPathFiles〔函數(shù)在列表中顯示指定目錄下的文件。RightPanlCtrl.java:定義右上邊的控件。含有的類有:〔1FtpServerOptionPanel類是服務(wù)器連接選項面板,包含服務(wù)器地址,端口,用戶名,密碼等,還包括最上端的搜索選項。openRemoteFilesPanel〔函數(shù)在下面的TabbedPane中打開一個新的服務(wù)器面板,連接服務(wù)器?!?RemoteFilesPanel類的主要功能是連接Ftp服務(wù)器并顯示文件。這里會進行文件的上載,下載及預(yù)覽等操作。RemoteFilesPanel的內(nèi)部類TransferController負責(zé)調(diào)用FtpClient類提供的功能與服務(wù)器進行交互,完成用戶指定的文件操作。TransferController還有三個內(nèi)部類:ConnThread類是負責(zé)連接服務(wù)器的線程〔新開一個線程,目的是避免連接時阻塞,DownloadFileThread類是下載文件的線程,UploadFileThread類是上載文件的線程?!?SearchResultPanel類是顯示搜索結(jié)果的類,它有兩個子類SearchResultPanelWithinSearchEngine類的功能是在搜索引擎中搜索,SearchResultPanelWithinServer類的功能是站內(nèi)搜索。搜索引擎的搜索會調(diào)用search包中的程序,搜索引擎搜索完成后search包通過OnSearchFinished〔來通知SearchResultPanelWithinSearchEngine類,然后顯示搜索結(jié)果?!?RightTabbedPane是顯示ftp服務(wù)器文件表格的TabbedPane類。BottomPanelCtrl.java:實現(xiàn)主窗口下部面板及控件,顯示下載情況,服務(wù)器連接信息。包含的主要類有:〔1RemoteMessPanel類是顯示服務(wù)器連接信息的面板。需要顯示ftp服務(wù)器傳回的信息,并在顯示前進行編碼轉(zhuǎn)換,還需要顯示本地的相關(guān)信息?!?DownloadingMessPanel類是顯示資源下載信息的面板,顯示下載資源的大小,下載速度,已用時間,剩余時間等信息。3.5流程邏輯總體流程:上載預(yù)覽FtpClient.class顯示下載信息searchRightPanel.classPreviewWrapperPanelBottomPanel.classLeftPanel.classFtpFrame.classMainFrame.class上載預(yù)覽FtpClient.class顯示下載信息searchRightPanel.classPreviewWrapperPanelBottomPanel.classLeftPanel.classFtpFrame.classMainFrame.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交互的模塊ui4.4模塊設(shè)計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:FtpClient.java:含有類FtpClient,,該類會被ui包中的界面類調(diào)用,完成ftp功能。其中要功能的實現(xiàn)有: 在構(gòu)造函數(shù)中根據(jù)ip和port建立與服務(wù)器的連接;登錄服務(wù)器login〔〔用戶名,密碼;向服務(wù)器追加ascii文件appendAscii〔;向服務(wù)器追加二進制文件appendBinary〔;設(shè)置數(shù)據(jù)傳輸方式為二進制binary,ascii碼scii〔;改變工作目錄cd〔Stringnewdirectory;返回上一級目錄cdup〔;斷開連接closeserver〔;刪除文件delete〔文件名;刪除文件夾rmdir〔文件夾的名字;用ascii模式下載文件getAscii〔文件名;用二進制方式下載文件getBinary〔文件名;取得服務(wù)器的響應(yīng)字串getResponseString<>;列舉當(dāng)前目錄下的文件list〔,指定目錄下的文件list〔文件名;創(chuàng)建文件夾mkdir〔文件夾名;上載Ascii文件putAscii<文件路徑>,二進制putBinary〔。FtpLoginException.java:含有類FtpLoginException,定義登錄時可能拋出的異常。5.模塊3〔common設(shè)計說明5.1模塊描述存放一些輔助類,系統(tǒng)啟動時會從properties.xml讀取一些配置信息??梢酝ㄟ^手動修改配置信息來修改系統(tǒng)的某些顯示屬性如字體,字的大小等。5.2功能存放一些輔助類,例如用于讀取和存儲系統(tǒng)配置屬性的類。用于將"屬性名-屬性值"對存儲在properties.xml文件中的類。5.3交互的模塊ui5.4模塊設(shè)計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:Properties.java:含有類Properties,這是讀取和存儲系統(tǒng)配置屬性的類。其主要功能的實現(xiàn)如下:函數(shù)getProperty〔根據(jù)屬性名取得屬性值,如果屬性不存在返回null;函數(shù)getProperties〔根據(jù)屬性名列表返回屬性值列表,返回值為ArrayList,其中的每一個元素是PropertyValue對象;函數(shù)setProperty〔設(shè)置單個屬性值;函數(shù)setProperties〔設(shè)置多個屬性值;函數(shù)readXMLFromFile〔讀取xml文件;函數(shù)buildXML〔在xml文檔中存入數(shù)據(jù);PropertyValue.java:含有類PropertyValue,在xml文件中存儲"屬性名-屬性值"對。6.模塊4〔search設(shè)計說明6.1模塊描述包search主要完成天網(wǎng)和百度兩項搜索功能。它含有以下6個類:NetResource,URLParser,ConnectionTester,SearchResultRetriever,EmbeddedFileRetriever,Retriever。6.2功能主要完成天網(wǎng)和百度兩項搜索功能。6.3交互的模塊ui6.4模塊設(shè)計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:NetResource.java:含有類NetResource,NetResource是對被天網(wǎng)索引的網(wǎng)絡(luò)文件資源的抽象,其字段有:fileURL〔文件資源的URL,包括協(xié)議、主機字符串、路徑、文件名、fileDate〔天網(wǎng)將它編入索引的日期、fileSize〔文件的大小、responseTime〔以毫秒計算的響應(yīng)時間。函數(shù)smallerThan<NetResourcenr>比較本條資源的響應(yīng)時間是否比nr的響應(yīng)時間小,因為規(guī)定響應(yīng)時間小的NetResource排在相應(yīng)時間大的前面。URLParser.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)的文件資源的后綴名。ConnectionTester.java:含有類ConnectionTester,ConnectionTester是用來對網(wǎng)絡(luò)文件資源進行連接測試的類,它實現(xiàn)了Runnable接口。SearchResultRetriever類將ConnectionTester類作為模板生成許多線程并發(fā)地對各文件資源進行連接并測試相應(yīng)時間,以提高程序效率。每個網(wǎng)絡(luò)文件都是用NetResource類表示的。對于ftp文件,ConnectionTester嘗試以匿名方式連接。如果連接失敗則丟棄該資源的URL,若連接成功則根據(jù)連接它響應(yīng)時間將其插入已排序的NetResource列表中。對于文件,ConnectionTester建立一個新的URLConnection,并調(diào)用connect方法嘗試連接。如果連接失敗則丟棄該資源的URL,若連接成功則根據(jù)連接它的響應(yīng)時間將其插入已排序的NetResource列表中。在構(gòu)造ConnectionTester類的對象時必須指定一個由NetResource類的對象組成的ArrayList,其中每個NetResource都需要測速。該類的功能主要由函數(shù)run<>實現(xiàn)。SearchResultRetriever.java:含有類SearchResultRetriever,SearchResultRetriever類根據(jù)給定的關(guān)鍵字和文件類型向天網(wǎng)文件搜索引擎發(fā)送請求,對各返回結(jié)果頁面的源文件進行分析,將所有網(wǎng)絡(luò)文件資源的URL進行分類〔利用天網(wǎng)的分類方法并保存在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)頁-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,inttype,其中tokens為表示關(guān)鍵字的字符串?dāng)?shù)組;type表明用戶需要搜索什么類型的文件。該方法將上述10個ArrayList組成一個數(shù)組并返回。EmbeddedFileRetriever.java:含有類EmbeddedFileRetriever,EmbeddedFileRetriever類的作用是提取網(wǎng)頁中文件鏈接,它實現(xiàn)了Runnable接口。Retriever類將EmbeddedFileRetriever類作為模板生成若干線程并發(fā)地提取不同網(wǎng)頁內(nèi)的文件鏈接,以提高程序效率。EmbeddedFileRetriever類維護了一個網(wǎng)頁后綴名列表,由于程序只提取對應(yīng)文件資源的URL,我們需要分辨哪些后綴名是對應(yīng)網(wǎng)頁的從而及時將它們丟棄。在構(gòu)造類EmbeddedFileRetriever的對象時必須指明從哪個網(wǎng)頁URL中提取文件URL,以及這些URL保存在哪個ArrayList中。函數(shù)hasFileSuffix〔的功能是判斷一個url是否鏈向一個文件;函數(shù)listFiles<StringURLStr>將URLStr對應(yīng)頁面中的所有文件加到ArrayList中并返回。Retriever.java:含有類Retriever,Retriever類的功能是根據(jù)給定的關(guān)鍵字向百度搜索引擎發(fā)送請求,抽取前20個返回結(jié)果對應(yīng)的網(wǎng)頁URL。對每一個頁面生成一個EmbeddedFileRetriever對象提取其中對文件的鏈接,并添加到一個ArrayList中。每個頁面都處理完畢后返回這個ArrayList。在利用搜索文件時,應(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交互的模塊ui7.4模塊設(shè)計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下:PreviewWrapperPanel.java:含有類PreviewWrapperPanel,這是系統(tǒng)的預(yù)覽部分最基本的類,它派生自Jpanel類,主要由3部分組成,其中PreviewPanel負責(zé)顯示預(yù)覽,StatusBarPanel負責(zé)顯示預(yù)覽文件的加載進度,ControlButtonPanel負責(zé)和預(yù)覽相關(guān)的控制。在顯示資源的預(yù)覽內(nèi)容前應(yīng)該先判斷該資源類型是否可以預(yù)覽。PreviewPanel.java:含有類PreviewPanel,這是一個抽象類,負責(zé)資源內(nèi)容的預(yù)覽,有5個子類,這5個子類分別是PicturePreviewPanel類:負責(zé)圖像文件的預(yù)覽;PDFPreviewPanel類:負責(zé)PDF文件的預(yù)覽;TxtPreviewPanel類:負責(zé)文本文件的預(yù)覽;NoFileSelectedPr

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論