北京自考计算机及应用专业毕业论文真实实例.docx
《北京自考计算机及应用专业毕业论文真实实例.docx》由会员分享,可在线阅读,更多相关《北京自考计算机及应用专业毕业论文真实实例.docx(77页珍藏版)》请在冰点文库上搜索。
北京自考计算机及应用专业毕业论文真实实例
北京市高等教育自学考试毕业设计
Web单词记忆软件的开发
专业计算机及应用
学生
指导老师master
日期2013年4月
主考院校:
北大
成绩:
良
摘要
本文首先对现有的单词记忆软件进行了市场和技术上的分析;针对最新的Web技术现状、关键技术以及各种配套技术做了详细介绍;提出了基于最新Web技术构建单词记忆软件的需求分析和总体设计。
软件总体实现是围绕着属于Web技术的HTML5技术,适应未来软件开发技术的方向;数据库的设计来源于NoSQL技术,可以实现更高的性能和开发效率;服务器端采用Node.js构架,使得单词记忆软件的客户端和服务器端保持了语言的一致性,提高了软件的代码复用能力。
在完成了软件的各项设计后,最终实现了Web技术单词记忆软件,并对单词记忆软件与Web技术的未来进行了展望。
关键词:
单词记忆软件,HTML5,Node.js,NoSQL
第一章绪论
本章从单词记忆软件的现状,单词记忆软件与最新Web技术结合的必要性两个方面介绍了毕设所涉及到的课题背景和研究方向。
一.1单词记忆软件的现状与发展趋势
一.1.1单词记忆软件的现状
单词记忆软件在市场中已经趋近于成熟,但是其中很多软件有着单词记忆方法上的缺陷,还有基于传统应用程序开发手段的各种技术缺陷,所以已经无法在现有的新技术大潮下继续发展。
新的单词记忆方法和新的Web技术代替现有的传统方法和技术,是适应社会发展的必然趋势。
虽然市场上已经出现了部分基于Web技术的单词记忆软件,但是他们所使用的技术依然受传统Web技术能力的制约,不仅无法达到传统桌面开发技术软件的能力,甚至无法发挥Web本身的技术优势,同时在单词记忆方法上的优势也不明显。
近十年来,因为计算机技术的发展和中国英语学习人数的增加,再加之单词记忆对英语学习的重要意义,使得市场上各种单词书、单词记忆方法和互联网上的各种单词记忆软件有了空前的发展。
仅仅在软件下载网站之一的天空软件站中的统计信息来看,排在前几名的单词记忆软件下载次数都达到了数十万到数百万级别的下载量,除此之外的成千上万个软件下载网站的数据已经无法计算,但从这一点上就可以看出单词记忆软件拥有庞大的用户群体。
另外单词软件的商机也吸引了金山、新东方、、网易有道等传统英语教育企业和互联网企业。
现有的单词记忆软件的缺陷在单词记忆方法上,有方法陈旧、效率不高等问题;在技术上有平台兼容性差、上手困难、无法跨平台,数据不能随网络移动等等缺陷。
正是因为这些缺陷,在互联网极大发展的现在,我们可以针对单词记忆手段和编程技术手段上有所创新。
1.1.2桌面单词记忆软件的对比
在这一小节,我们首先先看表1.1的对比测试,分析此类软件当前的优缺点。
表1.1桌面单词记忆软件对比表
软件名称
版本
图片联想
界面定制
发音
特点
设置
备份
词汇之沙
4.2.8
有
无
有
不区分初记和复习
设置较少
在线备份
为爱背单词
2.11
有
有皮肤
有
设置较少
本地备份
疯狂单词
6.1.2
无
无
有
无忧模式,自动判
断用户词汇量
设置较少
本地备份
明朗单词通
4.11
无
无
无
无
本地备份
不得不背单词
4.7
无
无
无
弹出窗口,强制背
诵
无
本地备份
金山迷你背单词
2001
无
无
有
滚动记忆
无
本地备份
不知不觉背单词
2.0
无
自定义背景
有
滚动记忆
无
本地备份
单词风暴
7.3
有
自定义背景
有
有详细的统计功能
选项丰富
本地备份
可导出
此类单词记忆软件的主要优点:
(1)此类软件出现较早,整体功能和稳定性比较成熟、完善。
(2)此类软件因为是本地程序,大部分使用C/C++与本地库编写,速度流畅。
(3)部分软件拥有音频导出功能,方便录入到手持播放器。
此类单词记忆软件的主要缺点:
(1)因此类软件诞生时间很早,仍有部分软件为了保持软件的体积或者成本,并未选择更现代的合成语音库或者真人语音库,而是调用操作系统的合成语音库,甚至不使用语音库。
(2)此类软件大部分比较传统,无法使用在线备份功能,甚至不能导出备份。
(3)而且平台单一,即便有部分软件有手机或者其他平台版本,也无法做到在不同平台上的词库、功能和背诵进度一致性,阻碍了用户在多终端的情况下记忆单词。
正因为此类单词软件存在诸多缺点,课题软件采用了在线语音库系统,并配以语音库的本地缓存,使其适合绝大多数情况的单词学习。
而又增加了在线备份功能,实现单词记忆进度的备份和还原。
本软件可以在任意平台,任意浏览器上使用,使其支持最多的平台,方便用户在任何设备上记忆单词。
1.1.3在线式单词记忆软件对比
在这一小节,我们首先看表1.2中对本类软件的对比测试,然后分析它们当前的优缺点。
表1.2在线式单词记忆软件对比表
网站名称
初记
读音
ajax
快捷键
例句
复习
登陆
扇贝网
英汉选择
有
有
有
有
有
需要登陆
大耳朵背单词
拼写
有
无
有
有
多种方式随机
需要登陆
开心词场
选择
有
有
有
英汉选择
需要登陆
在线英语听力室
列表选择
不自动
无
无
无
无
需要登陆
海词
列表选择
拼写
听写
不自动
有
无
无
有
需要登陆
Wordmemo
拼写
有
有
有
有
有
需要登陆
可可地盘
拼写
有
无
有
有
有
不需要登陆
爱词霸生词本
拼写
列表
不自动
有
有
无
有
不需要登陆
金太阳在线
卡片式
不自动
有
有
无
多种方式随机
不需要登陆
此类单词记忆软件的主要优点:
(1)此类网站大多数依靠强大的企业实力,这些企业以前一般是制作词典类软件,拥有较强的技术实力和内容资源。
(2)在线网站拥有与在线广告,在线社区等传统在线应用的自然结合能力。
(3)数据在线保存,具有跨部分终端的能力。
此类单词记忆软件的主要缺点:
(1)此类网站多使用较老的网页技术,并未使用最新的网页技术,在响应速度,读取速度和发音速度上不能满足现在用户的需要。
(2)此类网站多数未采用ajax技术,即使采用也并未在所有页面采用,整体使用并不流畅。
(ajax技术即“AsynchronousJavaScriptandXML”技术,是使用异步双向传输能力,使得网页可以在不跳转的前提下,平滑下载与上传数据)
(3)此类网站使用的单词记忆方式往往因老旧的Web技术所限,并不能发挥真正力量,使得单词背诵效率下降。
(4)此类网站大部分不能集成单词游戏功能,在单词游戏中用户往往能通过轻松的方式,巩固学习的单词。
(5)此类网站虽然部分拥有键盘快捷键功能,但是受限于老旧的Web技术,此类功能会受到诸多限制且不流畅。
正因为这些缺点,本软件使用量新的HTML5技术改善这些缺点。
改进了执行速度,响应速度,提高了应用的用户体验,并且采用了多种学习方式,使Web应用更接近桌面应用的效果。
一.2单词记忆软件的发展趋势
一.2.1“早期合成语音-真人语音-新技术合成语音”的发展过程
合成语音最早因为操作系统绑定而发展,各种软件可以直接调用操作系统的合成语音库,编程简单。
早期的合成语音有其鲜明的特点,其主要缺点有:
(1)语音质量差。
早期的合成语音虽然可以勉强听懂,但是语调、语速、语境掌握的非常不好,听起来极其生硬,对英语学习是不理的。
(2)平台支持少。
操作系统中,只有Windows和Mac系统携带合成语音,而且在部分特殊的,精简的系统中可能并没有语音。
这就给软件使用合成语音造成了困难。
综上所述,在早期的单词记忆软件中,合成语音的使用还是非常多的。
即使现在,按照压缩过的,一个单词语音10KB~20KB的尺寸算,假设某单词库携带5万个单词的语音,也需要大约700MB的空间,在当前中国的互联网网络速度下,这样的大小也太过庞大,是影响用户体验的一个重要因素。
真人语音因为其自然的亲和力,在一段时期内也受到各种单词软件的广泛选择,其主要的优点有:
(1)发音自然,利于英语的学习。
(2)由软件直接控制,不经过系统,可以规避系统合成语音可能产生的各种问题。
而真人语音库的缺点也是十分显著的,主要有:
(1)真人语音数据库过于庞大。
(2)潜在的版权问题。
真人语音虽然在互联网上也能找到一些,不过一般都具有潜在的版权问题,这是一些大公司不能容忍的。
若为了规避版权问题而录音,投资太大。
(3)部分单词没有读音,不能朗读句子。
真人语音发音固定,不能随意连成句子,而部分冷门单词也可能失效。
正是因为真人语音库的这些问题,所以在电脑技术极大发展的现在,更多的软件,尤其是大公司,反而选择了新技术的合成语音,而不是真人语音去解决问题,例如中国的金山词霸等软件。
在现阶段,基于新技术的合成语音的主要优点有:
(1)发音接近自然语音。
合成语音已经不是早期的非自然声音,现在已经非常的流畅和自然,尤其在单个单词的情况,已经几乎可以和真人语音媲美了。
(2)合成语音的费用低廉。
相对比投资而录制真人语音,合成语音的总体费用更低廉。
(3)可扩展性大,合成语音更换方便,朗读句子和冷僻的单词也不在话下。
(4)减小软件体积和容量。
(5)没有潜在的版权问题。
真人语音库可能有复杂的不同版权的问题,而合成语音库一般版权简单。
1.2.2从传统本地应用程序到在线式应用的发展
传统的本地应用程序,尤其是桌面应用程序,一直是程序开发的主流。
而在多平台,尤其是移动平台逐渐占领消费者时间的今天,加之Web应用的发展,正逐步超过本地桌面应用的市场。
而厂商也纷纷针对网站发布各种相关在线应用,从谷歌的云计算GAE,到国内的XX框计算和新浪云计算,标识着越来越多的厂商正向互联网发展。
而我们从表1.2也可以看出,即使是或者是金山这样的公司,都在涉足于Web网络应用,开发在线单词记忆软件。
这正是因为Web应用有着本地应用无法比拟的优点,主要的优点归纳如下:
(1)Web应用有跨平台性。
无论是Windows、Mac、Linux这样的传统桌面系统,还是Android、IOS、WindowsPhone这样的移动系统,乃至更小众的系统,只要有网络浏览器,就能访问这些应用。
(2)无需安装,即开即用。
传统软件需要有软件下载、软件安装、软件升级等步骤,这些步骤也是降低用户体验,阻碍用户使用的一个问题,而本课题软件使用了Web技术就做到了随时打开、随时学习、随时体验,最大化的方便了用户。
(3)跨地域性。
传统的桌面应用几乎只能在一台设备上使用,而Web应用因为有在线功能,使得可以在多台电脑上使用,无论是家里,办公室,还是公交车上,只要有联网终端,就能使用。
(4)开发便捷性。
因为Web应用天然的跨平台能力,所以只要开发一次,不用修改,或者只需要进行极少量的修改,就能在其他平台上使用,在方便开发的同时,也降低了生产成本。
(5)实时的更新性。
因为应用是在线的,所以无论是更新版本还是数据库,都无需让用户有一般软件的繁琐的更新升级操作,只需要对服务器进行更新即可。
(6)与其他在线资源的互动性。
无论是在线社区、论坛还是微博,Web应用都可以与其简单的联系起来,而传统桌面应用要做到这一点,可能就需要额外的浏览器支持,或者再绑定另外开发的网络客户端模块,无形中增加了软件的体积和可维护性。
1.2.3从单一记忆形式发展到多维辅助记忆形式
早期单词记忆软件的发展是以单纯的文字表现为主,主要以单词的词性、词义、音标为主来进行记忆,而现在的单词记忆软件越发复杂与庞大,发展为以本地词库为主,以在线信息为辅的多方面辅助记忆形式。
主要的辅助记忆形式如下:
(1)音频。
在早期因为成本,合成语音等问题,部分软件甚至不支持单词语音。
现在大部分单词记忆软件已经支持了。
(2)例句。
早期因为资源,成本等问题,很多软件都不支持单词的例句显示功能。
但是现在互联网的资源已经极大的丰富了,例句资源无论从商业的,还是免费的都有了很多选择,故现在绝大部分的单词记忆软件都携带有例句显示功能。
(3)词根词缀。
一些单词记忆软件也同时使用了这些记忆方法来辅助记忆,在显示单词其他信息的同时,也显示词根词缀的信息,辅助单词的记忆,使单词的记忆达到更好的效果。
但是同时,词根词缀记忆方法实际上是受到一些教师的反对,在一些实验中也证明了其的效果并不理想[1]。
(4)联想图片。
联想图片可以是例图,也可以是漫画等诙谐图片,无论何种图片,目的都是为了用户能将图片和单词联想起来。
众所周知我们的大脑就是以联想方式存储信息的,故此种方法也能很大的程度上提高用户的词汇记忆水平。
(5)视频。
视频记忆方法是这几年单词记忆软件新出现的元素,因为视频往往较大,即便是Flash这样的矢量视频,占用的空间也很大,故在以前的单词记忆软件中很少携带。
而即使现在,视频记忆软件也都是以在线视频为主,而且并不是每个单词都有视频。
视频主要讲解单词的组成、发音、例句、词根词缀、联想图片等,可以说是前面几种辅助方式的一种综合。
而且因为视频辅助记忆比较冗长,往往记忆单词需要的是快速时间段内记忆大量单词,这种方式略显缓慢,除非是英语初学者,否则这种记忆形式稍显多余。
一.3本课题软件的特点
在以前的单词记忆软件中,在学习方法上有记忆方法老、学习方式单一、发音不标准不统一等缺点;在技术上也有程序运行缓慢、兼容性不足、不能满足当前多平台环境下的跨平台需求等缺点。
针对这些缺点,本节主要介绍本软件针对当前市场上其他单词记忆软件所具备的优点。
1.3.1在单词记忆方法上的特点
本课题软件在单词记忆方法上对比其他单词记忆软件的主要特点有:
(1)在综合了之前单词记忆软件的记忆方法的基础之上,特别的增加了颜色记忆法和延迟记忆法,记忆有效率再次提高。
无论是初记时还是复习时,都特别的对数种辅助记忆手段进行延迟显示,而不是一次性统一显示,在使用错开时间的显示方法时,达到最好的记忆效果。
(2)在传统的Ebbinghaus记忆曲线方法上(艾宾浩斯记忆曲线,由德国心理学家赫尔曼·艾宾浩斯的实验所证明的,人会随着时间推移而遗忘),对比其他单词记忆软件独特增加了记忆时间方法。
Ebbinghaus记忆曲线的主要时间单位是“天”,而现在主流研究的看法是,人的记忆力在一天的时间段内也是不同的,故本课题软件特别在Ebbinghaus记忆曲线的时间内,将单词记忆点四舍五入的提早或延迟到一天的记忆点高峰,以此尽最大努力提高单词记忆效率[2]。
(3)在以前的单词记忆软件中,忽略了游戏对单词记忆的重要性,虽然有部分单词软件携带了小游戏,但是往往数量较少,或者并不是最有效的。
本软件以英美人最常玩的拼字游戏(CrosswordPuzzle)为主要小游戏,符合英美人群的思维定势,提高娱乐对单词记忆的辅助能力。
(4)以发音为主,词义次之,单词为最次之的单词记忆方法。
语言皆同理,中文也是如此,往往我们记忆中文也是记住其音和意义,而不是单纯的记住字形,例如“旮旯”和“鬼魅魍魉”这样的字,我们可能并不会写,但是会说会听,导致看到时也能想起来意思。
英文也是同理,美国心理学家哈罗德·E·巴特和H·G·贝克的实验证明,通过声音记忆单词比单纯用眼睛看能都多记住34%,所以本软件在初记之前,会首先读音,而不是直接显示单词和单词信息。
单词和单词信息是逐渐显示,而不是一次性显示。
以此,最大限度的调动用户对声音的印象,而不是单纯的视觉印象,最终提高单词记忆的质量。
1.3.2对比同类软件,在技术上的特点
本课题软件之所以在技术上创新,是因为新技术的发展,导致了现代人面对的平台不同,面对的设备不同,面对的情况也不多。
例如现代人往往看手机和平板电脑的时间多过于看电脑的时间。
还例如,在工作忙碌的群体中,可能在行车中的时间多过于在电脑前静坐的时间。
所以在老的同类软件中,往往只针对一个平台,就算是部分软件针对多个平台也无法顾及到多个平台的数据共享,这些开发方式和针对的用户方式已经无法适应当前新技术发展和社会发展的水平。
因此,本课题软件在技术上达到创新,适应这些新技术和社会的发展,对比以前的同类软件的创新点主要体现在:
(1)基于HTML5技术构建,拥有传统Web网站式应用无法比拟的优势。
同类软件中虽然也有使用Web技术构建的,但是不同于本课题软件使用的HTML5技术。
本课题软件的流畅度和功能特性,可以达到以前软件所不能达到的地步。
所以本课题软件不同于传统Web网站式应用,从这方面来讲更接近于传统本地式桌面应用。
而本课题软件又拥有传统本地式桌面应用所不具备的跨平台、即时连线、无需安装直接使用等特点。
所以本课题软件的技术特点,是在传统Web网站式应用和传统桌面应用之间的新型Web应用,是应用发展的未来。
本课题软件在HTML5技术之上,对比传统应用的主要优势体现在:
a)跨平台性。
传统的桌面应用无法跨平台,即使使用例如GTK、QT这样的跨平台库,也无法在手机、平板电脑平台上使用。
而基于HTML5的Web技术可以在任何支持浏览器的平台上运行,包括而不局限于桌面平台、手机平台、平板电脑平台、可穿戴式计算机平台、物联网平台等等,做到真正的随时随地记忆单词。
b)载入的一次性,应用的离线性。
传统Web网站式应用每次打开网站,甚至每次刷新页面都需要重新载入信息,而本课题软件基于HTML5技术,可以离线缓存,即便关闭浏览器、重新启动电脑,或者浏览器刷新也无需重新载入数据库。
HTML5的离线缓存技术不同于一些浏览器的离线浏览技术,而是真正把网络应用做到本地的技术。
这样做极大的节省了网络带宽,提高了应用性能和用户体验。
不仅如此,因为有离线缓存技术,应用可以做到不联网也能在浏览器中运行,不丢失任何数据。
配合本软件的语音缓存能力,甚至可以做到无需联网就能在任何设备上听到单词的声音,体验本来上百MB的语音库。
(2)基于Websocket,减少传统Web应用所需要的网络流量,强化性能。
传统的Web应用所使用的无非是基于AJAX的,HTTP协议的信息传输,但是此种信息传输模式在大量数据传输和长连接上要消耗大量的网络带宽和延迟。
因为这些诟病,本课题软件使用了新型的Websocket连接方式,规避了传统AJAX导致的一些问题。
同时Websocket也是一种更安全的信息传输手段,可以在客户端和服务器简单的实现数据加密,比以往的HTTP信息更容易实现加密。
虽然HTTPS也能实现数据加密传送,但是对服务器和服务器证书往往要求较高。
(3)基于新的CSS3的图形表现形式。
CSS,即级联样式表技术(CascadingStyleSheet),主要目的是用来设计网页页面风格的。
而CSS3版本包含了诸多新的特定,不同于以前的Web和桌面应用,这些新特性给予了应用软件更好的图形能力,更高的编程效率和更好的用户体验。
而CSS不仅仅是Web发展的方向,也是传统桌面应用发展的方向,例如主要的开源综合库的GTK和QT都已经支持了CSS样式来开发桌面应用,目的是为了更好的跨平台通用性。
(4)基于新型NoSQL数据库模式。
传统的SQL数据在Web2.0时代已经渐渐疲惫,新型网络应用往往面对的是更多的用户,更大的同时查询、写入能力。
本应用对比同类软件的Web网站型应用具有更友好的数据库界面,更快速的数据库查询能力,更好的扩展性和通用性。
达到不限制数据库,不限制平台的等等优势。
本课题软件,也是首次将比较复杂的传统桌面应用程序以HTML5为基础,以MVP为构架,以NoSQL为数据库结合的一次尝试。
这三者的结合无论是在单词记忆软件中,还是在其他应用软件领域,都是一次全新的尝试。
1.3.3小节总结
本软件的这些特点,若不是和最新的Web技术结合,而使用传统的软件开发技术,是很难全部兼顾的,即便做到,成本也会很高。
而本课题软件在较低的成本下做到了跨平台和各种创新特点,这本身就是一种全新的尝试。
1.4文章的组织结构
在前面的绪论中,本文对单词记忆软件的现状及其发展、本软件实现所在的基本技术和社会背景、以及本软件对比同类软件的各种优势做了介绍。
在接下来的部分里,本文的组织结构如下:
(1)在第二章,本文介绍了本课题软件设计上所使用的一些基本的使用技术,说明了这些技术的主要特点,以及本课题软件的联系,说明了为什么使用这些技术。
(2)在第三章,本文介绍课题软件的总体需求分析,说明了一个单词记忆软件所应该拥有的功能,这些需求分析会在本课题软件中逐一实现。
(3)在第四章,本文介绍了课题软件的总体结构划分和各模块的概要设计,以及课题软件为什么如此划分模块。
(4)在第五章,对课题软件所使用的数据库做了分析和设计。
(5)在第六章,本文详细介绍了软件的详细设计,及各个模块的算法流程和实现,同时也说明了软件在实现过程中所遇到的困难和问题。
(6)在第七章,本文介绍了软件界面的设计思路和实现。
(7)本文在最后简短地总结了毕设期间所做的工作,总结了本软件的局限性,并对后续任务做了初步设想与规划。
第二章课题软件使用技术简介
本章介绍本课题软件使用的各种使用技术,与使用这些技术的原因和特点。
2.1HTML5技术简介
2.1.1引言
HTML5是HTML的最新标准,草案于2008年发布,W3C(万维网联盟)于2012年12月17日宣布HTML5规范开发完成。
新标准将包括更强大的编程接口。
这种更新将会解放浏览器,让浏览器更少的依赖Flash等第三方插件[3]。
HTML5总体来说是一些以HTML5的Web规范为基础的新技术的统称,一般宏观来看包括HTML5技术,CSS3技术,Websocket技术等。
这些技术改变了互联网应用的开发方式和使用方式,可以给开发人员以更方便的开发工具,给予用于以更好的用户体验。
2.1.2HTML5的主要特性
(1)离线应用缓存(OfflineApplication)。
此功能不同于以往浏览器的缓存功能,此功能提供给了开发者真正将Web应用存储于本地的方式,使得Web应用能超脱于传统Web网站应用的范畴,更贴近传统本地应用程序的功能。
此功能的核心,是将Web程序所需要的一切文件,包括html文件、JavaScript语言文件、CSS样式、图片等缓存在浏览器本地,需要使用时无需联网也可以使用。
此功能是由W3C规范的标准功能,完全不同于一些浏览器自带的缓存功能,提供更标准、更有效的离线功能。
(2)本地数据存储(LocalStorage)。
此功能不同于以前的Cookies功能,更像是一个本地JavaScript语言可以使用的超级“Cookies”,此功能允许应用程序在本地存储大量数据,而无需联网或者是数据库。
(3)绘图画布(Canvas)。
此功能类似包括2D和3D部分,提供各种基本的画图函数,可以给予HTML5以画图能力,是制作游戏、部分动画的基础。
(4)原生的视频和音频支持(Video&Audio)。
此功能可以提供原生的视频、音频播放能力,不需要再依赖Flash或者ActiveX控件。
(5)智能表单(FormsInputs)。
此功能让浏览器提供本地的表单判断功能,例如时间日期的选择,Email地址的验证,简化编程代码。
(6)后台运行支持(WebWorkers)。
HTML的后台语言,也就是JavaScript语言是一种单线程、事件驱动语言。
而Worker这项新能力可以说给予了JavaScript一种全新的多线