最新系統軟件詳細設計說明書培訓資料_第1頁
最新系統軟件詳細設計說明書培訓資料_第2頁
最新系統軟件詳細設計說明書培訓資料_第3頁
最新系統軟件詳細設計說明書培訓資料_第4頁
最新系統軟件詳細設計說明書培訓資料_第5頁
免費預覽已結束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

1、系統軟件詳細設計說明書1.引言1. 1編寫目的本詳細設計說明書是針對網絡信息體系結構的課程作業(yè)而編寫。目的是對該項目進行詳 細設計,在概要設計的基礎上進一步明確系統結構,詳細地介紹系統的各個模塊,為進行后 面的實現和測試作準備。本詳細設計說明書的預期讀者為本項目小組的成員以及對該系統感 興趣,在以后想對系統進行擴展和維護的人員。2.系統的結構 Ui:系統界面部分,負責接受用戶輸入,顯示系統輸出,負責其他模塊功能的協調調用, 井含有站內搜索功能,即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。ui 部分調用common部分的功能讀取xml文件中保存的界面元素屬性信息,用戶最近訪問 過的10

2、個ftp信息,用戶選擇的下載的ftp內容列表及其他需要通過xml文件保存的 client:實現ftp客戶端的功能,ftp連接,ftp上傳及下載:上傳或下載用戶指定的資源,并返回相應的信息。 search:資源實時檢索部分,根據用戶輸入的資源名稱關鍵字,資源類型和選擇的檢索 方式檢索用戶需要的資源,并驗證資源的可用性,返回可用資源及其大小,速度等相關 信息。 preview:資源預覽部分,顯示用戶選擇的資源的部分內容,以使用戶決定是否需要該 資源。preview部分調用common部分讀取屬性文件的內容亦顯示預覽資源內容的顯示 格式。3.模塊1 (ui)設計說明3. 1模塊描述實現用戶界面的包,

3、含有11個文件51個類,是本系統中最復雜的代碼。3. 2功能負責接受用戶輸入,顯示系統輸出,其他模塊功能的協調調用,并含有站內搜索功能, 即在用戶指定的已打開的ftp站點中搜索用戶需要的資源。3. 3交互的模塊cl ient, search, preview, common<>3. 4模塊設計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下: Ma inFrame, java: MainFrame是含有主函數的類,也是lyra客戶端開始執(zhí)行的類, 它先后進行資源的初始化,顯示主界面等工作,根據屏幕大小設置界面大小,設置界面 的觀感。 FtpFrame_AboutB

4、ox. java:顯示關于窗口的類,當用戶點擊幫助菜單中的關于菜單 項時會彈岀關于對話框。 Tools, java: FileTools是文件操作輔助類,可以實現文件的遞歸刪除等。 XMLController. java: JDOMTes是操作xml文件的類,用JDOM來操作xml文件, 實現的功能有:(1)保存ftp服務器的文件列表(站內搜索時使用),遞歸的從ftp服務器讀取列表, 并存入一個xml文件中(文件的命名方法是:ip+用戶名.xml);以目錄樹的形式保存。(2)根據文件名在文件中查找文件,站內搜索時使用。(3)保存ftp服務器的信息:ip,端口(默認端口 21不保存),用戶名(默

5、認anonymous 不保存),密碼,最多存10個;存在resourcesettings serversinfor. xml文件中。(4)讀取已存儲的ftp服務器信息。(5)從type, xml讀取搜索的類型。 Constants, java:放置系統運行時使用的一些常initcontent ()函數對所有常呈 進行初始化,這個函數在MainFrame中被調用一次。iconHashMap是hash表,用于 存放文件的系統圖標。 Custom izedControl I er. java:包含自定義的控件類,java中的控件可能不能滿足需求, 需要自己定義某些屬性。這些控件會在創(chuàng)建界面時使用。其

6、中含有的類有:(1)Custom!zedJTable是表格類,設置表格的某些屬性,如字體等。(2)CustomizedTableCel IRenderer是表格單元格繪制器類,主要用于顯示文件的系統圖 標,和文件名。(3)LeftPaneI類的父類是JTabbedPane,用戶顯示主窗口左邊的面板。(4)RightPanel類的父類是JPanel,用戶顯示右邊的主題部分,包括右上邊的搜索及服務 器選項,和中間的顯示服務器文件的TabbedPane。.(5) BottomPane I類是右下放顯示下載和服務器信息的JTabbedPane。(6) CustomizedJButton是定義按鈕類,更

