1.1 系统调查
对现行考试业务进行详细调查是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们计算机系的考试工作进行全面、细致而充分的调查研究。首先与分管教务处主任交流意见,了解他们对现有考试流程的看法,有无新的信息需求,原系统有无多余的功能。然后,与教师和部分学生,特别是从辅导员那里了解他们对原有信息系统的看法。在此基础上,深入到具体业务职能管理部门即教导处进行详细的调查,了解他们对现行考试方式的看法,在操作上有无需要改进的地方。
通过调查得知,原先人工操作在考试活动中占绝大部分,具体的考试经过是:教务处下发或转发学校的考试通知,联系有关老师出卷,安排、检查考场及所需设备,组织监考人员培训和考前宣传、公布考场地点及考试时间、发放准考证等前期准备工作。然后是印刷试卷、考试、阅卷、填分、公布学生成绩、总结、备案、打印通知书等。在考试的部分环节已用到了计算机,如打印试卷、打印有关材料、学生成绩处理与公布等。为适应当前网络技术新形势的发展,把考试与网络技术与数据库技术结合起来,实现考试信息的发布、自动生成试卷,考试成绩自动生成及查询等功能,保证考试的正规性及标准化,所以要求建立一个基于网络的无纸化考试系统。
1.2用户需求
要设计一个性能良好的管理系统,明确用户的应用环境对系统的要求是首要的和基本的。本系统从以下四个方面对用户需求进行了分析:
用户的信息需求:考生能查询有关考试新闻或考试通知,考试成绩;系统管理员能查询题库信息、系别班级信息;系主要领导都能查询所有信息。
用户的处理要求:管理员能对题库和考试科目执行增加、删除和修改操作;由管理员设置考试信息,经过考试主管领导的审核后就可考试;在考试时,系统自动生成试卷;管理员可设置考试信息,经过考试主管理领导审核后批准向考生发布考试新闻;系统控制考试时间、防刷新、考试成绩自动生成、多功能查询等。
对系统的适应性、通用性要求:要求系统不仅能够进行计算机系考试,而且其他系或专业稍作设置或改动也能使用本系统进行无纸化网络考试。
对系统的安全性要求,要求进入系统必须进行口令校验。
1.3 系统业务流程图
业务流程图的符号说明如图2.2所示:
1、 2、 3、 4、 5、
系统中人员 实体或单据 实物或信息流 处理 数据存储
图2.2 业务流程图图例
详细调查之后,结合现行考试模式,为开发本系统而绘制出的无纸化网络考试的管理业务流程图如图2.3所示。
图 2.3 无纸化网络考试系统业务流程图
2 系统逻辑方案
系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。即在无纸化网络考试系统管理方式和业务流程进行认真分析和研究的基础上,排除现有组织机构和业务分工所造成的信息障碍。
2.1数据流图(简称为DFD)
数据流图是组织中信息运动的抽象。是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。
首先,分析无纸化网络考试管理系统的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;
然后划分出几个主要的信息管理功能,并明确各功能之间的联系,绘制出数据流程图。
数据流程图的符号说明如图2.4所示。
无纸化网络考试管理系统的顶层数据流程图如图2-5所示。
无纸化网络考试系统的数据流程图如图2.6所示
外部实体 处理 数据流 数据存储
图2.4 数据流程图的符号
图2.5 无纸化网络考试系统的顶层数据流程图
上图中把系统功能分为提交考试新闻、考试科目管理、录入并生成试卷、参加考试、查询分数、浏览考试新闻六个功能。
下面2.6至2.9给出了相应的第二层数据流图。
考试计划或考试通知
审核通过
审核未通过
系统管理员
审核
系领导
图2.6 提交考试新闻数据流程图(第二层)
考试时涉及到而没有的科目
系统管理员
多余或无用的科目
图2.7考试科目管理流程图(第二层)
系统管理员
图2.8录入及生成试卷流程图(第二层)
浏览考试新闻
运行考试系统
学生
考试结束
图2.9学生参加考试及查询成绩流程图(第二层)
2.2 数据字典(简称为DD)
绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。
下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。
数据项的DD表列举如下:
表2.1 考号的数据字典
数 据 项 | ||||
系统名:无纸化网络考试系统 编号:I001 名称:考号 别名:准考证号 | ||||
数据项值: 类型:字符型 长度:6个字节 取值范围: | ||||
简述:每个学生都具有唯一的编号,它是某个学生的唯一标识符,每个学生都有唯一的考号,如“011976”通常用前两位数字表示入学的年份,中间两位表示班级,最后两位表示该学生在该班的序号。如果该班学生数超过100人时,可用“0119A0”表示第100个学生。 | ||||
修改记录: | 编写 | 日期 | ||
审核 | 日期 |
数 据 项 | ||||
系统名:无纸化网络考试系统 编号:I002 名称:考生姓名 别名: | ||||
数据项值: 类型:字符型 长度:8个字节 取值范围: | ||||
简述:每个学生都具有唯一姓名标识,不同的学生可以有相同的姓名。 | ||||
修改记录: | 编写 | 日期 | ||
审核 | 日期 |
数 据 项 | ||||
系统名:无纸化网络考试系统 编号:I003 名称:密码 别名: | ||||
数据项值: 类型:字符型 长度:8个字节 取值范围: | ||||
简述:每个学生及每位管理员和领导都要设置一个进入系统的密码。 | ||||
修改记录: | 编写 | 日期 | ||
审核 | 日期 |
3系统总体结构设计
3.1 软件系统总体结构设计
软件系统总体结构设计的主要任务就是将整个系统合理的划分成各个功能模块,正确处理模块之间与模块内部的联系及它们之间的调用关系和数据联系,定义各模块的内部结构等,本系统的软件总体结构按分解-协调的原则,信息隐蔽抽象的原则,自顶向下的原则,一致性原则,面向用户的原则进行设计。
3.2 数据存储的总体设计
按用途分类可把本系统文件分成以下几种:
(1)主文件:系统中的主文件是最重要的共享文件,主要存放具有固定值属性的数据。它需要长期保存,并不断更新。如用户信息文件(包括学生和管理员及系领导)、科目信息文件、题库信息文件、考试信息文件、考试新闻信息表、考试成绩文件。
(2)处理文件:处理文件包含下一次更新文件所需要的全部记录,本系统中的处理文件如新闻登录日志文件、待审核项目信息文件。
3.3系统功能模块设计
通过对系统的数据流图进行分析,进一步进行功能分解,直到分解成含义明确,功能单一的功能模块,从而得到系统的功能模块结构图。如图3.1所示。
图3.1 系统功能模块结构图
4 数据库详细设计
4.1数据库设计
数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。。
4.1.1 E-R图设计
在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。
各分E-R图说明如下:
(1)用户E-R图见图3.2:
图3.2 用户E-R图
(2)科目E-R图见图3.3:
图3.3 科目E-R图
(3)考生E-R图见图3.4:
图3.4 考生E-R图
(4)题库E-R图见图3.5
图3.5 题库E-R图
考试管理中所涉及到的主要实体集及其属性如下:
用户﹛用户ID,姓名,密码,系别,班级,性别,职务,专业,是否管理员﹜;
科目﹛自动编号,科目名称﹜;
考生﹛自动编号,考试编号,考生考号,是否参加考试﹜;
题库﹛题号,所属科目,题型,问题,选项1,选项2,选项3,选项4,选项5,选项6,正确答案,是否已选中标志﹜;
考试信息﹛编号,科目,试卷总分,单选题数目,多选题数目,判断题数据,单选题分值,多选题分值,判断题分值,考试时间长度,开始时间,结束时间,设置时间,设置者,审核者,通过审核时间﹜;
待审核项目﹛项目名称,项目编号,审核者,审核意见,通过时间,是否已通过审核﹜;
考试新闻{自动编号,新闻编号,新闻标题,新闻内容,有效期,创建日期,发布者,审核通过者,审核通过日期};
考试成绩{自动编号,考生考号,姓名,系别,专业,职务,考试科目,考试编号,开始时间,结束时间,分数};
新闻登录记录{自动编号,新闻编号,用户编号}。
4.1.2. 逻辑结构设计(E-R图向关系模型的转换)
E-R图向关系模型的转化要解决的问题是如何将实体和实体间的联系转换为关系模式,如何确定这些关系横式的属性和码。
对于实体间的联系我们分不同的情况讨论:
(1)若实体间的联系是1:1,可以在两个实体转换成的两个关系中任意一个关系的属性中加入另一个关系的码。
(2)若实体间联系为1:n,则在n端实体转换成的关系中加入1端实体转换成的关系码。
(3)若实体间联系为n:m,则将联系转换为关系,关系的属性为诸个实体的码加上联系具有的属性,而关系的码则为诸实体的码的组合。
由以上三点,可转换为关系模型。每个关系的码用下划线表示。
用户﹛用户ID,姓名,密码,系别,班级,性别,职务,专业,是否管理员﹜;
科目﹛自动编号,科目名称﹜;
考生﹛自动编号,考试编号,考生考号,是否参加考试﹜;
题库﹛题号,所属科目,题型,问题,选项1,选项2,选项3,选项4,选项5,选项6,正确答案,是否已选中标志﹜;
待审核项目﹛项目编号,项目名称,审核者,审核意见,通过时间,是否已通过审核﹜;
考试新闻{自动编号,新闻编号,新闻标题,新闻内容,有效期,创建日期,发布者,审核通过者,审核通过日期};
考试成绩{自动编号,考生考号,姓名,系别,专业,职务,考试科目,考试编号,开始时间,结束时间,分数};
新闻登录记录{自动编号,新闻编号,用户编号}。
基于以上关系模型,本系统中关于数据库表结构设计如下:
在服务器上用SQL Sever2000建立名为exam的数据库。其中包括以下表:考试系统用户信息表(cadre_info),考试系统部门表(department),考试系统科目信息表(exam_subject),考试系统考生信息表(exam_testuser),考试系统题库信息表(exam_database),考试系统考试信息表(exam_test),待审核项目信息表(waitforpass),考试新闻信息表(exam_news),考试成绩信息表(exam_score),考试系统新闻登录日志表(exam_news_logs)。下面将具体介绍数据库中各个表的结构。
表3.1考试系统用户信息表(cadre_info)
字段名 | 类型 | 备注 |
UserID | varchar | 用户ID,即用户想要参加考试的考号 |
UserName | varchar | 用户的真实姓名 |
Pwd | varchar | 用户密码 |
Department | Varchar | 系别 |
Office | Varchar | 班级 |
Duties | Varchar | 性别 |
Rank | Varchar | 职务 |
Post | Varchar | 专业 |
Ifadmin | Bit | 管理员权限 |
字段名 | 类型 | 备注 |
department | varchar | 考试系统部门名称 |
表3.3考试系统科目信息表(exam_subject)
字段名 | 类型 | 备注 |
ID | 自动编号 | 主键 |
Exam_subject | 文本 | 考试科目名称 |
字段名 | 类型 | 备注 |
ID | 自动编号 | 主键 |
Testid | Int | 考试编号 |
Userid | Int | 考生考号 |
Havetest | Bit | 是否参加考试 |
字段名 | 类型 | 备注 |
ID | 自动编号 | 题号,主键 |
Subject | Nvarchar | 考试科目 |
Type | varchar | 题型 |
Question | Ntext | 问题 |
Text1 | Ntext | 选项1 |
Text2 | Ntext | 选项2 |
Text3 | Ntext | 选项3 |
Text4 | Ntext | 选项4 |
Text5 | Ntext | 选项5 |
Text6 | Ntext | 选项6 |
Answer | Nvarchar | 正确答案 |
Mark | Int | 是否已选中标志 |
字段名 | 类型 | 备注 |
TestID | Int | 考试编号 |
Subject | Nvarchar | 考试科目 |
Totalper | Int | 试卷总分 |
Singlecount | Int | 单选题数目 |
Multicount | Int | 多选题数目 |
Judgecount | Int | 判断题数目 |
Singleper | Int | 单选题分值 |
Multiper | Int | 多选题分值 |
Judegper | Int | 判断题分值 |
Testime | Int | 考试时间长度(小时) |
Starttime | Datatime | 开始时间 |
Endtime | Datatime | 结束时间 |
Settime | Datatime | 设置时间 |
Setuserid | Int | 设置者 |
Passuserid | Int | 审核者 |
Pastime | Datatime | 通过审核时间 |
字段名 | 类型 | 备注 |
ID | 自动编号 | 主键 |
Objname | Nvachar | 待通过的项目名称 |
Objid | Int | 项目编号 |
Passuserid | Int | 审核者 |
Passadvice | Ntext | 审核意见 |
Pastime | Datatime | 通过时间 |
Havepass | Int | 是否通过审核 |
表3.8考试新闻信息表(exam_news)
字段名 | 类型 | 备注 |
ID | 自动编号 | 主键 |
Newsid | Int | 新闻编号 |
Title | Ntext | 新闻标题 |
Text | Ntext | 新闻文本内容 |
Youxq | Int | 有效期 |
Fabsj | Datatime | 创建日期 |
Fabr | Nvarchar | 发布者 |
Passuserid | Int | 审核通过者 |
Pastime | Nvarchar | 审核通过日期 |
字段名 | 类型 | 备注 |
ID | 自动编号 | 主键 |
userid | Int | 考生考号 |
Username | Nvarchar | 考生姓名 |
Department | Nvarchar | 系别 |
Office | Nvarchar | 专业 |
Duties | Nvarchar | 性别 |
Subject | Nvarchar | 考试科目 |
Testid | Int | 考试编号 |
Starttime | Datetime | 开始时间 |
Endtime | Datetime | 结束时间 |
Score | Int | 成绩 |
字段名 | 类型 | 备注 |
ID | 自动编号 | 主键 |
Newsid | Int | 新闻编号 |
Userid | Int | 用户编号 |
4.2 数据库的完整性和安全性
1.数据库的完整性
数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。
本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。
2.数据库的安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。
本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。
5 数据库操作(SQL Server2000、2005、2008语句完成)
(1)建立数据库
(2)建立各个表,包括各种约束条件
(3)建立存储过程向表中插入、修改、删除数据
(4)建立存储过程实现单表查询(5个)、连接查询(5个)、嵌套查询(2个)、
(5)视图建立(根据用户需求建立若干视图)
(6)INSERT、DELETE、UPDATE触发器
6 程序设计(可选)
选择一种前端开发软件,实现上述数据库操作。
参考文献
[1] Tripathy A. Computerised decision aid for timetabling a case analysis[ J ]. Discrete Applied Mathematics, 1992, 35 (3) : 313- 323.
[2] Ferland JA , Fleurent C. SA PH IR: A decision support system for course scheduling [ J ]. Interfaces,1994, 24 (2) : 105- 115.
[3] Schmidt G, Strohlein T. Timetable construction ─an annotated bibliography[J]. The Computer Journal ,1980 ,23 (4) :307 —391
[4] Todd Cook. JSP从入门到精通[M].北京:电子工业出版社,2003.
[5] 周绍广.ASP编程基础与实例[M].北京:机械工业出版社,2002.
[6] 程文.基于JSP开发动态网站的设计与实现[J].现代计算机,2002, (9):47-50.
[7]Microsoft.Technical Overview of Windows Server 2003 Terminal Services[EB/OL]. http://www.microsoft.com/windowsserver2003/techinfo/
overview/termserv.mspx#top, 2008-9-20.