3 概要設計軟件系統的概要設計就是根據之前得出的需求分析,總結使用者對該系統具體的需求,對進行總體的規劃,從而確定系統的總體框架,以及程序的各個部件之間的關系。
3.1 系統開發環境
選擇一個好的編程語言是開發一個系統的一個十分的重要前提。當前,面對眾多的編程語言,讓人感覺到無從選擇,而本系統中用的是Java語言。之所以選擇Java語言是因為在它強大的面向對象功能,使用它能夠輕松的將界面顯示和業務邏輯分開。
由于java語言的平臺無關性,所以我選取在windows操作系統上進行開發,而且數據庫設計用的是MySQL Server 5.0。
操作系統:Microsoft Windows 7 旗艦版
數據庫: MySQL Server 5.0
JAVA開發包:JDK1.6
開發語言:Java
開發平臺:Eclipse 3.7
3.2 系統運行環境
3.2.1 環境變量的配置 想要配置Java的環境變量,首先就要安裝JDK,安裝后記下JDK的安裝路徑,然后按以下幾個步驟配置環境變量:
(1)右擊【我的電腦】---【屬性】-----【高級】---【環境變量】
(2)選擇【新建系統變量】--彈出“新建系統變量”對話框,在“變量名”文本框輸入“JAVA_HOME”,在“變量值”文本框輸入JDK的安裝路徑,單擊“確定”按鈕,如圖3.1:

圖3.1 配置JAVA_HOME
(3)在“系統變量”選項區域中查看PATH變量,如果不存在,則新建變量 PATH,否則選中該變量,單擊“編輯”按鈕,在“變量值”文本框的起始位置添加“%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”或者是“%JAVA_HOME%\bin;”,單擊“確定”按鈕,如圖3.2:

圖3.2 配置Path
(4)在“系統變量”選項區域中查看CLASSPATH 變量,如果不存在,則新建變量CLASSPATH,否則選中該變量,單擊“編輯”按鈕,在“變量值”文本框的起始位置添加“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”。如圖3.3:

圖3.3 配置CLASSPATH
3.3 關鍵技術
3.3.1 Java語言
Java是由Sun公司于1995年推出的一種程序設計語言,它和C++語言有著千絲萬縷的聯系,而C++語言又是從C語言派生而來的,因此Java語言具備這兩種程序設計語言的大部分特性。由于Java語言具有使用簡便、完全面向對象、跨平臺性、可移植性、健壯動態、安全可靠等特點,使得其在眾多高級語言中脫穎而出。自從Java語言推出之后,其獨樹一幟的非凡品質使其受到廣大程序員的歡迎。Java語言具有以下幾個的特點:
(1)簡單性
Java是一種簡單的程序設計語言,可以通過最基本的方法來完成指定的任務。Java取消了許多程序設計語言中十分煩瑣和難以理解的內容,并且具備垃圾自動回收的功能,大大簡化了程序員的內存管理工作。
(2)面向對象
Java是一種完全面向對象的程序設計語言[12]。它的程序設計集中于對象及其接口,可以實現模塊化和信息封裝。并且通過繼承機制,實現代碼的重用功能。
(3)跨平臺
Java的編譯器可以生成一種與計算機體系結構無關的字節指令(Byte Code),Java能夠在JVM(Java Virtual Machine)上執行[12]。
(4)健壯性
Java編寫的程序在編譯和運行時都要對可能出現的問題進行檢查,從而能夠在多種情況下穩定執行。同時,Java還能排除內存中的數據被覆蓋和毀損的可能行以及可以在編譯的時候提示可能出現卻未被處理的異常。
(5)安全性
Java是一種安全的編程語言,可以防止他人訪問對象的私有成員[12],也能夠避免在指針操作紅產生的錯誤。此外,其安全性也體現在編譯層、解釋層等多個層次上。
(6)可移植性
Java由于具有與平臺無關的特性,從而具有良好的移植性。同時,Java的編譯器主要由Java本身實現的,并且Java的解釋器由C語言實現,這使得Java系統都具有很好的移植性。
3.3.2 C/S結構
C/S(Client/Server)結構被稱為客戶/服務器結構。其服務器一般采用高性能的PC、工作站或小型機,并且采用大型的數據庫系統,比如Oracle、Sybase、或 SQL Server,客戶端則需要安裝專門的客戶端軟件。它是軟件系統體系結構,它能夠很好地利用兩端硬件環境的優勢,通過把任務合理地分配到服務器和客戶端來實現C/S結構,從而使得系統的通訊開銷得到降低。C/S結構具備能充分發揮客戶端PC機的處理能力的特性,許多工作能夠在客戶端處理后再傳交給服務器。
其對應的優點就是客戶端響應速度快,具體表現主要有以下兩點:
(1)應用服務器運行的數據負荷比較輕。
(2)對數據的儲存管理比較透明。
其缺點主要有以下幾點:
(1)高昂的投資且維護成本較大。
(2)只對局域網適用。
(3)客戶端要安裝專門的軟件。
3.3.3 MySQL Server 5.0
MySQL Server 5.0是一個關系型數據庫管理系統,開發者是瑞典MySQL AB公司,在2008年1月16日被SUN公司收購。MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,這樣就增加了速度并提高了靈活性,而不是將所有數據放在一個大倉庫內。MySQL的SQL語言是用于訪問數據庫的最常用標準化語言。MySQL軟件由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,很多中小型網站的開發都選擇MySQL作為網站數據庫庫。
3.4 數據庫設計
本系統使用的數據庫是MySQL Server 5.0建立的數據庫recite,根據實現智能背單詞自測系統所涉及的數據,該數據庫共建立了9張表,設計的表的結構如下(表的定義相同的用一個表顯示):
表3.1用戶、管理員登錄表

