大学生论坛系统的设计与开发.docx
《大学生论坛系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《大学生论坛系统的设计与开发.docx(34页珍藏版)》请在冰豆网上搜索。
大学生论坛系统的设计与开发
河北农业大学
本科毕业论文(设计)
题目:
大学生论坛系统的设计与开发
摘要
伴随着3G网络的发展,手机越来越普及并且成为最便捷的联接网络的终端。
消费者也越来越注重对各个平台的手机软件的社交体验。
而且开发者也越来越注重手机客户端的市场和推广。
对于如此便捷的环境,也应运产生了一批优秀的跨各种平台的社交软件。
在竞争激烈的手机市场中,android手机的操作系统在完胜诺基亚的塞班系统后,一跃成为全球用户量最大的只能手机平台之一。
而且android系统不但应用于智能手机,也在平板电脑市场中占有庞大的市场份额。
为了方便校园中信息的实时发布,为了同学们方便沟通交流,为了锻炼自身能力,我开发了一款专门为学生实用的android的论坛客户端,该系统采用C/S架构。
可以让学生方便的接受发布者发布的信息,并且方便用户之间的沟通。
因为软件专门为学生量身定做,所以受众就是同校学生或者同城学生。
校园可以在系统在发布实时信息(如毕业生廉价处理课本,生活用品,组团旅游等),让志同道合的同志们都的看到,并且做出响应。
打造一款大学生在校生活的精品软件。
系统基于android系统开发,采用java做服务器后台,并且可以方便的扩展开发ios客户端。
在网络发展成熟的今天,灵活实时的保证了数据的统一。
对于大学生们来说,既扩大不过分暴漏出自己的交际圈,又开阔了自己的视野,为大学生活提供了方便。
希望这一套系统可以的校园中应用起来,希望这款软件可以活在同学们的手掌里。
采用java技术设计和实现服务器,用android实现客户端,保证软件良好运行。
简要介绍了java三大框架开发(struts+spring+hibernate)的技术特点和数据库技术,随后简要的概述android的开发要点,并且简要的讲一下ios的开发扩展,在后台数据管理方便用到jsp技术。
并且构建一个C/S模式的论坛系统,并对该系统进行需求分析,总体设计,详细设计,编码与测试。
并为后台数据管理做一个简单的分析。
关键词:
论坛系统;JAVAEE;ANDROID
Abstract
Withthedevelopmentof3Gnetworks,mobilephonesbecomemoreandmorepopularandthemostconvenientconnectionnetworkterminals.Consumersareincreasinglyfocusingonmobilesoftwareforeachplatformsocialexperience.Anddevelopersareincreasinglyfocusingonmobileclient'smarketingandpromotion.Forsuchaconvenientenvironment,butalsoproducedanumberofoutstandingshouldbetransportedacrossthevariousplatformsofsocialsoftware.Inthehighlycompetitivemobilephonemarket,androidmobilephoneoperatingsysteminthewinoverNokia'sSymbiansystem,becametheworld'slargestuserofonlyonemobileplatform.Andandroidsystemisnotonlyusedinsmartphones,tabletPCmarketalsooccupiesalargemarketshare.
Inordertofacilitatereal-timeinformationoncampuspublication,inordertofacilitatecommunicationbetweenthestudents,inordertoexercisetheirowncapacity,Idevelopedadedicatedforumforstudentpracticalandroidclient,thesystemusesC/Sstructure.Allowsstudentstoeasilyacceptthepublisherspublishinformation,andtofacilitatecommunicationbetweenusers.Becausethesoftwaretailoredspecificallyforstudents,sotheaudienceisthesameschoolstudentorstudentcity.Campuscanpublishreal-timeinformationsystem(suchaslow-costprocessinggraduatetextbooks,supplies,grouptravel,etc.),sothatlike-mindedcomradesaretoseeandrespond.Studentsintheschooloflifetobuildaboutiquesoftware.
Basedontheabovedescription,thepresentsystemisbasedonandroidsystemdevelopment,usingjavatodoserverdaemon,andcandevelopiosclient.Today,thenetworkmature,flexiblereal-timedatatoensuretheunity.Forcollegestudentswhoareviolent,butpointsbothtoexpandtheirsocialcircleleaked,butalsobroadentheirhorizons,makelifeeasierfortheuniversity.
Hopethatthissystemcanbesetuponcampusintheapplication,thesoftwarecanliveinhopethatthestudentsofthepalm.
Thispaperdescribesthedesignandimplementationtechniqueswithjavaserverdaemonwithandroidachievetheclient,ensurethatthesoftwarerunningwell.Brieflydescribesthreeframeworksjavadevelopment(struts+spring+hibernate)thetechnicalcharacteristicsanddatabasetechnology,followedbyabriefoverviewofthemainpointsandroiddevelopment,andbrieflytalkaboutthedevelopmentofextensionsiosinthebackgroundjsptechnologyusedtofacilitatedatamanagement.AndbuildaC/Smodeforumsystem,andthesystemneedsanalysis,design,detaileddesign,codingandtesting.Anddatamanagementforthebackgroundtodoasimpleanalysis.
Keywords:
forumsystem;JAVAEE;ANDROID
1绪论
1.1选题背景
在互联网高度发展的今天,大学的校园里虽然人满为患,但是同学之间的交流还是机会不多。
虽然大学校园里会时不时的举办一些活动,但是这不是对每一个都是一个机会。
为了增强同学们之间的交流,增加校园的亲和力,本系统为大学生们量身定做,方便校园的交流,保证信息在用户中快速辐射。
在网络发展成熟的今天,同学们的手机中必备的软件中也不乏社交类的,比如QQ,微信,微博,人人等等,但是这些软件的主题不是针对学生。
在加上现在android系统的手机如此普遍,基本上每个学生手里都有一台,同学们在同类人的社区里缓解压力是最有效的。
而且市场不会为学生开发这样一款针对性这么强的软件。
但是我们在学校学习了知识,自己为自己开发,方便自己!
所以选择论坛客户端作为设计题目,有助于改善同学们的心理环境和生活环境,推动同学们的素质发展。
并要求学生在开发过程中自学有关开发技术,对日后工作或继续研究都有着重要的意义。
1.2C/S架构简介
客户端和服务器架构。
它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向。
C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快。
具体表现在以下两点:
(1)应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,也称为应用服务器。
一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。
在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。
在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。
1.3JSP技术简介
JSP(JavaServerPages)是一种基于内置Java代码的、用于创建动态内容的脚本语言,它天然地具备Java技术的跨平台特性,从而在广泛的基于网络的应用中迅速得到应用,成为当前软件领域最热门的技术之一。
JSP技术设计多种软件技术和标准,诸如Java、HTML、数据库等,并且广泛应用于动态网站的建设中。
1.4MVC框架简介
M(Model,模型)、V(view,视图)、C(controller,控制器)。
是XeroxPARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用。
最近几年被推荐位Oracle旗下Sun公司JavaEE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP开发者的欢迎。
MVC设计模式把程序的输入、处理和输出分开,使各个部件处理自己的任务。
使程序有较高的重用性和适用性,并且有着较低的生命周期成本,有利于软件工程化管理并具备较高的可维护性。
1.5Struts+Spring+Hibernate框架简介
Struts只是一个MVC框架(Framework),用于快速开发JavaWeb应用。
Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(CustomTag)。
但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。
Spring是一个轻型容器(light-weightcontainer),其核心是Bean工厂(BeanFactory),用以构造我们所需要的M(Model)。
在此基础之上,Spring提供了AOP(Aspect-OrientedProgramming,面向层面的编程)的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对Bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;WebMVC和SpringWeb提供了JavaWeb应用的框架或与其他流行的Web框架进行集成。
就是说可将两者一起使用,达到将两者自身的特点进行互补。
Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通Java对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中)。
它解放了您,使您可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。
1.6数据库技术简介
数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。
数据库技术研究和结局了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余,实现数据共享、保障数据安全以及高效得检索和处理数据。
SQL:
StructuredQueryLanguage(结构化查询语言),是一种数据库查询和程序设计语言,可以用于存储数据,查询、更新管理关系数据库系统。
嵌入到Java代码中实现对数据库的操作。
1.7android技术简介
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。
Android构建在Linux内核上,利用linux完成其内存管理、进程管理、网络和其他操作系统服务工作。
linux内核层上面的一层中包含了Android的本机库。
这些共享库都是用C或C++语言编译的,并且针对电话使用的特定硬件架构进行了编译,并已由手机制造商预先安装到手机中。
1.8IOS技术简介
IOS用的开发语言是Object-C开发工具是X-Code操作系统是Mac
Object-C:
本来是没有垃圾回收机制的语言,也就是要让程序员来控制申请和释放内存的。
但是苹果做了很多的工作。
现在有个叫做ARC的技术能够让程序员写的程序几乎不用去管理内存了。
跟JAVA,CSharp那些一样了。
所以如果只是做一般的APP开发很容易学懂和上手。
也有很多先进的技术比如动态扩展类了(跟JS的prototype一样),block(匿名函数,让异步操作更简单)
开发框架:
真个平台对MCV做的已经很完善了,所以貌似没有什么很有名的开发框架。
但是各种库很多。
X-Code:
一个集成的开发环境。
里面包含了界面设计,代码编写,编译,运行,事件绑定,在设备上运行APP,签名,发布APP到苹果商店。
都是很容易使用。
2需求分析与系统设计
2.1需求分析
2.1.1功能需求
功能需求分析是整个软件工程中的一个最关键的过程。
主要任务是根据用户需求和运行条件,确定系统将实现的功能。
经过需求分析,本系统由客户端,后台和服务器三部分组成。
由服务器为客户端提供统一的接口,数据由服务器统一下发,由客户端显示。
后台来协调整个系统平衡。
三个不封分工明确,共同完成本系统的业务流程。
具体需求如下:
客户端:
(1)用户注册、登录、修改个人信息;
(2)查看论坛列表,分类查看,查看帖子详情,查看帖子评论列表;
(3)对某帖子评论;
(4)发表帖子。
后台:
(1)添加分类,查看分类信息,管理分类信息(修改、删除);
(2)查看某段时间内接口成功响应耗时,以及多个接口耗时对比图;
(3)查看各个分类下的详细数据信息。
服务器:
(1)规定所有接口数据的下发。
(2)访问数据压力。
必要时用缓存来分担数据库压力。
2.1.2性能需求
(1)系统安全性:
业务逻辑不对外暴露,保证系统安全。
(2)系统稳定性:
保证系统运行稳定,对可能出现的异常加以处理。
(3)界面友好性:
提供简易实用的用户界面。
(4)数据安全性:
用户身份验证,管理员后台管理数据库,保证数据安全。
2.1.3开发环境
(1)操作系统:
MicrosoftWindows7,Android
(2)服务器:
Apache-Tomcat-6.0.32
(3)数据库:
MySQL
(4)数据库设计:
NavicatforMySQL
(5)开发软件:
MyEclipse10jdk1.6,androidsdk,adt
(6)浏览器:
google浏览器
2.1.4运行环境
本系统的运行主要分三个部分,客户端目前只开发了android版本,ios版本做可扩展考虑;服务器运行在tomcat下,tomcat可以运行在windows下也可以运行在linux,后台数据管理系统运行在windows系统下。
服务器端跨平台性很强。
2.2基本设计原则
(1)系统必须具备可靠性。
保证用户数据的正确性和实时性。
建立与用户之间良好的信赖关系,是软件的生存之道。
(2)系统必须具备健壮性。
系统必须能够判断输入信息是否符合规范要求。
对于敏感词和不良词汇不可
出现在论坛中。
(3)系统必须具备可测试性。
系统必须能经过输入数据的测试,保证系统得到全面的检验。
(4)系统必须具备可扩展性。
在系统需要变更业务规则或更新功能时候,通过升级接口来实现。
接口升级兼容客户端的各个版本。
整个系统具有良好的可扩展性。
2.3业务流程设计
2.3.1客户端业务流程设计
客户端主要完成用户注册、登录、查看帖子信息和发布信息的工作:
(1)用户身份验证:
注册会员,已注册的用户可以登录和切换用户;
(2)登录用户可以查看个人信息,修改个人资料。
(3)登录用户可以查看论坛中帖子信息,并进行互动。
(4)登录用户可以发布信息。
客户端业务流程如图:
图2-1客户端业务流程图
2.3.2后台业务流程设计
后台帮助管理员完成对整个系统的管理工作:
(1)分类管理:
添加分类信息,查看分类信息,修改、删除分类信息;
(2)对所有的帖子都有管理权限,有所有帖子和评论的删除权限;
(3)监控各个接口的运行情况;
后台业务流程图:
图2-2后台业务流程图
2.4数据库设计
数据库在整个系统中处于非常重要的位置,所有的功能脱离了数据库都无法实现,数据库的好坏直接决定着系统的数据安全和运行效率。
根据功能需求,支持系统运行的数据库需要满足如下特点:
(1)由于需要用户注册和登录,所以需要一个用户表用来存储会员信息;
(2)帖子是论坛中的主题,所以需要一个帖子表来存储帖子信息;
(3)评论依附帖子存在,是用户互动的关键,所以需要一个表来存储评论;
2.4.1概念数据模型设计
经过分析得出E-R图(实体-关系图)如下:
图2-3概念数据模型设计E=R图
2.4.2逻辑数据模型设计
将E-R图转化为关系数据模式:
用户(用户id,用户名,密码,电话,手机,地址,E-mail,性别,帖子数);
帖子表(帖子id,fid,作者id,帖子title,帖子content,日期,状态,评论数);
评论表(评论id,帖子id,作者id,评论内容,评论时间,评论状态);
2.4.3物理数据模型设计
在NavicatForMySQL软件中设计物理数据模型:
图2-4物理数据模型设计
2.5系统结构设计
2.5.1页面结构设计
后台分三部分:
上部,左部,主体部分。
(1)上部显示后台主页标题
(2)左部显示管理员可做的操作,例如添加、查看分类,查看数据等。
(3)主体部分显示管理员点击左部以后回馈的页面,例如显示分类,并可删除、修改分类,显示数据,显示接口详细信息等。
2.5.2代码结构设计
本系统采用服务器客户端架构,服务器端采用SSH三大框架。
(1)客户端负责显示数据。
(2)服务器端action层主要负责客服端的跳转,指向正确的业务层。
(3)服务器端业务逻辑层Service层,主要处理系统的业务逻辑,并使表示层与数据访问层分离。
(4)数据访问层指的是DAO层,该层主要完成对象-关系映射的建立,通过这个映射和访问业务对象即可实现对数据库的访问,提高了开发效率。
(5)数据层指数据库。
代码结构示意图如下:
图2-5代码结构示意图
代码执行流程说明:
客户端发出base64加密的请求,服务器接受到请求后,先做base64解密操作,解密成功后交给对应action处理,action调用对应的业务层(service),业务层调用相应的数据层(dao)来保存和读取数据。
整个框架中只有dao层读写数据库的权限。
这样层次分明的处理数据,这样做不仅高效,而且程序的可读性很强。
如此将代码分层,各层的分工明确,降低了各个模块间的耦合性,使系统便于维护和升级。
3系统详细设计
3.1数据库实现
在4.2节中已经对数据库做出了设计,只需根据设计实现数据库。
进入cmd,输入mysql–uroot–p敲回车后输入密码,进入到MySQLmonitor下,如图:
图3-1建立数据库
在光标处输入代码建立数据库。
具体代码参见附录A。
3.2服务器设计
集成SSH框架的系统从职责上分为四层:
表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。
具体做法是:
用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。
3.2.1服务器端工具
工具和过滤器:
(1)处理中文编码的过滤器。
默认使用UTF