基于Android的天文观星系统的设计与实现

1 绪论

1.1 选题背景

随着计算机的持续发展,人类进入信息化时代,各种软件和管理系统层出不穷,软件已成为提高办公质量和经济增长的重要手段,由此带来了许多新兴行业。比如在线购物,京东商城和淘宝的成功有目共睹,还有与信息直接关联的360搜索和百度搜索,通过搜索可以找到许多信息。在这个以知识为主的社会中,获取知识就是获取价值,信息可以创造许多实际的财富。

基于互联网的管理平台,收集和整理各类信息,这些信息以有序的方式存储在数据库中,数据库是存储信息的管理系统。互联网上所有的资源大多以一定的关系和结构存储在特定的数据库,数据库是管理系统存在的必要条件。数据库将信息进行分类,实现系统化、标准化。最终通过程序的检索查询数据,按照一定的标准进行排序,方便用户的读取和使用。在信息化时代获取信息的方式已经发生了根本性改变。

然而在这些数据中,想要找到自己需要的只有通过搜索引擎。如今,通过百度去查找信息成为大众的首选,然而在经济利益的驱动下,许多百度来的信息都是商业内容,很难找到真实有用的实际信息。

在互联网中平台,天文观星信息交流和资源共享是一个非常重要的平台,随着用户的增长,大规模数据的形成,在这些错综复杂的数据中用户很难找到符合自己的信息。比如在抖音平台,大家可以从中获取许多有价值的视频信息,帮助我们去学习生活或者特定行业的专业知识。但是在这些大量的知识中,过于杂乱,又掺杂了许多其他的元素。对用户造成的影响就是花费很多的时间,却获取不到真实有效的知识。所以这些综合性的信息平台,带给我们的就是全面化的资源。没有系统梳理,专业性不够。因此,只有开发一个基于Android的天文观星系统才能够对天文观星知识信息进行整理分类,针对专门的问题进行沟通和讨论,才能实际的解决用户想要知道的信息。

1.2 选题意义

本文研究了基于Android的天文观星系统,通过该系统,用户可以主动的发布天文观星问题,获取别人对该问题的解答和讨论,从而获取想要的结果,提高了获取天文观星信息的手段和效率,同时加强了用户之间的相互交流沟通,促进了天文观星信息化的发展。

基于Android的天文观星系统是当前一种流行的天文观星获取信息的方式,该平台建立了用户与用户之间的沟通渠道,提供了一个可以交流天文观星的平台。在互联网时代,大家逐渐认识到,通过Internet可以快速的传播信息、交流知识、获取需求。现代信息技术逐渐渗入到大家生活中,过去网站上的一些论坛和留言板,很难形成专业化的天文圈平台,随着时间的推移,这些论坛逐渐被用户所遗忘。

本基于Android的天文观星系统针对的范围广,使用的用户群体大,无论是行业骨干还是部门领导,或者普通的学生或者工作者都可以发布天文观星信息,可回答别人的问题,从而提供可以学习交流的咨询平台。用户浏览其他会员发布的信息,可以获取到感悟,也可以发表自己的意见和看法。

基于Android的天文观星系统是一个开放的、公平的系统。通过这个平台,大家可以更方便、更快捷的获取到需要的天文观星信息资源。平台的使用相比较于专业的图书馆和论坛,资源更加的丰富,发挥了群体的力量,范围广。丰富了学习和生活。在大数据信息化时代,信息的存储和传播有着非常重要的意义,打破了获取知识的时间和地点的限制,提高了大家的知识水平和素质,对于建设国家信息化具有更重要的深层次的意义。

本文研究的基于Android的天文观星系统,根据现实的实际需求,提供用户发布信息的功能,借助信息推荐技术,还可以为用户发送需要知道的信息内容,节省浏览时间。信息推荐是大数据时代重要的功能,提高了系统平台的实际价值。另外通过信息安全技术手段对用户信息进行加密,并保证数据传输过程中的安全,提高系统数据整体安全能力。

1.3 研究内容

本课题选择JAVA来进行开发,数据库选择MySQL进行建库,JAVA是目前最为流行的技术,无论是成熟度和未来发展都更能适应本基于Android的天文观星系统的业务。

本课题使用面向对象的设计思想进行设计,对系统的现状进行调研,收集当前基于Android的天文观星系统的需求,以及对实际业务的调查,整理需求文档,使用用例图状态图等进行描述,接着使用面向对象技术设计系统功能,系统数据库。完成基于Android的天文观星系统,主要包括了系统的开发背景收集、建模工具选型、技术确定、需求分析的整理、数据库的设计和功能模块划分、系统环境的部署、实现测试方法的选择,以及最后的搭建部署。

