面向“爱课程”平台的手机客户端APP的设计与实现毕业论文
2020-02-23 18:23:44
摘 要
Abstract II
绪 论 1
第一章 系统概述 2
一、课题背景 2
二、开发环境与相关技术 3
第二章 系统需求分析 5
一、需求分析 5
二、可行性分析 5
三、系统需求分析 6
第三章 系统总体设计 7
一、开发环境 7
二、服务器模块设计 8
三、客户端模块设计 8
四、数据库结构设计 9
第四章 系统详细设计 10
一、客户端详细模块设计 10
二、服务器详细模块设计 14
三、数据库详细设计 16
第五章 系统的测试与维护 18
一、单元测试 18
二、集成测试 19
第六章 总结 20
致谢 21
参考文献 22
摘 要
随着互联网的发展,我们的生活与学习方式都得到了很大的改变。以前学习只能通过书本或者老师,现在我们可以通过应用信息科技和互联网技术进行信息获取和快速学习。这种全新的学习方式使得随时随地学习变得可能。于是大型开放式网络课程,即MOOC(massive open online courses)应运而生,在MOOC上进行学习的学生也越来越多。
然而在移动端逐渐占据市场的当今互联网时代,人们不仅仅满足于在电脑上进行网络课程的学习,能在广泛普及的手机上进行随时随地的学习更加符合用户的需求。因此研发MOOC的手机客户端无疑可以进一步让MOOC走进人们的生活,使用户可以随时随地从MOOC上获取知识。
本应用采用Servlet、Hibernate、JavaBean、Android等技术实现了一个简单的手机MOOC平台,同时结合Bilibili的开源项目ijkplayer和DanmakuFlameMaster来实现播放器的弹幕播放功能,使用本地的MySQL来储存数据。
本文从研究课题的背景入手,讨论了课题研究的意义,描述了国内外研究的现状。在此基础上,详细表述了整个系统的具体实现。最后,对系统进行了单元测试和集成测试,并对本次毕业设计作了总结。
关键字: Hibernate、Servlet、Android、JavaBean、MOOC、弹幕
Abstract
With the development of network technology, our ways of study and live have been changed greatly. We used to study only by books or teachers, but now we use can content technology and Internet technology to get information and learn quickly. This new study method makes study anytime and anywhere possible. Therefore, the massive open online courses(MOOC) emerge as the times require. More and more students study on the MOOC.
However, nowadays mobile terminals are gradually occupying the market, people are not only satisfied with learning online courses on computers, but also learning at anytime and anywhere on smart phones, which is more in line with users' needs. So, research and develop a MOOC’s application can make MOOC walk into people’s life undoubtedly. And application can make users get knowledge anywhere.
In this system, Servlet, Hibernate, JavaBean, Android and other technology to achieve a simple MOOC application, combining Bilibili’s open source project ijkplayer and DanmakuFlameMaster to achieve barrage playing of media player. And this application use local MySql to storage data.
This paper start from background search, we discuss the significance of the research, and then describes the current situation home and abroad. On this basis, a detailed description of the implementation of the whole system. Finally, the unit testing and integration testing are carried out, and this graduation design is summarized.
Keywords: Hibernate、Servlet、Android、JavaBean、MOOC、barra
绪 论
从娱乐到工作再到学习,科技的发展改变着人类的方方面面。其中近年来改变社会最大的是智能手机的出现,它让人们能随时随地连接到网络之中,这极大程度上改变了人们的生活方式,这时能随时随地进行学习的MOOC应用也就应时而生。作为一个学习平台,MOOC拥有传统学习方式所不存在的优点:
- 学生不再受到地域限制,世界各地的学生都可以在同一个平台上听同一堂课;
- 学生的学习时间能够由学生自主安排,学生们可以抽取他们生活中的零碎时间来进行学习,不再受到课程时间的约束;
- 学生的选择更加多样化,学生可以选择他们感兴趣的内容进行学习。
这些优点使得MOOC学习越来越成为时代的潮流。
然而MOOC学习还是存在一些急需解决的缺点,那就是学生辍学率高,学员流动大。针对这一点,我认为问题出在MOOC学习中学习的趣味性不高,比起传统课程,学生之间的交流也不够。因此,我在我的系统中增加了实时的弹幕功能使得学生们在进行学习的同时能够针对课程进行交流,借此来提高MOOC学生的课程完成率。
第一章 系统概述
一、课题背景
1.移动学习逐渐变为潮流
网络的迅猛发展极大地改变了人们的生活方式。在当今社会,学生们遇到问题后第一反应不是询问老师或者查询书籍,而是上网寻找答案。同时移动终端的普及也使得移动学习变为可能。根据相关资料显示,中国使用手机进行上网的网民早在2016年就达到了90%,同时安卓系统的市场占有率也超过了50%,成为了移动终端中市场占有率最高的系统。因此基于安卓系统的MOOC应用的开发是有较高的研究价值的。
2.MOOC应用的国内外发展现状
自2008年以来,MOOC已经从教育的流行语发展为主流媒体的头条新闻:纽约时报宣布2012年为“MOOC的一年”。MOOC学习者呈指数增长,截至2014年10月,仅Coursera就有来自114个机构的839门课程的1000万用户。[1]
在国外,移动学习方面的研究早在1994年就已经存在,一个名为Wireless Andrew的针对校园学生开发的一个无线学习网络平台的成功研发开启了美国移动在线学习的历史。现在最大的三个MOOC平台Coursera、Udacity、edX均有自己的iOS和安卓端app,根据Google play上的数据显示,安装次数都达到了八百万之多。
国内的情况据资料表明是从2001年开始才进行了移动在线学习的研究。目前也有很多类似的MOOC平台,且有不少类似的app,如慕课网、学堂在线、网易云课堂等等。教育部和财务部也早在“十二五”期间就建立了网络高等教育教学平台“爱课程”网站,该平台拥有各大高校的视频公开课,学生可以在其中自由免费地学习,并且还能在该平台上进行考试、讨论,该平台也拥有自己的app。由此可见目前在国内,无论是民间还是政府部门,对于MOOC这一学习平台都抱有高度的重视。
然而现在的MOOC平台还有很多缺陷。对于学生来说,MOOC的意义就是利用碎片时间来进行学习,但这样的学习方式可能会使得学生无法在虚拟课堂中全神贯注,受到周围环境的影响,学习的质量如何值得关注。[2]另外,大多数MOOC平台上的课程都是零碎的,没有打造出完整的学习路径和知识网络,这也使得学生在选择课程上会产生疑惑。
3.MOOC应用的优点
MOOC平台既能提供免费的优质资源,又提供完整的学习体验。它提供了很多高质量优质教育资源,学习者可以观看讲课视频、分享自己的观点、甚至可以参加考试并拿到获得很多机构认证的课程结业证书。[3]MOOC平台覆盖了教与学的全过程。同时学习者不再受时间和空间的约束,课程面向所有人员开发,不设门槛。MOOC已经成为了一个时髦又有效的实行终身学习的手段。
二、开发环境与相关技术
1.开发环境
开发系统:Windows 10
开发工具:Idea,Android studio
数据库管理系统:Mysql
数据持久化层:Hibernate
2.hibernate介绍
Hibernate是一个开源的全自动的对象关系映射框架,它对JDBC进行了轻量级地封装,它可以使得POJO与数据库表之间建立映射关系。[4]使用hibernate时只需要操纵对象,而不是操作数据库表。这使开发更对象化,抛弃了原来的数据库中心的思想,完全符合Java的面向对象思想。另外它还可以自动生成SQL语句,自动执行。没有侵入性。
使用hibernate之后代码的重用性会变强,即便更改数据库,只需要改变配置文件而不必重写业务逻辑代码,在代码中也不会出现大量的sql语句,这使得业务逻辑的代码可读性更强。另外,它还能使用缓存机制进行自动优化来减少数据库的访问量,提高程序的运行效率。
3.Android平台介绍
和大众所了解的不同,Android并不是Google创造的,而是由Android公司所创造,这家公司的创始人是Andy Rubin[5]。该公司后来被Google收购,而Andy也成为了Google公司Android产品负责人。最初的Android系统由于其ui简陋,功能不足,导致他被iOS系统的光芒掩盖。然而经过无数新版本的发布,到如今,Android已成为最受欢迎的手机操作系统,根据Kantar于2018年5月发布的移动操作系统市场份额数据,中国的Android系统市场占有率高达77.4%。Android操作系统之所以能发展如此迅速,是因为它是一个开放的平台,对于大多手机厂商而言几乎没有门槛,他们无须支付任何费用即可使用这个操作系统。其应用商店对应用程序的限制也远不如竞争对手iOS严格。[6]对于我们开发者来说,Android的开发工具也都是可以免费使用,这也为本次系统的开发提供了不少便利。
4.MySQL介绍
MySQL是由瑞典MySQL AB公司开发目前属于Oracle公司旗下的关系型数据库管理系统。在web应用方面,它是最好的关系数据库管理系统应用软件。[7]其使用的sql语言是用于访问数据库的最常用标准化语言。本系统之所以选择它作为数据存储软件是因为它的体积小、速度快且开放源码的特点。
5.Java介绍
Java是一门纯粹的面向对象编程语言,它具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,能够做到一次编译到处运行。无论是在Windows还是在Linux、MacOS上,对Java程序进行编译,编译后的程序在其它平台上都能运行。
Java语言不仅吸收了C 语言的各种优点,还摒弃了C 里难以理解的多继承、指针、运算符重载等概念,使程序更加严谨、整洁,因此Java语言在实际应用中具有功能强大和简单易用两个特征。[8]并且Java提供了很多内置的类库,通过这些类库,简化了开发人员的程序设计工作,同时缩短了项目的开发时间。而且Java语言具有较好的安全性和健壮性,所以java语言常常会被用在网络环境中,可以增强程序的安全性。
本次开发的项目为安卓项目,安卓目前常用的开发语言有Java语言和谷歌新推崇的kotlin语言,鉴于保持开发语言的一致性和Java语言在服务器端的优异表现,本系统两端的开发语言都选用Java语言。
第二章 系统需求分析
一、需求分析
需求分析在软件生命周期中是举足轻重的一环,通过需求分析来决定软件所具备的功能。[9]MOOC应用所面向的用户是学习者,因此开发必须先满足学习者的学习需求。需求分析阶段需要确定该应用应当设计哪些功能来满足吸引学习者,以及该应用应当拥有哪些功能或应当遵守哪些约束。
二、可行性分析
开发任意一个软件都会受到时间和资源的限制。因此在开发软件项目之前,必须根据可利用的时间和资源等条件进行可行性分析。其主要任务不是研究如何解决问题,而是要用最小的代价在最短的时间内确定该项目是否具有开发的可行性。
- 技术可行性
本应用按照C/S架构进行开发,采用Servlet、Hibernate、Android等技术实现。服务器端的开发上,Java语言是一种优秀的编程语言。它最大的优点就是与平台无关,在Windows 、Linux以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上广泛采用。客户端的开发上安卓平台也是使用Java语言进行开发,编码者只需学习安卓特有的api就能胜任,同时,安卓的开发环境和编程环境相对iOS来说更加开源和便利。因此无论是服务器端还是客户端的实现,技术上都没有太大难度。
- 资源可行性
由于移动学习利用的一般是学习者的碎片时间,所以应用内的课程资源应当尽量的碎片化。[10]课程应当以章节的形式呈现,而且每一段课程的学习时间应该控制在10分钟以内,这样才能使得学习者能更充分地运用自己的时间进行学习,提高学习者的学习效率。
- 操作可行性
鉴于移动端设备的处理能力较弱,因此开发的应用在操作上应该易于上手。功能和模块的设计应该尽可能简洁。[11]
三、系统需求分析
1.功能需求:这方面的需求指的是系统必须实现的服务和功能。
用户登录与注册,课程列表的显示,课程详情的显示,用户学习过的课程的记录,课程视频的播放,视频播放中的弹幕功能。
2.性能需求:这方面的需求指的是系统必须满足的一些约束,如定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的要求。
1)用户在客户端进行操作时客户端能够快速响应用户的操作。
2)安全性方面服务器端应能有效的防犯sql注入的情况。
3)视频应能流畅播放
4)用户发射弹幕后应能立即看到自己发送的内容
第三章 系统总体设计
一、开发环境
1.选用IntelliJ IDEA作为服务器开发平台
本次设计中,服务器是由Java语言来实现的,而Java语言常用的开发工具有eclipse和idea,选择idea作为本次项目的开发工具是因为它集成了maven来进行项目管理,想要添加任何jar库或者插件都可以通过对话框搜索添加。另外idea还能提供eclipse不能提供的智能提示重构代码功能来帮助优化你的代码,它的代码提示功能也更加人性化。它甚至可以检查你的变量名的英文单词是否拼写正确。本次设计中使用idea使得服务器端的开发更加轻松和准确。
2.选用Android studio作为安卓客户端开发平台
安卓的主流开发工具有eclipse和Android studio,但是谷歌官方的推荐开发工具只有Android studio。它的开发是基于idea的,操作界面和idea极其相似。正好在本次设计中我选用idea作为服务器端开发工具,因此在操作上能够得心应手。与idea的基于maven不同,Android studio是基于gradle的构建支持,想要添加任何类库仅需在gradle文件中加入一行代码,ide就会自动帮你进行下载。
3.选用Genymotion作为安卓客户端调试工具
现在市面上有很多安卓模拟器,然而Android开发人员普遍使用的模拟器还是Genymotion。因为它在运行速度上占据很大的优势,而且画面流畅,还支持OpenGL 3D、加速、多开、全屏等特性,并提供 Eclipse、IDEA 的开发插件,在使用Android studio进行调试时,无需任何操作ide就能识别Genymotion并将程序在其上调试。
- 使用Apache Tomcat 9作为服务器
Tomcat是apache软件基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。本次项目选择使用tomcat作为服务器,是因为它的技术先进、性能稳定而且免费的优点。也正是它的这些优点使得它深受Java爱好者的喜爱并且得到了很多软件开发商的认可,成为了目前流行的web应用服务器之一。
- 使用json作为服务器与客户端交互的媒介
因为json易于阅读和编写,也易于软件解析和生成的特点,该系统使用它进行数据传输。其中客户端和服务端都使用Google的gson框架来进行对象对json的转换和json的解析。使用该框架只需一行代码便能将对象集合转换为json字符串,方便快捷。
二、服务器模块设计
服务器应当遵循MVC模式进行开发,然而由于服务器并不需要和用户进行直接交互,因此服务器并没有view这一模块,只需实现model和controller这两个模块。
模型(model):模型是应用程序中用于处理应用程序数据逻辑的部分,即对应的是数据库数据。因为本系统使用的是hibernate作为数据的持久化层,因此与数据库表对应的POJO即为该系统服务器的model模块。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: