赵江
摘要:梳理了高校图书馆在给毕业生办理学位论文提交手续的实际需求,分析了论文提交流程,以软件工程思想和理论为指导,运用现代化的软件开发方法和理念,在Java EE软件平台上结合成熟的Spring MVC框架,给出了基于Web方式的學位论文提交系统的构建和实现过程。
关键词:学位论文提交系统;Java EE;Spring MVC
中图分类号:G24 文献标识码:A 文章编号:1009-3044(2018)32-0085-04
1 引言
学位论文是高校和科研单位的大学生和研究生申请学位时提交给答辩委员会的论文,汇集了当前学科领域的热点问题、学术前沿和发展方向,代表学生的专业方向和研究成果,具有较高的学术价值。如何搜集、管理和利用学位论文一直是各大高校的热门话题。
目前毕业生学位论文提交审核工作一般由图书馆具体负责。图书馆累积历年的学位论文成为一种特色馆藏资源,然后为学生们学习和科研提供查询、阅读和参考服务。为了高效快捷地开展电子版论文提交工作和做好后续的服务,考察了目前流行的学位论文提交系统,如清华同方TPI系统、德赛系统等,吸收了其中优秀的设计思路和功能模块,根据前几年给学生办理论文提交手续的经验,增加了一些新功能,结合目前主流的软件设计理念和Java EE开发技术,提出了一种改进方案,并完成了系统的构建和上线运行,从去年开始已经正式使用。
2 系统的需求分析
需求分析是设计软件系统的首要任务,主要是划分系统的功能和确定职责界限。系统设计者经过充分的调研和分析,理解和把握系统的功能、性能、可靠性等要求,用专业的图表和术语描述出来的过程,确定软件必须实现哪些功能,一般分为功能性需求、非功能性需求与设计约束三个方面。
2.1 功能性需求
功能性需求是软件设计要实现的主要功能。学位论文提交系统有如下主要功能:毕业生登录系统,填写论文相关的信息,提交电子版论文,查看审核进度,重新提交论文;论文核验员查看毕业生提交的论文列表,审核带核验的论文,提交核验意见等;超级管理员可以导入毕业生数据,查询学生和论文信息,重置密码等。
下面按照用户类型介绍系统需求,以毕业生用户为例,如下图1所示。
2.2 非功能性需求
非功能性需求主要包括对软件界面风格、最大并发访问量、系统安全性、稳定性和扩展性等方面的要求,还有网络安全,权限和审计,数据与备份,运行平台和运行环境等的要求。软件设计过程要遵循的软件工程的标准、规范等要求。本系统中设计支持最大并发访问量为1000。毕业生提交的论文是非常重要的数据,必须保证数据的完整性和安全性。因此系统专门设计了方案:首先系统提供了后台备份的功能,备份文件可以下载到客户端本地保存。服务器硬盘做了RAID5磁盘阵列。确保即使模块硬盘出现物理损坏,里面的数据也毫无损失。
2.3 设计约束
为了保证软件质量,指定如下设计约束:设计阶段统一使用统一建模语言UML来描述系统模型,开发中采用JaveEE平台和Spring+Hibernate框架,使用MySQL数据库系统完成数据管理功能,以Myeclipse为开发工具,系统运行Linux环境中。
该系统主要涉及的用户有图书馆系统管理员和学生用户,系统管理员包括超级管理员和核验员,学生包括毕业生和非毕业生。管理的对象主要是学生的信息和提交的论文信息和文档。
2.4 系统整体流程和功能框图
首先学位论文提交系统的管理员登录系统,导入本届要毕业生的名单和相关信息,然后发布通知系统的开放时间和学生办理流程;毕业生凭账号和口令登录论文提交系统,然后修改默认的口令,进入论文提交页面,填写论文的题目、摘要、关键字、目录等信息,再上传电子版论文并提交,等待审核员核验论文的完整性,并且可以随时查看办理进度和核验结果,此时论文自动锁定不能修改,如果核验结果通过则手续办理完毕,如果不通过则查看不通过原因再进行修改和重新上传,直到核验通过;审核员登录系统查看毕业生提交的学位论文列表,细缆论文内容并提交核验结果,如果发现问题,填写“不通过”并说明原因,如没有问题填写“通过”。还可以解锁学生的修改功能。超级管理员负责各级账号的维护,重置口令,备份数据,导入毕业生名单等。图2展示了系统的功能模块。
3 系统模型与设计
在分析和明确了系统的需求和功能,并且描述出了系统的运行流程,可以建立模型和进行系统设计。
3.1 系统建模
建模过程使用UML工具描述模型,要结合系统的需求分析,将需求的描述转化成UML图。UML是一种面向对象软件的标准化建模语言,特点是简单统一,动静结合,能够描述软件设计中的动态和静态信息,可以在全设计周期中使用,已成为软件开发领域中可视化建模语言的标准。
通过分析系统需求本文从面向对象的设计角度构建了系统的主要类:毕业生类Student,论文类Thesis,附件类Attachment和核验员类Checker,每个类包含两部分内容:属性和行为,并用UML语言中类图形式予以描述,如下图所示。类图是通过显示本系统中的类和类之间的关系来描述面向对象系统的结构。类图也显示了约束和类的属性。整个系统模型的描述还用到了包图、界面图以及动态模型中的顺序图、状态图和活动图。
3.2 数据库设计
数据库技术是目前比较成熟的主流数据管理和存储方案,其性能、安全性、成熟度等指标均优于文件管理等其他方案。常用的大型数据库软件系统有Mysql 、Oracle、SQLServer等,这几种系统的共同点是都是现在主流的网络数据库。MySQL最大的特色就是自由选择存储引擎,每个表都是一个文件,都可以选择合适的存储引擎。常见的引擎有 InnoDB、MyISAM、NDBCluster等考虑到投入成本和数据规模,以及使用的易用性,本系统使用Mysql5.6版本。数据库包含数据表对象。数据表是由表名、表中的字段和表的记录三个部分组成的。设计数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型及宽度,并将这些数据输入到计算机当中。下图中列出了本系统中最重要的表——论文表thesis的结构。
4 系统实现
4.1 用户界面UI实现
UI设计指的是用户界面设计,即User Interface Design,通常包括平面设计,网页設计以及移动界面设计。其中,网页设计和移动设计,需要学习Web界面设计、PC客户端软件界面设计、HTML5语言、CSS样式表、布局技巧与浏览器兼容等前端技术。本系统的UI设计主要采用EasyUI前端框架,结合HTML、CSS、JAVASCRIPT实现特定界面效果,使得用户界面更加大气美观。在开发学位论文提交系统时,设计后台工作界面时分为这几个部分,上部是logo、标题,左部是导航菜单,下部是版权信息,中间是工作区域。在Easyui中我们可以使用Layout进行布局把这个界面效果实现出来,如下图所示:
4.2 系统架构与模块实现
Java EE平台推出了很多框架来提高开发效率,最基本的思想还是通过分层来减少模块之间的耦合性。本文遵循MVC架构模式,将整个系统的划分为模型层、视图层和控制层。此外进行了扩展,增加了DAO层,如下图所示。其主要职责是将JDBC、Hibernate访问数据库的代码封装起来,让这些代码不会在其它层出现或者暴露出来给其他层。模型层是整个系统的核心,也是最具有价值的一层,该层封装应用程序的业务逻辑,建立模型对象,处理数据,如完成毕业生用户登录系统、填写论文信息、上传电子版论文等业务功能。在业务处理过程中会访问原始数据或产生新数据,DAO层提供的服务能很好地帮助业务层完成数据处理。 DAO层不处理业务逻辑,只为业务层提供辅助服务,完成获取原始数据或持久层数据等操作。系统实施过程中,引入Spring、SpringMVC和Hibernate框架来提高开发效率。Spring用来管理所有的对象及其生命周期,SpringMVC完成MVC模式各层的实现,Hibernate管理数据的持久化。
系统中围绕用户毕业生用户、核验员用户和管理员用户对象分别定义了StudentController、CheckerController、AdministratorController控制器。控制器负责上传下达,接受到用户通过浏览器发来的请求转发,匹配相应的处理方法,处理方法中再调用对应的Service对象,如StudentService、CheckerService、AdministratorService。Service对象是业务逻辑层的对象,负责处理各类用户的业务功能,对于获取和保存数据还需要调用DAO对象,与数据库交互的工作由DAO负责,具体实施过程再由Hibernate框架落实。执行完毕之后,将执行结果再逐层返回,控制器接收到结果,再将数据传递给视图层,与指定的jsp页面进行装配和渲染,最后将页面返回给浏览器,呈现在用户面前。在设计时遵循软件工程至顶向下、层层细化的设计理念,因此整体上看这是一个层次分明、分工明确、有序运行的系统。
下面给出了毕业生用户对应的控制器代码,在控制器里声明2个对象:studentService和systemService。因为遵循面向接口编程的思路以降低代码的耦合性,所以类里实际上声明的是接口对象,再由Spring容器统一进行注入实际对象。studentService对象负责实现业务逻辑功能,systemService对象负责实现系统逻辑功能。另外代码中演示了生成毕业生信息列表和论文信息列表。
5 总结和后续工作
学位论文提交系统设计和开发过程中以软件工程的理论为指导,运行现代化的软件开发方法和理念,采用Java EE软件平台和成熟的Spring MVC框架,完成了系统的构建和实现。投入实际应用后,经历了试运行和正式上线运行,通过给两届毕业生办理学位论文的提交核验工作的磨合,系统整体上运行稳定,效果良好,为推动图书馆信息建设工作发挥了积极作用。后续需要改进的地方在于多系统的融合,与学校的统一身份认证系统(在建中)、教务系统等对接,实现信息的互通共享,解决信息孤岛问题。
参考文献:
[1] 余久久.软件工程简明教程[M].北京:清华大学出版社,2015(5).
[2] 韩路彪.看透Spring MVC[M]. 北京:机械工业出版社,2015.
[3] 胡智慧,朱斐.基于B/S架构的培训部课程管理系统的设计与实现[J].软件,2015(8).
[4] 庞敏.基于UML的电子商务系统设计[J].电子设计工程,2017(5).
[5] 宗燕燕.基于微信公众平台的图书馆特色数据库建设——以实用单元电路数据库为例[J].图书馆工作与研究,2016(9).
【通联编辑:王力】