2 相关技术介绍

2.1 Java语言

基于Android的天文观星系统后台使用面向对象的Java技术进行编程,Java是由Sun公司开发的,是目前应用最广泛的编程语言。Java上手简单,功能强大,经过多年的发展,Java语言目前广泛应用在企业级应用开发、Windows系统开发、Web开发、移动技术等多个技术领域。C#语言稳定性强、安全性高,可以跨平台使用,代码复用度高,所以也使得Java语广泛应用。

总体来说,Java语言具有面向对象和多线程的特点,面向对象是把项目的业务抽象为对象,具有封装,继承和多态的特点。

封装是把实体的属性和方法进行合并,在项目中主要应用在数据库实体类中。通过封装保存数据和传递数据。继承,提高了编程的效率,在子类中定义属性和方法,继承类对子类进行继承,通用的方法直接可以使用,然后对其他业务进行扩展,大大提高了代码成功率,减少了开发难度。

多态指的是一个方法,可以采用不同形式调用,比如一个方法传递的变量值可以为一个两个三个,那么,针对不同的方位值,调用不同的方法来实现逻辑。

Java语言有四个部分,Java编程规范、Java虚拟机、Java class文件、Java应用程序接口。其中Java虚拟器对Java进行加载,执行代码,将加载的文件编写为引擎可以识别的二进制文件,然后进行翻译。

2.2 安卓技术

Android中文称作安卓系统,是由谷歌公司开发的用于移动端的操作系统。Android最开始应用于数码相机,2005年后被改良为面向智能手机,并免费开放源代码。从卓操作系统应用于市场以来快速的占据市场,替代了诺基亚手机品牌,Android是在Linux系统之上,包括操作系统、中间件、用户界面和软件,实现了软件的功能。各功能通过接口进行互联,安卓包括一个核心的云仓库,相当于Java虚拟机的功能,每一个Android手机都可以运行多个虚拟机,提高了Android运行的进程和效率。Android framework是一个开放性的平台。自由的调用硬件功能,设置闹钟、发布通知、应用程序中。Android提供的自带的一些程序,包括打电话、联系人、日历、电子邮箱等,在这些应用中也可以通过扩展,实现功能的个性化定制。

安卓的语言主要用Java进行编写,所以学习安卓前需要熟悉和了解Java,底层建立在Java jdk和环境变量之上。

Android在设计上具有几个特点。生态系统的开放性,目前Android已经在手机市场占据份额达到70%,通过和厂商建立合作关系,放开系统的标准,建立移动设备之间开放的生态系统。应用程序无边界,Android中的程序可以通过API调用设备功能,除了系统中的程序可以调用之外,第三方应用之间也可以调用,需要在程序开发时声明调用的权限。应用的平等性,应用程序时可以升级或者替换,不存在高低之分。安卓支持Web的嵌入,在开发Android应用程序时,可以通过控件嵌入web样式,包括JS,HTML、CSS,来显示内容,方便的展示外部应用,极大的提高了项目的开发速度和界面美观程度。并行运行,安卓是一个基于多任务环境的系统,通过进程来控制多任务并行运行,所以在我们安卓手机上可以同时支持多个程序运行。

2.3 Mysql数据库

所谓数据库,指的是对数据按照一定格式进行存储的管理平台。数据库分为多种平台,常见的有SqlServer数据库、MySQL数据库等。数据库和程序无关,一个数据库可以为多个应用程序提供服务,数据库的对象就是数据。数据库是独立于应用程序的子系统,数据库设计包括数据结构设计、数据内容、易于扩展、数据安全等方面。目前,在大数据发展状态下,数据库广泛应用在信息处理、人工智能、AI等各个领域。

基于Android的天文观星系统使用的是MySQL开发,MySQL是一个关系型数据库,同时MySQL也是开源免费的数据库。对于关系型数据而言,当数据巨大的时候,查询效率会比较低下,所以通常采用索引或者改变数据集来提高数据的调用,从而提高检测效率。MySQL体积小,安装速度快,在中小型网站和应用程序中广泛存在,使用MySQL也具有极高的安全性,包括用户登录的权限,数据操作的管理权限,数据备份,恢复等功能,但目前MySQL也面临着一定的挑战,特别是在一些小型的数据库发展带来的市场占用。但是在MySQL关系数据库因为庞大的用户群,和优良特性,MySQL依然是建站首选,降低了开发成本和部署难度。

