在线考试系统建模.docx
《在线考试系统建模.docx》由会员分享,可在线阅读,更多相关《在线考试系统建模.docx(19页珍藏版)》请在冰豆网上搜索。
![在线考试系统建模.docx](https://file1.bdocx.com/fileroot1/2022-11/30/466a0441-09ea-4564-a8c7-8484893cafca/466a0441-09ea-4564-a8c7-8484893cafca1.gif)
在线考试系统建模
在线考试系统建模(总19页)
UML建模案例分析
——在线考试系统UML建模
安徽师范大学数计学院
软件工程导论
实验报告
实验名称:
网上考试教务管理系统
姓名:
张少奎0915273
专业:
计算机科学与技术
编制时间:
2011-12-27
安徽师范大学数计学院软件开发班小组编
1引言
1.1开发在线考试系统的背景:
随着网络技术的飞速发展,现在很多国外的大学和社会其他部门都已经开设了远程教育,通过计算机网络实现异地教育和培训。
但是,远程教育软件的开发目前还处于起步阶段,随着这项技术的不断深入发展,就要求有更好、更完善的软件系统应用到远程教育当中去,这就给软件设计人员提出了更高的设计要求。
远程教育包括很多环节,例如教学系统、答疑系统和考试系统等等。
其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。
在我国,虽然远程教育已经蓬勃地发展起来,但是目前学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观,更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
伴随着远程教育的蓬勃发展,作为教学当中不可分割的一部分的在线考试系统也得到了当今远程教育研究者的关注,考试是考察学生对所学习知识的接受和理解程度的重要手段,无纸化的考卷,考试的随时性,随地性,这些特点都是研究并开发网络考试系统主要的原因,网络考试系统远远超越了传统考试固定时间,固定地点的考试模式的限制,将给学生和老师带来极大的便利。
随着Internet的相关技术的发展,特别是Web技术的出现,人们开始致力于研究和开发基于Internet考试系统,这也大大推动了远程教育的发展[2]。
如今世界上对于基于Internet的远程考试系统所进行的研究开发工作不是很长,但是基于web技术构建的在线考试系统已然成为发展的主流。
数据库安全、共享、数据传输过程的安全性、访问控制技术、身份识别技术都是构建考试系统要考虑的问题。
目前,一些远程教育机构已经开发出了在线考试系统,基本实现了基于Internet的B/S结构在线考试。
通过Server端的后台试题库动态生成考卷和对于标准化的试题即时评定成绩。
但是与传统的纸面考试相比,目前的在线测试都是基于标准化考试的,而且一般只能用于非正规的考试,因为对于很多方面考虑的还不是很完善,因而使得在线考试在近段时间很难完全替代传统的考试。
1.2在线考试系统简单介绍
系统采用B/S模式,使用目前先进的主流技术(Jsp,Servlet,JQuery等)。
数据库采用Oracle11g,编写了存储过程,并对SQL句进行了优化,满足了考试海量数据,响应速度快的要求。
实现了考生,管理员登陆身份验证,并具有海量题库,管理员可以对科目,试题进行增、删、改、查,可以自主在题库中选择试题,也可以通过系统随机抽选试题形成试卷。
对试题可以进行增、删、改、查。
对试卷的考试时间管理员可以随意设定。
管理员还可以设定考试登录限制,即允许考试登录和禁止考生登录。
管理员可以查看某次考试的统计信息,以便制作正确,有效的教学方案。
对于一些答案唯一性的题目,考生提交试卷后,系统可以立即给出成绩。
管理员还可以发布通知(如考试纪律)供考生查看,并可以打印。
考生登录后可以选择相应科目下的试卷进行考试,并可以查看自己的考试成绩。
通过参考大量资料和成功经验,对系统进行了合理,有效的建模(包括用例图,类图等),可供以后研究和参考使用。
数据库设计中也提供了PDM数据库模型图,为以后的研究打下了有效的基础。
2在线考试系统需求分析
系统的功能需求
系统的功能需求主要包括以下几个方面:
学生可以登录网站浏览信息、查找信息和下载文件。
教师可以登录网站输入课程简介、上传课件文件、发布消息、修改和更新消息。
系统管理员可以对页面维护以及批准用户的注册申请。
它们的关系图如下:
数据信息管理模块
数据信息管理模块包含的功能:
教师信息管理
课程简介信息管理
文件上传信息的管理
关系图如下:
基本业务模块
基本业务模块包含的功能:
权限管理
系统维护
答卷
交卷
出题
教师审阅试卷
提交成绩
信息浏览查询模块
•信息浏览、查询模块主要用于网页上信息的浏览、搜索,包括:
网页信息浏览
个人信息搜索
3系统的UML基本模型
建立UML初始模型
为了更好的理解软件开发过程中可能遇到的一些问题,从不同的角度抽象出目标系统的特性,我们需要快速的建立起一个简单的可以反映系统主要功能的模型,通过模型我们可以认识到系统的大致功能需求,这样可以减轻开发系统的复杂度,接下来只要对初始模型进行修改完善逐步求精,达到完整的系统即可。
下面是我们建立的初始的模型:
系统用例图
一副用例图包含的模型元素有系统、行为者、用例及用例之间的关系。
创建用例图之前首先需要确定参与者。
系统中的参与者主要有三类:
教师
学生
系统管理员
这里我们说的系统就是指在线考试系统,
通过不用的参与者,我们可以设计出三种用例图,分别是:
1.系统用户参与的总的用例图
2.学生参与的用例图
3.教师参与的用例图
4.系统管理员参与的用例图
系统的时序图
1.系统管理人员管理网站的时序图
2.用户登录系统的时序图
3.学生下载文件的时序图
系统的协作图
1.用户登录系统的协作图
2.学生下载文件的协作图
系统的状态图
4系统中的类
类图的生成
业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。
由于各层之间是一种弱耦合的关系,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。
将它们彼此关联起来。
如图:
各个类的功能介绍
1)科目管理模块
表4-1科目管理模块表
模块名称
科目管理模块
功能描述
主要实现科目的添加、修改、删除、查询的操作
接口与属性
Course类主要是科目实体类;
CourseBean类中包含关于Course操作的方法:
intaddCourse(Coursec):
添加科目;
intmodCourse(Coursec);对科目实体的修改;
intdelCourse(Stringid):
对科目的删除;
ListlistCourse():
列出所有科目;
CoursefindCourse(Stringid):
根据科目编号查找科目。
2)考生管理模块
表4-2生管理模块表
模块名称
考生管理模块
功能描述
主要实现考生的添加、删除、查询的操作
接口与属性
User类主要是考生实体类;
UserBean类中包含关于User操作的方法:
intaddUser(Useru):
添加考生;
intdelUser(Stringid):
对考生的删除;
ListlistUser():
列出所有考生;
UserfindUser(Stringid):
根据考生考号查找考生。
3)题库管理模块
表4-3库管理模块表
模块名称
题库管理模块
功能描述
主要实现题库的添加、修改、删除、查询的操作
接口与属性
Question类主要是科目实体类;
QuestionBean类中包含关于Question操作的方法:
intaddQuestion(Questionq):
添加试题;
intmodQuestion(Questionq);对试题实体的修改;
intdelQuestion(Stringid):
对试题的删除;
ListlistQuestion():
列出所有试题;
ListfindQuestion(Stringcourseid,Stringtypeid,Stringflag):
根据科目编号或者试题类型来查找试题。
4)通知管理模块
表4-4知管理模块表
模块名称
通知管理模块
功能描述
主要实现通知的添加、修改、删除、查询的操作
接口与属性
Notice类主要是通知实体类;
NoticeBean类中包含关于Notice操作的方法:
intaddNotice(Noticen):
添加通知;
intmodNotice(Noticen);对通知实体的修改;
intdelNotice(Stringid):
对通知的删除;
ListlistNotice():
列出所有通知;
NoticefindNotice(Stringtime):
根据通知的发布时间查找通知。
5)试卷管理模块
表4-5卷管理模块表
模块名称
试卷管理模块
功能描述
主要实现试卷的添加、修改、删除、查询的操作
接口与属性
Paper类主要是试卷实体类;
PaperBean类中包含关于Paper操作的方法:
intaddPaper(Paperp):
制作试卷;
intmodPaper(Paperp);对试卷实体的修改;
intdelPaper(Stringid):
删除对应的试卷;
ListlistPaper():
列出所有试卷;
PaperfindNotice(Stringname):
根据试卷名称查找试卷。
6)系统管理模块
表4-6统管理模块表
模块名称
系统管理模块
功能描述
主要实现对考生登录的的控制,系统名称的修改以及系统数据库的清空
接口与属性
System类主要是科目实体类;
SystemBean类中包含关于Paper操作的方法:
intmodSystemName(Stringname);对系统名称的修改;
intdelSJK():
清空整个数据库;
intallowFlag():
控制考生的登录;
intfindAllowFlag():
查询考生可登录状态(如允许登录,禁止登录)。
7)成绩管理模块
表4-7绩管理模块表
模块名称
成绩管理模块
功能描述
主要实现对考生成绩的查询,统计.成绩的查询
接口与属性
UserPaper类主要是考生试卷的实体类;
UserPapeBean类中包含关于UserPaper操作的方法:
intscore(UserPaperu);根据考生试卷的答案计算考生的成绩;
intfindCJD(Stringname):
根据试卷名称查找考生成绩单;
inttypeCount(Stringid,Stringflag):
根据试卷编号查找参考人数,不及格,及格,中等,良好,优秀,满分的人数。
5设置用户界面和基本系统模型图
用户界面设置
为了方便用户的使用,在设置界面是尽量的使界面简单易懂,便与用户操作,以下是我设计好的程序运行时的用户登录界面及部分信息查询界面:
总结
通过三个月的努力,在老师和同学们的指导与帮助下,我们的设计由最初的杂乱无章,到后来的清晰准确,最终顺利完成。
在这里我要感谢我的导师与同学。
在线考试系统是根据软件工程学自顶向下的开发方法进行开发的。
在系统设计之初,我查阅了大量国内外相关的文献资料,明确了目前国内外现状以及系统的需求。
在概要设计和详细设计阶段,我们通过在网上,图书馆查阅一些先进资料,明确了系统应该采用的模式以及相关技术,通过这些资料再加上老师和同学们的帮助,一些技术问题很快就攻克了,最终整个系统得以实现。
取得的主要成果有以下几点:
1)通过研究国内外在线考试系统资料,明确了目前在线考试系统的研究意义与方向;
2)在系统实现过程中进一步学习Java,数据库语言,深刻体会到面向对象的编程思想,为系统能采用一个先进、封装性好的框架提供了解决方案;
3)研究设计的基础之上对系统进行实现,系统大体上实现了总体设计方案中所提到的考生、管理员、超级管理员的功能。
可以说,在这次的设计和开发的过程中学到了不少的东西,尤其是对如何设计一款软件的工作有了进一步的认识。