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)用户管理
该模块的功能是实现用户的管理。管理员可以查看每个用户每次背单词的情况(包括题目类型、总词数、正确数、错误数),点击“删除”按钮可以删除选中的用户。