2.4 信息安全技术

2.4.1 防SQL注入

SQL注入是黑客攻击的常用手段,SQL注入是指通过web路径截取用户输入,在用户定义好的SQL语句上加入额外的SQL方法,在没有经过管理员的基础上获取数据库中的数据或者删除数据。通过特殊字符拼接SQL语句,然后传递到数据库服务器,执行命令后才返回数据或者对数据进行删除。SQL注入具有广泛性、隐蔽性、危害性以及操作方便的特点。

SQL注入是一个常见的安全漏洞,先通过注入点探测访问数据库,如果网页没有验证,将会注入成功。第二步,收集后台数据信息,通过不同的函数来达到数据查询和返回的目的。第三步,猜测用户名和密码,查找外部管理入口,通过目录工具查找登录地址。第四步,使用破译的用户名和密码,对网站后台的数据进行破坏。解决SQL注入的最简单方法就是进行防SQL注入的判断,通过过滤字符实现过滤,把单引号双引号进行过滤,对不正确变量进行错误提示。如果用户提供的是强类型,将对这些类型进行转换。

2.4.2 MD5加密

在传统的MD5密码加密中,它是一种非对称式的加密算法,将这些长度进行扩充。并在加密后使用0和1进行无序的组合,形成一个固定长度的MD5字符串。MD5解密是通过对明文的MD5加密后,和MD5字符串进行比对,如果相同才表示一致。所以,MD5的密文是可以在网络中进行传输,并公开的,即使被截取也无法对这个字符串进行破解,提高了数据传输的安全。

2.4.3 数据库安全

数据库对数据提供加密支持函数。保证存储数据的安全性。另外,数据库连接方式上提供身份认证,对具有权限的用户赋予操作权限,并可以可视化的对该用户进行查询修改删除等不同功能的分自定义权限配置。

3 系统分析

3.1可行性分析

3.1.1 操作可行性

操作方面,本系统界面简洁,人机交互能力强。在基于Android的天文观星系统的基本业务下,降低操作门槛,可以方便的对各种信息进行浏览,交互。管理员对信息进行有效的管理,通过操作菜单进行每一个功能模块的具体操作,不存在前后模块业务上的复杂操作要求,是一种所见即所得的方式,所以在操作上具有可行性。

3.1.2 经济可行性

经济可行性主要从投入和产出进行分析,投入方面包括计算机硬件、计算机网络和本基于Android的天文观星系统软件开发的成本。目前计算机硬件成本较低,配置主流,然后网络方面,可以和其他的管理系统同时搭建,减少投入。在开发基于Android的天文观星系统上,业务流程并不复杂,时间成本低。产出方面,基于Android的天文观星系统投入使用后可以改变旧模式的效率低下,耗费人力,物力资源多的问题,并提高效率,带来经济利益,所以在经济上具有可行性。

3.1.3 技术可行性

技术方面,本系统利用安卓进行开发,后台选择面向对象的JAVA编程,JAVA具有功能强大,适应性强的特点。在JAVA的框架下可以开发出完善的应用程序系统,并且开发周期短。可以和MySQL数据库完美链接,数据库可以存储大量的数据并提供安全保障,因此,构建基于Android的天文观星系统,在技术上是可行的。

3.2 需求分析

3.2.1非功能性需求

系统非功能需求,只能是为了满足客户需求之外的非功能性要求。系统需要具有数据完整性验证的功能,对界面上非法的数据和不完整的数据进行提示,不能直接保存到数据库中,造成不完整性因素。

系统提供一定的交互能力,给不同用户带来方便,提供问题的回答和讨论。并将历史问题归纳整理,作为相同问题的案例进行展示。

对系统可维护性的要求,所有的管理系统都不是一成不变的,在使用中可能发生需求的增加或者变更要求。软件具有较高的可维护性,方便后期的升级换代,系统应该便于使用和访问和操作,为用户提供便捷的。便捷的访问操作,减少宣传和维护的费用。

在对基于Android的天文观星系统开发时,需要系统为Windows10,服务器为Tomcat软件,存储的空间较小,数据库和程序1G存储即可够用。

操作系统的性能要求客户访问系统的时间不应该超过三秒,系统处理多个并发用户,cpu占有率低于10%,同时响应时间应该为五秒内。

3.2.2功能需求

基于Android的天文观星系统为用户提供在线天文圈服务,系统包括安卓端和后台。

