本系统采用MVC框架,B/S架构模式,oracle数据库。研究中小学教育方面有关的内容。该系统围绕着家长,学生,教师三个角色共同构建的一个系统平台。系统拥有四个角色,管理员,家长,班级管理员,教师。登录之后,管理员主要有插入数据信息,查看数据信息,删除数据信息,升学处理功能。班级管理员主要有查看班级任务、提出疑问、评分教师、查看疑问回答。教师主要有上传教学任务、回答疑问、查看评分,如果是班主任,那么需要与班级家长进行交互功能。家长主要有查看学校实时信息,与班主任交互功能。家校合作可以更好的减少学生,教师,家长之间的矛盾或者及时解决矛盾,也能提高教学的质量。这个系统诞生于互联网的时代,生长在教育的土壤,注定它会给实体学校带来不平凡。
关键词: Oracle; 中小学教育; 家长学生教师交互; MVC框架; B/S
The system uses the MVC framework, the B/S architecture model,and the Oracle database . To study relevant aspects of primary and secondary education . The system revolves around a system platform built by parents, students and teachers. The system
has four roles : administrator , parent , class administrator , and teacher . After logging
in , the administrator mainly has the function of inserting data information , viewing
data information, deleting data information, and processing for further studies. Class administrators mainly have to check class tasks , ask questions, score teachers, and
check questions. Teachers mainly have to upload teaching tasks, answer questions, and
view ratings . If they are class teachers , then they need to interact with class parents . Parents mainly have to view the school's real-time information and interact with the
head teacher . Home school cooperation can better reduce the contradictions between students , teachers , and parents or resolve conflicts in a timely manner , and can also
improve the quality of teaching And ... This system was born in the era of the Internet .
It grows in the soil of education and is destined to bring extraordinary things to real
schools.
Keywords: Oracle; primary and secondary education ; parents, students and teachers interact; MVC framework;B/S
目录
第一章 概论......................................................... 1
1.1课题来源...................................................... 1
1.2课题研究的目的和意义.......................................... 2
1.3课题前景...................................................... 2
1.3.1国内外研究现状............................................ 3
第二章 需求分析..................................................... 4
2.1任务概述...................................................... 4
2.1.1软件开发意图.............................................. 4
2.1.2该软件作用范围............................................ 5
2.1.3 软件开发技术.............................................. 5
2.2功能性需求.................................................... 6
2.2.1数据字典.................................................. 7
2.3 非功能性需求.................................................. 8
2.3.1性能需求.................................................. 8
2.3.2 输入输出要求.............................................. 8
第三章 总体设计..................................................... 9
3.1软件结构图.................................................... 9
3.2 数据流图..................................................... 10
3.2.1数据流图功能............................................. 14
3.3各模块介绍................................................... 15
第四章 系统的详细设计与实现....................................... 16
4.1 系统的详细设计............................................... 16
4.1.1 Jsp页面与Servlet之间的数据的流动....................... 16
4.1.2数据库设计-概念模型...................................... 17
4.1.3 数据库设计-物理表........................................ 22
4.2系统实现..................................................... 25
4.2.1 前端页面实现............................................. 25
4.2.2 数据增加,删除,修改,查询............................... 30
4.2.3 后台数据与前台数据....................................... 32
4.2.4 各模块流程图............................................. 33
第五章 Socket通信的设计........................................... 39
5.1 系统中的通信................................................. 39
5.2 Socket包.................................................... 42
5.3 Socket通信中的不足和需要完善的地方.......................... 42
第六章 系统的测试................................................. 44
6.1 软件的测试目的............................................... 44
6.2 软件测试方法................................................. 44
6.3 软件的测试步骤............................................... 44
6.4 测试用例..................................................... 45
6.5 软件的测试结果............................................... 46
第七章 结论....................................................... 48
结束语............................................................ 50
致谢.............................................................. 51
参考文献.......................................................... 52
在互联网快速发展的潮流中,各种传统行业纷纷转型,不断涌现了物联网,车联网等。中小学教育作为一个实体教育行业,在互联网的趋势下,应该融入网络元素。中小学教育与系统网络融合将会增大传统教育的灵活性,将会让学校里面的学生和教师的交互不仅在课堂上,而且在网络上也可以进行交互,也可以提高课堂效率,增加学生学习兴趣。
课题来源于社会实际的一种的软件设计。在当今21世纪,现在城市的生活节奏还是相对来说是较快的,为了更好对青少年教育,我们应该着重于中小学学校的校园教育,所以设计了关于中小学教育的一款软件。该软件从教师,家长,学生三个角色的相互渗透,将各个角色发挥的职能充分有效的发挥,使得他们各自需要尽的义务充分诠释出来。本软件有机的把学生,教师,家长结合起来。每个角色发挥一点功能,那么整个系统所体现出来的效果将是巨大的。所以的成功都是来自那微不足道的付出。本软件只是希望能够让学生在该发展的时候应该尽可能对学习有更多的热爱,有更多的兴趣。
社会的发展中,教育历来都是不可缺少的。教育是社会发展中最直接,最根本的动力。古人说:“人之初,性本善,性相近,习相远”,又或者“人之初,性本善,性相近,习相远”。这句古语从正反两个方面说明教育的重要性。一个人刚出生,如果接受的教育是良好的,那么他将会在善的道路不断前行,如果接受是来自社会上的不良风气,那么他将会在恶的道路上渐行渐远。善与恶可能就是一步之差,有的人一辈子可能也不会从恶的道路上在回过头,有的人可能就是需要他人的那一刻的关怀,他就会走上了一条光明之路。所以说,对于家长,他仅仅的需要可能就是与班主任那几分钟的交流,对于教师来说,他仅仅可能就是下班前将任务发到系统中,对于学生管理员,他也仅仅就是做好他应该完成的任务。这样该系统就会良好的运转。系统的目的是为了更好的方面教师,学生,家长。教师不必在为一次次为忘记说任务而苦恼,学生也不必在为任务的不及时而推卸责任,家长也不必在为没有参与到孩子的教育中而愧疚。为了各方面的需求。这个软件非常好的解决了当下教师,学生,家长的一些矛盾。使得在学生的教育中能够更加协调的进行。
中小学教师,家长,学生交互平台的设计是教育中很重要的一部分。有了该系统,它能让繁忙的教育变得更加的有序。这个系统在一定程度上可以激发出学生对于学习的兴趣,也可以使得教师与学生的互动更加的多元化,能够更有力的发挥教师在教育中的地位。
课题研究的目的是串联家长,学生,教师三者,使得充分发挥各自能力共同推动中小学教育事业的发展。让更多的人能够在中小学就有较强学习能力,能够推动更多的人去接受更高的教育[3]。不可否认,未来的大学生的普及将会越来越高,如果说没有大学文凭,那么这个人只能是社会上最底层的人员,这个人在未来的社会快速发展中将会受到更多的制约,没有公司或者工作适合一个学习能力很差,整天度日如年的人。也就是一个人的学习习惯,学习思维应该是在家庭教育,中小学形成的。所以中小学的教育对于一个人的一生来说是相当重要的。网上有一句话这么说的“没有钱是万万不能的,有很多钱也不定是万能的”。就和教育是一样的“没有学历是万万不能的,有了学历也不一定是万能的”。人在这个社会上,就是不断选择别人,别人选择你。教育是亘古不变的话题。学习好在家长眼里似乎永远都是最有用的。不必所有的学生都考98分,但是对于学生来说考80分还是可以考虑的,所以80分教育是普教。每个家长在别人面前谈论孩子的时候也不希望自己的孩子是80分以下。毕竟家长都是关爱自己的孩子。这个系统可以成为家长关心孩子的一种方式,通过班主任的鼓励,或许说孩子的成绩有所提高比如说考“80分”。中小学教师学生家长交互平台的设计的意义在于我们可以在空闲的时间完成很多高效的任务。比如说每天早上学生可以得到各科的预习任务,晚上可以得到要写的任务。充分发挥学生的能动性,让学生主动的抓住学习的尾巴。
中小学教师学生家长交互平台课题是关于教育行业的一个课题。教育是人类发展的根本,中小学教育是值得研究的课题。
国外,家长在互联时代对于参与孩子校园教育已经有了比较深刻的见解,他们深刻的剖析了性别,与家长参与校园教育的频繁次数。剖析了关于移动手机在学生教育中是否必要的观点。他们认为学生在校园使用手机一方面有利于学生在课堂与教师进行手机平台交互,也可以用手机浏览网上的一些学习网站进行学习,也可以与家长取得及时的联系。国外对于家长参与孩子校园教育已经给出综合性的调查。说明了在互联网的时代,家长参与孩子的教育是不可避免的。从国外看,在如今时代,家长必然在孩子的教育中通过网络会发挥他的必不可少的作用, 开展"家长学校""家长义工""《弟子规》亲子鉴行"等活动,加大家庭教育的培训力度。提高家校共建水平,调动家长关注教育、关心教育、服务教育的热情[1]。
国内,越来越多网上平台针对学生教育设计出来。从网上的授课学习。当然这些网络授课,直播都是互联网的产物。实体教育比如说实体学校,他们更关注孩子的一体化教育,因为学生吃,住,学习都是在一个校园里面。所以在校园里面关注学生安全教育也出现了一些平台,比如说校讯通平台,这个平台不仅可以直接将学生的放假时间发送到家长手机上,还可以在平台上了解很多的网上学习的课程,更好的恰和与学生的教育。就中小学教师家长学生交互平台,也必然将会使互联网时代的产物,所以这是大势所趋,顺应时代潮流。中小学教师家长学生交互平台也算是一次结合实体校园的一次创新。有了这个系统可以让学生,家长,教师无形的绳子联系在一起。让学生,家长,教师配合的更加融合。这个软件具有针对性,让学生在校园中不仅可以有效的学习到知识,也可以了解到外面最新的新闻,让学生不做一只井底之蛙。让学生从这样一种的角度去看待外面的社会。作为家庭重要成员的家长主动参与学校学生的管理和培养, 协助并监督学校的人才培养建设, 同时还要引导学生参与高校管理工作[2].这个课题在这个时代会有很大的潜力,它的潜能是因为这是根植与互联网的大根之上,是因为它是在教育的土壤上发展的。
国内国外对于中小学生教育这方面实际上研究的文献挺多的。国外更倾向于家长参与到学生的教育,以及学生自己的独立性,有更好的判断力。国内则是倾向于学校联合家长一起教育,更在乎学生的成绩,品德。
需求分析对于软件开发来说是非常重要的一个阶段。需求分析要经过相关的调研,考察之后,准确得到软件系统的功能,性能等具体要求。需求分析就是为什么要做这个系统,确定系统需要做什么的过程。
任务概述主要是介绍软件是做什么的,软件是一个什么样的系统,做软件系统所需要的开发技术,软件的应用群体是谁,针对于什么方面的。
在当前这个快速发展的社会,中小学生的教育需要更进一步的发展,中小学学生心智发展还不是很成熟,各方面生活能力有所欠缺。中小学学生的发展应该受到社会,政府更多的关注。毕竟说少年强,则国强。少年是一个国家的未来,如果一个国家的少年在不归路一路向前,那么这个国家的未来必然是一片黑暗,为了能够更好将教师,学生,家长三者的角色结合起来,做了一个关于中小学生的平台系统。系统是围绕小学生的生活,学习方面开展来的。家长角色的目的是能够及时从班主任的口中了解到自己的孩子近来的状况,以便及时与孩子沟通,了解孩子的心理状况及时的改善。教师与学生的交互,主要是两个角色的互相交互。比如说教师登录之后发布教学任务,这里的教师指的是各科教师,教学任务是发送给所带的班级。学生管理员去领取班级任务。这个班级任务是各科的班级任务,领完之后交给班级课代表,由课代表及时的推送给同学。班级管理员收集各种疑问,将各科疑问发送给各科教师。各科教师看到之后会及时给予回复,或者说在课下去了解,,在课上及时的讲解。本软件有机的把教师,学生,家长结合起来,做一个属于中小学生自己的平台。此平台完全是针对小学生,帮助他们更好的控制自己的时间,更有效率的学习[3]。
从网络环境下家校合作的内容、方式、频率、效果以及人们对家校合作的认识这几方面展开调查。通过分析调查结果发现,由于学校家校合作观念陈旧,网络环境下的家校合作仍停留于表面,没有实现家校之间更深层次的合作。虽然一直提倡素质教育,但家长和教师在实际家校合作过程中仍过度看中学生的学业成绩,造成了家校合作理想与现实的差距。虽然网络环境使得家校合作的内容变得更加丰富了,但就总体而言,学生的学业情况仍成为家校合作最主要的内容。网络新平台带来许多优势的同时也出现了一些问题:比如一些家校合作平台的功能没有被最大限度地利用起来;网络环境下的家校合作存在一些不规范行为等。为了解决在调查过程中发现的问题,分别从学校、教师、家长、网络这几个层面提出了一些解决策略:学校层面首先要更新观点为家校合作提供有效保障,还要进一步完善家校合作平台并加强网络家校合作平台的宣传力度,学校还应定期提供家长、教师培训。作为教师要全面关注学生各个方面的发展,丰富家校合作内容,并进一步加强对提升自身专业素养的认识,提高自身的沟通能力,还要促使家校合作中教师参与的全员化。家长们也要转变观念,进一步增强家校合作的意识,主动参与家校合作,这样才能积极配合学校工作,提升家校合作的效果。最后还要利用网络环境带来的新机遇,充分发掘各种平台的新功能;网络环境下家校合作要进行规范化处理;并将网络环境的家校合作与传统家校合作方式相结合[4]。家校合作是教育发展的必然趋势[5]。
中小学教师家长学生交互平台适用于只有初中,小学的学校。系统主要针对于小学生与教师之间的交互的一个快捷方便性而产生的。系统作用范围小,具有很强的针对性。
系统适合于寄宿学校,寄宿学校配置此系统用处很大,对于放学回家的这种的学校也有比较大的用处,这个软件还是需要教师与学生之间的配合。该软件会提高学校的教学质量。
软件开发技术是软件开发之前要确定的条件之一。软件开发的技术应当选集成度高,开发效率高的技术。
1.Jsp,Servlet技术。系统开发软件为Netbeans,Netbeans是Java集成开发工具,为程序员提供良好的Java程序开发环境。在软件中我们可以轻松使用jsp前端界面,Servlet技术。Jsp是一种动态网页开发技术,是基于Java编程语言的一种跨平台语言[6]。
2.Css,Js技术。在jsp界面中设计出美观的边框和线条,css,js可以控制
页面中的元素进而实现相应的动画效果。Css,js技术可以让静态的界面动起来。
3.系统采用MVC框架,B/S架构模式,后端使用Oracle数据库。Oracle数据库系统可移植性好,使用方便,功能强,是一种高效率、可靠性的数据库系统。
1.管理员功能需求。
本软件管理员任务还算比较繁重,要处理比较大的数据。所以对于管理人员的技术性应该是有一定要求的,管理员主要是维护和管理数据。管理员是本软件很重要的一个角色。对于密码忘记,注册失败等等都可以联系管理员,与管理员进行交流,从而实现对该系统的使用。管理员对于该软件来说是不需要注册,用户账号和密码是给定的,管理员需要登录验证。
2.教师功能需求。
教师分为普通教师和班主任。普通教师的需求主要是发布教学任务,回答疑问,查看学生评价通过反馈以可以更好完善自己教学,提升自己的教学能力。班主任则不仅要做好自己学科的相关教学,还要和家长互动交互。教师是需要注册的,注册成功后可以使用教师工号和密码登录系统使用自己的相关功能。
3.家长功能需求。
查看学校最近活动,最近放假时间,查看学校相关情况。与班主任及时的交互了解孩子相关状况。家长注册成功后可以输入手机号和密码登录该系统使用相关功能。
4.学生功能需求。
这里的学生指的是学生管理员,学生管理员的需求是及时从系统中得到本班级的各科任务,及时的打印出来,传递给班级里面的同学。学生管理员还需要把班级里面的疑问输入到该系统,把这些疑问传递给教师,教师从而了解到这些疑问信息,使得上课更有效率。学生管理员注册成功后,通过自己的学号,密码登录该系统使用相关功能。
教师注册之后,教师的数据信息将会保存数据库中,教师的数据字典如表2.1所示,教师信息位于数据库的教师表位置中。
表2.1 教师数据字典
名字 |
别名 |
描述 |
定义 |
位置 |
教师表 |
教师 |
记录了教师的个人信息 |
教师表=教师工号+教师姓名+教师年龄+教师性别+教师手机号+密码 |
Oracle数据库 |
班级表的信息由管理员输入到数据库中,班级表为基础信息表。有其他的表会参照班级表进行设计,班级的数据字典如表2.2,班级的信息位于数据库的班级表中。
表2.2 班级数据字典
名字 |
别名 |
描述 |
定义 |
位置 |
班级表 |
班级 |
记录班级的相关信息 |
班级表=班级号+班级名+年级 |
Oracle数据库 |
班级任务的信息由教师上传到系统中,班级任务在系统中扮演着重要的角色之一。班级任务是教师和学生管理员交互的内容之一,班级任务功能比较单一只是一种字符串的传递,班级任务数据字典如表2.3,班级任务的信息位于数据库的班级任务表中。
表2.3班级任务数据字典
名字 |
别名 |
描述 |
定义 |
位置 |
班级任务表 |
班级任务 |
记录班级任务的相关信息 |
班级任务表=标题+学科+班级号+时间+任务描述+教师工号 |
Oracle数据库 |
疑问信息是学生从班级中收集到的相关题目,或者题型上传到系统中,疑问信息是教师和学生交互内容之一,疑问数据字典如表2.4,疑问信息保存到数据库疑问表中。
表2.4 疑问数据字典
名字 |
别名 |
描述 |
定义 |
位置 |
疑问表 |
疑问 |
学生传递给教师的相关信息 |
疑问表=教师工号+疑问描述+班级号+疑问回答 |
Oracle数据库 |
功能性需求是系统重要的需求之一,非功能性需求也是必不可少的。非功能性需求一般是环境,外部条件等,比如安全性、可靠性、可维护性和可移植性。
系统中在各项数据的输入/输出及传输过程中,可以满足数据准确传送。时间特性要求上,在软件方面、响应事件、更新处理时间方面满足用户的要求。灵活性:当用户需求,如操作方式,运行环境,与其他软件接口发生变化时,软件能够做出适当的调整,满足不同用户的要求。
1.输入数据量规定合理,输出格式满足要求。
2.可以随时对数据进行增加,删除,修改,查询各种操作。
3.可以通过日志了解故障现象,发生时间。
4.输入界面美观大方,功能区分显眼,文字描述通俗易懂,并发性高,吞吐量大,系统安全有保障[7]。
中小学教师学生家长交互系统中共有家长中心模块,管理员中心模块,学生中心模块,教师中心模块,登录中心模块,注册中心模块。系统的软件结构图如图3.1,图中详细的描述了整个系统的所有模块,概括了系统的几乎所有的功能信息。软件结构图是整个软件的灵魂图,软件结构图是软件总体设计重要的图之一。
中小学教师学生家长交互平台的设计与开发 |
家长中心模块 |
管理员中心模块 |
学生中心模块 |
教师中心模块 |
登录中心模块 |
注册中心模块 |
与班主任线上交互 |
查看用户信息 |
删除用户信息 |
升学处理 |
学校实时信息更新 |
查看班级任务 |
向各科教师提出疑问 |
评分各科教师 |
给所带班级布置任务 |
回答所带班级的疑问 |
班主任与家长交互 |
登录验证 |
注册数据处理 |
图3.1 系统的软件结构图
数据流图分为一级数据流图和二级数据流图,三级数据流图一层一层分解下来,由抽象到具体的过程。本系统的数据流图只分为二级数据流图,一个是整体的数据流图,二是各模块细分的数据流图[8]。
中小学教师学生家长交互系统整体的一级数据流图如图3.2,整体的一级数据流图比较抽象,主要是系统中的使用角色与系统之间的事务处理。系统中的各个角色与系统进行交互。
管理员 |
家长 |
信息的管理 |
和维护 |
各科的班级任务 |
问题收集提问 |
班级管理员 |
输入教师评分 |
学习任务(下班前) |
中小学教师学生家长交互平台 |
各班的问题 |
教师 |
家长的通信 |
查看学校实时信息 |
与班主任交互 |
图3.2 系统的数据流图
二级数据流图,管理员的数据流图。管理员处理事务,输入账号密码进行身份验证,身份验证是将输入的账号,密码与数据库中的账号,密码进行事务匹配。验证成功后可以下一步处理权限界面中的事务。如图3.3,管理员可以处理的事务有上传学校实时信息,升学处理,输入班级信息,输入班级管理员学号,查看用户信息,删除用户信息。管理员是系统中的重要角色之一,所以管理员数据流图可以清楚的了解到管理员处理事务的数据流动。管理员进行系统的管理和维护。系统的管理员只能有一个。管理员是需要有职业素养的人员来担任。
数据库 |
上传学校实时信息 |
升学处理 |
输入班级信息 |
输入班级管理员学号 |
查看用户信息 |
删除用户信息 |
账号和密码 |
登录反馈 |
管理员 |
身份验证 |
密码 |
数据库 |
处理事务 |
管理员权限界面 |
图3.3 管理员的数据流图
二级数据流图,教师的数据流图。教师是系统中不可缺少的角色之一。教师选择登录或者注册。如果登录则进行匹配账号密码事务,如果注册则进行更新教师表事务。登录后可以进入教师权限界面。如图3.4,教师可以处理的事务有更新班级任务,更新疑问表,查看班级评分,与家长通信。教师,自古以来都是教书育人。教师是人们心中的太阳,是园丁,是灯塔。教师为教育事业带来了福利。系统可以让教师这一角色更加的鲜活,减轻教师中的一些比较难的环节。教师通过此系统可以更加容易的去解决有关教学的这方面的内容,教师数据流图清晰的看到教师处理相关事务的数据流动。
教师 |
选择事务 |
点击事件 |
插入教师信息 |
注册 |
数据库 |
身份验证 |
登录 |
验证失败 |
教师权限界面 |
验证成功 |
给所带班级发送任务 |
查看疑问并给出解答 |
查看所带班级评分 |
与家长通信(如果是班主任) |
数据库 |
处理事务 |
图3.4 教师的数据流图
如图3.5,学生首先选择事务,如果是注册则更新学生信息表,如果是登录则与后台数据库进行事务匹配,若成功则进入学生权限界面,处理学生相关事务。学生可以查看并且打印各科任务,更新疑问表,更新教师评分。学生数据流图充分显示了学生整个系统基本的数据事务处理。
学生 |
选择事务 |
点击事件 |
插入学生信息 |
注册 |
数据库 |
身份验证 |
登录 |
验证失败 |
学生权限界面 |
验证成功 |
查看并打印各科任务 |
发送各科疑问 |
输入各科教师评分 |
数据库 |
处理事务 |
图3.5 学生的数据流图
家长数据流图,如图3.6,家长选择事务,若为注册则要更新家长信息表。若为登录则要与数据库进行事务匹配,登录成功后进入家长权限界面。家长要处理的事务只有与班主任通信,处理此事务需要更新数据库中的信息表而且是实时更新。
家长 |
选择事务 |
点击事件 |
插入家长信息 |
注册 |
数据库 |
身份验证 |
登录 |
验证失败 |
家长权限界面 |
验证成功 |
与班主任通信 |
数据库 |
处理事务 |
图3.6 家长的数据流图
数据流图代表数据的流动。数据流图从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反应系统逻辑功能,所以它是一种功能模型。
管理员中心模块:管理员主要是对系统的维护和管理数据。管理员是系统一个非常重要的角色。管理员要把各种基础数据输入进该系统,管理员可以查询用户信息,删除用户信息,可以及时更新学校信息状况,管理员相当是后台管理员,维护整个系统的数据。
教师中心模块:教师分为普通教师和班主任,他们通过教师工号的不同而区分开来,教师的功能主要是3个,第一,下班前把班级任务发送给所带的班级,第二,在网上对于班级的问题给予比较及时的回复,第三,可以根据学生的评价,相应的调整教学管理进而更受学生的欢迎。如果该教师是班主任,那么他也要与家长进行交互,对于孩子的情况给予及时了解,给功能需要家长和班主任的互动,此功能非常的单一,只是谈论学生的学习,生活,及时对于孩子的不良习惯给予相应的教育。
家长中心模块:家长可以是学生的爸爸,妈妈,近亲。对于孩子的关爱,可以从老师的层面去及时的了解,从而促进亲子之间良好的关系。孩子与家长也会有矛盾,教师从自己的角度给予相应的看法,使得家长在孩子成长的过程中扮演着好自己的角色。
学生中心模块:这里的学生指的是学生管理员。比如说他从该系统中领取班级的各科任务,然后他将各科任务及时的给班里面的同学,比如说写在黑板上。从而促进学生积极的学习兴趣。各个学科代表将班级的问题交给班级管理员,班级管理员将疑问输入该系统。教师及时的看到疑问,要么给出疑问,要么在课上去解决这些疑问。学生进入该系统主要是通过终端。
登录中心模块:登录要与后台数据库进行连接,如果找到该用户,那么进入相应的中心界面,进而操作自己的功能。
注册中心模块:注册的时候要进行相应的验证,比如说管理员提前输入的班级管理员学号信息是固定的,如果说学号信息输入不是,那么将无法插入数据库。注册时的数据将会保存到数据库中,当要获取的时候可以及时的得到去使用。
系统的详细设计是对系统总体设计的进一步细化。系统的详细设计将清楚的把设计中每个功能的实现表达出来。系统的详细设计是距离系统实现最近的一步,系统的详细设计基本上会把系统的各个模块细分出来,并且要设计出各个模块之间的接口。
1.Jsp页面数据流向Servlet
注册数据通过form表单将数据传入-------------àRegisterServlet。
班级信息数据通过form表单将数据传入---------àClassInputServlet。
教学管理信息数据通过form表单将数据传入-------àTeachingServlet。
新闻信息数据通过form 表单将数据传入-----àSchoolMessageServlet。
教师下班前把相应的任务,或者习题提交到--àTeachingTaskServlet。
学生提出疑难杂症数据--------àSendProblemServlet。
2.Servlet数据流向jsp页面
Servlet数据通过request.setAttribute(“data”,data);将数据传递到相应的界面,在界面中通过${}中获取相应的数据。
QueryClientServlet将数据传入到查看用户信息jsp页面。
UpdateClientServlet将数据传入到修改用户信息jsp界面。
QueryAnswerServlet学生查看疑问回答数据流向------àjsp页面。
QueryProblemServlet教师查看疑问数据流向--------àjsp页面。
QuerySchoolMessageServlet 查看学校新闻信息-------àjsp页面。
QueryJudgeMent 教师查看学生评价信息------àjsp页面。
1.E-R图和实体对应的关系模式
E-R图也称为实体-联系图,提供了表示实体类型和联系的方法,用来描述现实世界的概念模型。如图4.1是整个系统的E-R图。E-R图的设计主要是围绕系统中的主要功能实现的。教师与班级是多对多,班级与班级管理员是1对1,教师与家长是1对多。当实体与实体是多对多时,那么这时实体与实体之间的联系也要变成一个表,当实体与实体是1对多,那么要将为1一端的实体的主码放到为多的一端。
教师 |
班级 |
教授 |
课程任务 |
教师评分 |
疑问 |
拥有 |
对应 |
对应 |
发送 |
查看 |
打印 |
班级管理员 |
对应 |
家长 |
交互 |
1 |
1 |
n |
m |
1 |
m |
1 |
m |
1 |
m |
1 |
m |
m |
m |
1 |
n |
1 |
1 |
图4.1 系统的E-R图
下面为系统中的各实体对象。
学生实体如图4.2,学生实体是对现实世界中学生的刻画。这里的学生即班级管理员。班级管理员的基本信息是学号,姓名,年龄,性别,班级号,密码。一个班级一个班级管理员,班级管理员与这个系统交互。学生实体转化为相应的关系模式:学生(学号,姓名,年龄,性别,工作职称,班级号,密码)。
学生 |
学号 |
姓名 |
年龄 |
性别 |
工作职称 |
班级号 |
密码 |
图4.2 学生实体图
如图4.3为教师实体图,教师也是现实世界刻画的任务之一。教师的基本信息为教师工号,教师姓名,年龄,性别,手机号,密码。教师实体转化为相应的关系模式:教师(教师工号,教师姓名,年龄,性别,手机号,密码)。
教师 |
教师工号 |
教师姓名 |
年龄 |
性别 |
手机号 |
密码 |
图4.3 教师实体图
如图4.4为家长实体图,家长在此系统中的基本信息为:与孩子关系,家长姓名,手机号,孩子姓名,孩子所在班级号,密码。家长在系统交互中的角色起着不可代替的作用,家长表的主码为手机号。家长实体转化为相应的关系模式:家长(与学生关系,家长姓名,手机号,学生姓名,密码,孩子所在班号)。
家长 |
与孩子关系 |
家长姓名 |
手机号 |
孩子姓名 |
密码 |
孩子所在班级号 |
图4.4 家长实体图
如图4.5位班级实体图,班级是现实中班级的一种模拟,班级的基本信息为班级号,班级名,年级。班级信息在此系统中为基础信息。班级实体转化为相应的关系模式:班级(班级号,班级名,年级)。
班级 |
班级号 |
班级名 |
年级 |
图4.5 班级实体图
如图4.6位教授实体图,教授是E-R图中一个联系,但是在此系统中,此联系被转化为一个表,教授表。教授表的基本信息为教师工号,班级号,评价好坏,教师所带的学科。教授是系统重要的关系之一,教授实体转化为相应的关系模式:教授(教师工号,班级号,评价,学科)。教师工号,班级号既是主码也是外码。
教授 |
教师工号 |
班级号 |
评价好坏 |
学科 |
图4.6 教授实体图
如图4.7为课程任务实体图。课程任务也是E-R图的联系之一,由教师在下班之前把所带班级明天的任务上传到系统中,班级管理员可以及时查看到教师发送任务(任务为各科任务)。课程任务的基本信息为教师工号,班级号,学科,发布时间,任务标题,任务描述。课程任务实体转化为相应的关系模式:课程任务(标题,学科,班级号,教师工号,上传时间,任务描述)。班级号,教师工号既是主码也是外码。
课程任务 |
教师工号 |
班级号 |
学科 |
任务标题 |
任务描述 |
发布时间 |
图4.7 课程任务实体图
如图4.8为疑问实体图。疑问也是E-R图中的一个联系,在本系统将会被转化为表,疑问信息主要是班级管理员将班级收集到的各科疑问提交到系统中,相应的教师点击之后会进行相关的回答,或者是记录。疑问表的基本信息为教师工号,班级号,疑问描述,解答。技术限制,当前系统解答时只能是上传相关的字符串,疑问实体转化为相应的关系模式:疑问(教师工号,班级号,疑问描述,答案描述)。班级号,教师工号教师主码也是外码。
疑问 |
教师工号 |
班级号 |
疑问描述 |
解答 |
图4.8 疑问实体图
如图4.9为评价实体图,评价也是E-R图中的联系,在此系统该联系被转化本信息为学生姓名,评价分数,教师工号,班级号。评价实体转化为相应的关系模式:评价(学生姓名,评价分数,教师工号,班级号)。教师工号,班级号既是主码,也是外码。
评价 |
学生姓名 |
评价分数 |
教师工号 |
班级号 |
图4.9 评价实体图
图4.10为实时信息图,实时信息主要就是为了给系统中学生,家长,教师查看。这些实时信息是按照上传时间最近的依次排列,实时信息包含了学校的动态,所以实时信息是了解学校的又一途径。实时信息主要为信息标题,关键字,新闻类型,信息描述。学校实时信息实体转化为相应的关系模式:学校实时信息(新闻标题,新闻类型,关键词,新闻文本)。
学校实时信息 |
信息标题 |
新闻类型 |
关键字 |
信息描述 |
图4.10 学校实时信息图
2.数据库中表的设计原则
一个软件逻辑系统的各种功能的实现主要是数据的增加,删除,修改,查询。因此数据库的设计是十分重要的,数据库设计中表之间的冗余,异常等等都是需要进行完善的。
此系统数据库的设计遵循3nf范式。3nf,既第三范式是要求一个数据库表中不包含已在其他表中已包含的非主关键字信息。比如说系统中教师-学生-教学表的设计。教师表(教师学号,姓名,年龄,性别,手机号,密码)。学生表(学号,姓名,年龄,性别,工作职称,班级号,密码)。教学表(教师学号,班级号,评语,学科)。解决了数据冗余。比如说学生表(学号,姓名,年龄,性别,工作职称,班级号,密码)和班级表(班级号,班级名,年级);3nf范式。
此系统中的表的属性不存在码的部分函数依赖,传递函数依赖。所以这是一个高效的数据库[9]。
如表4.1,学生表是由学生关系模式转化而来的,考虑到系统的需求,数据库学生表的主码是学号。
表4.1 学生表Student
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
sno |
Integer |
主码,学生管理员学号 |
|
2 |
name |
Varchar2 |
35 |
学生姓名 |
3 |
age |
Integer |
学生的年龄 |
|
4 |
sex |
Varchar2 |
2 |
学生性别为男或女 |
5 |
jobname |
Varchar2 |
15 |
为定值,班级管理员 |
6 |
classnum |
Integer |
班级号,整数值 |
|
7 |
password |
Varchar2 |
20 |
密码,注册时的密码 |
如表4.2,教师表是由教师关系模式转化而来的,考虑到系统的需求,数据库教师表的主码是教师工号。
表4.2 教师表Teacher
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
tno |
Varchar2 |
20 |
主码,教师工号 |
2 |
name |
Varchar2 |
35 |
教师姓名 |
3 |
age |
Integer |
教师年龄 |
|
4 |
sex |
Varchar2 |
2 |
教师性别为男或女 |
5 |
phone |
Varchar2 |
15 |
教师的联系手机 |
6 |
password |
Varchar2 |
20 |
密码,注册时的密码 |
如表4.3,家长表是由家长关系模式转化而来的,考虑到系统的需求,家长表的主码设置为手机号。
表4.3 家长表Parent
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
relation |
Varchar2 |
20 |
学生的直系亲属 |
2 |
parentname |
Varchar2 |
20 |
家长姓名 |
3 |
studentname |
Varchar2 |
20 |
学生姓名 |
4 |
classnum |
Integer |
班级号,外码值 |
|
5 |
phone |
Varchar2 |
15 |
家长的联系电话 |
6 |
password |
Varchar2 |
20 |
密码,注册时的密码 |
如表4.4,班级表是由班级关系模式转化而来的,考虑到系统的需求,班级表的主码设置为班级号。
表4.4 班级表Class
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
classnum |
Integer |
班级号 |
|
2 |
classname |
Varchar2 |
20 |
班级名 |
3 |
grade |
Integer |
年级 |
如表4.5,教授表是E-R图中的一个联系。因为教师和班级是多对多的关系,所以教授联系被转为一个数据库表。教授的主码是班级号和教师工号,也是外码。
表4.5 教授表Teaching
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
tno |
Varchar2 |
20 |
教师工号,外码 |
2 |
Classnum |
Integer |
班级号,外码 |
|
3 |
judgement |
Integer |
班级评价分数 |
|
4 |
subject |
Varchar2 |
20 |
学科 |
如表4.6,课程任务表,因为班级与课程任务是1对多的关系,教师与课程任务也是1对多,所以教师工号和班级号为课程任务表的主码,同时也是外码。
表4.6 课程任务表TeachingTask
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
title |
Varchar2 |
100 |
教学任务的标题 |
2 |
classnum |
Integer |
发送给的班级号,外码 |
|
3 |
tno |
Varchar2 |
30 |
发送的教师工号,外码 |
4 |
subject |
Varchar2 |
20 |
学科 |
5 |
time |
Varchar2 |
20 |
上传的时间,精确到分钟 |
6 |
task |
Varchar2 |
1000 |
任务描述 |
如表4.7,疑问表,因为班级与疑问是1对多的关系,教师与疑问也是1对多的关系,所以教师工号和班级号为疑问表的主码,同时也是外码。
表4.7 疑问表problem
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
tno |
Varchar2 |
30 |
发送给的教师工号,外码 |
2 |
classnum |
Integer |
发送给的班级号,外码 |
|
3 |
problemtext |
Varchar2 |
1000 |
学生的疑问描述 |
4 |
answer |
Varchar2 |
20 |
教师的疑问回答 |
如表4.8,评价表,因为班级与评价是1对多的关系,教师与评价也是1对多的关系,所以教师工号和班级号为疑问表的主码,同时也是外码。
表4.8 评价表judgement
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
tno |
Varchar2 |
30 |
被评价的教师工号,外码 |
2 |
classnum |
Integer |
评价的班级号,外码 |
|
3 |
studentname |
Varchar2 |
1000 |
评价时的学生姓名 |
4 |
judgescore |
Integer |
学生的评价分数 |
如表4.9,学校实时信息表,学校实时信息主要是在浏览中心界面是各种用户都可以查看当前学校的实时信息,学校的实时信息具有实时性,由管理员上传。考虑到系统的需求,学校实时信息表设置text为主码。
表4.9 学校实时信息表SchoolMessage
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
Title |
Varchar2 |
30 |
实时信息的标题 |
2 |
type |
Varchar2 |
100 |
实时信息的类型 |
3 |
Keywords |
Varchar2 |
200 |
实时信息的关键词 |
4 |
Text |
Varchar2 |
1000 |
实时信息的描述内容 |
系统实现是系统编码过程。系统的实现需要相当长的时间去编写代码,使用MVC框架,系统实现分为前端界面的实现和后端oracle数据库的编程[10]。前端界面的实现是需要html,css,js技术的,这些技术融合可以设计出动画的,美观的界面。后端数据库的编程主要为增加,删除,修改,查询;主要是sql的存取操作。
前端页面主要是jsp页面,涉及到的技术主要是html,css,js。由于水平的限制,所以设计出来的界面不是特别的协调。为了突出各功能,会通过色彩相应的对比进而实现相应的分离。
如图4.11为登录界面,完美的将html各标签,css动画,js相关事件融合在一起整个界面背景为一张校园图片,移动的气球为css动画,登录,注册为js点击事件。
图4.11 登录界面
如图4.12注册界面,通过此页面进而收集相应的用户数据,注册界面有学生,教师,家长,注册。收集相关数据,记录相关数据。注册是收集信息的简单的方法,但是注册时候应该要有相应的安全机制,比如说,当我们在手机号位数填错,密码不一致,数据库中未找到班级管理员的学号信息。这些意外的情况都有可能出现,避免这些错误,我们需要对前端界面操作有一定深度,一定了解之后才会简单的搞定。本系统中注册数据是登录该系统的唯一途径,所以只有注册成功后才可以使用本系统。
图4.12 注册界面
管理员,家长,教师,学生中心界面的设计。功能的不同,设计的界面也是有一定的差异。如图4.13管理员中心界面:中心界面有相应的轮播图,有相关的学校信息的查看,有相应的功能模块。点击学校介绍栏和学校管理条例栏时会
图4.13 管理员中心界面
把相应的隐藏数据显示出来,如图4.14.这些数据将会给出相关提醒。
图4.14 隐藏数据
管理员的功能比较多。管理员需要处理班级信息的输入,班级管理员学号的输入,查看用户的信息,删除用户的信息,教学信息的插入,修改,删除,关于升学的处理(升学需要处理大量的数据,有学生进入学校,有学生离开学校,有教师教学班级改变),学校信息的更新。
如图4.15为插入班级信息,将班级的班级号,班级名,年级插入到班级表中,此操作由管理员操作。如图4.16为插入班级管理员学号信息,为了提高注册数据的安全性,班级管理员的学号信息需要提前被管理员输入到数据库中,以便之后可以进行相应
的匹配。
图4.15 插入班级信息
图4.16 插入班级任务管理员学号信息
如图4.17为显示数据信息。这些数据库中的数据信息通过子页面将数据的信息依次显示出来。显示的数据信息有,班级信息,教师信息,学生信息,家长信息,教学信息。这些信息都是一些基本信息,比如说密码忘记,打电话给管理员帮忙查一下密码;
比如说一个班级管理员只能注册,想要更新必须要找到管理员先删除然后在注册。查询数据信息是管理员的一个基本功能。
图4.17 显示用户信息
如图4.18为删除数据信息,输出数据信息,只要有数据的主码就可以将表中对应的数据删除掉。删除用户信息也是通过子页面将用户的信息删除。子界面实施可以使主页面在不刷新的情况下就可以得到自己想要的信息。
图4.18 删除用户信息
如图4.19为插入教学信息,教学信息是动态变化的,所以教学信息的输入也被列为管理员的一项功能。实际的教学信息一旦修改,管理员应该及时在管理员端进行操作,以免信息流向出现错误。
图4.19 插入教学信息
如图4.20学校升学处理图,关于学校的升级处理这是需要一系列操作。按照顺序执行。学校的升学处理是每个学校补课避免的,升学处理简单来说就是最高年级的学生要离开学校了,那么这些年级的班级就没有了,删除最高年级,那么所有最高年级的班级都会被删除。删除完年级之后,所有低年级的班级的年级信息要加上一个1,同时新来的低年级要记录到数据库中,班级信息要插入到数据库表中。升学还会带来教师教学班级的改变,所以批量修改教学信息也是管理员的一项重要的处理功能。
图4.20 升学处理功能
如图4.21为更新学校信息界面,这也是管理员的一项功能,这项功能联系到家长,学生,教师。信息一旦由管理员上传之后,登录之后这些信息将会被看到,并及时了解到学校近况活动与通知。学校信息的更新通过子页面实现。如图4.22为显示相应的实时信息,完全可以把上传到的信息获取过来。
图4.21 更新学校信息界面
图4.22 显示学校信息界面
学校的实时信息是动态数据,从数据库获取数据进而显示到页面中去,最上面为最新的学校信息,学校信息的显示是通过滚动面板实现的。当点击某个实时信息时,将会显示信息的详细信息。家长中心界面,和教师中心界面,学生中心界面实现原理也都是差不多,除了功能有所差异。
如图4.23为后台数据库的增加,删除,修改,查询截图,这些都是最底端数据库的操作,根据前端界面事件进而相应后端数据的更新。
图4.23 增删修查代码截图
1.连接数据库。
本系统采用Oracle数据库,所以要通过java代码连接数据库,实现数据的插入获取。
2.数据的查询。
数据的查询过程:数据库表查询----------à查询到的集合放到ArrayList中-------à通过Servlet将数据传递jsp页面------------à在jsp页面中遍历ArrayList显示到jsp页面上。
3.数据的删除。
Jsp页面中输入表中有关的属性---------àServlet中获取该属性值------à通过嵌入java代码执行删除sql语句--------à表中删除有关数据。
4.数据的插入。
Jsp页面中获取数据--------àServlet中经过包装传入后台-----à通过嵌入sql执行插入操作------à将数据插入到表中。
5.数据的修改。
从数据库表中获取数据-------à数据显示到jsp中-------à在jsp页面上修改数据-------à通过Servlet包装传入后台--------->执行sql语句-----à在表中完成修改。
就本系统来说,我们通过识别不同的账号,密码进而相应的从后台获取相关的数据显示到前台页面。前台数据分为静态数据和动态数据,比如静态写定的数据就是静态数据,而从数据库中获取的数据就是动态数据。
前台页面又有隐藏数据,通过控制按钮进行显示与隐藏。后台与前台的交互也就是一定需要接口Servlet,Mode通过Servlet封装将后台或者前台的数据传递出去,实现一系列的增加,删除,修改,查询的功能[11]。
如图4.24为系统中的家长,学生,教师注册界面流程图。系统中的各角色注册成功后会跳转到登录访问界面,注册失败时会提示相应失败原因。
点击注册按钮 |
登录界面 |
成功 |
失败 |
输入数据 |
注册 |
结束 |
开始 |
图4.24 用户注册流程图
如图4.25,为教学任务流程图。该图显示了系统中的教学任务模块。教师向系统中发送教学任务,班级管理员查看并打印教师发送的教学任务。教学任务为系统中教师和学生交互的内容之一。此模块主要是为了提高教学质量,为了预防一下教师布置任务不清楚,学生未接收到任务的情况,这个模块将教学中的布置任务整合起来,让教师和学生看起来更加轻松,这将有利于学生的学习,激发学生学习的渴望,也可以提前的准备一些课程的预习工作。比如说某某教师今天上午或者下午要讲一些什么内容可以提前的查看内容。
登录界面 |
身份验证 |
进入主界面 |
身份验证 |
进入主界面 |
失败 |
教师界面 |
成功 |
开始 |
输入教学任务 |
更新教学任务表 |
结束 |
插入/删除 |
删除教学任务 |
插入 |
删除 |
查看并打印教学任务 |
学生管理员界面 |
图4.25 教学任务流程图
如图4.26为疑问信息流程图。主要是系统中疑问模块的流程。班级管理员收集班级里面的各科的疑问,比如说试卷里面的题目,课本上的题目然后发送到系统中,教师看到所带班级的题目,可以打印出来在课下提前做好准备,课上轻松给学生讲解。疑问模块是教师与学生交互的内容之一,通过这种课堂上和课堂下的这种交互,提高教学中一些障碍。
登录界面 |
身份验证 |
进入主界面 |
身份验证 |
进入主界面 |
失败 |
教师界面 |
成功 |
开始 |
输入疑问信息 |
更新疑问表 |
结束 |
插入/删除 |
删除疑问信息 |
插入 |
删除 |
查看并打印疑问信息 |
学生管理员界面 |
图4.26 疑问信息流程图
如图4.27为评价模块,班级管理员收集班级里面的同学对各科教师的评分,将这些评分输入到系统中,教师可以查看所带班级的评分。教师可以根据相应的评分做出相应的修改。评分模块是学生对于教师的监督,学生会根据教师平常在课堂上讲解内容的深浅,分析给出相应的评估。
登录界面 |
身份验证 |
进入主界面 |
身份验证 |
进入主界面 |
失败 |
教师界面 |
成功 |
开始 |
输入教师评分 |
更新评分表 |
结束 |
插入/删除 |
删除教师评分 |
插入 |
删除 |
查看班级评分 |
学生管理员界面 |
图4.27 评分模块流程图
如图4.28为家长浏览模块流程图。家长浏览模块主要是家长登录系统可以查看学校的一些学校信息,学校的规章制度,学校的实时信息。这方便的帮助家长了解学校的生活,或者说了解孩子的学校的实时信息。家长是系统的重要角色之一,他可能也就是提前的了解到学校的活动,家长也可以为孩子进行相应的准备活动。比如说某某家长需要作为代表家长要在什么地方讲话,这些都需要提前准备,不可能说即兴演讲,这也是有利于家校合作。
登录界面 |
身份验证 |
进入家长主界面 |
失败 |
成功 |
开始 |
查看学校实时信息 |
查看学校规章条例 |
结束 |
图4.28 家长浏览模块流程图
如图4.29为家长和班主任通信模块,这个模块是系统中家长和班主任之间交互的重要内容。虽然说系统中实现的相对来说比较简陋,但是这也可以达到家长和班主任之间的持续的聊天,家长也可以异步聊天,比如说发信息,但是班主任没有登录,这些信息将会保存到数据库中,等到下一次班主任登录打开界面的时候将会看到班级家长发送来的信息。家长和班主任通过登录时聊天,家长可以询问自己家孩子在学校的学习状况和生活状况,是否需要家庭教育,如果需要家庭教育,在进行与孩子相应的交流,让孩子与家长也有一定的交互。
登录界面 |
身份验证 |
进入主界面 |
身份验证 |
进入主界面 |
失败 |
教师界面 |
成功 |
开始 |
结束 |
学生管理员界面 |
聊天框交互 |
图4.29 家长和班主任通信流程图
家长与班主任的通信:家长与班主任的通信是本系统最大的特色之一,它实现了班主任,家长之间的异步,同步之间数据的互传,实现了班主任之间简单的聊天,而且这种聊天只适合关于孩子的那种特定的话题,系统中这两种角色的通信虽然说页面比较简陋,但是却是可以表达相互之间的交流。比如说客户端向服务器端发送数据。服务器端代码:
服务器端代码需要运行,等待客户端的连接。一旦有客户端连接那么服务器端就会进入监听阶段。一旦发现socket数据流中有数据,立即将数据读出来保存到数据库中。该服务器在本系统中就是班主任模块。由于班主任有很多个班主任,所以当我们在从客户端发出的信息是给那个班主任的。因此我们要新建一个数据库表。如表5.1 Information表 。
表5.1 information表
字段 |
字段名 |
数据类型 |
最大长度 |
说明 |
1 |
Sequence1 |
Integer |
主码,序号 |
|
2 |
username |
Varchar2 |
35 |
用户名,手机号 |
3 |
Classnum |
Integer |
班级号 |
|
4 |
str |
Varchar2 |
1000 |
发送的信息量最大值 |
如图5.1通过username我们将客户端-家长的数据传递给班主任。如下图就是客户端之前发送来的信息。
图5.1 班主任服务器端界面
我们可以看到家长主码是手机号,我们可以看到,当我们打开交互功能页面的时候,我们会把这个班主任对应的家长发送来的信息按照家长依次在左边框中列出来,当我们点击左边家长主码的时候,会把对应家长发送来的信息获取过来。获取之后左边对应的家长列应该消失,该交互的缺陷是打开某个家长发来的消息时就会把对应的家长发来的信息从数据库表中删除掉。所以班主任在打开家长发来的消息时候就要给予回复,否则该数据就会丢失。该交互可以持续交互,页面每8s会自动刷新,会从数据库中获取新的数据,并将新的数据显示到文本框中,所以在双方打开页面的时候可以持续沟通。每次获取都是最新的数据,获取完之后会把该数据删除掉,从而保证数据的实时性。如果一方把页面关闭,那么该数据将会保存到数据库中,以供下次可以获取。
将服务器端班主任信息传给家长,首先说明这个平台只是用来班主任与家长之间平时对于孩子一些状况的了解,如果是紧急事件该平台将没有帮助。服务器端班主任只是起到一个传递孩子信息状况的作用,所以在没有孩子家长询问的情况下,班主任一般是不会回复。只有在家长询问的情况下,班主任才会回复,所以这是一个单方面的交互。班主任在打开发来信息的家长窗口时,会给予回复,回复相关的内容。如果对方继续交流那么会继续显示到框中,如果此时关掉界面将会把数据保存到数据库中,下次打开时将会出现。班主任回复如图5.2,班主任的回复语句将会发送给家长。如图回复的语句是”李三最近表现不错,但是成绩一般”,这句话显示在家长端的信息框中,家长打开界面便会查看到,当关闭此界面框,数据信息将会被删除。
图5.2 家长客户端接收到的信息
Socket通信的步骤:一是创建Server Socket和Socket;二是打开连接到Socket的输入与输出流;三是按照协议对Socket进行读/写操作;四是关闭输入输出流, 关闭Socket[12]。
Socket包是为了使得家长与班主任能够正常通信而建立的包,包中包含3个文件,client文件,SendMessage文件,Server文件。这3个文件分别就是实现异步或者同步交互的聊天。当从页面中点击发送时,会经过SendMessageServlet处理之后SendMessage如图5.3 然后送到数据库中-------à然后再被调用。
图5.3 Socket包截图
当点开页面时会调用数据库中的数据进而显示到对应的jsp页面上,页面自动刷新,会再次从数据库中获取最新的数据显示到相应的位置上-------动态数据。
1 Socket通信中的不足。
本系统中家长-班主任之间的交互确实还有很多的不足。比如说班主任不能主动的去找家长发送信息,只能是家长一方发送信息,班主任只能回复。当班主任打开家长发送信息的界面时,必须要给予回复,不回复,则数据将会被删除掉。
2 Socket通信中需要完善的地方。
我们可以为班主任添加一个功能可以寻找学生家长,比如说输入孩子姓名,找到对应的学生的家长,给予孩子及时的帮助。我们可以保存班主任与某个家长的最后的记录,以供后期可以继续的交流,更深层次的交流。
开发者开发完一个软件系统后,都必须要进行软件测试,软件测试是软件投入实际使用必不可少的一步。软件测试是检查软件系统是否完成了用户的需求以及操作过程中是否存在漏洞。
软件测试的主要目的是为了在软件正式投入使用前测试系统是否存在问题,如果存在则要尽可能解决问题,成功的测试是发现而不是为了证明程序没有问题,因此正确认识测试目标也是非常重要的。软件测试最终目的是为了对开发者设计的最终程序进行检查,建立一个可靠性高,且符合用户需求的软件系统[13]。
任何程序的测试都有两种方法,即黑盒测试和白盒测试。
黑盒测试不考虑黑盒测试的内部结构,也不对处理的结果进行关注,测试工作者只需要根据程序功能的需求规范确定测试用例,并对测试结果的正确性进行推测即可。
白盒测试又称为结构测试,按照程序内部的逻辑测试系统,检查产品的内部动作是否按预定要求正确工作。
软件的测试也是分步骤进行的,测试过程一般由以下几个步骤组成:
该测试的目的是保证每个模式作为一个单元能正常运行,所以又称为单元测试,在这个测试过程中所发现的一般都是编码和详细设计的错误。
子系统测试就是把在经过模块测试后的那些模块再将其组合成一个系统,然后再对这个子系统进行测试,该测试的主要目的是为了测试模块的接口功能是否能够投入使用。
系统测试是把在上次测试中经过测试的子系统组成一个完整系统,然后对这个系统再次进行测试,在系统测试过程中发现的一般都是软件设计中的错误,或者是发现需求说明中的错误。
验收测试把软件当成实体进行测试,过程中发现的一般都是系统需求说明书中的错误。
当软件开发完成之后,即便经过验收,一般也不会立即投入使用,而是需要经过时间的测试,将完成的系统与要取代的旧系统进行对比,若比旧系统性能好才会大面积投入使用。要将测试结果提交给相应的开发人员,经过评估,是否需要进行完善测试,让系统人员进行调试。对计算机软件的开发与应用进行优化,促进计算机及相关软件应用行业的长效发展[14]。
软件工程中测试用例是一组条件或变量,测试者根据它来确定应用软件或软件系统是否正确工作。如表6.1是测试用例表,测试用例就是对系统各模块功能选取适当的用例进行相应的用例设计。功能用例在软件测试中占据相当重要的地位。在现代软件快速发展的年代,测试用例已经成为IT公司封装好的快速测试的重要一个技术。表6.1为功能用例表,表中详细介绍了系统的各功能设计的测试用例。
在软件测试中, 需要通过对被测软件系统进行全面的功能需求分析, 确定软件系统的整体执行流程。在得到软件系统的所有执行流程后, 对每条流程用时序图进行描述。然后才能针对用例 (软件系统的一个特征或功能) 进行相应的用例场景描述[15]。本系统中对于每条流程图有了清晰的描述,对系统有了全面的功能需求。表6.1详细的介绍了系统中各功能测试的结果,重要性,测试路线。测试用例的设计覆盖了系统几乎的全部功能。
表6.1 测试用例表
用例编号 |
模块 |
测试内容 |
前置条件 |
严重性 |
测试结果 |
1 |
登录模块 |
能否登录 |
与服务器连接正常 |
严重 |
可以登录并进入主页面。 |
2 |
注册模块 |
能否正常注册,及时更新数据库相关表 |
可以连接网络 |
严重 |
可以进入注册,更新数据库表。 |
3 |
管理员模块 |
能否对基础细信息进行事务操作 |
与服务器连接正常,并可以进入主页面 |
严重 |
可以提前输入一些基础数据,可以查询,删除数据信息, |
4 |
课程任务模块 |
教师能否上传课程任务,学生能否接收课程任务 |
与服务器连接正常,并可以进入主页面 |
严重 |
教师可以上传课程任务,学生可以正常查看教学任务。 |
5 |
疑问模块 |
学生能否上传疑问集合,教师能否查看并批阅 |
与服务器连接正常,并可以进入主页面 |
严重 |
学生可以上传疑问集合,教师查看后可以给出相关回复,并及时打印或者更新疑问表。 |
6 |
评价模块 |
学生输入评价,教师能否正确更新评价信息 |
与服务器连接正常,并可以进入主页面 |
严重 |
学生可以正常输入评分,并及时更新到教师模块中。 |
7 |
上传学校实时信息模块 |
能否更新学校实时信息并及时显示到界面中 |
与服务器连接正常,并可以进入主页面 |
严重 |
管理员更新学校实时信息。系统中所有角色都可以查看学校的所有实时信息。 |
8 |
通信模块 |
系统中班主任与家长角色是否能够正常通信交互 |
与服务器连接正常,并可以进入导航栏 |
严重 |
班主任与家长能够简单的通信,班主任对于家长发来的信息只能打开一次,关闭信息框数据将会被删除。 |
9 |
退出模块 |
能否退出系统 |
与服务器连接正常,并可以进入主页面 |
严重 |
可以退出系统回到登录界面。 |
本次毕业设计是我一个人独自开发的一个系统,测试是一个比较重要的工作,测试时候主要就是测试系统的各功能模块,若个功能可以正常运行达到客户要求,那么系统是相对来说比较达标的系统。由于系统中的功能比较单一、使用,所以测试也是比较简单。测试中也是出现过错误,比如班主任与家长通信时的信息更新错误,课程任务模块删除操作有误。这些错误都是一些基础性的错误很快的就解决了。系统中模块划分比较明确,对于各个角色可以轻易的掌握使用,系统中的界面一般,实用性还行,使用系统可以大大提高教学的质量。
经过一个学期的努力,我终于完成了自己的毕设课题,中小学教师学生家长交互平台的设计与开发。中小学教师学生家长交互平台系统是一个基于Java,Jsp技术的一个软件系统。系统中分为四类登录用户,管理员用户、教师用户、家长用户、学生管理员用户。管理员用户主要是处理一些基础数据的增加、删除、修改、查询。教师用户主要是处理发送教学任务,打印疑问,查看评分。学生用户主要主要是处理打印教学任务,输入疑问,输入评分。家长主要是查看学校规章制度,学校情况,学校实时信息,与班主任通信。虽然说系统的功能比较单一,整体实用性还算良好。在开发系统过程中遇到了很多的困难。刚开始的时候由于盲目以为能设计出很厉害的系统,但是一做课题系统的时候,发现基本的MVC框架都不是很熟,数据库的一些操作也不是很快上手,还没有大展身手便慌了阵脚。开始的时候还是大量的学习oracle数据库,MVC框架。学习完之后就做系统,发现一个真正系统不是自己想的那么简单,于是便开始取舍,比如说刚开始打算实现安卓登录,后来因为工作量有点大,所以就放弃了。我认为做完PC端也是一个考验,我很快上手编程。从登录模块,管理员功能模块,教师与学生的交互,这些都是数据的增加、删除、修改、查询,所以花费的时间不是很多。关于系统中的难点主要是数据库的设计,数据库表的建立,因为在建立表的时候还是要考虑实体与实体之间的联系。另外系统中家长与班主任的通信很难的一块内容,首先班主任与家长是1对多,所以家长只有注册之后便会自动对应其孩子班主任。在他们之间交互时想了很多,最后是通过Socket通信,因为之前做过客户端服务器端之间的交流通信,所以一时间就想起来了,我觉得非常的符合,于是将其运用到我的系统中。班主任的交流界面分为两块,左边是给发送来信息的家长,右边则是交流框。点击左边的家长框查看对应家长发来的信息,进行相关回复。通信中的缺点主要是班主任是属于被动状态,只有家长给他发信息的时候,他才能看到并回复,如果班主任想找到特定的家长交互是不能够的。最后系统完成了,自己也是非常的高兴。整个过程中还是要一步步走好,走稳。要按照软件开发过程中进行软件设计,需求分析,总体设计,详细设计这些都是不可获取的,有了这些,最后的编码实现才会易如反掌。假如说没有需求分析,我想我们做的系统可能是没有意义的,没有总体设计,数据库设计,系统的框架不会如此清晰的呈现出来。这些都是不可或缺的,我们要从实际出发。
理论与实践的相结合,理论的确很强大,实践是需要理论的指导。软件工程开发过程是历年软件工程人员总结出来的经验,这是一套经久的理论,这种理论的指导下,我们会开发出实际中需要的软件系统。我们不可一意孤行做出来毫无意义的系统,到最后只有浪费了宝贵的时间和自己的劳动力。毕业设计结合了四年的知识,收获很多,不只是手上的代码经验,更是对于系统的坚持到底。我相信未来只有踏实编程,用自己学习到的理论去实践一定会取到更加丰硕的成果。