万梅++顾和明
摘要:根据家校通系统的实际需求,该文给出了家校通系统的需求分析以及系统设计。利用MySQL设计后台数据库,采用的体系结构是B/S和C/S两种。设计并实现了登录管理,基本信息管理,成绩管理,留言管理,签到管理等功能模块。该系统的应用在一定程度上规范了对学生的在校信息和到校情况的管理,有效提高家校通系统的效率及服务质量。
关键词:家校通系统;数据库;B/S;C/S;模块化
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)18-4163-03
2002年中央电教馆将“家校直通车研究和应用”正式立项为“十五”教育技术研究课题。家校互动的最主要内容是家长及时掌握学生的安全到校情况、学习状况以及班级和学校的重要通知等。家校通开始只是基于Web的网站,家长通过浏览网站,从而获取学生在校情况。而后随着各种电信业务的不断发展,家校通逐步成了增值业务,家长可以通过订阅短信,将学生的最新情况打包发送给家长,使得家长及时了解学生的在校情况。但随着现在的智能设备(智能手机,平板电脑等等)的兴起,替代了原来的包月短信模式。并且家校通在智能设备上实现有得天独厚的优势,正是由于智能设备的方便性和及时性,使得家长更能随时掌握孩子在校的情况。
近年来,平板电脑等智能设备的不断普及,智能机的流行,手机的功能越来越多,导致手机应用程序高达数以万记,而系统留存率成为了各应用关注的重点。据调查平均一个应用使用六个月的用户留存率只有15%,但做了信息推送的应用留存率达30%,是一般应用的两倍,可见信息推送在应用中的作用。所谓的信息推送,就是通过一定的技术标准或者协议,在互联网上定期发送用户需要的信息,用来减少信息过载的一项技术。
1 基于智能设备的功能需求分析
1.1需求描述
1.1.1班主任、任课教师功能需求
班主任可以管理班长学生的基本信息,有重要消息是要及时通知给家长。任课老师能够对学生的成绩进行输入,方便学生查询。
1.1.2家长功能需求
学生到校签到后,家长能及时收到通知。学校有消息通知时,家长能及时收到通知。
1.1.3学生功能需求
学生到校后能够进行一个实时签到,将自己的到校情况通知给家长。学生能很快捷的查询单科的成绩,总分,年级名次,班级名次,以及自己的进退名次。也能及时查询班主任的通知信息。
1.2功能需求
基于智能设备的家校通系统根据以上的需求描述,大体有以下几个功能模块:登录模块,基本信息管理模块,学生成绩管理模块,留言管理系统,签到管理模块,系统管理模块。
1.2.1 基本信息管理模块
该模块包括班级、课程、学生、教师,家长等基本信息的维护。学生可以对自己的基本信息进行查看,修改,添加,删除等操作,可以查询所学课程信息和班级信息。教师除了可以对自己的基本信息进行查看,修改,添加,删除等操,还能对所教学生和班级的基本信息进行查看。
1.2.2 学生成绩管理模块
该模块包括的功能主要有:学生单科成绩的录入、查询,综合测评成绩的运算、提交,奖学金等级的评定。
本模块的的难点在于成绩到库和成绩查询。
1.2.2.1 成绩入库
入库的难点分析:
①大量数据入库的性能问题
解决方法:对于成绩的录入是大量的数据操作,任务繁重,从页面直接输入实不可取的,故采用的是Excel文档导入。这种方法可以快速的将数据写入数据库,主要使用FileIOstream对文件进行操作,方便快捷,故被该家校通系统采用。
②输入的数据是不合符规范的,若大量存入数据库会造成数据库故障。
解决方法:用数据字典来规范数据,数据库的重要部分是数据字典。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:数据库中所有模式对象的信息,如表、视图、簇、及索引等。
1.2.2.2 成绩推送与查询
成绩推送:
这是基于Android消息的推送,在学生的信息中设置一项标识,该项标识可以显示出该学生是否订阅了成绩推送功能。若该标识为1,则表示订阅了成绩推送,则客户端使用Pull(拉)的方式,隔一段时间就去服务器上获取信息,看是否有更新的信息出现。
成绩查询:
①单科的成绩,总分,班级名次,年级名次,进退名次。
②可以查询班级前十名的同学排名情况
③可以查询年级前100名的排名情况
1.2.3 留言管理模块
该模块中家长或学生可以对教师留言,并可以查看回复。教师可以对学生给自己的留言信息进行查看、回复、删除等操作。系统管理员可以对所有留言信息行进管理操作。
1.2.4签到管理系统
学生签到后,服务器会通过推送机制将到校情况发到家长客服端,并修改相关的信息记录。
2 系统设计
2.1体系结构
开发应用于台式机与智能设备的二套系统,可以通过request.getHeader("user-agent")获得返回值为String类型,其中包含操作系统信息及浏览器信息,用来识别是台式机还是智能设备访问。
2.1.1 B/S结构模型
可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用该系统,并且客服端是零维护的。
2.1.2 C/S结构模型
该系统有基于Android有推送机制,故需要采用C/S结构,并且它的响应速度快,学生签到后能够实时的将到校信息通知家长。endprint
2.2系统功能结构图
系统功能结构图如图1所示。
图1
2.3基于Hibernate的数据库设计
数据库是系统的重中之重,家校通系统的数据量庞大且更新很快,数据库设计的好坏将直接影响应用系统的效率。
数据是系统的生命,在优化数据库设计的同时做好数据备份也是系统中必不可少的一项工作。定期做好备份、存盘、异地存储才能确保数据的安全。
本系统数据库表较多,包括学生表,教师表,家长表,班级表,课程表,成绩表,留言表,签到表等等。
2.4系统出错处理设计
2.4.1 出错信息
1)学生单科成绩的录入后,在学生成绩表中没有更新数据。
2)学生签到的情况没能及时通过推送机制通知家长。
2.4.2补救措施
1)后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术。
2)降效技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;
3)恢复及再启动技术,从故障点恢复执行或使软件从头开始重新运行。
3 编码
3.1连接数据库
该系统采用的是Hibernate技术连接数据库,它的优势如下:
1)对JDBC访问数据库的代码做了封装,大大简化了数据库访问层繁琐的重复性代码。
2)Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
3)Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。
Hibernate 的性能非常好,因为它是个轻量级框架, 映射的灵活性很出色,它支持各种关系数据库,从一对一到多对多的各种复杂关系。
Hibernate对数据操作:
Session是Hibernate中的一级缓存,sessionFactory是Hibernate中的二级缓存。保存在Session中的数据是存放在缓冲池中,并没有存入数据库,主要是方便查询。特别注意的是大批量数据添加时,会造成内存溢出的,因为save方法支持缓存,每save一个对象就往缓存里放,如果对象足够多内存肯定要溢出。一般的做法是先判断一下save了多少个对象,如果save了20个对象就对缓存手动的清理缓存,这样就不会造成内存溢出,代码如下:
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
for (int i=0; i<100; i++) {
Student student = new Student();
student.setName("张三" + i);
session.save(student);
if (i % 20 == 0) {
session.flush();
session.clear();}}
tx.commit();
session.close();
3.2 推送机制
推送的代码是整个家校通系统签到模块的核心,它实现了向客服端发送学生的签到信息。
public void sendNotifcationToUser(String apiKey,String us-ername,String title,String message,String uri) {
log.debug("sendNotifcationToUser()...");
IQ notificationIQ = createNotificationIQ(apiKey, title, message, uri);
ClientSession session=sessionManager.getS-ession(us-ername);
if(session != null){
if(session.getPresence().isAvailable()) {
notificationIQ.setTo(session.getAdd-ress());
session.deliver(notificationIQ);}}}
4 结束语
“家校通”机制是有效建立学校与家庭同步教育孩子成长的基础,对科学发展教育、提高教育质量、培养合格人才具有重大的
意义。本系统遵循软件工程方法进行需求分析,系统设计,编码阶段。该文在需求分析阶段,提出来家校通系统所需的各项功能。在系统设计阶段,对体系结构设计、接口设计、数据库设计,系统出错处理设计都进行了详细的介绍。在编码部分给出了系统主要的编码设计。
参考文献:
[1] 甘俊,彭宣戈,朱兵.基于网络平台的家校即时通讯系统的设计与实现[J].微计算机信息化,2006,23(34):3.
[2] 王珊.数据库基础与应用[M].北京:人民出版社,2009:36-39.