APP下载

基于BUI和SSH框架的学工系统的分析与设计①

2017-11-22李宏志胡娜娜

关键词:学工视图组件

李宏志 胡娜娜

(滁州学院 信息学院,安徽 滁州 239000)

基于BUI和SSH框架的学工系统的分析与设计①

李宏志 胡娜娜

(滁州学院 信息学院,安徽 滁州 239000)

针对某高校学工管理系统具体需求,通过对学工管理系统的特点和业务功能进行了分析,提出了基于BUI和SSH分层企业级应用系统架构方案,并应用该架构方案对学工管理系统进行了分析和设计,并给出了关键功能的设计.基于SSH整合框架的多层应用系统架构能有效的提高系统的稳定性、扩展性和可维护性,通过对系统的测试表明应用该设计方案能完全达到相关的指标要求.

BUI框架,学工管理系统,SSH框架,架构设计

0 引言

某地方应用型本科院校是集教学科研、技术培训、项目开发以及企业技术支持为一体的高等应用型本科院校[1].随着高等教育的发展,学校办学规模的不断扩大,最初的办公管理系统存在管理复杂,业务效率低下等弊端难以应对学校各项事业的发展.随着计算机技术的普及和对办公自动化要求的不断提高,对学校内部的日常办公、信息管理、数据共享、移动办公、动态分析等功能提出了更高的要求.

针对该系统的实际需求,考虑到系统的扩展性和可维护性,借鉴其他类似系统的研发经验,使用轻量级的SSH框架作为系统的总体设计框架,解决复杂业务模型的分层解耦的问题.由于普通Web页面存在表现力不足,缺乏成熟的页面组件,开发难度大等诸多问题,系统选用BUI框架作为前端的界面框架,BUI框架是一款由阿里巴巴集团技术团队研发并开源的Web前端框架,该框架具有视觉表现力强、使用难度低、组件丰富、浏览器兼容性好、易于维护等特点[2].

根据对学生管理工作的业务流程的调研以及对涉及到的相关技术的分析, 本文阐述了一个基于BUI和SSH架构的学工管理系统的设计与实现,研究了BUI框架与SSH结合之后的系统的分层架构和各模块之间的数据通信和交互.

1 主要技术

1.1 系统的架构设计

图1 系统的分层架构设计

本系统采用B/S模式,系统服务端采用SSH分层架构设计,前端的页面采用BUI框架设计用于实现用户交互[3].如图1所示按照MVC的设计模式将系统划分为五层:视图层、控制器层、业务逻辑层、数据接口层、数据持久化层.系统的视图层主要由BUI框架实现,包括系统界面的渲染和页面组件的生成以及与服务端的数据交互.控制器层由Struts2框架实现,通过Struts.xml文件配置用于处理用户请求的Action,控制器负责接收来自视图层的用户请求,根据用户请求选择调用业务逻辑层的逻辑组件,业务逻辑组件负责处理相关的业务数据,并将数据返回给对应的视图层.Spring框架负责管理系统业务逻辑组件,业务逻辑组件以JavaBean的形式配置在Spring容器中,除此之外Spring还负责提供事物管理,缓冲池等功能以保证系统数据的完整性.数据持久层由Hibernate实现,作为系统的ORM框架负责实现Java对象与关系数据库之间的映射,对象属性与数据表的列属性之间的对应关系配置在 *.orm.xml文件中.采用分层结构能够有效的降低系统各模块的之间的耦合度,采用组件式的开发方式将业务逻辑代码划分成各自独立的组件,托管于Spring容器中,这种分层的架构设计使得源代码易于理解,保证系统的维护性和扩展性.

1.2 BUI框架与服务端的数据通信

系统前后台的数据通信是BUI框架与SSH整合的一个关键问题,处于视图层中的BUI框架利用其自身的Ajax特性可直接通过异步通信的方式来获取服务端的数据处理用户的请求.

BUI框架支持使用JSON格式进行前后端的数据通信,早期的Ajax使用XML格式作为数据通信的基本格式,随着JSON的广泛应用其技术优点逐渐凸显[5].JSON具有传输数据量小,数据格式便于解析等优点,因此本系统采用JSON作为前后台数据通信的基本格式.

图2 前后端数据交互流程图

使用JSON格式进行前后端通信的基本流程如下:如图2所示,前端Ajax将用户的数据请求指向控制层的Action方法中,系统运行时会自动将用户请求转发到对应的操作方法中.在Action中调用逻辑处理类得到的执行结果之后需要将结果转换为JSON格式,BUI框架获取来自服务端的数据后,解析JSON格式数据,并将解析后的数据显示到用户界面.

前台利用Ajax请求后台JSON格式数据并显示到页面的表格中的主要代码如.

