?? 4.+
字號:
軟件設(shè)計概要說明書
1. 引言
1.1 編寫目的
為軟件確立基本結(jié)構(gòu)/模塊,為更好地進行詳細設(shè)計/編碼/測試做好準(zhǔn)備。
1.2 背景
無
1.3 定義
a. 數(shù)據(jù)設(shè)計
b. 體系結(jié)構(gòu)設(shè)計
c. 過程設(shè)計
1.4 參考資料
《軟件工程》,電子工業(yè)出版社。
2. 總體設(shè)計
2.1 需求規(guī)定
見《軟件需求分析規(guī)格說明書》
2.2 運行環(huán)境
JVM
2.3 基本設(shè)計概念和處理流程
按照面向?qū)ο蟮姆椒▽浖M行OOA/OOD/OOP。步驟如下:
(1)確定對象
(2)確定結(jié)構(gòu)
(3)定義主題
(4)定義屬性和實例聯(lián)系
(5)定義操作和消息聯(lián)系
2.4 結(jié)構(gòu)
軟件共有兩個主要模塊:
a. 界面模塊(JSApplet):
b. 核心搜索模塊(SearchThread):
2.5 功能需求與程序(模塊)的關(guān)系
a. 界面模塊(JSApplet):
用于人機交互。所有的界面顯示。所有的用戶操作及軟件對用戶操作的響應(yīng)主要在這上面進行。
用于存放全局變量。在這里全局變量作為通訊的一種重要手段,因為在這里使用的是Applet,所以所有的全局變量其實可以看作是Applet上的一個對象供其它對象直接存儲。
b. 核心搜索模塊(SearchThread):
用于與Internet通信的接口。
JSApplet信息的來源。
2.6 人工處理過程
無
2.7 尚未解決的問題
為實現(xiàn)如JSearch 1.2.3中更豐富的功能,如:
網(wǎng)址有效性驗證使用單獨的模塊,并實施超時自動斷開。
搜索超時自動斷開。
3. 接口設(shè)計
3.1 用戶接口
界面模塊由如下方面組成:
搜索區(qū)域:
查詢內(nèi)容框:輸入待查詢的內(nèi)容。
開始搜索:開始搜索。
停止搜索:停止搜索
新建搜索:新建搜索
結(jié)果區(qū)域:
結(jié)果欄:顯示所有搜索到的主題和網(wǎng)址,并且當(dāng)用戶選中其中一條時可以在預(yù)覽區(qū)域看到該網(wǎng)址的預(yù)覽。雙擊結(jié)果條目,可用瀏覽器打開該網(wǎng)址進行瀏覽。
總計:顯示搜索到的網(wǎng)址的總條數(shù)。
預(yù)覽-狀態(tài)-消息區(qū)域:
預(yù)覽:顯示結(jié)果網(wǎng)址預(yù)覽
狀態(tài):顯示搜索狀態(tài),如每個搜索引擎當(dāng)前的搜索狀況,如每個搜索引擎已經(jīng)返回了多少網(wǎng)址。
消息:主要用于出錯信息的顯示
引擎&選項&關(guān)于區(qū)域:
引擎:供用戶選擇用于搜索的搜索引擎類別和想要的搜索引擎。
選項:供用戶對搜索性能和軟件特性進行定制。選項如下:
搜索最大連接數(shù):能同時搜索的搜索引擎數(shù)
搜索最大層次:希望搜索的最大層次,即翻頁
網(wǎng)址有效性驗證:是否對所得網(wǎng)址進行連通測試后才顯示
語言:選擇語言(中/英)
網(wǎng)絡(luò)瀏覽器種類:多種平臺的網(wǎng)絡(luò)瀏覽器的選擇
網(wǎng)絡(luò)瀏覽器路徑:瀏覽器在操作系統(tǒng)中所在的路徑
關(guān)于:
許可協(xié)議:顯示COPYING.TXT
謝啟:顯示CREDITS.TXT
3.2 外部接口
在JSearch.html中的PARAM設(shè)置,主要用于為JSApplet的OPTIONS區(qū)域設(shè)置初值,樣例如下:
<PARAM NAME="currUrl" VALUE="file:///D:/DevSofts/JSearch/Releases/">
<PARAM NAME="smcCh" VALUE="10">
<PARAM NAME="smlCh" VALUE="10">
<PARAM NAME="valurlCh" VALUE="No">
<PARAM NAME="languageCh" VALUE="Chinese">
<PARAM NAME="webBrowCh" VALUE="IE (Windows)">
<PARAM NAME="webBrowPTf" VALUE="c:\progra~1\intern~1\iexplore.exe">
3.3 內(nèi)部接口
當(dāng)用戶按下開始搜索時,JSApplet通過創(chuàng)建多個SearchThread對象實現(xiàn)對多個搜索引擎的搜索
4. 運行設(shè)計
4.1 運行模塊組合
無
4.2 運行控制
無
4.3 運行時間
無
5. 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計
5.1 邏輯結(jié)構(gòu)設(shè)計要點
主要的數(shù)據(jù)結(jié)構(gòu)如下:
//搜索引擎詳細信息
class EnginesDetails {
String name; //搜索引擎名稱
String category; //搜索引擎類別
String srchChain; //搜索串
String srchBlkB; //信息塊開始
String srchBlkE; //信息塊結(jié)束
}
//搜索結(jié)果詳細信息
class ResultsDetails {
String title; //主題
String preview; //預(yù)覽
}
5.2 物理結(jié)構(gòu)設(shè)計要點
無
5.3 數(shù)據(jù)結(jié)構(gòu)與程序(模塊)的關(guān)系
//公共全局量/JSApplet對外的接口
Hashtable resultTable //結(jié)果集,包括網(wǎng)址、{主題、預(yù)覽},通過網(wǎng)址進行定位
Vector resultIndex //結(jié)果集,僅包括網(wǎng)址,但可以快速使用elementAt(int)進行定位,并確定網(wǎng)址
boolean _stop //用標(biāo)志讓線程結(jié)束,而不是用stop()!
int actualSearchAllowed //實際應(yīng)打開的線程數(shù),并用于SearchThread的計數(shù)器
6. 系統(tǒng)出錯處理設(shè)計
6.1 出錯信息
a. 當(dāng)用戶沒有輸入搜索串,或沒有選擇搜引擎,將顯示如下信息:
Search Starting Failed.
b. 當(dāng)瀏覽器無法打開搜索結(jié)果進行顯示的時候:
"Exception: '" + ex.toString() + "' in JSApplet.ResultLiAL.actionPerformed().\n"
c. 開始時加入:
在消息框中:
"JSearch version 2.0.0.0 [huntlin@public.xm.fj.cn], Copyright (C) 1999-2002 Hunt Lin\n" +
"JSearch comes with ABSOLUTELY NO WARRANTY; for details see COPYING.\n" +
"This is free software, and you are welcome to redistribute it\n" +
"under certain conditions; see COPYING for details.\n"
在版權(quán)框中:
getParameter("currUrl") + "COPYING.TXT" + "\n"
getParameter("currUrl") + "CREDITS.TXT" + "\n"
d. 當(dāng)讀入搜索引擎信息時出錯:
"Exception: '" + ex.toString() + "' in JSApplet.getEngData().\n"
e. 當(dāng)啟動搜索出錯時:
"Exception: '" + ex.toString() + "' in JSApplet.startSearch().\n"
f. 當(dāng)讀取頁面字符時出錯:
"Exception: '" + ex.toString() + "' in SearchThread.stepOneChar().\n"
g. 當(dāng)搜索線程出錯:
"Exception: '" + ex.toString() + "' in SearchThread.run().\n"
h. 當(dāng)驗證網(wǎng)址出錯:
"Exception: '" + ex.toString() + "' in SearchThread.validUrl().\n"
i. 當(dāng)結(jié)束SearchThread對象時:
"Exception: '" + ex.toString() + "' in SearchThread.finalize().\n"
6.2 補救措施
無
6.3 系統(tǒng)維護設(shè)計
無
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -