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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論