7、改了按鈕的字體,java本身默認的字體不好看。(7) Custom i zedTab I eMode I是表格類,實現單元格的不可編輯。(8 ) CustomizedTabIeCeI IRenderer_Remote類是表格繪制器,在遠程文件瀏覽器 RemoteF i I esPane I使用,用于顯示文件名和文件圖標。(9) Font Tab I eCell Render er類是表格單元格繪制器,主要功能是設置字體。(10) FontListCe II Render er類是下拉列表框單元格繪制器,主要用于設置字體。(11) Custom!zedJLabel類是自定義標簽類,重新設置了標簽

8、的字體。(12) CustomizedJTextField類是自定義文本框類,主要用于設置文本框的顯示屬性。(13) Custom!zedJMenu類是自定義菜單類,重新設置了菜單的字體。(14) CustomizedJMenul tern類是自定義菜單項類,重新設置了菜單的字體。(15) Customi zedLi stCel IRenderer類是JComboBox即組合框單元格繪制器,用于在本地 路徑選擇的下拉列表中顯示磁盤圖標。 SearchResultReceiver. java, SearchResuI tRecei ver 是接口,主要用于返回搜索 結果。搜索完成后調用接口中的函

9、數通知調用者。其中主要有兩個函數:(1) OnSearchFini shed(Str ing keywords, ArrayLi st resultset);result 是10 維的數組表result10,resulti是由類型為i的資源組成的數組。i : 0-9,和類型列表 框中的順序一致。(2) OnSearchF i n i shed (Str i ng keywords, ArrayL i st resultset);不分類型,將所有資 源放在一個數組表中。 FtpFrame. java:FtpFrame是程序主窗口類,類型為JFrame,是由三個分割窗口 JSp I i tPane

10、 構成的。jSplitPane.Left是左邊的分割窗口,水平分割條上邊顯示本地文件框,下邊是預覽框; jSpI itPane_Right是右邊的分割窗口,水平分割條上邊是服務器選項和ftp服務器文件顯 示的窗口,下邊是下載和服務器信息顯示窗口;jSplitPane_Whole是整體的分割窗口,垂直分割條,左邊是jSpI itPane_Lef,右邊是 jSpIitPane_RightoFtpFrame 把 LeftPane I, R i ghtPane I, BottomPane I, Prev i ewWrapperPane I 這幾部分安裝 在相應的分割窗格中;LeftPane I , R

11、ightPane I , BottomPane I 是在 Custom i zedContro I I er. Java 中定義的,Prev i ewWrapperPane I 是在 Preview 包中定義的。 LeftPane I Ctrl, java: LocalFi I esPane I是本地文件面板,用表格來顯示本地文件的信 息。上邊是組合框,顯示了磁盤分區(qū)通過這里可以改變根目錄。表格中顯示了文件的信 息,包括文件名,文件的系統圖標,大小,最近修改日期,屬性等。選中一個文件后可 以執(zhí)行上載和刪除操作。文件夾會遞歸的刪除。GetCurrentPath ()函數返回當前的路 徑。Disp

12、layPathFi les 0函數在列表中顯示指定目錄下的文件。 RightPanICtrl. java:定義右上邊的控件。含有的類有:(1) FtpServerOptionPaneI類是服務器連接選項面板,包含服務器地址,端口,用戶名, 密碼等,還包括最上端的搜索選項。openRemoteFi IesPaneI ()函數在下面的TabbedPane 中打開一個新的服務器面板,連接服務器。(2) RemoteFi IesPaneI類的主要功能是連接Ftp服務器井顯示文件。這里會進行文件的上 載,下載及預覽等操作。RemoteFi IesPaneI的內部類TransferControl ler負

13、責調用 FtpCI ien t類提供的功能與服務器進行交互,完成用戶指定的文件操作。 TransferControl ler還有三個內部類:ConnThread類是負責連接服務器的線程(新開一個 線程,目的是避免連接時阻塞),DownloadFileThread類是下載文件的線程, UploadFi I eThread類是上載文件的線程。(3 ) SearchResultPanel類是顯示搜索結果的類,它有兩個子類 SearchResuItPaneIW i th i nSearchEng i ne 類的功能是在搜索引率中搜索, SearchResuItPaneIWithinServer類的功能