BUI.use('common/main',function(){//获取json

MYM.getJSON('XXX/hello.action',function(data){

grid = new Grid.SimpleGrid({

render : '#grid', //显示Grid到此处

width : 950, //设置宽度

columns : [

{ title:'学生编号',dataIndex:'id',width:80}, //设置数据集的对应关系

{ title:'学生姓名',dataIndex:'name',width:100},

{ title:'入学时间',

dataIndex:'day',

width:100,

renderer:Grid.Format.dateRenderer},

{title:'学生家庭住址',dataIndex:'address',width:300}]}).

grid.render();

grid.showData(data);}).}).

2 系统设计与分析

2.1 系统功能设计

图3 学工管理系统功能模块图

高校学工管理系统包括:学生信息管理、奖助学金管理、贫困生管理、勤工助学管理、毕业离校管理等基本管理模块.要求涵盖完整的学生工作管理部门业务,协助高校规范学生工作管理部门的工作流程,实现在线业务处理,为学生处老师、学生、各院系老师和辅导员等提供统一的网上办公服务平台,系统的总体功能模块设计如图3所示.

系统的角色权限主要分为两类:学工处管理人员和在校大学生.学工处管理人员主要职责包括两部分:第一部分,在线发布如发布功如发布奖学金申报,勤工助学岗位、毕业离校流程等与学生工作相关的信息;第二部分在于相关业务流程的审核审批,如审批学生的勤工助学岗位申请、学生的毕业离校流程、奖助学金申请以及学生基本信息的变更等.学生角色的权限主要包括学生基本信息的录入和修改,相关学工项目的申请与查看,如勤工助学岗位的在线申请,奖助学金的申请等.系统用例图如图4,图5所示.

图4 学工处工作人员用例图

2.2 数据库分析与设计

数据库设计直接影响系统的设计与开发,因此数据库设计是系统设计的重点之一.选用Mysql作为系统的基础数据库,借助Powerdesigner完成数据库的实体模型的设计.

数据库模型的设计思路主要应用了软件模型模块化设计的思想[6].通过对系统所涉及的管理对象进行抽象建立数据库的概念模型,分离出不同的数据表,通过数据表组织和管理系统中的信息.以学工处工作人员为对象组成的实体关系如图6所示.以勤工助学岗位信息为例进行说明.勤工助学岗位表包括编号、岗位名称、发布日期、岗位所属院系、岗位申请截止日期、申请条件、主要工作内容、招聘人数、薪酬以及岗位当前所处的状态.本文设计了表1作为系统的勤工助学岗位表.

图5 学生用例图

图6 系统E-R图示例

其他的表诸如学生基本信息表、奖助学金信息表、贫困生基本信息表等与表1类似,这里就不再赘述了.

2.3 关键功能设计

在学工管理系统中,由于涉及到用户角色较多,不同角色用户涉及的管理模块众多,因此对于用户的登录权限的控制,系统在设计时使用Struts2的拦截器机制来控制不同用户的操作权限.用户在客户端发出登录请求时,系统在执行Action的execute方法之前,Struts2会首先执行struts.xml文件中引用的拦截器,在执行完所有引用的拦截器的intercept()方法之后才真正开始执行Action定义的execute方法.

框架中利用Struts2的拦截器进行权限控制的主要代码如下.

public class LoginInterceptor implements interceptor{

public String intercept(ActionInvocation invocat) throws Exception{

HttpSession session=request.getSession();

String privilege=session.getAttribute(“Privilege”) //用户权限字段

String return_view =“”;

if(privilege == AUTHOR){

…. //相关操作权限设置

return_view = “authorview”;}

if(privilege == STU){

…..//相关权限设置

return_view = “studentview”;}

invocate.invoke();

return return_view;}}.

在Struts2中拦截器作为一个基本插件配置到对应的Action中,在struts.xml文件中基本的配置方法如下例所示:

……………………………………………….

………………………………………………. //其他与Action相关的配置

.

表1 勤工助学岗位信息表

3 系统的实现

3.1 视图层的实现

系统的视图层采用JSP+BUI框架来实现,为了使用BUI框架编码开发,将BUI框架的相关发布包:dpl-min.css、bui-min.css、main.css、bui-min.js、config-min.js等.在BUI框架下,窗口、表单、表格和菜单都是直接可以复用的组件,在开发的时候只需直接使用这些组件,就可以创建出富有表现力的用户界面,相关文件的引入代码如下所示:

.

3.2 控制层的实现

编写控制层类LoginAction.java,StudentHelpAction.java和scholarshipAction.java等.这些控制类用于接收来自视图层的HTTP请求,处理请求中传送过来的数据,并调用相关的业务逻辑组件完成对实体类的增删改查,并将处理的结果返回给视图层.在Struts.xml文件中配置Action,由于BUI框架与控制器的交互的数据格式选用JSON,在配置Action的返回类型时应将result的type设置为JSON,使其返回给视图层的是JSON格式的字符串.