安卓单用户可以先进行注册,填写个人的基本信息提交到服务器,服务器把数据保存到数据库。管理员对会员的信息进行验证后,会员通过验证后的用户名和密码进行登录,登录之后发布信息,信息包括天文圈、论坛交流、天文数据查询和评论。发布的天文圈在首页展示,对这些天文圈具有经验或者技能的会员提供解答服务,也可以和其他用户进行交流,同时可以查看关于本系统相关的天文数据信息。点开我的功能模块,修改个人信息,重新登录,查看我的收藏,我的发布等功能。

管理员是后台的管理者,对用户提交的天文圈进行审核,如果发布的是广告或者违规的内容进行删除,也可以要求会员进行修改后重新提交,管理员对信息天文数据的分类进行管理,系统不限于天气数据、天象数据、行星数据、日历也可以添加别的类别,管理员还可以对评论信息进行管理,发布天文数据推送给卓客户端。

3.3 系统用例

基于Android的天文观星系统本质上是一个在线的天文圈的网站,从用户角度,系统包括会员和管理员。

3.3.1 会员功能需求

未经登录的用户不能使用本平台,通过授权的用户才能发布天文圈,选择具体的类别,提交到服务器中,管理员审核后在首页进行显示。会员也可以回答其他会会员提出的天文圈信息,查看问题时对自己感兴趣的或者要了解的进行收藏。收藏的信息在个人中心中可以查看,会员定期对个人信息进行修改,包括联系信息和密码信息,最终通过注销后退出本系统。

会员的用例图如3.1所示:

会员

图3-1 会员用例图

3.3.2 管理员功能需求

管理员具有最高的权限,通过后台的登录页面进入验证权限后才能进行管理。管理内容包括,会员发布的天文圈管理,天文数据分类管理、天文圈评论管理,天文数据管理、用户管理、论坛管理。

管理员的用例图如3.2所示

管理员

图3-2 管理员用例图

4 系统设计

4.1系统详细设计

4.1.1功能设计

基于Android的天文观星系统包括用户管理、天文数据管理、评论管理、天文数据管理、分类管理、天文圈评论管理。

用户管理包括会员用户和管理员用户两个用户。设计一个用户数据表,使用权限字段进行区分。当前台会员进行注册的时候,权限设为会员。管理员用户权限设置为管理员。虽然数据存储在一个数据库表,但是在登录的时候使用权限类别进行区分,管理员用户无法通过客户端进行登录。同理,客户端用户也无法登陆管理员端。

天文数据是管理员发布天文数据的信息,信息发布后的天文数据在客户端浏览查看。

评论管理是对天文圈的回复交流,当天文圈信息删除的时候,对应的评论信息也会删除,评论信息设计了评论名称、评论内容和对应的天文圈ID,通过天文圈ID进行外键关联。

其中系统功能结构图如4.1所示:

图4.1 系统功能结构图

基于Android的天文观星系统

注册登录

发布天文圈

天文数据查看

个人中心

客户端

服务器端

论坛交流

用户登录

类别管理

天文圈审核

论坛交流管理

天文数据管理

会员管理

系统管理

天文数据分类包括天文圈的ID和天文圈的名称、类别。常见的有天气数据、天象数据、行星数据、日历等等类别,可以通过后期进行添加扩展。

天文圈是本系统的重点功能,客户端用户登录后发布天文圈,选择对应的分类,上传图片,其中图片是保存在服务器端,数据库记录对应的图片链接地址,在资源类信息保存中还可以通过二进制进行保存。本系统为了降低数据库的负荷,把图片以文件格式进行存储,这样既减轻了服务器的数据库的存储,也提高了图片数据传输的速度。会员发布后,在管理端对数据进行管理,删除一些违法违规的记录。没有删除的记录将在客户端首页进行展示,用于其他会员查看。会员可以通过天文圈的分类进行搜索,不同分类对应了不同的天文圈。也可以通过关键字进行检索。天文圈还具有点赞和收藏功能。

4.2.2服务器端流程设计

业务流程图反映了系统各业务之间的关联和走向。用户点击提交按钮,实现登录。在进行登录前,需要进行验证,验证用户名和密码是否输入。而用户是否需要登录,先通过session验证用户信息,然后验证session中的用户是否存在于变量中,最后验证是否需要登录。其中管理员登录部分的登录验证流程图为:

用户注册登录

输入用户信息

查询用户信息表

是否输入

No

Yes

是否存在

Yes

No

用户登录

结束