14、是站內搜索。搜索引華的搜索會調用search包 中的程序,搜索引華搜索完成后search包通過OnSearchFini shed ()來通知 SearchResuI tPaneIWi thinSearchEngine 類,然后顯示搜索結果。(4) RightTabbedPane是顯示ftp服務器文件表格的TabbedPane類。 BottomPane I Ctrl, java:實現主窗口下部面板及控件,顯示下載情況,服務器連接信息。 包含的主要類有:(1) RemoteMessPanel類是顯示服務器連接信息的面板。需要顯示ftp服務器傳回的信息, 并在顯示前進行編碼轉換,還需要顯示本地的相關

15、信息。(2) DownloadingMessPanel類是顯示資源下載信息的面板,顯示下載資源的大小,下載速 度,已用時間,剩余時間等信息。3. 5流程邏輯總體流程:Search Result'Reca ver(Jbm® 4.模塊2 (client)設計說明4. 1模塊描述實現 ftp 客戶端 FtpCI ient,有兩個文件 FtpCI ient. java 和 FtpLogi nExcept ion. java. 前者具體實現了 ftp協議,后者是為登錄時可能拋岀的異常而定義的類。4. 2功能實現ftp客戶端FtpCI ient,實現了 ftp協議,用于和ftp服務器通訊

16、和數據傳輸。4. 3交互的模塊ui4. 4模塊設計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下: FtpCI ient. java:含有類FtpCI ient.,該類會被ui包中的界面類調用,完成ftp功能。 其中要功能的實現有:在構造函數中根據ip和port建立與服務器的連接;登錄服務器login ()(用戶名,密碼);向服務器追加asci i文件appendAsci i ();向服務器追加二進制文件appendBinary ();設置數據傳輸方式為二進制binary, asci i碼scii 0;改變工作目錄 cd (String newd i rectory);返回

17、上一級目錄cdup ();斷開連接 closeserver 0;刪除文件delete (文件名);刪除文件夾rmdir (文件夾的名字);用asci i模式下載文件get Asci i (文件名);用二進制方式下載文件getBinary (文件名);取得服務器的響應字串getResponseStr ing();列舉當前目錄下的文件list (),指定目錄下的文件list (文件名);創(chuàng)建文件夾mkdir (文件夾名);上載Ascii文件put Asci i (文件路徑),二進制putBinary 0® FtpLoginException. java:含有類FtpLoginExcept

18、ion,定義登錄時可能拋岀的異常。5.模塊3 (common)設計說明5. 1模塊描述存放一些輔助類,系統啟動時會從properties, xml讀取一些配置信息。可以通過手動 修改配置信息來修改系統的某些顯示屬性如字體,字的大小等。5. 2功能存放一些輔助類,例如用于讀取和存儲系統配置屬性的類。用于將“屬性名一屬性值” 對存儲在properties, xml文件中的類。5. 3交互的模塊ui5. 4模塊設計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下: Properties, java:含有類Properties,這是讀取和存儲系統配置屬性的類。其主要功 能的實現如下:

19、函數getProperty ()根據屬性名取得屬性值,如果屬性不存在返回null;函數getProperties ()根據屬性名列表返回屬性值列表,返回值為ArrayList,其中 的每一個元素是PropertyValue對象;函數setProperty ()設置單個屬性值;函數setProperties ()設置多個屬性值;函數 readXMLFromFi le 0 讀取 xml 文件;函數buildXML ()在xml文檔中存入數據; PropertyValue. java:含有類PropertyValue,在xml文件中存儲“屬性名一屬性值” 對。6.模塊4 (search)設計說明6.

20、 1模塊描述包search主要完成天網和百度兩項搜索功能。它含有以下6個類:NetResource, URLParser , ConnectionTester , SearchResuItRetr iever , EmbeddedFileRetriever , HttpRetriever。6. 2功能主要完成天網和百度兩項搜索功能。6. 3交互的模塊ui 6. 4模塊設計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下: NetResource. java:含有類NetResource, NetResource是對被天網索引的網絡文件資 源的抽象,其字段有:fileURL (

21、文件資源的URL,包括協議、主機字符串、路徑、文 件名)、f i I eDate (天網將它編入索引的日期)、f i I eSize (文件的大小)v responseTime (以亳秒計算的響應時間)。函數smal lerThan (NetResource nr)比較本條資源的響應時間是否比nr的響應時間小, 因為規(guī)定響應時間小的NetResource排在相應時間大的前面。函數 getProtocol 函數 getHostName 函數 getPath (): 函數 getFi I eName URLParser. java:含有類URLParser, URLParser是一個工具箱類,它提