3.3 业务逻辑层的实现

系统在业务逻辑层使用的是面向接口的编程方式,而非是直接调用某个具体的实现类,首先编写业务逻辑相关的接口,然后再编写对应的实体类来实现业务逻辑组件,通过接口调用的方式来实现业务逻辑层的解耦[7].在系统的业务逻辑层使用Spring框架来管理业务逻辑实体类.因业务逻辑在各个模块中实现思路基本是一致的,所以本文就已系统的勤工助学管理模块为例来介绍.编写业务逻辑层接口StudentHelpService.java,在接口中定义关于实体类的增删改查4种操作,然后定义StudentHelpServiceImple.java 来实现接口中定义的方法,最后将StudentHelpServiceImple类托管于Spring框架中,通过Spring工厂来实现业务逻辑组件的调用.

3.4 数据持久层的实现

根据系统的数据模型编写对应的实体类Student.java、StudentHelp.java、Schoolarship.java等及实体关系映射文件Student.orm.xml、StudentHelp.orm.xml和Schoolarship.orm.xml.具体的数据库连接和释放等操作有Hibernate 框架和数据库连接池来实现.具体来说对于学生信息实体Student类,首先定义操作Student类的接口StudentDao,而具体的操作由StudentDaoImple来实现.

4 系统的测试

4.1 测试环境的配置

测试环境的配置按照下面基本步骤进行:(1) 基础软件的安装:JDK 和MyEclipse10.2、Tomcat7.5以及MySql5.6;(2) 将打包好的项目文件StuWorkOA.war拷贝到Tomcat 服务器下面的Webapps目录下面;(3) 启动Tomcat服务器,访问系统的登录页面,完成注册及登录之后进入系统的主操作界面.

4.2 系统的功能测试

以用户的信息管理模块为例进行测试,采用等价类划分法对模块进行测试,由于测试项较多只列出典型的测试选项.如表2所示.

表2 系统用户管理模块测试表

经过不断测试,系统的用户管理模块工作正常,对于不同的用户输入响应结果与预期的结果保持一致.

5 结束语

本文首先对学工管理系统的特点进行了分析与研究,提出了基于BUI前端框架、Struts2、Spring、Hibernate整合框架的设计方案,设计和实现了一套完整的学工管理系统.经实践证明,该架构方案能够很好的实现各功能模块的解耦与分离,使系统具有很好的稳定性和扩展性,基本达到了系统的预期的设计目标.由于系统的基础设计方案的可扩展性和灵活性较好,因此对于后续的开发者而言能够根据不同院校和机构的需求定制和修改系统.

[1] 邱丽丽,陆源. 基于ExtJS和SSH2架构的网上报销系统设计与实现[J]. 计算机应用与软件,2016,(9):76-79.

[2] 李雷孝,刘晓军,刘利民,等. 基于SSH整合框架的科研项目管理系统的设计与实现[J]. 内蒙古农业大学学报:自然科学版,2012,(1):210-214.

[3] 刘静,刑藏菊,龚凡蕾. 基于SSH的高校MBA管理系统设计与实现[J]. 计算机应用与软件,2011,(11):261-263.

[4] 董萍. 基于SSH框架的学工管理系统的设计与实现[J]. 周口师范学院学报,2015,(2):111-115.

[5] 陈遥,李珊,赵英男. 基于SSH+DWR的Web开发框架研究与应用[J]. 南京信息工程大学学报:自然科学版,2010,(5):455-460.

[6] 张鹏伟,陈景霞,张文平,等.基于ExtJS和SSH的Web应用架构的研究与实现[J]. 陕西科技大学学报:自然科学版,2010,(6):111-115+123.

[7] 张建军,刘虎,倪芳英. 基于SSH与Highcharts整合架构的Web应用研究[J]. 计算机技术与发展,2013,(9):245-247.

DesignandImplementationofStudentManagementSystembasedonBUIandSSHFramework

LI Hong-zhi HU Na-na

(School of Computer and Information Engineering, Chuzhou University, Chuzhou 239000, China)

Through the analysis of the university student management system requirements, and the characteristics and functions of the student management system is analyzed.Analysis and put forward the BUI and SSH layered enterprise application system architecture. Based on the architecture can design and imply a student management system easily.The new architecturecan effectively improve the system scalabilityand maintainability. Finally ,the system was tested, and the results show that the system performance can reach the index requirements.

BUI framework,student management system, SSH framework, architecture design

2017-04-18

安徽省网络工程专业省级综合改革试点项目(2012zy073)资助

李宏志,E-mail:1071260932@qq.com.

TP315

A

1672-6634(2017)03-0093-07

猜你喜欢

学工视图组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
学工团队自省:解决校园文化冲突的有效途径研究
学工—教务联动育人管理模式探究
“教学+学工”协同育人机制的探索与实践
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图