毕业设计报告(论文)
基于JavaWeb的背单词系统的设计与实现
所属学院 电子与计算机工程学院
专 业 软件工程
学 号
姓 名
指导教师
起讫日期 2021.1 – 2021.5
设计地点
东南大学成贤学院毕业设计报告(论文)
诚 信 承 诺
本人承诺所呈交的毕业设计报告(论文)及取得的成果是在导师指导下完成,引用他人成果的部分均已列出参考文献。如论文涉及任何知识产权纠纷,本人将承担一切责任。
学生签名:
日 期:
基于安卓端的背单词系统的设计与实现
摘 要
今天电子词典已经具有可以和PDA相媲美的功能,比如触屏显示、MP3播放、短片播放以及玩游戏等等。但是现在电子词典繁多的娱乐功能会影响我们的学习,所以为了提高同学们学习单词,查找单词的效率,使同学们提高在学习单词时的注意力,同学们就迫于需要能解决这个问题的电子词典。
本背单词系统开发可以很好的完成学习流程的电子化,提高了单词学习效率。本文采用了标准的Android框架,其设计划分为三层结构,即逻辑处理层、前端和后台层,具体实现单词管理功能、学习功能管理。本系统采用面向对象设计的方法和Java语言等技术,分析、设计并实现了背单词系统。该背单词系统具有单词管理、保存管理、学习等功能,测试表明该系统达到了预期的要求。
本文的实现可以方便用户对单词的查询和联系,可以不断的通过单词学习发现生词,然后记录这些生词,并重复学习。该可以提高同学们学习单词,查找单词的效率,使同学们提高在学习单词时的注意力,同学们就迫于需要能解决这个问题的电子词典。
关键词:单词学习;Java;Android框架
Design and implementation of word reciting system based on Andrews
Abstract
Today, electronic dictionaries have functions comparable to PDA, such as touch screen display, MP3 player, video player, game playing and so on. But now the various entertainment functions of the electronic dictionary will affect our learning, so in order to improve the efficiency of students learning words, find words, so that students improve their attention in learning words, students are forced to need the electronic dictionary to solve this problem.
The development of English word assistant memory software can complete the electronic learning process and improve the efficiency of word learning. This paper adopts the standard. Net framework, which is divided into three layers: logic processing layer, front-end layer and back-end layer, to realize the word management function and learning function management. This system uses object-oriented design method and C # language technology to analyze, design and implement the English word auxiliary memory software. The English word assistant memory software has the functions of word management, storage management, learning and so on. The test shows that the system achieves the expected requirements.
The implementation of this paper can facilitate the user to query and contact words, can continue to find new words through word learning, and then record these new words, and repeat learning. It can improve the efficiency of learning words and finding words, so that students can improve their attention when learning words. Students are forced to need an electronic dictionary to solve this problem.
Key Words: Word learning; C #; Android framework
目 录
第一章 绪论 1
1.1 研究与意义 1
1.2 国内外研究现状 1
1.3 研究内容 2
1.4 章节安排 2
第二章 相关理论和技术 3
2.1 Android平台 3
2.2 Java语言的特点 4
2.3 MVC设计模式 5
2.4 本章小结 6
第三章 系统需求分析 7
3.1 系统功能需求 7
3.1.1 单词管理功能 7
3.1.2 保存管理功能 7
3.1.4 学习管理功能 8
3.2 系统非功能性需求 8
3.3 可行性分析 8
3.4 本章小结 8
第四章 系统设计 10
4.1 系统架构设计 10
4.2 系统功能设计 11
4.3 系统设计 12
4.3.1 数据库概念结构设计 12
4.3.2 数据库表的设计 12
4.4 本章小结 14
第五章 系统实现 15
5.1 开发环境 15
5.2 功能实现 17
5.2.1 系统设置 17
5.2.2 单词管理实现 18
5.2.3 单词保存管理实现 18
5.2.4 单词学习管理实现 20
5.3 本章小结 26
第六章 系统测试 27
6.1 测试环境 27
6.2 系统测试的目的 27
6.3 系统功能测试 28
6.3.1 保存管理模块测试用例表 28
6.3.2 单词管理模块测试用例表 28
6.3.3 学习模块测试用例表 28
6.4 本章小结 28
第七章 总结与展望 30
7.1 总结 30
7.2 展望 30
致 谢 31
参考文献 32
第一章 绪论
1.1 研究与意义
随着信息技术的发展,不断更新换代的电子词典客户端,已经逐渐改变了当代大学生学习英语查询单词的方式。电子词典的出现改善了同学们查单词繁琐、低效率的问题,通过查阅资料可以知道最早的电子词典出现在1980年代末到1990年代初[1]。那时候的电子词典只能进行简单的单词查询和计算器的功能,而发展到今天,电子词典已经具有可以和PDA相媲美的功能,比如触屏显示、MP3播放、短片播放以及玩游戏等等。但是现在电子词典繁多的娱乐功能会影响我们的学习,所以为了提高同学们学习单词,查找单词的效率,使同学们提高在学习单词时的注意力,同学们就迫于需要能解决这个问题的电子词典。
1.2 国内外研究现状
1.电子词典的可行性
根据王正和孙东云的一项调查结果表明,在被调查的大学生中,有95%的大学生都使用电子词典而在这中间使用便携式电子词典的占了35%,仅仅只有不到5%的大学生选择使用纸质的词典,文献[3]也进一步论证了这个数据,由此不难看出现在电子词典在大学生中是非常普遍的。
而且我们都知道,在大学的学习生活中,英语四级是一个重要的考试,想要通过考试虽然不是非常困难,但对于英语薄弱一些的同学还是有一定挑战的,单词的学习是一个积累的过程,但是如果使用纸质字典就非常耗时耗力,这一点在英语词汇学习的时候相信大家都能清晰的感觉到,所以在移动设备上学习英语词汇是非常重要以及高效的[4]。这样也进一步论证了电子词典的可行性。
2.电子词典的功能性
电子词典包括用户登录模块,用户注册模块,单词管理模块以及数据库设计模块,将每个模块划分到各个模块接口从而实现电子词典模块的连接[5]。通过这些模块用户可以进行基本的账户ID密码设置,以及学习单词、生词记录、单词测试用来巩固学习,还可以进行在线翻译,通常情况下会采用云计算的方法来实现在线查找的单词与数据的连接[6]。
3.电子词典的开发与维护
有关电子词典的开发部分,Android系统下的电子词典的开发使用基于ODBC的数据库访问技术以及Java编程语言来进行开发与设计,Java 语言以其特有的安全性、跨平台性、一次编写到处执行、开源框架等特性而流行其中,是电子词典选择的首要编程语言[7]。
至于数据库部分Android提供了一个最经典的odbc实现方法,它是odbc core包中的一个重点类,电子词典就使用它来处理资源的创建和释放,可以避免常见问题,也就是我们所熟知的odbc类的使用[8]。于此同时电子词典为了减少软件对于手机内存以及后台缓存的占用率,需要使用更简介的代码语句,需要注重后台的管理,要解决这些问题可以从软件的压力测试、软件系统的维护以及软件在各种类型手机上的使用情况来进行修复升级[9]。
而在解决了软件性能与内存管理问题之后有关于软件的日常维护方面就可以采用实时对软件进行监测,这样就能够随时掌握软件的运行情况,以此来确保对软件状态的把控[10]。
1.3 研究内容
在Android系统下采用面向对象的Java编程语言,进行背单词系统的设计与实现。
(1)通过软件工程的相关方法对电子词典进行了详细的用户分析、功能分析以及性能需求分析,从而得到系统的详细功能需求。本文实现的主要功能包括系统管理、单词管理、保存管理以及学习管理等功能。
(2)通过Java语言以及Android框架对系统进行了框架设计、数据库设计以及代码设计。最后通过软件编码实现了系统的功能,并完成了系统的测试。通过测试发现系统符合用户设计要求。
1.4 章节安排
第一章:绪论,介绍了系统的研究背景和意义,并说明相关研究的国内外现状。
第二章:相关理论和技术,介绍了本系统开发使用到的Android框架,系统开发过程中使用的数据库,以及开发过程中使用的语言。
第三章:系统需求分析,介绍了本系统的相关功能需求以及性能需求。
第四章:系统设计,对系统软件框架进行了设计,对系统的功能进行设计。
第五章:系统实现,对系统的主要功能模块,如单词管理功能、学习管理功能进行了代码实现。
第六章:系统测试,对系统的功能进行测试,对系统的各个主要功能进行测试。
第七章:总结与展望,完成对系统的总结并对未来的研究进行了展望。
第二章 相关理论和技术
2.2 Java语言的特点
Java语言拥有很多特点,它的系统极小,所以Java的应用软件能够在相当小的系统上独立使用和工作。这种省略了复杂特性并增加了实用性功能的开发,让Java语言拥有了简单性。面对对象的技术是近些年来软件开发中使用最为普遍的程序设计方法,也是最重要的一个特性。在一个面向对象的系统中,类是数据和操作数据的方法的集合,在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。Java在保留继承性、封装性等优点的基础上,又支持静态和动态风格代码的使用,发挥出了优势。Java具有以下突出的特点:
(1)语法简单,不允许直接操作内容,去掉了指针操作。
(2)C#完全面向对象,具有面向对象语言的所有功能:封装,继承和多态。
(3)与Web紧密结合,Java支持绝大多数的Web标准,例如HTML、XML、SOAP等。
(4)强大的安全机制,消除软件开发中的常见错误(如语法错误)Android提供垃圾收集器,帮助开发人员有效管理内存资源。
(5)兼容性,因为Java遵循Android公共语言规范(CLS),从而保证能够与其他语言开发的组件兼容。
(6)灵活的版本处理技术,因为Java预言本身内置了版本控制功能,使开发人员能够更加容易挤开发和维护。
(7)完善的错误,异常处理机制,Java提供了完善的错误和异常处理机制,使程序在交付应用时能够更加健壮。
2.4 本章小结
本章完成了系统采用的开发平台、开发语言的概述,并介绍了系统的设计模式。
第三章 系统需求分析
3.1 系统功能需求
3.1.1 单词管理功能
此模块所完成的功能是对系统中的单词信息管理。单词管理模块的主要功能是对单词信息的维护。单词信息的维护包括对单词的添加、修改、删除。每个单词都有唯一的标识。单词管理的用例图如图3-1所示。
图3-1 单词管理用例图
3.1.2 保存管理功能
此模块所完成的功能是用户在学习的过程中对不熟悉的生词进行保存。用户可以对保存进行添加、删除。每个生词都有唯一的标识。保存管理的用例图如图3-2所示。
图3-2 保存管理用例图
3.1.4 学习管理功能
学习管理功能实现了用户对单词的学习,可以查询单词信息,可以控制背诵的数量。学习管理的用例图如图3-3所示。
图3-3 学习管理用例图
3.2 系统非功能性需求
1.系统性能需求
本系统要求所有的客户端都可以7*24小时都可以正常的工作,并可以同时支持大约500人在线,并可以实现系统响应时间小于5秒。
2.系统界面需求
在设计操作页面时颜色搭配符合大众审美,且不会干扰用户,让用户注意力保持集中状态,便于后期维护与更新系统,用户在操作系统时还会出现各种无法预知的问题。因而要全面调研用户需求,获取不同用户角色基本需求与需要解决的问题。
3.3 可行性分析
1.经济可行性
本研究使用成熟的技术来设计,所花的成本来的低。根据电子词典需求设计网站,若可以增加现有用户对英文单词的了解,让网站具经济效益,所以经济可行性是可以成立的。
2.技术可行性
在软件使用上,都是使用的成熟技术,在制作技术上并无太大的问题,所以技术可行性是可以成立的。
3.操作可行性
信息化的发展快速和网络化的普及,浏览者是可以通过本系统获取到单词的详细信息。本研究都使用简单明了的操作,使浏览者能轻易上手,所以操作可行性是可以成立的。
3.4 本章小结
本章完成了系统的需求分析以及可行性分析。从功能需求和性能需求对背单词系统进行了需求分析,通过社会、经济和技术等方面进行了可行性分析。
第四章 系统设计
通常情况下,在对系统进行了需求分析之后,要对系统进行系统设计,系统设计阶段也是开发系统的一个重要阶段,系统的设计阶段同样对系统开发成功与否起到了重要的作用。
4.1 系统架构设计
Android之所以创造了消息机制是为了实现其Frame/View/Model三位一体的架构。Frame/View/Model架构的意义在于将处理消息的职责分配到合理的类中去处理,例如在菜单上点击一个"保存"选项,处理这个消息就应该交给Model类来实现,而如果点击"更新"选项,则将这个消息交给View类来处理更方便一些。Android的消息机制就负责将消息交给合适的类去处理。使用Android的优点:
1.降低程序模块之间的耦合性
因为视图层和业务数据层分离,使UI和逻辑代码分开编写,不仅仅是对于个人,而对于一个团体开发来讲,个人负责个人的模块,互不干扰。在后期进行维护或者二次开发的时候,如果只是更改了数据逻辑,则无需更改UI即可实现逻辑修改。如果换了设计团队,则只需要修改View层代码即可完美嵌套原有逻辑。Android开发模式实现了前后端分离和降低了模块间的耦合性。
2.提高代码可复用性
Android多层分离开发模式可以让多个不同的View页面使用同一个数据模型,不仅仅是客户端的视图,还包括HTML,移动端H5或者app等,当多个端显示同样的数据时,则不需要重新构建数据模型,只需要复用同一个即可,大大提高了代码重用性。
3.软件部署快,开发周期和成本低
Android开发模式只需要改变UI的基础上,不用多次开发数据模型,在开发和维护各层间接口的技术难度降低。使用Android开发模式可以使后端逻辑代码开发和前端页面UI同时进行,大大减少开发时间,节约人力成本,并且它使后端开发人员将集中精力集中于于业务逻辑层代码编写上,而前端开发程序员(HTML或APP开发人员)则可以集中精力于页面UI和用户交互上。
4.后期维护简单或二次开发易用性高
Android中的视图层可以单独拿出供前端开发人员进行修改维护,业务逻辑层则由后端开发人员进行开发维护,术业有专攻,低耦合的开发方式使得WEB应用在使用或二次开发中更易于维护和修改。
背单词系统采用Java语言开发,用Android框架,具体如图4.1可知,该系统的主要是以Android框架架构进行架构的,主要是为了便于实现该系统与其他系统之间的兼容性,Android框架被看做是Java语言编写的比较流行的设计框架之一,因此在系统的维护性和可扩展方面具有一定的优势;该架构之上便是系统的逻辑业务模块,也是本系统的核心内容是整个系统的心脏,不仅与前端进行交互处理复杂的业务逻辑。
图4.1 系统框架图
4.2 系统功能设计
背单词系统基于Android框架构建,涉及到Java,HTML等相关技术。背单词系统实现的功能模块如下:
(1)学习管理:此模块所完成的功能是对系统中的单词进行查看,并决定下一步动作,是继续学习单词,还是保存。
(2)单词管理:此模块所完成的功能是对系统中的单词信息管理。单词管理模块的主要功能是对所有的单词信息进行维护。单词信息的维护包括对单词的添加、修改以及删除等。
(3)保存管理:此模块所完成的功能是对系统中的生词信息管理。保存管理模块的主要功能是对所有的生词信息进行维护。保存信息的维护包括对单词的添加以及删除等。
(4)系统管理模块是针对于系统的一个主要核心模块,该模块实现了系统的基本设置。
图4-2 系统模块结构图
4.3 系统设计
4.3.1 数据库概念结构设计
本系统的设计的E-R图如下图4-3所示。
图4-3 系统E-R图
4.3.2 数据库表的设计
(1)用户基本信息表
用户基本信息表存储了用户的基本信息,包括用户编号,用户姓名,用户年龄,用户性别,用户邮箱,用户手机。其表结构如表4-1 表。
表4-1 用户表
Name Type Key 说明
user_id Int 是 用户编号
user_name VARCHAR(50) 否 用户姓名
user_age Int 否 用户年龄
user_sex VARCHAR(10) 否 用户性别
user_email NUMBER(20) 否 用户邮箱
user_phone NUMBER(20) 否 用户手机
user_storageid Int 否 用户所在单位编号
(2)角色表。角色表主要存储系统中的角色信息,具体信息如表4-2所示。
表4-2 角色信息表
Name Type Key 说明
id Int 是 编号
name double 否 角色名称
Remark VARCHAR(40) 否 备注
time datetime 否 创建时间
(3)用户角色表,描述了系统中的各个用户具有的角色信息。具体内容如表4-3所示:
表4-3 用户角色表
Name Type Key 说明
id Int 是 编号
User_id double 否 用户ID
Role_id VARCHAR(40) 否 角色ID
(4)单词信息表,单词信息表存储了各个单词的基础数据信息。包括单词编号、英文名称、中文解释、详细描述。表结构详见表4-4单词表。
表4-4 单词表
Name Type Key 说明
id Int 是 编号
name VARCHAR(50) 否 英文名称
explain VARCHAR(50) 否 中文解释
desc int 否 详细描述
(5)生词信息表,生词信息表存储了各个生词的基础数据信息。包括生词编号、相关单词、添加人、添加时间信息。表结构详见表4-5生词表。
表4-5 生词表
Name Type Key 说明
id Int 是 编号
Word Int 否 相关单词(外键)
user Int 否 添加人(外键)
time VARCHAR(20) 否 添加时间
(6)复习表,复习表存储了各个单词的复习信息。包括复习编号、复习单词、复习人、复习时间信息。表结构详见表4-6复习表。
表4-6 复习表
Name Type Key 说明
id Int 是 编号
Word Int 否 相关单词(外键)
user Int 否 复习人(外键)
time VARCHAR(20) 否 复习时间
score Int 是 复习成绩
(7)测试表,测试表存储了各个单词的测试信息。包括测试编号、测试单词、测试人、测试时间信息。表结构详见表4-7测试表。
表4-7 测试表
Name Type Key 说明
id Int 是 编号
Word Int 否 相关单词(外键)
user Int 否 测试人(外键)
time VARCHAR(20) 否 测试时间
score Int 是 测试成绩
4.4 本章小结
本章完成了系统的概要分析,对系统的架构进行了设计,对系统的功能进行了设计。
第五章 系统实现
5.2 功能实现
5.2.1 系统设置
图5-2 系统提醒界面
如图5.2所示,系统可以设置提醒时间,然后在系统根据该设置的时间来报警。系统通过timePicker控件让用户进行选择时间,具体如下:
@Override
protected void onPrepareDialogBuilder(Builder builder) {
// TODO Auto-generated method stub
super.onPrepareDialogBuilder(builder);
ll = new LinearLayout(context);
ll.setLayoutParams(new
LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT));
ll.setGravity(Gravity.CENTER);
timePicker = new TimePicker(context);
timePicker.setIs24HourView(true);
ll.addView(timePicker);
builder.setView(ll);
}
5.2.2 单词管理实现
管理员可以对单词信息进行管理。管理员还可以通过点击添加单词库,从而实现单词信息的添加。管理员还可以对单词进行修改和删除,而其他用户只能对这些单词进行查看。
图5-3 单词管理界面
如图5.3所示,管理员输入的前台由GREWordActivity实现,管理员点击添加选项,然后系统调用GREWord类,GREWord类执行save方法,save方法中输入的单词英文、单词中文等,然后该方法实现通过DBHelper.java完成数据库中保存单词信息,最后通过Table控件一列列的展示这些单词信息。
5.2.3 单词保存管理实现
用户以对学习中的生词进行保存管理。用户可以对生词本进行浏览学习,可以对某个生词进行移除,可以对某个生词进行重复学习。单词保存管理有利于用户的反复学习,有利于加强对单词的理解。
图5-4 保存单词界面
如图5-4所示,用户可以对生词进行保存,可以对某个生词进行移除,可以对某个单词加入复习,完成重复学习。具体的的代码如下:
public void savebook()
{
book.wordList.Sort((x, y) =>
(x.falseTime==y.falseTime) ? (x.viewTime.CompareTo(y.viewTime))-x.falseTime.CompareTo(y.falseTime)));
//book.wordList.Sort((x, y) =>
//(y.falseTime == x.falseTime) ? (y.getWord(0).CompareTo(y.getWord(0))) : (y.falseTime.CompareTo(x.falseTime)));
//在Debug目录下新建一个txt文本,将新排序好的单词列表写入到txt文本中
string tmp = “”;
for (int i = 0; i < book.wordList.Count; i++)
{ tmp = tmp + book.wordList[i].getWord(0)+" “+
book.wordList[i].chMeaning+ " " +
book.wordList[i].falseTime + " " +
book.wordList[i].viewTime + " " +
book.wordList[i].perFalseTime+
“\r\n”;
}
lion.WriteFile(tmp, “lastStudy”+DateTime.Now.ToString(“yyyyMMddHHmmss”)+”.txt");
}
图5-5 生词查询界面
如图5-5所示,用户可以对生词进行查询,生词按照字母进行升序排列,并详细介绍每个次的词性以及对应的中文解释。
5.2.4 单词学习管理实现
单词学习管理可以实现的功能包括:
(1)查看单词:开始学习时,先背诵每个单词。
(2)设置背诵数:用户输入背诵单词个数,点击“开始学习”按钮,即可开始背诵单词,用户可以通过点击上一个和下一个按钮完成学习记录的查询.
(3)修改单词:每个单词背诵完后,开始听写部分,听写部分会给出中文含义,要求输入正确的英文单词;答错,会将该单词记录,在单词听写完后针对答错的单词进行再一次听写,直到答对为止。
(4)复习单词:如果背诵的单词没有听写正确,则重新复习,直到听写正确为止。一组内的所有单词都听写正确后,开始下一组单词的学习。
图5-6 开始学习界面
如图5-6所示,根据学习过程中单词错误数(从多到少)和单词学习数(从少到多)对单词本进行排序;提供单词列表供用户学习,单词排序方法(优先按错误数排序(按错误数从大到小),再按浏览数(从小到大)),对单词列表进行排序如果错误数不一样,优先按错误数降序排序(从大到小);如果错误数一样,再按浏览数升序排序(从小到大))。具体的代码如下:
private void showStudy()
{ if (currPos >= book.falseWordList.Count)//如果当前学习位置>=错误单词列表的总个数
{ if (this.ShowAskDialog(“是否开始背诵”) == true)//弹出来的对话框如果选择了"是"
{ isBS = 1;//背诵模式
currPos = 0;//当前学习位置归零
TextBoxEnglishWord.Text = “”;//单词框清空,供用户默写
TextBoxChinese.Text = book.falseWordList[currPos].chMeaning;//中文框里显示错误的单词的中文
return;
}
}
if (isBS == 0)//如果不是背诵模式
{ TextBoxEnglishWord.Text = book.falseWordList[currPos].getWord();//英文框显示错误单词列表的单词英文
syncStudy();//调用syncStudy()方法
TextBoxChinese.Text = book.falseWordList[currPos].chMeaning;//中文框显示错误单词列表的单词中文
book.wordList[currPos + studyPos].viewTime++;
}
else//如果是背诵模式
{ TextBoxEnglishWord.Text = “”; //单词框清空
TextBoxChinese.Text = book.falseWordList[currPos].chMeaning;//中文框显示错误单词列表的单词中文
}
ShowInfoTip(currPos.ToString());
}
}
图5-7 朗读界面
如图5-7所示,用户可以通过点击声音按钮实现朗读,然后系统通过TTS实现文本转换为声音,具体如下:
private TextToSpeech.OnInitListener ttsInitListener = new TextToSpeech.OnInitListener() {
public void onInit(int status) {
// TODO Auto-generated method stub
/* 使用美国时区目前不支持中文 */
Locale loc = new Locale("us", "", "");
/* 检查是否支持输入的时区 */
if (tts.isLanguageAvailable(loc) == TextToSpeech.LANG_AVAILABLE) {
/* 设定语言 */
tts.setLanguage(loc);
}
tts.setOnUtteranceCompletedListener(ttsUtteranceCompletedListener);
}
};
public void speak(Context context, String toSay) {
tts = new TextToSpeech(context, ttsInitListener);
tts.speak(toSay, TextToSpeech.QUEUE_FLUSH,
null);
Log.i("speak", toSay);
}
图5-8 复习计划界面
如图5-8所示,用户可以构建自己的复习计划,从而可以根据复习计划来进行学习,具体的复习内容包括各个单词,并要求学习进行回答
图5-9 测试界面
如图5-9所示,用户可以对各个生词进行测试,从而可以不断的反复的学习,系统回自动产生各种选项,用户点击这些选项进行回答。
图5-10 测试结果界面
如图5-10所示,系统可以自动产生各种测试的结果分析,从而知道用户的真实水平,对用户也是一个提醒过程,知道自己的进步情况。
5.3 本章小结
本章完成了系统的实现,对系统的主要功能进行了展示,并说明系统功能的操作和使用过程。
第六章 系统测试
测试系统时要按照顺序对运行页面跟踪,分析数据库与参数是否准确。运行单元测试用例测试某个代码模块或者单独类,然后在对整体系统进行完整测试,测试系统所有功能模块。本系统的主要性能问题在于响应请求速度、存取数据信息方面,特别是查询数据库功能。系统要逐个查询数据库上的所有数据表,提取每个数据表上的视图信息性能、数据表结构,依据取得的测试数据将索引加入数据表,然后采取性能测试。在此通过可靠性测试,系统失效的主要因素为设计系统不完整,存在各种缺陷,需要对输入系统页面的信息验证,判断是否会造成系统运行不正常,将相同输入数据多次运行后对页面功能测试。对于系统测试要进行规范化的测试。为了系统能够在实际应用以后,可以高校、稳定、可靠的进行运行,要对系统进行有目的性的逐一测试,对系统的参数设置、功能模块等进行测试分析,并且要具有针对性。为了对比突出本文设计系统的特点,对背单词系统的功能状态、软件特性以及参数进行同样的测试,通过对模块不断的进行测试,对系统性能进行优化提升,同时对系统的稳定性、准确性进行测试。
6.1 测试环境
1.人员配置:测试组员
2.硬件资源配置,如下表6-1所示:
表6-1 硬件资源配置表
项目 内容
系统模式 浏览器/服务器模式(B/S结构)
客户端系统 Android6.0以上
3.软件资源配置,如下表6-2所示:
表6-2 软件资源配置表
资源 描述 备注
应用服务器 B/S架构、采用测试环境模拟 登录环境
缺陷管理工具 Mantis
数据库服务器 SQL Server
6.3 系统功能测试
6.3.1 保存管理模块测试用例表
保存管理功能将生词信息统一管理,具体的测试用例如表6-3所示。
表6-3 保存管理模块测试用例表
测试用例 前置条件 测试过程 期望效果 实际结果
测试系统的保存管理功能 系统正常的启动 登记单词英文、单词中文 系统提示“添加成功” 系统提示“添加成功”
选择单词信息列表中的一项,点击修内容 系统提示“修改成功” 系统提示“修改成功”
选择单词词信息列表中的一项,点击删除 系统提示“请确认是否删除” 系统提示“请确认是否删除”
6.3.2 单词管理模块测试用例表
单词管理功能将单词信息统一管理,包括各种单词信息的录入、查询、修改和删除,具体的测试用例如表6-4所示。
表6-4 单词管理模块测试用例表
测试用例 前置条件 测试过程 期望效果 实际结果
测试系统的单词管理功能 系统正常的启动 登记单词编号、单词描述、单词解释、单词 系统提示“添加成功” 系统提示“添加成功”
登记单词描述、单词英文 系统提示“请输入单词图片” 系统提示“请输入单词图片”
选择单词信息列表中的一项,点击删除 系统提示“请确认是否删除” 系统提示“请确认是否删除”
6.3.3 学习模块测试用例表
学习模块实现各种单词的不断循环背诵,具体的测试用例如表6-5所示。
表6-5 学习模块测试用例表
测试用例 前置条件 测试过程 期望效果 实际结果
测试系统的学习功能 系统正常的启动 启动系统,点击翻译上一页、下一页 系统正常的展示相关单词 系统正常的展示相关单词
6.4 本章小结
本章完成了系统的测试,对系统的主要功能进行了功能测试,说明系统的功能符合设计要求。
第七章 总结与展望
7.1 总结
本文在深入研究了软件工程中的相关方法以后,首先结合背单词实际的经验,对背单词进行了详细分析。最后,结合背单词的实际场景,利用Java语言对整个背单词进行业务分析及需求进行全面分析,通过利用Java语言以及Android框架完成了不同角色平台的功能实现,较为真实还原了背单词场景。本文完成对背单词系统的前台设计和后台设计,完成了背单词的技术开发,实现了用户需求的各个功能点,完成了对系统的功能需求和性能需求。本文的研究内容主要包括以下几个方面:
1.对于背单词系统业务流程与功能需求详细说明,采用UML建模技术实现了系统功能模块的建模、业务流程时序图,对其中系统开发的主要业务流程说明。
2.简单阐述设计背单词系统过程,主要有:1)设计系统总体架构,并列出主要功能模块部分代码;2)针对系统总体设计方案以及具体实现过程进行详细介绍;3)对于系统中的数据库系统进行重点介绍,结合设计以及视图的方式进行了数据库表的设计,这部分是本文的核心内容。
3.完成了系统的具体实现以及系统测试,对系统中的界面进行展示,根据系统需求,设计了系统测试目标、过程以及用例表等,对测试结果进行分析,系统的开发设计满足了设计需求,达到了预期目标。
7.2 展望
本文的实现还不够完美,具体可以在如下方面进行改进:
(1)系统的性能还需要进一步优化,从而支持更多的客户端进行连接,后续可以考虑部署到云端,从而提高系统的计算能力和负载能力
(2)系统考虑可以支持各种客户端,包括IOS移动端,从而提高用户的满意度和方便性。
致 谢
在本论文完成之际,由衷的、发自内心的感谢我的指导老师,感谢指导老师的帮助。指导老师一直以来的支持和鼓励,使我的论文能够顺利按时完成,也感谢老师在技术上指导与帮助。光阴荏苒,时光飞逝,这几年的大学青春也就是一瞬间。这里我要再次表达我内心的感激之情,感谢父母,也感谢指导老师对我的耐心指导。
这不是一个完美的时代,世上本无完美。但这是一个难忘的时代,这些年,我们遇见了很多,我们看得见互联网的红利,看得见科技与金融下的繁华,也看得见在困难面前举国上下那钢铁般的意志,但我们看不见基础科学领域前沿那些失败的摸索,看不见意志的背后多年潜移默化的历史沉淀,看不见红利背后无数的艰辛。因为世间万物本就不限于眼前。
本文呈现的系统也是不完美的,无法呈现出系统背后的各种设计理念与技术细节,但它已恰到好处地展现了本系统从研究背景到结合现实。从一个论题的设计,到最后开发与测试、上线等流程的完成,都离不开指导老师的细心教导,通过与同学们互相探讨,使得我解决了许多棘手的问题,这也让我意识到了团体的至关重要性,使我收益颇多,在此表示衷心的感谢。
在最后,感谢所有参与本次论文审阅的所有老师,感谢各位的意见与建议。
参考文献
[1]王俊.我国电子词典发展刍议[J].编辑之友,2017(06):23-27.
[2]王征.比较IOS探讨安卓系统的优势[J].才智,2013(20):243.
[3]黎荣华.英语电子词典和纸质词典对英语专业学生词汇学习的影响[J].科教文汇(上旬刊),2013(05):137-138.
[4]何丽艳,崔羽杭,林琳,信传华.基于移动学习模式的大学英语词汇学习策略研究[J].经济师,2018(12):206-208.
[5]江婷,谈国栋,赵呈领.基于语料库的动态语用电子词典中语境模块的实现[J].软件导刊,2011,10(02):77-79.
[6]方煦童.英语在线翻译平台的设计与实现[J].电子技术与软件工程,2019(16):47-48.
[7]宋永涛, 刘刚, 范李刚,等. Java编程特点和技术的应用分析[J]. 福建电脑, 2019,35(06):84-85.
[8]邓文艳.基于Spring的数据库访问技术研究[J].科技创新导报,2018,15(27):155-156.
[9]李云祥.软件设计中的性能优化与内存管理[J].硅谷,2011(06):72-81.
[10]吴咏涛.计算机软件的日常管理与维护研究[J].电脑知识与技术,2017,13(22):75-76.
[11]英京花.王华军.基于Android开发的数据存储[J].数字通信.2012(06)
[12]秦凯.Android开源社区应用项目开发的效率研究[D].华南理工大学2012
[13]祝忠方.基于Android的移动互联网终端的设计与实现[D].北方大学2014
[14]张嘉宾.Android应用的安全性研究[D].北京邮电大学
[15]杨文志. Google Android 程序设计指南[M]. 北京: 电子工业出版社, 2009.
[16]黄宇健, 刘宏韬. Android 项目开发范例大全[M]. 北京: 中国铁道出版社, 2012: 69-74.
[17]汪季, 熊辉, 虞飞扬, 叶苍竹等. 基于面向对象的安卓APP”2048”设计与实现[J]. 湖北理工学院学报, 2017(2): 24-27.
[18]陈咪, 刘光灿, 张竹娴. 基于安卓(Android)操作系统的手机小APP开发[J]. 信息通信, 2017(4): 112-113.
[19]胡劲松. 基于Android平台的智力猜牌APP设计与开发[D].南京: 东南大学, 2016.
[20]李燕. Java编程语言在计算机软件开发中的应用[J]. 计算机产品与流通, 2020,(06): 13-27.
[21]张舒, 刘道宇. 基于Android平台的移动办公软件的设计与实现[J]. 信息技术与信息化, 2020,(04): 55-57.
[22]帅东明,胡平平. 基于安卓系统的App开发技术研究[J]. 电脑知识与技术, 2020,16(09): 83-84.