22、供了若干靜態(tài) 方法,對一個文件資源的URL進行解析。其實現的方法有:O:給定一個URL,返回其協議名稱;O:給定一個URL,返回主機字符串;給定一個URL,返回文件在主機中的存放路徑;O:給定一個URL,返回文件名;函數getSuffix ():給定一個URL,返回該URL對應的文件資源的后綴名。 Connect ionTester. java:含有類 Connect ionTester, Connect ionTester 是用來對網絡 文件資源進行連接測試的類,它實現了 Runnable接口。SearchResuI tRetr iever類將 Connect i onTester類作為模板

23、生成許多線程并發(fā)地對各文件資源進行連接并測試相應時間,以提高程序效率。每個網絡文件都是用NetResource類表示的。對于ftp文件, Connect ionTester嘗試以匿名方式連接。如果連接失敗則丟棄該資源的URL,若連接成 功則根據連接它響應時間將其插入已排序的NetResource列表中。對于http文件, Connect ionTester建立一個新的URLConnect ion,并調用connect方法嘗試連接。如果 連接失敗則丟棄該資源的URL,若連接成功則根據連接它的響應時間將其插入已排序的 NetResource列表中。在構造Connect i onTester類的對象

24、時必須扌旨定一個由 NetResource類的對象組成的ArrayList,其中每個NetResource都需要測速。該類的功能主要由函數run()實現。 SearchResuItRetriever. java :含 有 類SearchResuItRetr iever,SearchResuI tRetr iever類根據給定的關鍵字和文件類型向天網文件搜索引率發(fā)送請求,對各返回結果頁面的源文件進行分析,將所有網絡文件資源的URL進行分類(利用 天網的分類方法)井保存在10個ArrayList中。該類的函數如下:函數test ()判斷這個”下一頁"對應的URL是否合法,該問題僅在用程序

25、訪問天網時 需要考慮函數retrieve ()根據輸入的關鍵字String tokens向天網發(fā)出請求,取得返回的 URL 集合,ArrayL i stO 保存圖片一imagefile; ArrayListl 保存音樂一soundf i le; ArrayLi st2 保存電影一videof i le; ArrayLi st3 保存壓縮一 zipf i le; ArrayList4 保存文檔一docf i le ; ArrayList5 保存程序一programf i le ; ArrayLi st6 保存源碼一 srcf i le;ArrayLi st7 保存網頁一v/ebf i le; A

26、rrayLi st8 保存目錄一di rf i Ie;ArrayLi st9 保存其他一f i le。對每一個ArrayList生成若干Connect ionTester線程進行響應時間 測試,在這些線程返回后每一個ArrayList中的網絡文件資源都已經按照響應時間遞增 的順序排列,而無法連接的文件資源URL都已被丟棄。SearchResultRetriever類的使 用方式是調用它的函數retrieve (String tokens, int type),其中tokens為表示 關鍵字的字符串數組;type表明用戶需要搜索什么類型的文件。該方法將上述10個 ArrayLi st組成一個數組

27、并返回。 EmbeddedFiI eRetriever, java :含 有 類 EmbeddedFiI eRetriever ,EmbeddedFi IeRetr iever類的作用是提取網頁中文件鏈接,它實現了 Runnable接口。 HttpRetr iever類將EmbeddedFi IeRetr iever類作為模板生成若干線程并發(fā)地提取不同 網頁內的文件鏈接,以提高程序效率。EmbeddedFi IeRetr iever類維護了一個網頁后綴 名列表,由于程序只提取對應文件資源的URL,我們需要分辨哪些后綴名是對應網頁的 從而及時將它們丟棄。在構造類EmbeddedFi IeRetr

28、 iever的對象時必須指明從哪個網頁 URL中提取文件URL,以及這些URL保存在哪個ArrayL i st中。函數hasFi I eSuffix ()的功能是判斷一個ur I是否鏈向一個文件;函數I i stFi les(Str ing URLStr)將URLStr對應頁面中的所有文件加到ArrayList中并 返回。 HttpRetr iever. java:含有類 HttpRetr iever, HttpRetr iever 類的功能是根據給定的 關鍵字向百度搜索引率發(fā)送請求,抽取前20個返回結果對應的網頁URL。對每一個頁 面生成一個EmbeddedFi IeRetr iever對象

