网上教学管理系统的设计与实现
网上教学管理系统的设计与实现
第1章 绪 论
1.1 背景
为了促进计算机专业学生工程实践能力的提升,使老师能够更好的管理学生,帮助学生提高学习成绩掌握更多的专业知识,增强师生之间的交流;解决老师教学资料、发布作业、随堂测试等诸多问题开发了此系统。
布置作业是教师检验学生学习状况的常见方式,传统的作业方式还停留在了纸和笔的方式上,不仅效率比较低,而且不利于环保,因此教学模式的改革势在必行。
检测学生学习状况常用的方法就是考试,考试可以采用开卷和闭卷两种方式,并且通常采用期末测试、平时测试和实践环节考核综合方法评定最终的成绩。上述考核方法能够在一定程度上约束学生好好学习,但无法对其学习过程、学习态度、学习能力进行全面检测。因此也就无法约束学生在学习过程中持续的学习,这也是开发此系统需要解决的问题。
由于用户分布广泛,且存在很大差异,如:知识结构的差异、计算机硬件配置的差异、操作系统的差异等。因此本系统设计应当采用典型的B/S(浏览器/服务器)的构架进行设计,操作简单直观,对硬很好集成。件要求低,最好能实现跨平台。跨平台一是指客户端用户操作的跨平台,二是指服务器端的跨平台,即可以将服务器部署在所有操作平台上。系统应当有很好的扩展性,与当前高校中现有的系统。
1.2 国内外现状及发展趋势
目前随着IT技术的不断创新与发展,新的技术不断推出,各种信息化的解决方案不断成熟。面向对象程序设计语言的广泛使用,各种成熟关系数据库的不断完善与推出,再加上面向对象的软件开发过程广泛应用,软件开发过程变得越来越容易,开发出的系统变得越来越实用,许多企业使用信息系统后,明显提高了办事效率,带来了很大的经济收入。目前流行的基于B/S结构的解决方案主要有ASP,JSP,PHP等技术。本系统选用JSP技术开发,使用当前流行的SQL Server 2000数据库管理系统来存储数据,主要解决教师管理、管理员管理和学生登录等基本信息以及后台数据的维护与更新。
随着互联网的盛行及教学模式改革的需要,教学模式应该越来越趋向于网络教学方向发张,也就是说可以在网上完成几乎所有的教学内容。就我国目前计算机技术发展状况来看,我国软件技术、网络设施、安全措施的发展很大可能可以达到网络教学模式的要求。所以全面实现网络教学必然会使现有的传统教学模式的变革,并且教师和学生的工作习惯和工作方式也需要很长时间改变并适应新的环境,虽然有诸多问题,但是全面实现网络化教学模式仍然是势在必行。
网络教学是基于Internet开展的现代远程教育的支撑平台,为远程教学的学习者和教育者提供了授课、学习、答疑、讨论以及作业处理等教学过程的支持工具。网上教学的评价标准还需进一步细化,从而更好的体现学生的学习能力、态度、质量等等;软件功能可进一步完善,更方便用户使用,同时提供更详尽的评价参数,实现系统的关键技术还可进一步提升;数据库资源库建设需进一步完善。
今后的研究方向为学生学习过程评价趋于智能化,包括智能评价标准、指标体系以及智能评价系统实现关键技术等等。
1.3 研究的意义
随着全球经济化和高科技的飞速发展,教学网络化已成为一种发展趋势,教学网络化可以改变传统的课堂教学模式,能够使学生和任课教师的有更多的交流,同时提高学生的自主学习能力,将传统的较枯燥的课堂教学模式变成学生的自主学习模式,不仅能够提升教学的效率,改善教学环境。同时由学生由原来的被动接受变为主动接受,学习模式的改变也意味着学习效率的增加。
对于传统课堂教学模式,教师的工作往往比较繁重,准备课堂资料、随堂测验、备课笔记等等。这些资料的准备通常需要很长一段时间而且容易丢失或者不易修改。并且不是所有的学生都可以完全在课堂上掌握任课教师教授的知识,那么课下的复习就显得尤为重要,而随堂的笔记记录的好坏也决定着学生复习知识的好坏。而利用网络教学模式这些问题就迎刃而解了。任课教师可以将随堂的资料、课件或者视频等信息上传到网站中方便学生随时下载和使用,这样每名学生就可以得到完全一致的随堂资料,减少了因资料不够影响学习的程序;其次,教学资料都是保存在系统的数据库中,可以方便教师可以随时的修改这些资料,不仅节省纸张还节省时间。
若该方法能够取得不错的效果,可以推广到其他类课程;同时模拟系统也可以作为基本框架进行推广应用。
1.4 研究的内容和要求
1.内容
(1) 分析高校教学、考试系统的应用;
(2) 建立课程信息模块;
(3) 建立在线学习模块;
(4) 建立师生交流平台;
(5) 建立在线测试模块。
2.要求
(1) 具有较强的安全性,程序可读性好;
(2) 应依据软件工程的基本思想进行;
(3) 系统应满足用户操作方便,系统应该具有容错性,即用户操作错误时具有提示功能。
第2章 系统分析
2.1 可行性分析
技术可行性:网上教学管理系统在目前的高校中使用还不普遍,但也有许多类似的成功案例:如教务管理系统、排课系统等。本系统采用JSP,JavaScript脚本语言、html标识语言及SQL Server 2000数据库技术综合开发。JSP是一种安全稳定的动态网页技术,目前国内各企业的电子商务系统,ERP系统,银行信息系统等基本上都用JSP开发的。Microsoft SQL Server(基于结构化查询语言的数据库服务器)是基于客户/服务器结构的数据库管理系统,用户通过使用客户系统从服务器检索信息并进行本地操作,服务器关注数据库进程,而客户则关注信息的表示。为了使客户端能够从服务器中访问数据,服务器必须具备以下两个关键特征:一、对在数据库中的数据提供单点访问。二、将处理和操作在客户端和服务器间进行分配。SQL Server使用Transact-SQL语言来维护、实现和访问数据库,Transact-SQL是SQL(Structured Query Language)的一个子集标准。SQL Server有多种实用程序允许用户来访问它的服务,用户可用这些实用程序对SQL Server进行本地管理或远程管理。
经济可行性:本系统使用B/S架构设计,使用市场上流行的动态网页技术,开发简单,使用度方便,不需要耗费大量的人力物力就能很快的开发出来,系统部署对软硬件要求不高,用户操作简单,几乎不需要对用户进行专业培训就可使用本系统,所以从经济上讲是可行的。
法律可行性:本系统拥有自主知识产权,没有使用任何违法的软件也没有交易任何非法的商品,所以在法律上是可行的。
操作可行性:本系统操作简单方便,只要懂得上网都能方便操作本系统,所以在操作上也是可行的。
分析结果:从以上的分析可知,网上教学管理系统的解决方案无论在技术,经济还是法律以及操作上都是可行的,且开发本系统具有一定的经济价值和实用价值。
2.2 需求分析
用户是系统的最终使用者,开发系统的目的是要用户最终很好的使用系统,最终为用户带来各种便利。本系统要解决高校学生在线学习和考试、教师在线发布考试题、作业管理等功能,通过对高校的实际调查分析,本系统应当包括学生、任课老师、系统管理员三类用户,这三类用户对系统的需求简要概括如下。
学生对本系统的主要需求是:利用本系统完成在线学习,包括完成老师发布的作业、抢答问题、记录笔记和代码、在线考试、查看总分等功能。
在线学习需求:学生在本系统上选择需要学习的课程资料、课程视频、课程课件等一切资料。
在线考试需求:学生在本系统上选择需要完成的考试。
在线完成作业需求:学生可以在本系统上完成老师发布的作业。
记录笔记和代码功能:学生可以随时记录课堂笔记和课堂代码,方便复习和便于老师随时掌握同学的学习情况。
教师对系统的主要需求是:利用本系统管理学生、上传教学所需的一切资料、发布和检查作业、评阅学生笔记和代码、考试管理等功能。
管理学生需求:教师用户可以随时添加或删除学生,方便教师管理学生。
上传教学资料需求:教师用户需要上传教学资料方便学生用户使用。
发布和检查作业需求:教师用户需要发布和检查作业。
评阅学生笔记和代码需求:教师用户用此功能可以随时掌握学生用户的学习情况。
考试管理需求:教师用户在本系统要有对于考试功能的管理权限。
系统管理员有系统的最高权限,负责系统所需所有数据的动态同步更新以及维护,根据系统针对各用户的设计,基本功能需求如下:
系统设置:设置学生的学号长度,方便不同院校使用本系统。
添加和查询院系功能:根据不同院校添加不同的院系。
添加和查询班级功能:根据不同院系添加不同的班级。
添加和查询课程功能:根据不同的院校添加不同的课程。
添加和查询教师功能:根据不同的院系添加不同的教师用户。
添加和查询学生功能:根据不同的院系添加不同的学生用户。
2.3 数据流图
数据流图是结构化系统分析的工具。它既可以表达数据在系统内部的逻辑流向及存储,又可以表达系统的逻辑功能和数据的逻辑变换。数据流程图既能表达现行人工系统的数据流程和逻辑处理功能,也能表达自动化系统的数据流程和逻辑处理功能。
首先设计的是网上教学管理系统的数据流图的顶层,它包括管理员信息、教师信息和学生信息等操作,网上教学管理系统用户使用数据流图如图2.1所示。
教师 |
学生 |
教师管理
验证用户名和密码 学生管理
验证用户名和密码 学生管理
验证用户名和密码 管理员 |
管理员操作信息 |
教师操作信息 |
学生操作信息 |
管理员 |
教师 |
学生 |
管理员操作结果 |
教师操作结果 |
学生操作结果 |
网上教学管理系统 |
图2.1 网上教学管理系统用户使用数据流图
系统管理
|
管理员操作系统数据流图如图2.2所示。
|
|
教师管理 |
学生管理 |
教学管理 |
考试管理 |
教师管理 |
学生管理 |
成绩管理 |
教学管理 |
发布和检查作业 |
考试管理 |
学生管理
验证用户名和密码 |
成绩管理
验证用户名和密码 |
教学管理
验证用户名和密码 |
发布和检查作业
验证用户名和密码 |
考试管理
验证用户名和密码 |
成绩管理 |
发布和检查作业
|
图2.2 管理员操作系统数据流图
教师操作系统数据流图如图2.3所示。
个人空间 |
教学管理 |
学生管理
|
考试管理
|
抢答问题 |
发布和检查作业 |
成绩管理 |
学生管理 |
个人空间 |
教学管理 |
发布和检查作业 |
考试管理 |
成绩管理 |
教师操作系统 |
学生管理
验证用户名和密码 |
教学管理
验证用户名和密码 |
个人空间
验证用户名和密码 |
发布和检查作业
验证用户名和密码 |
考试管理
验证用户名和密码 |
|
图2.3 教师操作系统数据流图
学生操作系统数据流图如图2.4所示。
在线学习 |
作业任务 |
个人空间
|
在线考试
|
抢答问题 |
我的代码和笔记 |
个人总分 |
个人空间 |
在线学习 |
作业任务 |
抢答问题 |
在线考试 |
个人总分 |
学生操作系统 |
个人空间
验证用户名和密码 |
在线学习
验证用户名和密码 |
作业任务
验证用户名和密码 |
抢答问题
验证用户名和密码 |
在线考试
验证用户名和密码 |
个人总分
验证用户名和密码 |
图2.4 学生操作系统数据流图
第3章 系统设计
3.1 系统布局设计
页面顶部 |
系统页面采用框架来设计,不同的用户有不同的功能菜单,但都有统一的风格,这给页面的使用和维护都带来了很大的便利,特别是在代码重用方面起了很大作用。本系统各用户的页面设计如图3.1所示。
功能菜单 |
用户信息 |
功能菜单 |
页面主体 |
图3.1 用户页面设计图
- 页面顶部区——可以在此展示系统标识等信息。
- 功能菜单区——提供系统可供操作的功能列表。
- 页面主体区——显示页面格式化数据页面主体区显示的内容,将依据页面在系统中的作用而定。
- 用户信息区——可设计为显示用户的基本信息。
3.2 系统功能设计
网络教学平台由教师系统、论坛管理、学生系统、教学管理系统和过程评价五大模块组成,这些模块之间相互联系,相互配合,构成一个完整的网络教学系统。
1.教学系统管理
- 用户管理:系统管理员可以完成用户增、删、改、查的功能,其余用户只能查询或修改本用户的信息。
- 基本信息管理:系统管理员可以完成对数据库的建立,包括对院系、班级、课程信息的增、删、改、查功能。
- 资料管理:管理员可以查看和删除学生学习资料、教师教学资料和论坛信息。
- 题库管理:管理员可以对试题进行增、删、改、查。
2.论坛管理
- 提问:发布问题。
- 回答:回答已经发布的问题。
- 评价:评价已经发布问题或答案。(0~100分)
3.学生系统(学生学习记录学习情况,教师和管理员可以学习但不记录结果)
- 在线测试(控制分数)
- 按章测试
- 按题型测试
- 综合测试
- 在线学习
- 查询教学计划
- 查询作业
- 下载或浏览教学资料
- 编辑笔记
- 编辑代码
- 上传学习资料
- 个人空间管理
4.教师系统(仅允许教师维护自己的教学)
- 基本课程信息管理:包括课程基本信息,教学计划、大纲、日历、课程评价等信息的建立及上传。
- 学生管理:可以完成对学生用户的增、删、改、查功能。
- 教学资料管理:上传和维护教学资料。
- 作业管理:上传和维护课程作业。
- 考试管理:制作考题、发布考试、批改考试成绩。
- 评价:笔记评价和代码评价。
5.过程评价
- 查询:教师和学生可以随时查看评价分数。
- 报表:生成电子报表,可以打印。
网上教学管理系统功能结构图如图3.2所示。
网上教学管理系统 |
教师系统 |
论坛管理 |
过程评价 |
学生系统 |
教学管理系统 |
教学资料管理 |
基本课程信息管理 |
作 业 管 理 |
评 价 |
提 问 |
回 答 |
评 价 |
在 线 测 试 |
在 线 学 习 |
查 询 |
报 表 |
用 户 管 理 |
资 料 管 理 |
题 库 管 理 |
图3.2 网上教学管理系统功能结构图
3.4 数据库设计
数据库是用于数据管理的新技术,现如今,信息资源已经成为公司各部门的重要资源和财富,建立一个满足各级部门信息处理要求的系统是企业生存和发展的重要条件,数据库是存储完整记录的集合,它分为三个阶段:人工管理阶段,当时科技发展比较缓慢,存储数据的设备只有纸带、卡片、磁带等,软件没有操作系统,没有管理数据的专门软件,人工管理数据特点有:数据不保存、不共享、不具有独立性,这给工作带来极大的不便,经过漫长的发展,文件系统阶段应运而生,它不仅可以使数据可以长期保存,而且可以共享数据资源,但还存在许多缺点未解决,到如今,数据库已发展到数据库系统阶段,这时的硬件已经有大量的内存空间,处理数据的速度也得到很大的提高,多用户、多应用共享数据的需求也可以得到满足。
数据库的设计需要我们耐心搜集,理清各个用户之间的关系以及表与表之间的联系,尽量实现数据结构化,数据之间共享性高,冗余度低,易扩充。在设计的过程中,我们需要结合实际,保证各字段的设计的合理性,类型定义的准确性。
本系统使用最为广泛的关系模型来设计数据库,关系模型与以往的模型不同,它是建立的数学概念的基础上,关系模型是有一组关系组成,每个关系都是一张二维表,一个关系对应一张表,表通常由关系、元素、属性、码、域等组成,并且关系的每一个分量必须是一个不可分的数据项,我公司是一个中型企业,所以数据库的选择至关重要,本系统采用的是SQL Server 2000数据库,它易于安装部署和使用,给开发人员带来极大的方便。
根据需求分析确定连接的数据库逻辑结构如下:
- Administrators(rec_id(int),wnum(varchar(50)),wpswd(varchar(30)),tname(varchar(20)),tsex(int),tdep(varchar(500)),tpri(int),temail(varchar(50)),tphone(varchar(50)),addtime(datetime));
- banj_info(rec_id(int),yxid(int),bjname(varchar(100)),remark(varchar(100)),addtime(datetime));
- bj_info(rec_id(int),snum(varchar(100)),cxid(int),content(varchar(5000)),mark(int),addtime(datetime));
- cdwt_info(rec_id(int),wtid(int),snum(varchar(100)),content(varchar(7000)),mark(int),addtime(datetime));
- cx(rec_id(int),kcid(int),cxname(varchar(50)),cxwg(int),remark(varchar(50)),addtime(datetime));
- cx_pap(pap_id(int),cx(int),title(varchar(200)),add_time(datetime),isok(int),israndom(int),pstate(int),ishavetime(int),up_time(datetime));
- cx_que(rec_id(int),snum(varchar(30)),cx(int),que_n(int),que_id(int),que_ans(varchar(800)));
- cxsuc(rec_id(int),snum(varchar(30)),pap_id(int),title(varchar(30)),sums(int),sumz(int),yes_s(int),up_time(datetime),addtime(datetime));
- dm_info(rec_id(int),snum(varchar(100)),cxid(int),title(varchar(1000)),content(varchar(5000)),mark(int),addtime(datetime));
- kc_info(rec_id(int),kcname(varchar(500)),remark(varchar(5000)),addtime(datetime));
- kj_info(rec_id(int),filename(varchar(200)),cxid(int),title(varchar(200)),mark(int),wnum(varchar(200)),addtime(datetime));
- my_file(rec_id(int),username(varchar(50)),filename(varchar(200)),remark(varchar(7000)),addtime(datetime));
- question(rec_id(int),pnum(int),qnum(int),question(varchar(800)),kc_id(int),cx_rec_id(int),type(int),state(int),num(int),is_random(int),add_time(datetime),mark(int));
- storer(rec_id(int),que_rec_id(int),knum(int),answer(varchar(400)),keys(varchar(3000)));
- stu_info(rec_id(int),snum(varchar(30)),spswd(varchar(30)),sname(varchar(30)),ssex(int),tel(varchar(30)),add_time(datetime),remark(varchar(100)),ss(varchar(50)),sy(varchar(50)),zf(int));
- stu_zy_info(rec_id(int),snum(varchar(100)),zy_id(int),content(varchar(7000)),filename(varchar(500)),addtime(datetime),score(int));
- study_mark(rec_id(int),cxid(int),snum(varchar(100)),v_mark(int),kj_mark(int),xxzl_mark(int),vtime(datetime),kjtime(datetime),xxzltime(datetime));
- success(rec_id(int),snum(varchar(30)),pap_id(int),title(varchar(300)),sums(int),sumz(int),yes_s(int),up_time(datetime),addtime(datetime));
- system_info(rec_id(int),title(varchar(100)),upload_size(int),server_ip(varchar(30)),del_data_ps(varchar(50)),stu_load_ps(varchar(30)),stu_ison(int),ksize(int));
- system_rz(rec_id(int),user_id(varchar(50)),rz(varchar(80)),addtime(datetime));
- tea_sk(rec_id(int),wnum(varchar(50)),cx_rec_id(int),remark(varchar(50)),addtime(datetime));
- temp_pap(pap_id(int),kc(int),title(varchar(500)),add_time(datetime),isok(int),israndom(int),pstate(int),ishavetime(int),up_time(datetime));
- temp_q(rec(int),que_id(int));
- temp_question(rec_id(int),temp_pap_id(int),que_id(int));
- timeset(pap_id(int),hh(int),mm(int));
- videos(rec_id(int),filename(varchar(200)),cxid(int),title(varchar(500)),content(varchar(5000)),mark(int),wnum(varchar(100)),addtime(datetime));
- wt_info(rec_id(int),cxid(int),title(varchar(500)),content(varchar(5000)),mark(int),wnum(varchar(100)),addtime(datetime));
- xxzl_info(rec_id(int),filename(varchar(200)),cxid(int),title(varchar(500)),mark(int),wnum(varchar(100)),addtime(datetime));
- yx_info(rec_id(int),yxname(varchar(100)),remark(varchar(1000)),addtime(datetime));
- zy_info(rec_id(int),zyname(varchar(200)),content(varchar(7000)),filename(varchar(200)),ss(varchar(200)),sy(varchar(200)),cx(int),qxtime(varchar(50)),wnum(varchar(50)),addtime(datetime));
第4章 开发工具介绍
为了使系统界面更加美观,系统功能更加稳定,响应时间短、操作简单,开发的质量更好和开发的速度更快,在此系统中使用了许多技术。
Java语言是Sun公司在1995年开发出来的,该语言的生成能够正确运行在各个操作系统、各种CPU芯片上。随着网络的发展,基于网络的软件设计也成为软件设计领域的核心,Java的平台无关性让Java成为网络编程者首选的语言,而且Java提供了许多网络应用的核心技术,使得Java更适合网络的开发。
Java语言和C++语言很相似,Java是面向对象的程序设计语言,而C++是半面向过程半面向对象的的语言,Java是在C++的基础上设计出来的,Java中没有指针、运算符重载、多重继承等特性,增加了垃圾回收器功能用于回收不被引用的内存,这将节省大量的内存空间。Java可以实现“一次编写,到处运行”的跨平台特性,不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
目前Java平台有三个版本:
Java SE:Java标准版本,可以提供标准的Java开发环境,利用该平台可以开发GUI(桌面应用程序)和低端的服务器应用,也可以开发Java Applet 程序。
Java ME:Java小型平台或Java微型版,它是一个很小的Java运行环境,用于手机和嵌入式的开发。
Java EE:Java企业版或Java企业平台,使用该平台可以编写企业级的应用程序,它还添加附加类库,便于以后支持企业消息处理、交易管理和目录管理功能。
Java语言具有平台无关性,安全性,面向对象,分布式的,健壮性,解释型、动态等特点。
1.平台无关性
平台无关性指的是Java能运行于不同的平台。Java之所以能够跨平台,是因为引进虚拟机,Java可以在平台上提供一个Java运行环境,该运行环境是由JVM、类库以及一些核心文件组成,Java虚拟机的核心是字节码指令而非机器指令,因为它不和特定的平台相关,不能被任何平台直接识别和执行。但是Java针对不同平台提供的Java虚拟机的字节码指令都是相同的,所以可以实现跨平台。
2.安全性
Java语言存储信息不是通过指针而是通过引用对存储器进行操作,内存是操作系统进行分配的,这样可比避免病毒的非法侵入和内存的非法操作,另外,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。
3.面向对象
Java将对象的属性和方法封装于类中,利用类的优点,实现了程序的简洁性、封装性、继承性和便于维护性等特性,使程序代码只需进行一次编译,然后到处运行,程序员主要集中精力在类和接口的设计上。Java面向对象有三大特征: 继承,封装和多态。继承是就是指一个类拥有另一个类的方法和实例变量,并在它的基础可以增添新的方法和属性。封装是把过程和数据包围起来放在一个类中,便于其他类的调用,多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
4.分布式
Java是分布式的开发语言,分布式包括操作分布和数据分布,操作分布是把一个计算分散到不同主机上处理,数据分布是指数据可以分散到网络上不同的主机上。
Java支持客户端/服务器计算模式,因此,它支持上述两种分布式,对于操作分布来说,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率,对于数据分布来说,Java提供了一个叫作URL的对象,可以打开并访问相同的URL对象,访问方式与访问本地方式一样,
Java提供一套完整的库函数,里边包括HTTP和FTP协议传送和信息接收方式,这使得开发人员使用网络和使用本机一样容易。
5.健壮性
Java程序如果存在问题在编译或者运行阶段会报错误,错误类型和具体出错的位置都会有提示,Java这种自己操纵内存的方式大大较少内存出错的可能性,Java还实现了真数组,避免了覆盖数据的可能,并且Java还提供了空指针检测、数组越界检测、异常处理、字节码校验等功能,这些功能特征大大提高了开发Java应用程序的周期。
6.解释型
解释型语言是专门的解释器对源程序逐行解释成特定平台的机器码并执行的语言,它通常不会进行整体性的编译和链接处理。
Java语言是一种特殊的高级语言,它具有解释型语言的特征,Java语言里解释执行字节码文件的是Java虚拟机JVM。JVM是可执行Java字节码文件的虚拟计算机。所有平台上的JVM想编译器提供相同相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能理解的代码,由虚拟机来解释执行,一些虚拟机的实现中,还会将虚拟机代码转换成特定系统的机器码执行,从而提高执行效率。
7.动态
类是Java程序的基本单元,有些类可以直接调用,有些需要自己编写,而类在运行过程中是动态加载的,为了适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。 Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
4.2 JSP简介
JSP全称为Java Server Pages服务器网页技术,它需要使用服务器端脚本语言,JSP是居于Servlet及整个Java体系的Web开发技术,可以使用Html设计页面布局,使用Java实现业务逻辑,插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。JSP技术的产生可以加速动态Web页面的开发。
1.将内容的生成和显示进行分离
Web开发人员可以运用JSP技术,使用HTML或XML来设计最终界面,使用小脚本生成动态网页内容,生成的内容可以封装到JavaBeans组件里,并且捆绑在小脚本里,所有脚本都需要在服务器里运行,如果核心逻辑被封装在标识中,那么其他人能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容页面的形式发送回浏览器。这不仅有助于保护自己的代码,而且能够保证基于HTML的Web浏览器的完全可用性。
2.强调可重用的组件
现在很多JSP页面依赖于跨平台、可重用性组件来处理应用程序所要求的功能,开发人员可以共享和交换这些组件,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3.采用标识简化页面开发
Web页面开发人员不一定都熟悉脚本语言,JSP封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,通过开发定制化标识库,JSP技术是可以扩展的。
4.3 B/S(浏览器/服务器)
B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。它是随着Internet技术的兴起,对C/S模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据;最大的缺点是对网络环境依赖性太强,由于各种原因引起网络中断都会造成系统瘫痪。
4.4 SQL语言
SQL 是标准的计算机语言,用来访问和操作数据库系统,SQL是一种面向数据库的通用数据处理语言规范,能完成以下几类功能:提取查询数据,插入修改删除数据,生成修改和删除数据库对象,数据库安全控制,数据库完整性及数据保护控制。SQL语言的分类如下:
1.DDL(Data Definition Language)集中负责数据结构定义与数据库对象定义的语言,
其作用包括创建数据库对象、删除数据库对象、修改数据库对象。
2.DML(Data Manipulation Language)数据操纵语言,用户通过它可以实现用于查询和操纵模式对象中的数据,它不隐式地提交当前事务。其作用包括查找数据信息、插入数据信息、删除数据信息、更改数据信息。
3.DCL(Data Control Language)数据控制语言,在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。由 GRANT 和 REVOKE 两个指令组成。
4.5开发环境
系统结构:B/S (浏览器/服务器)
开发语言:JAVA/JSP
数据库:SQL Server 2000
开发工具:eclipse
服务器端容器:Tomcat 6.0
第5章 系统实现
5.1 系统登录模块
系统登录模块分为三个用户:管理员、教师和学生,通过输入用户名和密码进行身份验证,并且输入验证码;当输入信息正确时,方可进入系统内部,否则会提示信息错误回返回登录入口,具体登录界面设计如下图5.4所示。
图5.4登录界面
用Function isNum(passedVal)脚本用来约束文本框内输入的字符是大于0的正整数。用Function isValid()脚本判断用户ID、密码、验证码文本框不为空。
5.2 管理员系统模块
管理员为本系统权限最高用户,管理员可以任意新建、删除、修改、查看其他权限用户的信息,管理员负责系统的运行于维护,确保系统的正常使用,管理员登录后可使用的功能如下,管理员界面如图5.5所示。
用Function isNum(passedVal)脚本用来约束文本框内输入的字符是大于0的数字。定义Function isValid()脚本,定义op、op1、op2用来获取三个文本框中输入的信息。其中op中获取的是原密码,op1和op2获取的是新密码,并且判断op1和op2相同。
用Function isValid()脚本判断文本框不为空。
图5.5 管理员界面
1.系统管理功能:
系统管理功能中主要分为以下几项功能:系统设置、查询和添加院系、查询和添加班级、查询和添加课程、查询和添加章节等功能,如图5.6所示。
系统设置功能:管理员用户可以设置学生证号码的长度,以便适用于不同的院校,管理员还有清空数据库的功能,方便不同的院校使用本系统。
用Function confin()脚本判断在学号长度位置输入的是大于0的数值,定义变量ksize存放文本框数值。
用Function deledatas()脚本完成清除数据功能,调用del_datebast.jsp文件中判断你输入的超级密码是否正确,输入正确调用del_datebast_ok.jsp完成数据的清除。
图5.6 系统管理功能
查询和添加院系功能:管理员用户使用此功能可以实现对不同院系的添加和查询操作,方便适应不同院校使用。
查询和添加班级功能:管理员用户使用此功能可以实现对班级的添加和查询操作。
查询和添加课程功能:管理员用户使用此功能可以实现查询已有的课程名称和添加新的课程,方便学生用户和教师用户查看。
查询和添加章节功能:管理员用户使用此功能可以对已有课程添加章节,能够方便学生用户和教师用户查看。
由于这三种功能的实现方法类似,在此一起说明,定义两个脚本Function detail()和Function del()用来实现对于查询成功的数据的修改和删除。Function detail()脚本中调用u_1_yx.jsp页面,在u_1_yx.jsp中实现信息的修改再调用u_2_yx.jsp页面实现对于信息的保存;Function del()脚本中调用del_yx.jsp页面,在del_yx.jsp中有删除信息的SQL语句。添加院系功能是在a_1_yx.jsp页面中添加信息再调用a_2_yx.jsp页面来实现院系的保存功能。
2.老师管理功能:
老师管理功能中主要分为查询和添加教师两大功能,如图5.7所示。
查询教师功能:管理员用户可以根据输入教师的编号或名查询教师的信息,例如:教师编号、姓名、性别、所在院系、E-mail、联系电话、注册时间。
管理员用户还可以通过查看信息功能查看教师的登录密码,便于帮助教师找回密码;通过修改功能修改教师的基本信息,可以随时更新教师的基本信息;也可以通过删除功能删除教师信息。
图5.7 教师管理功能
查询教师功能实现:在q_teacher.jsp中创建Function update()、Function looktea()和Function del()三个脚本,分别控制对教师信息的修改、查看和删除。其中Function update()脚本中调用u_1_teacher.jsp页面修改信息,再调用u_2_teacher.jsp页面来保存信息;Function looktea()脚本中调用look_teacher.jsp页面用于查看教师信息;Function del()脚本调用del_teacher.jsp页面删除教师信息。
添加教师功能实现:在a_1_teacher.jsp中创建Function isNumber()和Function isValid()脚本用来控制教师信息填写的方式,再调用a_2_teacher.jsp完成教师信息的添加。
3.学生管理功能:
学生管理功能中主要分为查询和添加学生两大功能,如图5.8所示。
查询学生功能:管理员用户可以根据输入学生的学生证号或姓名查询学生的信息,例如:学生证号、姓名、性别、所在院系、班级、添加时间。
管理员用户还可以通过查看信息功能查看学生的登录密码,便于帮助学生找回密码;通过修改功能修改学生的基本信息(学生证号不可修改),可以随时更新学生的基本信息;也可以通过删除功能删除学生信息。
图5.8 学生管理功能
4.教学管理功能:
教学管理功能主要分为查询和上传教学视频功能、查询和上传教学课件功能和查询和上传教学资料功能,如图5.9所示。
查询和上传教学视频功能:管理员用户可以通过输入视频标题、选择所属课程或章节来查询需要的教学视频,查询成功后可以使用查看视频或删除功能。也可以通过上传教学视频功能来上传所需要的视频文件(视频格式可以是.fwl、.avi、.rmvb)添加视频标题、所属课程和章节、内容简介方便其他用户使用和日后查询。
查询和上传教学课件功能:管理员用户可以通过输入课件标题、选择所属课程或章节来查询需要的教学课件,查询成功后可以使用下载课件或删除功能,可以通过上传教学课件功能来上传所需要的课件文件(课件格式可以是.rar、.zip、.doc、.docx、.ppt、.xls、.xlsx、.pdf)添加课件标题、所属课程和章节、内容简介方便其他用户使用和日后查询。。
查询和上传教学资料功能:管理员用户可以通过输入课程资料标题、选择所属课程或章节来查询需要的教学资料,查询成功后可以使用查看或删除功能。也可以通过上传教学资料功能来上传所需要的资料文件(课件格式可以是.doc、.docx、.ppt、.pdf、.txt)添加课程资料标题、所属课程和章节、内容简介方便其他用户使用和日后查询。
由于功能实现相似,介绍查询和上传课件功能。在q_kjs.jsp中查询kc_info表和cx表中的kcname和cxname信息显示到页面上,由于两个是分别存在于两个表中因此需要将两个表通过rec_id关联查询。Function xiazai()和Function del()脚本用来控制对课件的下载和删除。Function xiazai()脚本调用down_kjs.jsp页面,获取文件的路径和文件名,设置文件的格式,在通过I/O流保存到电脑中;上传功能是在a_1_kjs.jsp中调用Function upf()脚本,在通过upf脚本跳转到upkj.jsp页面中,upkj.jsp页面中通过From表单跳转到upfilekj.jsp页面中完成课件的上传。
图5.9 学生管理功能
5.发布和检查作业功能:
发布作业功能主要分为查询已发布的作业和发布新的作业两大功能,如图5.10发布作业功能和图5.11 检查作业功能所示。
查询已发布作业功能:管理员用户可以通过输入作业标题、选择所属课程或章节来查询已发布的作业,查询成功后可以使用查看、修改和删除功能,方便管理员维护系统。
发布作业功能:管理员共户可以使用发布作业功能来发布新的作业,添加作业标题、所属课程和章节、选择所对应的恶习别和班级、最迟提交时间、作业要求内容来实现作业的发布。
检查作业功能主要分为检查作业、添加作业成绩和查询作业成绩三种功能。
检查作业功能:管理员用户可以通过输入作业标题、选择所属课程和章节、学生的学号、姓名、系别和班级来查询该名学生作业提交情况。
添加作业成绩功能:管理员用户可以使用此功能为学生的作业打分。
查询作业成绩功能:管理员用户可以使用此功能查看、修改和删除学生的作业成绩。
图5.10 发布作业功能
图5.11 检查作业功能
6.评阅(笔记/代码)功能:
评阅(笔记/代码)功能主要分为评阅笔记和评阅代码两大功能,如图5.12 评阅笔记和代码功能。
评阅笔记功能:管理员用户可以选择所属课程和章节、修改评阅状态、输入对应学号、姓名、院系和班级来实现对该用户笔记的评阅功能。
评阅代码功能:管理员用户通过输入代码标题、选择所属课程和章节、修改评阅状态、输入对应学号、姓名、院系和班级来实现对该用户代码的评阅功能。
图5.12 评阅笔记和代码功能
7.抢答问题功能:
抢答问题功能主要分为查询问题、添加问题和评阅问题三种功能,如图5.13所示。
查询问题功能:管理员用户可以通过输入标题、选择所属课程和章节查询问题,查询成功后可以使用查看、修改、和删除功能。
添加问题功能:管理员用户可以使用添加问题功能输入问题标题、选择所属课程和章节、添加问题内容和分数完成问题的发布。
评阅问题功能:管理员用户输入问题标题、选择所属课程、章节和评阅状态、输入学号、姓名、系别和班级用来实现对问题的评阅功能。
图5.13 抢答问题功能
8.考试管理功能:
考试管理功能分为试卷控制、添加试卷、阶段考试成绩、每章测试成绩、查询题库、制作题库六种功能,如图5.14所示。
试卷控制功能:管理员用户可以通过试卷控制功能控制试卷的起止时间、修改试卷的名称和删除试卷等功能。
添加试卷功能:管理员用户可以通过使用添加试卷功能,选择试卷所属课程、输入试卷的标题来完成试卷的添加。
阶段考试成绩功能:管理员用户可以通过输入学号、系别、班级、试卷标题、选择所属课程来查询课程的考试的成绩。
每章测试成绩功能:管理员用户可以通过输入学号、系别、班级、试卷标题、选择所属课程和章节来查询章节测试的成绩。
查询题库功能:管理员用户可以使用查询题库功能输入题库内容、选择题型、所属课程和章节、分数来查询已有的题库。
制作题库功能:管理员用户可以使用制作题库功能选择题型、所属课程和章节、分数、题目内容实现对题库的制作。
图5.14 考试管理功能
控制试卷功能实现:在设计代码时首先要了解考试分为考试结束状态和正在考试状态,本系统通过改变temp_pap表中pstate中数值的奇偶状态来判断考试正处于何种状态下。在ctrl_pap_1.jsp中是用于管理考试最基本设置,其中包括控制设置时间,选择考试状态,ctrl_pap_2.jsp是用于控制考试的开始状态,ctrl_pap_3.jsp是控制考试的结束状态。
9.成绩管理功能:
管理员用户可以通过输入学号、姓名、院系、班级或总分查询学生的成绩。查询成功后可以使用得分明细功能查看学生每项分数;如:学习分、笔记分、代码分、作业分、抢答分、考试分和加权总分等信息。得分明细中还可以使用课程总分和每章得分功能,通过输入所属课程和章节查看不同学生不同阶段的学习情况,如图5.15所示。
图5.15 成绩管理功能
5.3 教师系统模块
当使用教师用户登录系统后,教师用户可以使用学生管理功能、个人空间功能、教学管理功能、发布和检查作业功能、评阅笔记和代码功能、抢答问题功能、考试管理功能和成绩管理功能,具体的系统界面如图5.16所示。
图5.16 教师系统界面
1.学生管理功能:
学生管理功能中主要分为查询和添加学生两大功能。
查询学生功能:教师用户可以根据输入学生的学生证号或姓名查询学生的信息,例如:学生证号、姓名、性别、所在院系、班级、添加时间。
教师用户还可以通过查看信息功能查看学生的登录密码,便于帮助学生找回密码;通过修改功能修改学生的基本信息(学生证号不可修改),可以随时更新学生的基本信息;也可以通过删除功能删除学生信息。
2.个人空间功能:
个人空间功能中主要分为查询文件和上传文件两大功能,如图5.17所示。
查询文件功能:教师用户可以通过查询备注的方式查询已上传的文件。查询结果显示为所查询的文件名称、备注和所上传的时间。学生用户可以下载、修改和删除已有的文件。
上传文件功能:教师用户可以通过上传文件功能上传你想要上传的文件,添加备注方便日后查询。
图5.17 个人空间功能
3.教学管理功能:
教学管理功能主要分为查询和上传教学视频功能、查询和上传教学课件功能和查询和上传教学资料功能。
查询和上传教学视频功能:教师用户可以通过输入视频标题、选择所属课程或章节来查询需要的教学视频,查询成功后可以使用查看视频或删除功能。也可以通过上传教学视频功能来上传所需要的视频文件(视频格式可以是.fwl、.avi、.rmvb)添加视频标题、所属课程和章节、内容简介方便其他用户使用和日后查询。
查询和上传教学课件功能:教师用户可以通过输入课件标题、选择所属课程或章节来查询需要的教学课件,查询成功后可以使用下载课件或删除功能。也可以通过上传教学课件功能来上传所需要的课件文件(课件格式可以是.rar、.zip、.doc、.docx、.ppt、.xls、.xlsx、.pdf)添加课件标题、所属课程和章节、内容简介方便其他用户使用和日后查询。
查询和上传教学资料功能:教师用户可以通过输入课程资料标题、选择所属课程或章节来查询需要的教学资料,查询成功后可以使用查看或删除功能。也可以通过上传教学资料功能来上传所需要的资料文件(课件格式可以是.doc、.docx、.ppt、.pdf、.txt)添加课程资料标题、所属课程和章节、内容简介方便其他用户使用和日后查询。
4.发布和检查作业功能:
发布作业功能主要分为查询已发布的作业和发布新的作业两大功能。
查询已发布作业功能:教师用户可以通过输入作业标题、选择所属课程
或章节来查询已发布的作业,查询成功后可以使用查看、修改和删除功能,方便管理员维护系统。
发布作业功能:教师共户可以使用发布作业功能来发布新的作业,添加作业标题、所属课程和章节、选择所对应的恶习别和班级、最迟提交时间、作业要求内容来实现作业的发布。
检查作业功能主要分为检查作业、添加作业成绩和查询作业成绩三种功能。
检查作业功能:教师用户可以通过输入作业标题、选择所属课程和章节、学生的学号、姓名、系别和班级来查询该名学生作业提交情况。
添加作业成绩功能:教师用户可以使用此功能为学生的作业打分。
查询作业成绩功能:教师用户可以使用此功能查看、修改和删除学生的作业成绩。
5.评阅笔记和代码功能:
评阅(笔记/代码)功能主要分为评阅笔记和评阅代码两大功能。
评阅笔记功能:教师用户可以选择所属课程和章节、修改评阅状态、输入对应学号、姓名、院系和班级来实现对该用户笔记的评阅功能。
评阅代码功能:教师用户通过输入代码标题、选择所属课程和章节、修改评阅状态、输入对应学号、姓名、院系和班级来实现对该用户代码的评阅功能。
6.抢答问题功能:
抢答问题功能主要分为查询问题、添加问题和评阅问题三种功能。
查询问题功能:教师用户可以通过输入标题、选择所属课程和章节查询问题,查询成功后可以使用查看、修改、和删除功能。
添加问题功能:教师用户可以使用添加问题功能输入问题标题、选择所属课程和章节、添加问题内容和分数完成问题的发布。
评阅问题功能:教师用户输入问题标题、选择所属课程、章节和评阅状
态、输入学号、姓名、系别和班级用来实现对问题的评阅功能。
7.考试管理功能:
考试管理功能分为试卷控制、添加试卷、阶段考试成绩、每章测试成绩、查询题库、制作题库六种功能。
试卷控制功能:教师用户可以通过试卷控制功能控制试卷的起止时间、修改试卷的名称和删除试卷等功能。
添加试卷功能:教师用户可以通过使用添加试卷功能,选择试卷所属课程、输入试卷的标题来完成试卷的添加。
阶段考试成绩功能:教师用户可以通过输入学号、系别、班级、试卷标题、选择所属课程来查询课程的考试的成绩。
每章测试成绩功能:教师用户可以通过输入学号、系别、班级、试卷标题、选择所属课程和章节来查询章节测试的成绩。
查询题库功能:教师用户可以使用查询题库功能输入题库内容、选择题型、所属课程和章节、分数来查询已有的题库。
制作题库功能:教师用户可以使用制作题库功能选择题型、所属课程和章节、分数、题目内容实现对题库的制作。
8.成绩管理功能:
教师用户可以通过输入学号、姓名、院系、班级或总分查询学生的成绩。查询成功后可以使用得分明细功能查看学生每项分数;如:学习分、笔记分、代码分、作业分、抢答分、考试分和加权总分等信息。得分明细中还可以使用课程总分和每章得分功能,通过输入所属课程和章节查看不同学生不同阶段的学习情况。
5.4 学生系统模块
当使用学生用户登录系统后,学生用户可以使用修改密码功能、个人空间功能、在线学习功能、作业任务功能、我的笔记和代码功能、抢答问题功能、在线考试和个人总分功能,具体的系统界面如图5.18所示。
图5.18 学生系统界面
1.修改密码功能:
学生用户可以通过修改密码功能修改旧的密码。
2.个人空间功能:
个人空间功能中主要分为查询文件和上传文件两大功能。
查询文件功能:学生用户可以通过查询备注的方式查询已上传的文件。查询结果显示为所查询的文件名称、备注和所上传的时间。学生用户可以下载、修改和删除已有的文件。
上传文件功能:学生用户可以通过上传文件功能上传你想要上传的文件,添加备注方便日后查询。
3.在线学习功能:
在线学习功能主可以满足学生用户对于教学视频、教学课件、教学资料的查询、下载和查看。
教学视频功能:学生用户可以通过输入视频标题、选择所属的课程和章节用来查询所需的教学视频,方便学生用户查看视频。
教学课件功能:学生用户可以通过输入课件标题、选择所属的课程和章节用来查询所需的教学课件,方便学生用户下载课件。
教学资料功能:学生用户可以通过输入课程资料标题、选择所属的课程和章节用来查询所需的课程资料,方便学生用户的学习和使用。
4.作业任务功能:
作业任务功能可以满足学生用户在线查看作业任务、提交作业、查询作业成绩等功能。
作业任务查询功能:学生用户可以通过输入作业标题、选择所属的课程和章节来查询所需要完成的作业任务。
提交作业功能:学生用户可以使用提交作业功能用来上传已完成的作业任务,方便任课教师评阅。
查询作业成绩功能:学生用户可以使用查询作业成绩功能,通过输入作业标题、选择所属课程和章节来查看已评阅的作业成绩。
5.我的笔记和代码功能:
我的(代码/笔记)功能主要包括查看和新建代码、查看和新建笔记两大功能。
查看和新建代码功能:学生用户可以通过输入代码标题、选择所属课程和章节、分数来查询已有的代码;也可通过新建代码功能输入代码标题、选择所属课程和章节、输入代码内容来提交新的代码。
查看和新建笔记功能:学生用户可以通过选择所属课程和章节、分数来查询已有的笔记;也可通过新建笔记功能选择所属课程和章节、输入笔记内容来提交新的笔记。
6.抢答问题功能:
抢答问题功能主要包括在线抢答和查询抢答得分两种功能。
在线抢答功能:学生用户可以通过输入标题、选择所属课程和章节用来查询已有的抢答问题,查询成功后可以使用快速抢答功能。
查询抢答得分功能:学生用户可以通过输入标题、选择所属课程和章节来查询已抢答成功的问题的分数。
7.在线考试功能:
在线考试功能分为每章测试和阶段测试两类。
每章测试功能:学生用户可以使用每章测试功能实现对已学过章节的测试,测试完成后,使用测试成绩查询功能查询章节测试的成绩。
阶段测试功能:学生用户可以使用阶段测试功能实现阶段性测试,测试完成后,可是使用阶段成绩查询功能查看成绩。
8.个人总分功能:
个人总分功能主要分成每章得分和课程总分两种,如图5.19所示。
每章得分查询功能:学生用户可以使用每章得分功能查看所选课程和章节的得分情况,如学习分、笔记分、代码分、作业分、抢答分、考试分、加权总分信息。
课程总分查询功能:学生用户可以使用课程总分查询功能查看所选课程和章节的得分情况,如学习分、笔记分、代码分、作业分、抢答分、考试分、加权总分信息。
图5.19 个人总分功能
第6章 软件测试
经过详细设计过程,网上教学管理系统已基本上完成,但为了保证软件设计的质量,测试过程是至关重要的,测试的目的是为了尽可能多的发现错误而执行程序的过程。设计测试方案是测试阶段的关键问题。测试方案中应该包括要测试的功能。设计输入数据和预期的输出结果,测试有两种方法:白盒测试和黑盒测试。
白盒测试又称为结构测试,它是对程序的内部结构进行测试,这种方法按照程序内部的逻辑测试程序,检验程序中每条路径是否都能按照预定要求正常执行。
黑盒测试又叫功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
6.1 黑盒测试
黑盒测试,又称为功能测试。对于软件测试而言,黑盒测试把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。该测试方案的设计技术主要有:等价划分、边界值分析以及错误推测法等。
6.2 白盒测试
白盒测试的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否能按预定要求正确工作。故白盒测试又被称为是结构测试。该测试方案的设计技术主要有逻辑覆盖法等。
6.3 本系统采用的测试方式
基于以上测试方法,本人选取的是黑盒测试和白盒测试,模块测试部分由本人程序设计过程中自主完成,系统测试部分由同学模拟各种用户登录代为完成。
6.4 测试过程
用户登陆测试是测试系统访问的安全性,以及各个页面的设计的安全性,测试方案如表6.1所示。
表6.1 系统访问安全测试
用户类型 |
用户名 |
密码 |
空密码 |
错误用户名/密码 |
错误类型 |
管理员 |
Admin |
Admin |
否 |
否 |
否 |
教师 |
2 |
2 |
否 |
否 |
否 |
学生 |
12345671 |
123456 |
否 |
否 |
否 |
说明:上表中的“否”表示拒绝访问,没有通过系统的身份验证。“是” 表示可以访问系统。
通过上表反复测试黑盒测试可知,系统用户在登陆安全方面不存在问题,用户必须使用正确的用户名、密码方能使用此系统。
此测试过程主要是测试系统各个页面的安全性,即在用户没有登录的情况直接在浏览器地址中输入要打开的用户页面。
在用户没有输入用户名和密码的情况下,在浏览器地址栏中直接输入http://localhost:8080/wlzy/index.jsp,此页面时管理员界面的地址,测试能否直接打开。测试结果显示用户没有登录的错误信息。再分别测试其他用户的页面,测试结果都为提示登录信息错误。
结 论
通过几个月的努力,网上教学管理系统基本功能顺利完成。在数据库的开发方面,我学到了不少关于JSP和SQL Server 2000的知识。开发时遇到了许多的困难,但是通过自己的努力,还有老师同学们的帮助,最终还是迎刃而解了。
这次毕业设计完全是按照软件工程学的方法来进行设计和开发的。在开发过程中,认真调查分析了用户的需求,及时准备了详细的文档资料,这让我在开发过程中少走了许多弯路。本次设计开发的系统较为庞大,涉及的用户较多,数据库设计比较复杂,使我深刻地体会到软件开发是一项集体项目,让我深刻意识到团队合作的重要性。
同时,在这次设计中,我也发现了自己的很多不足。首先,对JSP的掌握还不是很全面,对于数据库管理系统的操作运用也不够熟练,以至于在系统开发过程中经常碰到一些疑难问题不能快速的解决。其次,就是在准备系统设计文档时,没有反复推敲、验证,以至于在开发过程中出现几次由于数据库设计不合理,修改数据库,而几乎修改所有程序代码的情况。再者,是对整个软件开发的把握能力有待于进一步提高,以及对网页设计的诸多方面知识也待进一步学习,这些都是我今后应该注意和提高的。
致 谢
历时将近几个月的时间终于将这篇论文写完,在系统的设计和实现过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师—孙宪丽老师,她对我进行了无私的指导和帮助,不厌其烦的帮助进行系统的修改和改进。感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版灯过程中提供热情的帮助。
在这几个月的毕业设计过程中,让我感受到了孙老师对我的关怀和帮助,在此我由衷的感谢孙老师,谢谢您对我这几个月来的帮助,在我焦头烂额,毫无头绪的时候是您指明了我找到了继续下去的方向;我还要感谢我亲爱的同学们,谢谢你们的关心和鼓励,在我需要帮助的时候是你们能够毫不犹豫的帮我;最后我要感谢我的父母,你们的支持是我最大的动力。
[1] 赵慧 著. 《基于Web的网络教学系统》[J]. 科技创新导报.2009.
[2] 耿祥义,张跃平编著. 《JSP实用教程》[M].清华大学出版社. 2007.10.
[3] 王珊.《数据库系统概论》[M]. 高等教育出版社.2010.12.
[4] 范立峰,乔世权,程文彬等 编著.《JSP程序设计》[M].人民邮电出版社.2009.
[5] 穆慧琳,高岭,杨建峰,刘川川 著.《基于B/S模式的网络教学系统的设计与实现》[J]. 中国教育信息化·高教职教.2009.
[6] 魏茂军 编著. 《JSP案例开发》[M]. 中国水利水电出版社.2010.
[7] 刘彬 编著.《JSP数据库高级教程》[M].清华大学出版社. 2006
[8] Cay S.Horstmann,Gary Cornell 著.李如豹,刚冬梅等 译.《JAVA核心技术 I》[M]. 清华大学出版社. 2000
[9] 彭超,马丁.新一代JSP网络编程入门与实践. 清华大学出版社,2011
[10]萨师煊. 数据库系统概论.北京:高等教育出版社,2009
[11]陈旭东,刘迪仁.JSP2.0应用教程.北京:清华大学出版社,2010
[12]石志国. JSP应用教程.北京:清华大学出版社,2011
[13]Joshua Bloch.Effective Java[M].Piscataway,N.J:IEEE Press,2009
[14]Schoeberl M, Puffitsch W, Pedersen R U, et al. Worst-case Execution Time Analysis for a Java Processor[J]. Software: Practice and Experience, 2010, 40(6): 507-542.
[15]Deepak Alur,John Crupi,Dan Malks.Core J2EE~(TM) Patterns.Best Practices and Design Strategies [M].Second Edition.Prentice HallPTR,2008
[16]William B.Heys.SQL 2000 Development Guide[M].London:Cambridge University
Press,2010
[17]Lu Jingping,HE Yulin.A web product data management system based on Simple Object SQL Server2000 Protocol [M].Journal of CQ University-Eng,Ed,2009,2(1),57-60
s