图4.3 登录验证流程图

管理员登录后,对系统进行管理,主要包括对用户的管理、交流管理、天文圈和分类的管理,每一种功能的管理都对应数据的增删改查,其中管理信息流程图如4.4所示:

图4 .4 管理员管理信息流程图

4.2.3安卓端流程设计

基于Android的天文观星系统安卓端,需要会员用户注册后,使用注册的用户名和密码进行登录,登录成功后,查看天文圈,可以通过关键字进行查询天文圈,对天文数据分类、天文圈进行查询。其中客户端功能流程图如图4.5所示。

Y

开始

登录

评论列表

评论

成功

Y

收藏等

是否成功

查看天文数据

结束

N

N

图4.5 客户端流程图

4.2 数据库设计

根据SqlServer数据库特定的应用环境,构造最优的数据库结构,使之有效存储数据,满足本基于Android的天文观星系统的业务需求。当前大多数据库设计存在这些问题:业务需求无法得到满足,数据库性能不高,数据库扩展性较差,数据资源冗余严重,表与表之间的耦合度过密。

针对这些问题,需要做到明确用户需求,重视数据维护,增加数据库设计的命名规范,考虑数据库优化与效率的问题,调整数据之间的关系,合理的使用索引,这样才能有利于资源的节省,有利于提高软件运行速率,有助于软件故障的减少。

4.2.1逻辑结构设计

基于Android的天文观星系统的ER图如4.6所示:

图4.6 系统ER图

从ER图可以看出基于Android的天文观星系统的数据库表和各数据库表关系,如管理员管理天文数据信息,天文圈,管理用户信息,用户可以评论和发天文圈。

4.2.2物理结构设计

基于Android的天文观星系统中包括多个信息表。

  1. 表: storeup信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_userid bigint(8) NO No 用户id
No4 C_refid bigint(8) NO Null 收藏id
No5 C_tablename nvarchar(400) NO Null 表名
No6 C_name nvarchar(400) NO No 收藏名称
No7 C_picture nvarchar(400) NO No 收藏图片
No8 C_type nvarchar(400) NO Null 类型(1:收藏,21:赞,22:踩)
No9 C_inteltype nvarchar(400) NO Null 推荐类型
  1. 表: discusstianwen信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_refid bigint(8) NO No 关联表id
No4 C_userid bigint(8) NO No 用户id
No5 C_nickname nvarchar(400) NO Null 用户名
No6 C_content text(16) NO Null 评论内容
No7 C_reply text(16) NO Null 回复内容
  1. 表: leixing信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_leixing nvarchar(400) NO Null 类型
  1. 表: config信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_name nvarchar(200) NO No 配置参数名称
No3 C_value nvarchar(200) NO Null 配置参数值
  1. 表: users信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_username nvarchar(200) NO No 用户名
No3 C_password nvarchar(200) NO No 密码
No4 C_role nvarchar(200) NO Null 角色
No5 C_addtime timestamp(8) NO No 新增时间
  1. 表: shipin信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_mingcheng nvarchar(400) NO No 名称
No4 C_leixing nvarchar(400) NO Null 类型
No5 C_tupian nvarchar(400) NO Null 图片
No6 C_shipin nvarchar(400) NO Null 天文圈
No7 C_fabushijian datetime(8) NO Null 发布时间
No8 C_thumbsupnum int(4) NO Null
No9 C_crazilynum int(4) NO Null
  1. 表: tianwen信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_mingcheng nvarchar(400) NO Null 名称
No4 C_leixing nvarchar(400) NO Null 类型
No5 C_tupian nvarchar(400) NO Null 图片
No6 C_tianwen nvarchar(4000) NO Null 天文数据
No7 C_fabushijian datetime(8) NO Null 发布时间
  1. 表: forum信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_title nvarchar(400) NO Null 帖子标题
No4 C_content text(16) NO Null 帖子内容
No5 C_parentid bigint(8) NO Null 父节点id
No6 C_userid bigint(8) NO No 用户id
No7 C_username nvarchar(400) NO Null 用户名
No8 C_isdone nvarchar(400) NO Null 状态
  1. 表: discussshipin信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_refid bigint(8) NO No 关联表id
No4 C_userid bigint(8) NO No 用户id
No5 C_nickname nvarchar(400) NO Null 用户名
No6 C_content text(16) NO Null 评论内容
No7 C_reply text(16) NO Null 回复内容
  1. 表: yonghu信息表