29、提取其中對文件的鏈接,并添加到一個 ArrayLi st中。每個頁面都處理完畢后返回這個ArrayList。在利用搜索文件時,應當 提供盡可能多的信息,如輸入歌手姓名和“mp3”作為關鍵字。如果僅給定歌手名稱則 搜索效果不佳。這些功能都是由函數retrieve ()實現的。6. 5類圖ConnectionTestermy List: Array Li st >myList1 : Array List <>threadCount : Integer : Object占earch 口 esult 口 etriEer <>typeMap : String testflc

30、reateURLPars酊getProto col() getHostNameO getPathO getFileNameQ getSuffixQNEtRMourcEOfileURL: String <ZfileDate : String <>fileSize : String <?responseTime: LongsmallerThanQretrieveQEmbeddedFileRetriever URLSt r: String<>finalList : ArrayList<>tbread Count: Integer <ebPageS

31、uffixes: HashSet <>hostSuffixes : HashSethasFileSuffixQrunO*listFilesQ7.模塊5 (preview)設計說明7. 1模塊描述系統的預覽部分,實現了不同類型資源的預覽,并可以根據用戶選擇的格式顯示資源的 內容。7. 2功能各種類型資源的預覽,可以根據用戶的選擇格式顯示資源的內容,并可以存儲用戶選擇 的預覽內容。7. 3交互的模塊ui7. 4模塊設計該模塊中的主要文件,文件中包含的主要類及其功能和與其它包的交互如下: PreviewWrapperPaneI. java:含有類 PreviewWrapperPaneI,

32、這是系統的預覽 部分最基本的類,它派生自Jpanel類,主要由3部分組成,其中PreviewPanel 負責顯示預覽,StatusBarPanel負責顯示預覽文件的加載進度,ControlButtonPaneI負責和預覽相關的控制。在顯示資源的預覽內容前應該 先判斷該資源類型是否可以預覽。 PreviewPanel. java:含有類PreviewPanel,這是一個抽象類,負責資源內 容的預覽,有5個子類,這5個子類分別是PicturePreviewPanel類:負責圖像文件的預覽;PDFPreviewPanel類:負責PDF文件的預覽;TxtPreviewPanel類:負責文本文件的預覽;

33、NoFi IeSeIectedPreviewPaneI類:負責當用戶沒有選項文件預覽時顯示提 息;NoPreviewPaneI類:負責當用戶選擇的文件不能預覽時,顯示提示信息。PreviewPaneI類實現的主要功能是構造預覽窗口的實例,有兩種構造方式: 以默認大小構造或以指定大小構造。PreviewPaneI類的函數preview()是一個虛函數,系統可以根據不同的子類 調用不同的預覽函數。 PicturePreviewPaneI. java:含有類 P i cturePrev i ewPane I,它的主要功能是 圖像文件的預覽,其中有4個內部類,分別是:ImagePane I類:這是顯示

34、圖像的JPanel,主要功能是繪圖;PopupListener類:用戶單擊右鍵彈出菜單的類,右鍵功能是設置圖像的顯 示是“適合窗口”還是“原始大小”;p i cPopupMenuL i stener類:負責對右鍵菜單中事件的響應。P i ctureFromD i skLoader類:負責從磁盤上加載圖像文件。 TxtPreviewPane I. java:含有類TxtPreviewPane I,它的主要功能是文本文 件的預覽,其中有5個內部類,分別是:PopupListener類:用戶單擊右鍵彈出菜單的類,txtPopupMenuL i stener類:負責對右鍵菜單中事件的響應;Fi leF

35、romDi skLoader類:負責從磁盤加載文本文件;FontChooseD i a I og類:字體選擇對話框;FontD i a I ogEd i torMed i ator類:負責對話框選擇的字體和預覽區(qū)域顯示的 字體之間的更新。 PDFPreviewPaneI. java:含有類PDFPreviewPaneI.該類使用第三方的軟件包 JPeda I來實現pdf文件的預覽。 ControIButtonPaneI. java:含有類 ControlButtonPaneI、該類的功能是根據 用戶的選擇保存預覽資源,即把預覽的文件存放到用戶選定的目錄。他的功 能主要由兩個內部類來實現,分別是:saveAction類:實現了接口 ActionListener,是對預覽資源保存按鈕的響 應,實現預覽資源保存功能,把預覽的文件存放到用戶選定的目錄。ExampleFi leFi Iter類:繼承自類Fi leFi Iter,實現用戶選擇文件保存目錄 的功能,即彈出文件選擇對話框。75類圖StatusBarPaieljavax.swing.JPanelFOFReviewParidCo

溫馨提示

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

評論

0/150

提交評論