基于MVC模式的高校实验排课系统设计与实现
2016-10-31古卫涛
古卫涛,赵 锋
(1.西安邮电大学 教务处,陕西 西安 710121;2.西安邮电大学 通信与信息工程学院,陕西 西安 710121)
基于MVC模式的高校实验排课系统设计与实现
古卫涛1,赵锋2
(1.西安邮电大学 教务处,陕西 西安 710121;2.西安邮电大学 通信与信息工程学院,陕西 西安 710121)
为实现高校实验课程的在线排课管理,设计了一个高校实验排课系统,该系统基于“模型-视图-控制器”模式进行开发,前端使用HTML5、CSS3.0、Javascript语言,后端脚本使用PHP语言,数据库采用Mariadb10。系统运用于教学,运行表明,满足教师、学生、教学管理人员等各类角色使用需求,实现高校各类实验课程排课的统一管理。
MVC;实验课;排课;系统设计
实验教学是高校本科教学的重要环节,实验教学的质量影响着高校人才培养的水平和层次。实验教学管理信息化是保障教学运行和实施实验教学质量监控的基础性条件。与理论教学相比,实验教学由于所需条件复杂、参与人员角色较多、学生人数不固定、开展方式灵活等原因,实验教学管理的信息化困难较大[1-2]。实验教学管理信息化的基础是实验排课的信息化。
目前,实验教学管理系统的研究和应用主要有3个方面:第一,实验室综合管理,主要以提高实验资源利用率、促进实验室规范化管理为目标,解决实验室内部管理的信息化问题,如实验资源开放共享管理、使用预约管理、实验耗材管理等[3-7]。第二,实验过程管理,主要研究实验室(中心)的实验课程管理和实验课过程管理,探讨实验课程选课、实验预约、学生考评、成绩记录、信息查询等实验教学过程管理问题[8-9]。第三,实验排课管理,主要研究实验室或学院实验排课或教学管理的信息化,如某个实验室或某类实验课程的排课管理,系统工作流程相对简单、用户角色较少,数据量也比较小[10-11]。模块化的高校实验教学管理系统的研究和应用较多,对高校实验教学统一管理系统的设计和实现还有待进一步研究。
本文拟采用“模型-视图-控制器”模式(Model View Controller, MVC)设计开发一种高校实验排课管理系统,系统的主要功能是对高校各类实验、实践课程在线排课进行统一管理,为学校教学管理部门、学院教务管理人员、实验室、实验指导教师、学生等各类用户角色提供一个统一的实验教学服务和管理工作平台。
1 系统功能
实验排课系统的核心对象是实验课程,实验课程一般包括课内实验、独立设课实验以及集中实践环节:课内实验是包含在理论课程中的实验;独立设课实验是指完全的实验课程;集中实践环节是安排在固定周次集中和连续进行的实践课程,参加学生在当周暂停理论课,因此需要实验室在安排时优先考虑。根据各类实验课程的特点,实验排课的一般原则是首先安排集中实践环节,其次安排独立设课实验,最后安排课内实验。
1.1用户角色
用户角色系统包括教师和学生。教师角色包含校长、督导、院长、教学院长、专业负责人、教务处、教务员、实验室、实验教师等9种角色。为方便登录和使用,在系统登录验证时,只显示教师和学生。学生的角色是固定的,部分教师会有多重角色,在进入系统后可进行角色切换。
1.2主要功能模块
系统主要功能模块有:系统设置模块、教学资源管理模块和实验教学管理模块。系统主要的功能模块,如图1所示。
(1)系统设置模块
包括系统的操作时间设定、角色管理。操作时间设定是指各角色或各业务单元的操作时间期限,即开始时间和结束时间,以保证数据的准确性。角色管理是对校长、督导、院长、教学院长、专业负责人、教务处、教务员、实验室、实验教师、学生10种用户角色进行账号管理。
(2)教学资源管理模块
教学资源管理模块由学生管理、师资管理、教学内容、教学机构、教学场所5个子模块构成,学生管理、师资管理子模块分别对学生、教师的信息进行管理。教学内容子模块包含培养方案、课程大纲、实验教材等实验教学文档。教学机构管理对学校的院系、专业、实验室、房间相关信息进行管理和维护。
(3)实验教学管理模块
该模块是系统的核心模块,主要完成实验任务下达、实验场地选定、实验时间安排、课表生成等功能。
图1 系统功能结构图
1.3系统流程
首先,教师用户分角色登录系统,系统进行角色和权限审查,出现相应角色的操作界面。实验排课系统工作流程,如图2所示。其具体操作步骤是:第一步,系统与教务管理主系统进行数据对接,实验任务进入实验排课系统;第二步,教务处根据实验课程的任务归属,同时考虑实验任务量的均衡,将实验课程分配到学院;第三步,学院教务人员根据各实验课程所需条件将实验课程安排到相应的实验室;第四步,实验室安排集中实践课程时间;第五步,实验教师确定独立设课和课内实验课程时间。
图2 系统流程图
2 系统设计
MVC模式是一种将系统应用程序的输入、处理和输出分开的设计方法,适用于中大型数据库开发,可以减少编码的复杂性,具有耦合性低、复用性高、可扩展以及可维护性强等优点[12]。考虑到高校实验课程排课过程复杂,参与角色多,数据量大的特点,实验排课管理系统基于CodeIgniter的 MVC设计模式进行开发,前端使用HTML 5、CSS 3.0、Javascript语言,后端脚本使用PHP语言,数据库采用Mariadb10。
2.1MVC设计模式
MVC设计模式采用将业务逻辑、数据、界面显示分离的方法编写代码,在进行系统改进、个性化修改界面、以及用户交互时,不需要重新构造业务逻辑。MVC业务模型,如图3所示。
图3 MVC业务模型
(1)模型
数据模型包含可重用的对数据库关系进行增、删、改、查的方法,系统主要有教师角色、实验任务、实验课程、学院、实验室、房间、时段、学生班级等8个数据模型类,所有的模型类都继承基类CI_Model的数据和方法。
(2)视图
系统主要有登录、个人设置、师资管理、教学内容、教学机构、教学场所、学生管理、时间设置、权限管理、教学任务、课程查询、实验排课、实验课表等13个主要的页面。
(3)控制器
系统主要包含用户角色审查、课程归属、实验室归属、实验室房间归属、学生专业班级、实验任务管理、实验任务分配、实验场所选择、实验时间安排、课表查询等11个程序逻辑控制器,所有的控制器类均继承基类CI_Controller。
2.2业务流程的安全性
前端控制器是系统的入口,完成用户权限验证、URL地址重写以及资源文件加载,用户请求路由器对HTTP 请求进行分发,安全组件对 HTTP 请求进行安全处理,应用程序控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源,最后渲染视图并发送至浏览器 。
2.3数据库设计
面对的角色众多,业务处理过程繁杂。不同实验课程类型对应不同的流程与过程管理文档。基于系统的特点,数据库设计时尽量减少数据冗余,避免数据的不一致。系统数据库设计按照BCNF范式的要求,防止出现数据增删改的异常。系统数据库的实体都满足[13]:
(1)所有非主属性对每个码都是完全函数依赖。
(2)所有的主属性对每一个不包含它的码,是完全函数依赖。
(3)没有任何属性完全函数依赖于非码的任何一组属性。
图4 系统ER图
2.4关键技术
系统的关键技术是MVC模式下的控制器设计,控制器定义和实现了各种业务逻辑的处理。以教师选择实验地点的操作为例,部分脚本代码如下:
class Exp_arr_do extends CI_Model
{
/**
* 通过教师工号查询课程任务
* @param $teacher_number 教师工号
* @return $teacher_course 教师对应的课程数组
*/
function t_to_c($teacher_number)
{
// $sql = "SELECT col_task_id,col_course_name FROM tmp_arr1 WHERE col_teacher_number = ?";
$sql = "SELECT col_id,col_coursename FROM course_task WHERE col_teacher_code = ?";
$teacher_course = $this->db->query($sql,array($teacher_number))->result_array();
return $teacher_course;
}
*通过课程任务id查询实验室
* @param $task_id 课程任务id
* @return $course_lab 课程对应的实验室数组
*/
function c_to_l($task_id)
{
// $sql = "SELECT col_lab_name,col_student_num,col_course_hour FROM tmp_arr1 WHERE col_task_id = ?";
$sql = "SELECT col_lab,col_stu_num,col_labhour FROM course_task WHERE col_id = ?";
$course_lab = $this->db->query($sql,array($task_id))->result_array();
return $course_lab;
}
/**
* 通过实验室名称查询下设房间
* @param $lab_name 实验室名称
* @return $lab_room 实验室下设房间
*/
function l_to_r($lab_name)
{
// $sql = "SELECT col_room_code FROM tmp_arr2 WHERE col_lab_name = ?";
$sql = "SELECT col_room_code FROM view_lab_room WHERE col_lab_name = ?";
$lab_room = $this->db->query($sql,array($lab_name))->result_array();
return $lab_room;
}
/**
* 房间电脑数量查询
* @param $room_code 房间号
* @return $computer_num 电脑数量
*/
function get_computer_num($room_code)
{
// $sql = "SELECT col_computer_num FROM tmp_arr2 WHERE col_room_code = ?";
$sql = "SELECT col_computer_num FROM view_lab_room WHERE col_room_code = ?";
foreach ($room_code as $row) {
$computer_num[] = $this->db->query($sql,array($row))->result_array();
}
return $computer_num;
}
3 系统实现
3.1实验任务管理
系统通过与教务管理主系统对接导入每个学期的实验任务,系统提供实验任务管理功能,可以根据需要进行实验任务的增加、删除、修改操作。如图5所示。
在分配实验任务时,系统会默认按照开课学院的原则将实验任务分配, 如果是普通上机类实验,由于相当多的实验室都配置有一定数量的计算机,因此,需要根据各实验室计算机的利用情况,做到全校范围内计算机利用率的大体均衡。如图6所示。
图5 实验任务管理
图6 实验任务分配
3.2选择实验场所
学院接到实验任务后,根据实验课程所需条件和要求,将实验任务安排到各实验室,如果该实验室有多个房间,实验课程指导教师再根据所承担实验课程的学生数、实验分组情况,选择实验室的房间号。如图7所示。
3.3确定实验课程时间
集中实践课程,如课程设计和科研训练,一般安排在固定的周次,连续上课中途不间断,故需优先进行排课,集中实践课程排完后,实验教师再进行其他实验课程的排课,在进行排课操作时只需要在对应时间的位置上选择即可。如图8所示。
3.4生成实验课表
当各类实验课程完成排课后,系统可自动生成实时实验课表,还可根据实验课程的相关信息,如教师姓名、学生班级、课程名称等信息进行查询,为教务处、督导组、学院及时掌握实验课程情况和实施教学质量监控提供支持。如图9所示。
图7 选择实验场地
图8 实验排课
4 结语
采用MVC模式设计和开发了一个高校在线实验排课系统,系统实现了实验课程管理、实验资源管理、实验排课、实验课表生成、实验课程查询等功能,满足了学校教务处、督导处、学院教务办、实验管理人员、实验指导教师、学生等各类用户的使用需求。
[1]倪晟.基于Web的实验室教学信息管理系统的设计及实现[J/OL].实验室研究与探索,2011, 30(1):160-163[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename= sysy201101050&dbcode=CJFQ&dbname=CJFD2011.DOI: 10.3969/j.issn.1006-7167.2011. 01.049.
[2]王攀,王晶,陈少平.基于Web的实验教学管理系统的设计与实现[J/OL].中国电化教育,2010 (2):115-118[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename= zdjy201002026&dbcode=CJFQ&dbname=CJFD2010 .DOI: 10.3969/j.issn.1006-9860.2010.02.024.
[3]黄天辰,冯长江,赵月飞,等.全开放实验教学与管理系统的设计与实现[J/OL].实验室研究与探索,2011, 30(4):161-163[2016-06-12]. http://www.cnki.net/kcms/detail/detailall. aspx?filename=sysy201104050&dbcode=CJFQ&dbname=CJFD2011. DOI: 10.3969/j.issn. 1006-7167.2011.04.048 .
[4]赵广元.开放实验申报与管理系统研究与设计[J/OL].计算机技术与发展, 2013(2): 215-217[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename=wjfz201302056 &dbcode=CJFQ&dbname=CJFD2013.DOI: 10.3969/j.issn.1673-629X.2013.02.055.
[5]刘海霞,张亮,成军乐,等.机房排课及预约管理系统的设计与实现[J/OL].工业控制计算机 ,2014(10):126-127[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename=gykj201410059&dbcode=CJFQ&dbname=CJFD2014. DOI: 10.3969/j.issn.1001-182X.2014.10. 060.
[6]阎俊,韩万祥,闫永亮. B/S模式下实验预约管理系统的研究与设计[J/OL].实验室科学,2015, 18(1):63-65[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename =yskt201501019&dbcode=CJFQ&dbname=CJFDLAST2015.DOI:10.3969/j.issn.1001-182X. 2014.10.060.
[7]杨建锋,高岭,朱海阳.实验教学耗材库存管理系统的设计与实现[J/OL].中国教育信息化,2013(12):49-51[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename= jyxx201323018&dbcode=CJFQ&dbname=CJFDHIS2 .DOI: 10.3969/j.issn.1673-8454.2013. 12.016.
[8]霍迎秋,费攀峰,张晓峰,等.计算机教学实验中心信息化管理探索与实践[J/OL].实验室研究与探索,2016, 35(1):125-128[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename=sysy201601034&dbcode=CJFQ&dbname=CJFDLAST2016.DOI: 10. 3969/j.issn.1006-7167.2016.01.032.
[9]张乃龙.基于过程管理的实验课程管理系统设计与实现[J/OL].实验室研究与探索, 2014, 33(9):265-267[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename=sysy201409065&dbcode=CJFQ&dbname=CJFD2014. DOI: 10.3969/j.issn.1006-7167.2014.09.063.
[10]张超.基于Ajax技术的机房排课系统设计与实现[J/OL].现代工业经济和信息化, 2014 (2):90-91[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename=xdgy2014 02031&dbcode=CJFQ&dbname=CJFD2014. DOI: 10.3969/j.issn.2095-0748.2014.02.030.
[11]李丽,郭芸俊,实验实践课辅助排课系统的设计与实现[J/OL].电脑知识与技术,2014 (5):965-969[2016-06-12]. http://www.cnki.net/kcms/detail/detailall.aspx?filename=dnzs 201405031&dbcode=CJFQ&dbname=CJFD2014
[12]Jon Galloway,Brad Wilson, K.Scott Allen,David Matson. ASP.NET MVC 5高级编程, [M]. 孙远帅,译.北京:清华大学出版社,2015:1-9.
[13]王国胤,刘群,夏英,等.数据库系统原理与设计[M].北京:电子工业出版社,2011:66-69.
[责任编辑:汪湘]
Design and realization of university experimental course scheduling system based on MVC
GU Weitao1,ZHAO Feng2
(1. Office of Educational Administration, Xi’an University of Posts and Telecommunications, Xi’an 710121, China;2. School of Communication and Information,Xi’an University of Posts and Telecommunications, Xi’an 710121, China)
In order to achieve online scheduling management of the experimental courses in university, an experiment course scheduling system is designed and implemented. The system is based on the “Model-View-Controller” model with front end of system using HTML5, CSS3.0 and Javascript language, backend script of system using PHP language,and database system using Mariadb10. The system is unified for the management of various types of experiment courses scheduling,and it meets usage requirements from teachers, students, education managers and other all kinds of roles. The system is put into use successfully.
MVC, experiment course, scheduling, system design
10.13682/j.issn.2095-6533.2016.05.014
2016-07-18
陕西省高等教育教学改革研究项目(15BZ47)
古卫涛(1980-),男,硕士,工程师,从事管理科学与工程、高教管理研究。E-mail:124403878@qq.com
赵锋(1979-),男,硕士,讲师,从事管理信息系统、信息安全研究。E-mail: peakzhao@gmail.com
G434
A
2095-6533(2016)05-0069-07