刘一山,魏佳佳,邹锐标
(湖南农业大学 理学院,湖南 长沙 410128)
随着高校扩招,在校学生规模越来越大,而各高校实践教学硬件资源的增长远远落后于学生人数的增加,造成实践教学资源相对紧张。通过调查我们发现,在实验室资源紧张的同时,实验室的利用效率还有待提高。因此,开发一个基于Web的多功能的实验选修课程预约系统,以提高实验室的使用和管理效率,具有十分重要的意义。
以行政班为教学单元安排实验课程,学生在规定的时间、规定的地点,有规定的教师上规定的实验课程,这种传统的实验教学模式已成为实验教学改革的瓶颈。目前绝大多数高校的公共选修课只有理论课而没有实验课程,究其原因主要是因为目前的排课系统只能对以行政班为教学单元的必修实验课程进行安排,而对实验选修课程的安排十分困难[1-3]。为充分利用学校教学资源(师资、实验设备和场地),使实验教学有条不紊的进行,让学生有更多的动手实践的机会,开发一个面向全校学生的公共实验选修课程预约系统,对于弥补目前排课系统的不足,加强教务管理,进一步推进高校实验教学改革,促进学生动手能力的培养具有重要的现实意义[4]。
本系统的目的是将所有的实验室资源在系统中整合,在专业必修实验课排定之后,将所剩空暇时间段安排实验选修课,面向全校开放,学生不再以专业、班级为单位,而是根据自己的兴趣和时间自主预约实验选修课,从而使学生的空闲时间和实验室资源得到最大限度的利用。
系统可以在任何JavaEE主流Web容器上进行部署,可以使用所有Hibernate支持的数据库进行数据存储。对表现层代码进行多次优化,对IE内核和非IE内核的浏览器都支持。
本系统采用B/S结构(Browser/Server结构)设计,在这种结构下,用户工作界面通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。
系统基JavaEE平台开发,Java的跨平台性使得本系统可以在支持Java的任何平台上使用。系统使用了现今最流行的开源框架 Struts2、Hibernate、Spring。 Struts2是一个 MVC 框架,它提供了一个系统分层解决方案,提高了加载速度,保证了系统的易维护性和可扩展性。自带的数据校验、类型转换、标签库大大减少开发所需要编写的代码量。Hibernate是一个orm框架,它对数据库的访问进行了一个轻量级的封装,可以让程序员以面向对象的方式对数据进行存储,同时对不同数据库之间的差异进行了屏蔽,程序员不必针对某一具体数据库编程。Spring是一个容器管理框架,它负责对整个系统进行整合和管理,他有两个核心IOC和AOP。
系统共有5层,其中表现层使用的主要技术有JSP、CSS、JavaScript、AJAX等。 JSP技术是在传统的网页 HTML文件( *.htm, *.html)中插入 Java程序段(Scriptlet)和 JSP 标记(tag),从而形成 JSP文件(*.jsp)。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。XHTML(可扩展超文本置标语言),是一种置标语言,表现方式与HTML(超文本置标语言)类似,不过语法上更加严格。它是一个过渡技术,结合了XML的强大功能及HTML的简单特性,使网页具有很好的可扩展性、互用性和可携带性。JavaScript是一种基于对象和事件驱动并具有安全性能的脚本语言,解决了服务器端语言遗留的速度问题,增加了网页互动性,能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由CGI验证,并对有规律的重复的XHTML文段进行了简化,减少了下载时间,为用户提供了更流畅的浏览效果。
系统采用了分层的设计思想,如图1所示。将数据访问、数据校验、业务逻辑、页面跳转等代码抽取出来,形成独立的层次,实现逐层封装,避免了将所有实现代码放到一个jsp文件中的情况。这种设计思想增强了系统的扩展性,使得代码清晰易读,便于后期的维护。
图1 系统层次Fig.1 Layer of system
1)Model层:使用JavaBean对业务实体信息进行封装,通过orm框架Hibernate的关系映射使JavaBean与数据库中的表一一对应。将数据库中的关系转化为Java中的对象,在上层业务代码中只需操作Java对象,而不再需要关心数据库中表的字段和关系。
2)Dao(data access object)层:这一层主要封装对数据的访问,所有对数据的增加、删除、修改、查询的操作都会被封装为相应的接口方法,并对其一一实现。在进行数据库的连接上,使用了开源的连接池技术dbcp,当页面被频繁访问时,系统不必频繁地进行数据库连接,从而大大提高了系统的效率。
3)Service层:调用Dao层方法,将具体操作封装成对应的方法,供Control层调用。同时使用Spring框架的AOP(aspact-oriented programming)在方法的切面加上事务,利用事务的原子性保证操作的完整进行。
4)Control层:由于系统使用了Struts2框架,这一层的主体就是action类。系统收到请求后,由Struts2默认的拦截器对数据进行校验,并以Java的反射机制将数据注入到action中,在action中调用service层方法以完成业务逻辑,并将结果转发到jsp页面中进行展示。
5)表现层:使用jsp进行业务表现,为了使代码清晰易读,系统舍弃了传统的内嵌Java代码的逻辑方式,使用最新的JSTL(JSP Sta-ndard Tag Library)配合ognl完成内容的展示,而页面的样式布局和动作则由外部的CSS和JavaScript完成。
为了让系统更便捷的服务于用户,系统划分成了以下几个部分[5-7],系统组成如图2所示。
图2 系统功能模块Fig.2 Function module diagram of the system
1)安装模块:提供一个jsp页面,进行数据库和管理员信息的设置。系统的数据库信息和管理员信息并没有在代码中固定,而是配置在xml文件中。完成设置之后,系统会自动修改xml配置文件,无需修改代码,实现简单安装。
2)系统模块:主要实现了系统角色和权限的划分。系统共有3个角色,包括系统管理员、教师、学生。用户登录后,系统会根据用户角色给与相应的权限。在系统中注册的用户都为学生,教师用户由系统管理员创建,系统管理员则在安装模块设置。
3)课程预约模块:系统核心模块。系统管理员可以添加课程和实验班、查看预约情况、对已经达到预约人数的班级进行开课确认、对预约人数不足的班级进行合班或取消开课等。教师可以查看被指定的教学班级预约情况、查看学生信息、查看教学任务等。学生则可以查看可预约的课程信息、查看预约情况。
4)信息管理模块:系统管理员对实验室、教师、实验设备等教学资源进行管理,并实现对资源信息的增加、删除、查询、修改功能;对系统内注册的学生信息进行管理,可以按学院、专业、所选课程、课程成绩等进行查询。同时提供信息统计和报表打印功能。
5)教学管理模块:教师对每次上课的情况进行登记,并给予相应的成绩,学生可以对课程成绩进行查看。期末时,系统会综合学生上课情况按指定的规则给予最终的成绩。
系统的预约流程,如图3所示,方便快捷,且灵活度高,大大提升了高校实验室管理工作的效率和质量。
图3 预约流程Fig.3 Business process of reservation
以数学实验为例进行说明:
1)管理员开设数学实验选修课。课程由8个独立的实验组成,8个实验将在16周内完成。每个实验持续两周,将在实验室空闲时间段开设课程。
2)学生在系统中对实验课程进行预约。
3)预约人数达到要求,则确认开班。人数不足则由系统管理员决定合班或取消开课。
4)系统根据开班信息通知学生去上课,如果是合入其他教学班,则学生可以决定是否去上课。
5)系统根据学生上课情况给予相应成绩。
该实验选修课程预约系统的设计顺应高等院校实践教学改革的要求,能满足学生进行实验预约、老师进行管理等各个方面的需求,具有网络化、智能化、高性能、低维护、界面友好、操作简单、功能强大、管理方便、平台优秀等一系列优点,能够完全按照开发设计的初衷,稳定、安全、快速地运行于校园网之上,使得实验课程选修面向全校师生开放。实验选修课程的开放丰富了学生的课余生活,拓宽了学生的知识面,培养了学生的学习兴趣和动手实践能力,促进了学生自主学习能力的培养,极大地提高了实验室资源的使用效率,扩大了实验室的开放力度。
[1]邹锐标.地方农林院校数学基础课程教学改革研究与实践[J].中国大学教学,2012(10):59-61.ZOU Rui-biao.Teaching reform research and practice of mathematical foundation courses of the local agricultural and forestry colleges[J].China University Teaching,2012(10):59-61.
[2]霍文兰.高校实行开放式实验教学存在的问题及对策[J].榆林学院学报,2010(2):105-107.HUO Wen-lan.On the problems and strategies of open experiment teaching methodology in colleges[J].Journal of Yulin University,2010(2):105-107.
[3]潘以峰.高校智能排课系统的算法[J].上海师范大学学报:自然科学版,2006(5):4-7.PAN Yi-feng.Algorithm of intelleigent course arranging system[J].Journal of Shanghai Normal University:Natural Sciences,2006(5):4-7.
[4]田淑娟,刘荣.大型仪器设备共享及预约系统设计与实现[J].电子设计工程,2011(11):103-105.TIAN Shu-juan,LIU Rong.Design and realization of largescale instruments and equipments cooperation sharing and booking system[J].Electronic Design Engineering,2011(11):103-105.
[5]杨章伟,张婉婉.开放性实验室的网上预约系统探索与实践[J].实验室研究与探索,2010(10):384-386.YANG Zhang-wei,ZHANG Wan-wan.Research and practise on reservation system for opening laboratory[J].Research and Exploration in Laboratory,2010(10):384-386.
[6]杨爽,霍艺伟.基于Web的实践教学预约系统的设计与实现[J].现代电子技术,2010(14):93-95.YANG Shuang,HUO Yi-wei.Design and implementation of booking system of practice teaching based on web[J].Modern Electronics Technique,2010(14):93-95.
[7]杜博.高校实验室管理系统的设计与实现[J].电子设计工程,2011(15):36-39.DU Bo.Design and implementation of university laboratory management system[J].Electronic Design Engineering,2011(15):36-39.