编号 数据字段名称 对应类型 主键 允许空 字段的备注信息
No1 C_id bigint(8) PK No 主键
No2 C_addtime timestamp(8) NO No 创建时间
No3 C_yonghuzhanghao nvarchar(400) NO No 用户账号
No4 C_yonghuxingming nvarchar(400) NO Null 用户姓名
No5 C_mima nvarchar(400) NO Null 密码
No6 C_xingbie nvarchar(400) NO Null 性别
No7 C_lianxifangshi nvarchar(400) NO Null 联系方式
No8 C_touxiang nvarchar(400) NO Null 头像

5 系统实现

5.1 信息安全技术实现

本系统针对SQL注入设计了以下几个应对方法,第一个使用Prepared Statement这种方式简单有效,Statement把传入的SQL语句进行字符串处理,避免了SQL注入问题。第二,使用正则表达式过滤参数,引入Java的正则表达式,然后判断字符串是否符合标准,对注入的关键字进行过滤。第三,使用函数检查是否包含非法字符,使用数据库方法处理传入的文本,对特殊字符过滤。总的来说,SQL中有变量的时候减少字符串拼接,并对SQL语句进行字符串处理,就可以实现防SQL注入。

本系统的MD5加密是一个通用的加密方法,MD5加密是不可逆的,在用户注册和用户添加的方法中将用户的密码进行MD5加密,把加密后的密码信息保存在数据库中。这样即使数据库的数据被泄露,也无法破解对应的密码。另外,在用户登录的时候,先获取用户密码,对密码进行MD5加密。加密后的字符串和数据库MD5的字符串进行比对,如果比对一致就说明密码正确。虽然对MD5对密码进行了加密,但是在实际中过于简单的密码也容易被猜到,所以尽可能的提高密码强度,使用多格式的形式来设置密码,进一步提高密码的安全性。

在数据库安全中,使用身份鉴别的方式设置数据库的登录密码,同时避免过于简单的密码设置。第二点,设置数据库的角色,创建数据库操作的角色权限,并设置角色对应的权限,赋予角色对数据库的创建。插入操作权限。最后,对数据库进行定期备份,设定作业,在系统访问量比较低的情况时间内,比如夜间某一个固定时间,实现对数据库自动进行数据备份。将备份的文件存储在服务器硬盘中,如果发生数据丢失或者异常情况下,可以对这些备份备份文件进行恢复。

5.2 服务器功能实现

5.2.1管理员登录

用户需要提供凭证才能正确登录,并根据用户对应的权限管理相关的功能。用户首先输入用户名和密码,然后点击登录。其中用户登录的界面如下所示。

图片[1]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.1 管理员登录

点击登录后,先通过前端验证判断用户名和密码有没有填写,以及需不需要过滤,然后到数据库中查询用户名和密码是否存在。在查询的时候,用户密码是通过MD5进行加密的。MD5本身是一个不可逆的加密方法,所以在查询前需要对密码进行MD5加密,把加密后的字符串和数据库中的密码进行比对,通过比对后才能进行查询。最终,最终查询成功后把信息保存在session中,Session是存储在服务器端的对象,是比较安全的一种技术,在管理端通过判断session中的十来获取用户操作权限。

5.2.2管理主界面

主界面主要包括了系统管理菜单,通过菜单对系统功能进行管理。每一个功能包括基本的查询、添加等操作。其中主界面如下所示。

图片[2]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.2 管理主界面

5.2.3天文数据信息管理

天文数据管理包括天文数据编号、名称、类别、图片内容信息。其中天文数据管理如下所示。

图片[3]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.3 天文数据管理界面

创建一个信息录入的form表单,在form中设计天文数据基本信息收集栏,点击提交的时候,通过form的POST方法传递到天文数据Action方法中。在Action中定义插入的方法,先实例化天文数据实体类,将天文数据信息通过实体类进行设置,然后调用天文数据数据库操作方法,保存天文数据信息到数据库,然后返回成功消息。

在天文数据信息管理页面先通过查询条件,获取对应的天文数据列表,然后在天文数据管理页面通过标签,把所有的天文数据信息绑定到列表中。

5.2.4用户管理

用户管理包括用户信息查看和用户删除功能,管理员对过期的用户进行删除。其中用户管理如下所示。

图片[4]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.5 用户管理界面

创建一个信息录入的form表单,在form中设计用户基本信息收集栏,点击提交的时候,通过form的POST方法传递到用户Action方法中。在Action中定义插入的方法,先实例化用户实体类,将用户信息通过实体类进行设置,然后调用用户数据库操作方法,保存用户信息到数据库,然后返回成功消息。