表3.2每日一句表

表3.3單詞、生詞表

表3.4試題表

表3.5四、六級詞匯表

3.5 功能模塊描述
3.5.1 需求功能描述 (1)用戶登錄:登錄成功后才能使用該系統,根據自己的需要進行各種操作。
(2)用戶注冊:新用戶在注冊后,在系統啟動界面輸入賬號和密碼登錄系統。
(3)“每日一句” 界面:用戶登錄成功后,彈出該界面,3秒后自動消失。
(4)用戶操作:用戶可以進行單詞查詢、單詞瀏覽(瀏覽四、六級詞匯)、背單詞(可選擇不同的題目類型)、查看生詞庫、修改密碼操作。
(5)管理員登錄: 登錄成功后才能使用該系統,根據自己的需要進行各種操作。
(6)管理員操作:可以進行題目管理(查看,添加,刪除,修改)和用戶管理(查看,刪除)操作。
3.5.2 總體框架本系統設計的目的就是方便使用者(用戶和管理員)的操作,從而對用戶的功能主要分為用戶登錄、單詞查詢、單詞瀏覽、背單詞、查看生詞庫、修改密碼等幾部分;對管理員的功能主要分為題目和用戶管理兩部分。
3.5.3 各模塊功能描述本系統共分為用戶模塊和管理員模塊(均含有主界面及各子界面),這兩個主模塊又分為若干個小模塊。用戶模塊包括用戶登錄模塊、用戶注冊模塊、每日一句模塊、單詞查詢模塊、單詞瀏覽模塊、背單詞模塊、查看生詞庫模塊、修改密碼模塊;管理員模塊包括題目管理、用戶管理。接下來就詳細地介紹各個小模塊的具體功能。
1.用戶模塊
(1)用戶登錄模塊
該模塊的功能是對用戶的賬號、密碼進行驗證。驗證方法是將輸入的賬號、密碼和數據庫中的login2表的數據進行比較,驗證正確后,就會彈出“每日一句”界面。同時,賬號會被寫進新建的一個文本文檔中(文件名為“save.txt”),在背單詞界面調用將其顯示在JTable上。
(2)用戶注冊模塊
該模塊的功能是實現新用戶注冊。輸入用戶名和密碼后,驗證該用戶名是否存在后,如果不存在,則注冊成功。
(3)每日一句模塊
該模塊的功能是在一個對話框顯示一句英文及其含義。用戶登錄成功后,從數據庫中的每日一句表隨機選擇一個數據,顯示在對話框中,持續3秒后自動消失。
(4)單詞查詢模塊
該模塊的功能是實現單詞的查詢。輸入要查找的單詞,將所輸入的單詞與數據庫中words表的單詞比較。如果words表存在該單詞,則將表中該單詞的含義、例句及例句含義顯示出來。
(5)單詞瀏覽模塊
該模塊的功能是實現瀏覽四、六級詞匯。用戶主可以選擇瀏覽四級或六級詞匯。彈出的對話框顯示相應的詞匯表的第一個單詞,及其含義、例句、例句含義。對話框有四個按鈕:“上一個”、“下一個”、“加入生詞庫”、“退出”,它們分別實現以下功能:瀏覽當前單詞的上一個單詞,下一個單詞,將其加入到生詞庫中(包括含義、例句、例句含義),關閉對話框返回用戶主界面。
(6)背單詞模塊
該模塊的功能是實現背單詞,也是本系統最重要的功能。用戶可以選擇試題1或試題2兩種題目類型。彈出對話框,顯示的是相應的題目表的第一道題目,用JLabel顯示登錄該系統的用戶的用戶名(通過讀取在用戶登錄模塊時新建的“save.txt”文件實現)。用textarea顯示題目的內容(設置為只讀),用四個JRadioButton分別顯示四個選項(其中有一個是正確答案)。對話框有三個按鈕:“上一題”、“下一題”、“結束”。它們的功能是:做上一題、做下一題、統計信息。系統在每次用戶做上一題或下一題時,都會將用戶所選的選項的內容記下,并與數據庫的題目表中的答案比較。如果相同,則將數組a(i為題號)賦值為1;如果不同,則賦值為0。結束時,系統會統計a中為1的個數(賦值給rights)和0的個數(賦值給wrongs),且在一個消息對話框中顯示用戶使用情況:“總詞數”(值為i),“正確數”(值為rights),“錯誤數”(值為wrongs)。同時,系統會將當前用戶此次背單詞的情況記錄下來,將其寫入數據庫的用戶表中,以便在管理員模塊顯示。
(7)查看生詞庫模塊
該模塊的功能是實現查看生詞庫。將數據庫中的生詞表顯示在“查看生詞庫”對話框的表格中,表格包含兩列:生詞、含義。對話框有四個按鈕:“添加”、“刪除”、“查找”、“查看例句”。
A)添加生詞:輸入生詞后,可以點擊“搜索”按鈕將其含義、例句顯示出來(查詢數據庫的單詞表),再點擊 “保存”按鈕就能加入到生詞庫中。
B)刪除生詞:首先要選中要刪除的生詞所在的那一行,再點擊“刪除”按鈕就可以刪除選中的生詞,之后系統會重新顯示所有的生詞庫中的生詞。
C)查找生詞:輸入生詞后就可以查找生詞庫中的生詞,用戶可以點擊“刪除”按鈕來刪除該生詞。
D)查看例句:首先要選中要查看例句的生詞所在的那一行,點擊“查看例句”按鈕后,系統會顯示選中生詞的例句及例句含義。
(8)修改密碼模塊
該模塊的功能是實現修改用戶密碼。輸入用戶名、原始密碼和新密碼,驗證正確后,密碼修改成功。
2. 管理員模塊
(1)題目管理
該模塊的功能是實現題目的管理。管理員可以查看、刪除和修改所有的題目,并添加新題目,及以退出該模塊。
(2)用戶管理
該模塊的功能是實現用戶的管理。管理員可以查看每個用戶每次背單詞的情況(包括題目類型、總詞數、正確數、錯誤數),點擊“刪除”按鈕可以刪除選中的用戶。