在用户信息管理页面先通过查询条件,获取对应的用户列表,然后在用户管理页面通过标签,把所有的用户信息绑定到列表中。

5.3 APP端功能实现

5.3.1会员注册

基于Android的天文观星系统的用户,必须得进行注册。如下所示:

图片[5]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.6 会员注册界面

使用基于Android的天文观星系统的客户端时,先要进行注册,打开会员注册的页面,用户填写所有的注册信息后,点击注册,在注册中调用JS的AJAX方法。方法中接收用户实体信息,调用服务器端的用户注册方法。在服务器端获取用户实体信息,对实体进行序列化处理,然后调用用户信息保存的service数据库操作方法,将实体内的会员信息通过SQL语句插入到数据库,并返回一个成功标识的Json对象,在客户端解析Json。判断返回的信息是否注册成功并提供给用户,这样就实现了用户注册的完整流程。

5.3.2会员登录

用户填写用户名及密码,正确后才能登入系统,不正确则重新登录。

图片[6]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.7 会员登录

打开会员登录的页面,用户填写所有的登录信息后,点击登录,在登录中调用JS的AJAX方法。方法中接收用户实体信息,调用服务器端的用户登录方法。在服务器端获取用户实体信息,对实体进行序列化处理,然后调用用户信息查询的service数据库操作方法,将查询结果通过Json对象进行返回,在客户端解析Json,判断返回的信息是否登录成功。

5.3.3天文数据查看

用户登录后,进入系统的主界面,能够看到所有天文数据信息,包括天文数据分类信息,天文数据信息。其中客户端主界面如5.8所示:

图片[7]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.8 客户端主界面

点击天文数据列表,跳转到天文数据详情的界面,用户可选择进行查看。在天文数据详情界面,点击首页,返回到主界面。

图片[8]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.9 天文数据界面

在天文数据页面加载时,初始化方法中,调用JS的AJAX方法。方法中接收天文数据实体信息,调用服务器端的天文数据查询方法。在服务器端获取天文数据实体,对实体进行序列化处理,判断查询条件,然后调用天文数据查询的service数据库操作方法,将查询结果通过Json对象进行返回,在客户端解析Json,把结果存储在临时集合变量中,对变量进行数据显示绑定到界面。

5.3.4发布天文圈

天文圈的发布由会员登录进行操作的,选择相关的天文圈类型后,上传图片,点击发布,可以提交到后台。天文圈界面如5.10所示:

图片[9]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.10 天文圈界面

5.3.5用户回复评论

天文圈评论信息是由会员登录进行录入。在天文圈评论的文件中,创建天文圈评论的界面。用户评论界面如5.11所示:

图片[10]陈大发随笔-计算机源码资源-计算机毕业设计项目基于Android的天文观星系统的设计与实现

图5.11 评论界面

用户填写所有的评论信息后,点击评论,在评论中调用JS的AJAX方法。方法中接收评论实体信息,调用服务器端的评论方法。在服务器端获取评论实体信息,对实体进行序列化处理,然后调用评论实体信息保存的service数据库操作方法,将实体内的评论实体信息通过SQL语句插入到数据库,并返回一个成功标识的Json对象,在客户端解析Json。判断返回的信息是否评论成功并提供给用户,这样就实现了评论的完整流程。

6 系统测试

6.1 测试说明

系统集成测试是对系统的接口进行测试,查看接口是否能够正确正常工作,包括数据库连接接口的测试。数据库测试就包括数据基本信息的增删改查操作测试,数据上线测试,数据下线测试,主外键关联测试,数据库优先级操作测试和安全性的测试。

系统安全性测试包括模糊匹配方法测试、状态机模型方法测试、黑盒模型测试和白盒模型测试,验证系统是否符合安全要求。

实用性测试是由用户发起的,判断本系统是否具有实际可行性可用性,用户得到确认后发布系统,进行上线。

压力测试是模拟足够多的链接,并长时间的运行系统,测试系统是否一直可靠与稳定,最大限度满足本系统的具体需求。

6.2 功能测试

系统登录是基于Android的天文观星系统 第一道安全防线,设计登录测试用例涉及到多个方面,下面对系统登录测试进行说明。测试过程如6.1所示:

表6.1 登录功能测试结果

数据输入 预期结果 测试步骤 结论
用户名和密码为空 提出错误消息 不输入信息,直接点击登录按钮。查看是否提示错误的消息。 经过修改后和预期一致
用户名和密码错误输入。 不能登录 输入正确的用户名,错误的密码。输入错误的用户名,正确的密码,点击登录,提示失败。 修改后和预期一致
输入正确的用户名和密码。 成功登录 输入正确的用户名,正确的密码。点击登录,提示登录成功。 通过

测试天文圈模块功能完整性,把天文圈信息录入到MySQL中,打开MySQL查看是否存在录入的数据,然后对天文圈进行修改或者删除,比较结果,对天文圈的内容最大长度和最小长度进行测试,查看是否符合要求。其中天文圈管理测试过程如6.2所示:

表6.2 天文圈管理测试结果

测试项目 预期结果 测试步骤 结论
天文圈的新增 天文圈信息保存到数据库 运行基于Android的天文观星系统 ,在天文圈新增界面录入天文圈,点击添加天文圈按钮。测试天文圈为空的情况,正确输入的情况。 通过
天文圈的列表 界面加载所有的天文圈 在天文圈信息列表,查看所有的天文圈信息,包括分页连接是否可用,数据条数和数据库是否一致。 通过
天文圈的修订 数据库信息成功修订 运行基于Android的天文观星系统 ,在天文圈修订界面修改天文圈,点击修订天文圈按钮。 通过
天文圈的删除 数据库信息成功删除 在天文圈信息列表页面,选择要删除的天文圈,点击删除。删除后查看列表和数据库表是否还存在该记录。 经过修改后和预期一致

测试系统用户模块功能完整性,把系统用户信息录入到MySQL中,打开MySQL查看是否存在录入的数据,然后对系统用户进行修改或者删除,比较结果,对系统用户的内容最大长度和最小长度进行测试,查看是否符合要求。其中系统用户管理测试过程如6.3所示:

表6.3 系统用户管理测试结果

测试项目 预期结果 测试步骤 结论
系统用户的新增 系统用户信息保存到数据库 运行基于Android的天文观星系统 ,在系统用户新增界面录入系统用户,点击添加系统用户按钮。测试系统用户为空的情况,正确输入的情况。 通过
系统用户的列表 界面加载所有的系统用户 在系统用户信息列表,查看所有的系统用户信息,包括分页连接是否可用,数据条数和数据库是否一致。 通过
系统用户的修订 数据库信息成功修订 运行基于Android的天文观星系统 ,在系统用户修订界面修改系统用户,点击修订系统用户按钮。 通过
系统用户的删除 数据库信息成功删除 在系统用户信息列表页面,选择要删除的系统用户,点击删除。删除后查看列表和数据库表是否还存在该记录。 经过修改后和预期一致

6.3 测试说明

完成了基于Android的天文观星系统 的功能测试,使用测试用例系统地进行了详细测试过程。然后通过性能测试对系统进行简单的性能分析。性能测试包括用户容量、平均响应时间、通过率、cpu占用率和内存占用率。通过性能测试工具模拟500个虚拟用户向系统发送请求,得出响应时间为3秒内,并通过24小时内持续请求,实际的测试结果都持续小于三秒。通过性能测试工具得出本系统的性能指标符合要求。所以在性能上和功能上达到了客户的要求目标。

总结

本文针对基于Android的天文观星系统的设计需求,通过科学管理目标,设计具体的开发方案。基于Android的天文观星系统功能上包括用户管理、天文数据管理、评论管理、天文圈管理、分类管理、论坛管理。在用户角色上分为管理员和会员。

本文围绕基于Android的天文观星系统进行背景分析、现状分析,得出研究本系统的开发意义。通过比较相关的开发语言得出系统开发技术。通过Java和MySQL语言进行开发,本文通过visio建模工具和word画图工具对系统的用例图、功能图、ER图绘制,描述系统功能。对基于Android的天文观星系统进行了详细的分析设计,对每一个系统功能模块进行了详细的阐述。并对系统进行编码实现,首先描述每一个功能模块的功能,然后通过界面进行展示,并说明实现的过程,结合具体的代码进行了介绍。最后通过系统测试证明了系统的功能要求,佐证了系统操作可行,达到了预期目标。

但是本次研究也有许多不足之处,例如对服务器的分级处理,大数据的容错机制管理。系统界面设计不够美观,整体效果不够人性化,在接下来的工作中争取开发更加完善的基于Android的天文观星系统 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发
陈大发的头像陈大发随笔-计算机源码资源-计算机毕业设计项目陈大发随笔

昵称

取消
昵称表情代码图片