毕业论文文献综述例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电力系统员工业务能力测试系统的设计与
实现
【摘要】本文介绍了电力系统员工业务能力测试系统的设计与实现,作者调研并总结了本单位的对系统的需求,并结合相关材料进行论证,最终确定了系统设计与实施的技术
路线。
【关键词】业务能力测试系统、.NET 、可维护性、设计模式
1. 引言
电力系统员工业务能力测试系统属于在线考试系统的范畴。
在线考试系统目前已经在各个层次的教育中得到了广泛的应用,作为一种有别于传统考试的新型方式,在线考试在出题卷、改卷、考场组织等各个方面均有效率的提升。
目前已经有许多人对其各个环节进行了大量的研究与设计。
这些研究包含考试的各个阶段。
从在线考试应用的时间上可以分为“考试前”、“考试中”“考试后”三个阶段。
对于考试前,在线考试需要进行试卷的组织、考场的组织等工作。
考试中则需要进行承担学生答题及作弊判断的工作。
而考试后要进行改卷工作和数据挖掘与分析工作。
也有一些研究从所使用的技术与架构等方面对在线考试系统进行研究,经过分析论证,本设计以提高系统的可扩展性、可维护性为重点研究内容。
2. 开发背景与可行性
从目前应用的在线考试系统看,可以简单的分为三个类别:1、以课程为应用对象的在线考试系统。
这种考试系统具备初步的出卷答卷改卷功能,然而因其应用对象的局限,其规模往往较小。
2、各种考试机构开发的在线考试系统。
例如以承办各种考试为主营业务的A TA公司就开发了多种在线考试系统,并在微软的认证考试与一些银行的从业考试上使用。
该类考试系统所关注的是系统的可靠性,因此在实现上并不采用复杂的结构,而是尽量的简单以减少出故障的可能性。
这种考试系统中的题型有限3、以高校或培训机构为主体开发的通用在线考试系统。
这一类型的系统尽可能的包含更多的课程,在题型上除了常见的选择、填空、问答之外,还提供了复杂的操作题、视听题等,该类型的考试系统因为要考试到各种复杂的情况,因此在技术实现上存在各种困难,为了支持以后的升级,在设计时采用良好的体系结构尤为重要。
电力系统员工业务能力测试系统属于第三类的在线考试系统,除了传统题型之外,还需要支持声音、图像、视频及三维动画的呈现与交互。
随着业务的发展,将还会出现其他各种形式新题型。
如何提高该系统的可维护性,在出现新题型时尽量减少升级时的工作量是本系统设计与实现时必须考虑的一个问题。
另外,由于目前使用的数据库为S QL Server,对业务进行分析后发现在后续的业务中有切换数据库的可能,因此软件的设计开发还得考虑数据库更换的可扩展性、可维护性。
本研究为工程设计类型的研究,其所用的理论与实践经验都已经在一些项目上得以实施。
因此在技术上是可行的,该项研究以满足企业的需求为第一要务,将重点放在提高软件可维护性、可扩展性上,具有很高的经济可行性。
3、国内外的研究现状
3.1 在线考试的研究现状
针对试卷组织前的相关研究:
在考试前需要组织试卷。
针对试卷分发的相关研究:
在线考试系统采用B/S结构的,不存在试卷分发的问题。
然而B/S结构的在线考试系统并不适合所有的考试。
在参考文献A中设计了一个C/S结构的试卷分发系统。
该系统的采用.NET体系。
“发卷”的过程实质上就是将服务器上共享的考试试卷复制到考试机上,而“交卷”的过程则是“发卷”的逆过程。
因此利用.NET中已经提供的一些类与方法就能很容易的完成系统的设计。
其主要方法有:
Direct ory.GetFil es:获取一个路径下的所有文件
Direct ory.Exist:判断文件是否存在
Direct ory.GetDirectori es:获取子文件夹
File.Copy:复制。
针对考试过程中的反作弊研究
针对考试系统中的各个作弊环节与作弊手段,目前已经有不少相关的研究。
针对试题答卷的保管和评阅过程中都可能会发生答卷被替换、修改和恶意篡改等舞弊行为,参考文献[1]给出了基于P K I 的网络考试安全机制研究成果,在身份证认、试题完整性、安全性方面提出了相关的解决方案。
针对替考现象,参考文献[2]提出将自动人脸识别技术应用到网上考试系统中,在该研究中构建了一种考试系统实现流程框架模型,在整个在线考试过程中能不断地对考生进行身
还增加了在线考试成份验证,实现了考试的全程监控,这样既避免了一些作弊行为的发生,
绩的可信度。
为了避免考生在考试过程中利用各种软硬件的缺陷进行作弊,往往考试系统中设计时都采用了一定的技术手段对常见作弊手段进行屏蔽。
如参考文献[3]就采用了用系统A PI调用技术、注册表访问技术、消息拦截技术、回调技术、钩子技术等手段来对一些操作进行屏蔽或禁用。
针对考试过程中利用网络在进行信息传递的作弊手段,参考文献[4]提出了以下的解决方法:针对网络环境,通过三层交换到桌面的技术,控制局域网内任两点之间的通信。
利用三层交换机的具有的强大功能,对IP地址实现过滤,数据帧过滤功能可以限制端口之间的通信,从而达到禁止局域网内用户之间互相通信的目的。
参考文献[5]在对在线考试作弊的各情况进行分析后发现:目前许多在线考试系统中的反制作弊的手段是针对作弊手段采用堵截的方式,这种静态的被动的方式落后于考生作弊手段的发展,也不利于反作弊手段的升级。
因此可以采用专家系统,借助专家的经验,针对学生的作弊手段展开主动防御。
并且提出了一个新的反作弊思路,即使用专家系统对学生的答题动作进行判断,根据规律推定其是否作弊。
在该文献中对实现专家系统的推理机与知识库两个核心模块进行了设计。
对于考试后的改卷,有如下的研究
传统的题型如填空、选择、判断等很容易用代码通过匹配的方式进行改卷。
然而对于操作题、主观题等题型,难以使用计算机进行简单的判断。
因此有一些学者对这一方面进
行了研究。
在参考文献[6]中针对《大学计算机基础》课程中的操作技能部分进行了研究,利用Off i c e 的对象模型,对文档结果进行自动判分,以达到自动测评的目的,并对操作技能自动测评关键技术进行研究。
对于试卷所有的技术架构主要为B/S结构与C/S结构,也有B/S与C/S混合使用的情况。
在所采用的技术上也有不同。
除软件结构外,参考文献还对在线考试的网络环境进行了研究。
在该研究中使用C#对Office组件进行平台调用。
微软的Offi ce 各组件文档(例如:Microsoft.Office.Tools.Excel),由于其带有大量专门针对于Offi ce 文件的函数、对象,通过它们可以方便地访问到文档中的各个元素,并对它们的状态进行识别判断,通过对这些文档对象及函数分析,获取相应的自动信息数据处理方法及考生的文档结果信息,利用Offi ee 的对象模型,对文档结果进行自动判分,以达到自动测评的目的。
3.2电力部门培训业务的研究
由于本文研究的电力部门内部的培训系统,因此在业务的分析上参考文7 有很大的参考价值。
在该文献中列举出了系统所要求具备的模块:安全知识、题库管理、学习管理、试卷管理、考务管理、在线考试和查询统计等。
该系统可以提供身份证号和准考证号两种方式登录,既可用于日常练习与培训教材,也可用于考试。
为更好的为学员学习提供帮助,在该系统中提供了知识录入的功能,可以按书本章节的方式进行知识的录入和阅读。
系统管理员可以对系统题库管理中的所有内容进行增、删、改的维护操作,提供试题分布统计,便于对试题补充维护。
设置考试计划基本信息,包括计划名称、计划说明、计划开始时间、计划结束时间等信息,并可上传该计划相关的附件。
试卷可以设置加密密码。
试卷出完后,如要进行修改、查看、审核都要首先输入加密密码,确保了试卷的保密性。
试卷可以自己定制。
采取固定试卷方式可以根据规则制定试卷,所有考试用户所考试卷为完全相同。
3.3数据访问的研究
可确定的是,在线考试中大量的数据存储在关系数据库中。
仅从访问方式看,.NET对数据的访问有S t oreP roced ure、Text及D i rect Table三种方式。
从这三种方式中仔细分析对可维护性进行研究发现:存储过程采用的是使用S QL语句事先将业务逻辑写出,经过编译后作为数据库的一个对象保留在服务器端。
因此存储过程在性能上占有优势,但由于其事前编译的因素,在业务逻辑经常变化的情况下需要反复修改。
因此其扩展性差。
Direct Table方式直接输出一张表,使用该方式的场合较少。
对于SQL语句,可以写在代码中,然而这种硬编码的方式更难以维护。
因此,可以对SQL语句采用动态生成的技术。
参考文献[8]提出了一种使用T-SQL来生成T-SQL的SQL动态生成技术。
该文献从业务的角度出发列举了一个修改雇员字段的例子,然而现实中该字段分布于多个表中。
如果逐一修改,不仅费时费力,也存在遗漏。
文献中提出的解决方法基于SQL的对象。
在SQL Server的设计理念中,表、视图、存储过程、用户自定义函数、触发器及各项约束等均可以被当作“对象”,并通过Sys.object s中呈现。
其中type及type_desc标注对象的类型。
因此可以通过对该视图的查询,使用T-SQL提供的聚合赋值和动态执行功能,结合CASE函数等各种字符串处理方法,可以在执行过程中动态生成简洁的S QL脚本,代替设计时硬编码方式的脚本编写。
这种方法可以在业务发生变化时,仅少量改动就可以使系统继续运行,即提高了系统的可维护性。
4、本课题的主要研究内容及思路
对以上的几点研究方向与本课题的实际情况相结合研究,确定本研究以尽可能满足以后业务的变化为研究内容。
要使用应用程序尽可能的满足业务的变量,则需要在不同的模板之间进行适合的解耦。
针对软件开发过程中的不同模块,将从以下几个方面进行软件体系结构的设计,以提高软件的可扩展性与可维护性。
4.1 组件化的程序设计
使用组件化的程序设计最基本的思想将各项功能以组件、部件的方式进行开发,最终以拼接积木的方式组合在一起。
在进行组件设计时需要考虑组件之间的耦合情况,尽可能采用优秀的设计来降低各组件之间的耦合性,从而提高系统的可维护性。
在参考文献[9、10、11]中阐述了组件技术兴起的原因;并结合开发实例,进一步阐述了在软件开发过程中组件技术应用的优势以及如何构建组件。
在定义组件时,需要定义好组件与外部的接口。
组件发布后只能过通过已定义的接口来提供合理的、一致的服务。
因此,组件的接口需要具有稳定性,不依赖于具体珠实现。
组件的接口必须标准化。
C#组件化程序设计方法继承并发展了面向对象的程序设计方法。
它把对象技术应用于系统设计,对面向对象的程序设计的实现过程作了进一步的抽象。
可以把组件化程序设计方法用作构造系统的体系结构层次的方法,并且可以使用面向对象的方法很方便地实现组件。
C#组件化程序设计的方法有以下几个方面的特点:
1)、编程语言和开发环境的独立性;
2)、组件位置的透明性;
3)、组件的进程透明性;
4)、可扩充性;
5)、可重用性;
6)、具有强有力的基础设施;
7)、系统一级的公共服务;
C#语言由于其许多优点,十分适用于组件编程。
4.2、使用相关的设计模式
参考文献[13-16]对设计模式在各行业中的应用进行了研究。
由于业务上存在数据库变化的可能,因此需要考虑在数据库与应用程序之间进行解耦。
而设计模式就是解决软件开发中的复用性、灵活性、扩展性及维护性,因此设计模式是为满足本研究而必须涉及的一个方向。
模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
这是关于模式最经典的定义。
在软件开发过程中遇到的许多问题有着很大的相似性。
对于这些问题经典的解决方法就是设计模式。
设计模式有以下的基本原则:
1) 单一职责原则(SRP):不要把变化原因各不相同的职责放在一起,因为不同的变化会影响到不相干的职责。
2) 开放—封闭原则(OCP):软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
3) 依赖倒置原则(DIP):抽象不应该依赖于细节。
细节应该依赖于抽象。
4) 接口隔离原则(ISP):不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变
5) 替换原则(LSP):子类型可以替换父类型。
由于数据库变化的不确定,所开发的软件与数据库之间应该使用接口隔离原则将数据库的与软件之间的操作分割开。
这一点在工程上已经有成熟的设计可以借鉴,即采用抽象工厂模式将数据访问层独立出来,数据库与软件通过数据访问层进行交互,而非直接进行耦合。
在数据访问层需要记录数据库访问的特征,例如:服务器名、数据引擎、用户名、客码、服务库实例名等信息。
这些信息如果采用硬编码方式写在代码中,则日后难以维护,因此应该采用依赖注入的方式将基本信息独立成配置文件,以减少系统各模块之间的耦合度。
4.3、使用反射与O RM等技术
在参考文献[17-20]中,均对ORM技术进行了介绍进分析其在实际案例中的应用。
电力员工的业务能力测试系统中也经常由于需求的变化而需要不断升级。
例如业务变化后需要记录每道题目的提交时间,则需要在原有的表T(ItemID、Questi on、Answer)中增加一字段ti me。
使之成为T(ItemID、Questi on、Answer、time)的类型。
这一结构的修改看似平淡无奇,却对设计提出了较高的要求。
如果设计不当,将会造成更多的问题,比如对于如下SQL语句: INSERT INTO Table1 V ALUES (‘A’,’B’),在对Tabl e1进行了修改,增加了一个新列后,该SQL语句则无法正常工作,原因就在于列的数量不匹配。
在面向对象设计的思想下,数据库的表往往被映射为代码中的类。
如下图所示,数据库的表与类的字段有一一对应关系。
在相关的类中封装了对数据库的操作,例如增加、删除、修改、查询等。
这种设计简化了代码的编写,甚至使得一些高度相似的代码可以使用代码生成器生成。
但这种方法的坏处就是当数据库结构或者映射关系发生改变时,需要修改代码,这导致重新编译重新部署。
业务有变化时,数据库要进行修改、对应的映射关系的代码也不得不改,这就造成了较高程度的耦合。
在开发过程中应尽量减少耦合,对于该问题,可以使用.NET中的反射技术来进行处理。
使用反射,可以列出任何对象类型的所有的字段,属性,方法和事件的名称,包括公开的或私有的。
还可以更深入的获得字段的数据类型,成员方法的参数的个数,类型及其返回值;事件使用的委托类型等等。
可以说反射技术就是.NET框架提供的只读的程序基因分析技术。
在使用反射技术之后,就可以从编写好的类中还原出数据库的表结构,并在运行时动态生成SQL语句,从而降低了系统的耦合。
参考文献
[1] 王尚平, 谢小琢, 张亚玲, 牛鹏超.基于PKI的网络考试安全机制研究及实现
——全国大学生数学建模竞赛考试系统的研究与实现.计算机工程与应用,44(24):208~211
[2] 张成功.自动人脸识别在网上考试系统中的应用.山西大同大学学报(自然科
学版), 2009 (3):70~72,80
[3] 田民格.无纸化考试系统防止考生作弊的实现措施.三明学院学报,
2007(12):456~458
[4] 武伟,魏晓,魏仕民.基于监控服务器的在线考试防作弊方法的研究.计算机
工程与设计, 2007(4):1941~1943
[5] 黄玮.基于专家系统在线考试反作弊模块架构设计.福建电脑, 2010(7):14~15
[6] 吴立春.在线计算机基础操作技能自动测评关键技术研究.现代计算机,
2010(8):153~155
[7] 刘伟斌.国家电网公司安全培训考试系统介绍.中国电力教育, 2010(21):
230~231
[8] 王小鉴.使用T-SQL生成T-SQL.程序员, 2009(11):90~93
[9] 徐敏. 周定康.组件技术在软件开发中的应用.计算机与现代化, 2002(2):
90~93
[10] 杨晓红朱庆生.组件化程序设计方法及组件标准. 重庆大学学报(自
然科学版), 2009(11)
[11] 李勇建贾春福袁晓洁涂奉生.面向对象方法在企业评价诊断系
统开发中的应用. 计算机工程, 2000, 26(12)
[12] 刘海岩锁志海吕青梁建龙.设计模式及其在软件设计中的应用
研究. 西安交通大学学报, 2005, 39(10)
[13] GammaE;李英军.设计模式--可复用面向对象软件的基础. 北京:机械工业出
版社2000
[14] 吴超.设计模式在数据库浏览系统中的应用. 计算机工程与科学, 2006,
28(z2)
[15] 孙丰段慧芬刘焕敏梁友生.设计模式在可复用数据处理软件中
的应用. 飞行器测控学报, 2008, 27(4)
[16] 李海燕.高性能MMO服务器架构与模式设计. 微电子学与计算机, 2010,
27(7)
[17] 李杰.基于ORM的轻量级数据持久化技术研究及应用. 计算机科学, 2010,
37(9)
[18] 顾春华贾欣歌顾兢.一种动态对象/关系映射框架及其实现. 华东理
工大学学报(自然科学版), 2009, 35(6)
[19] 秦奕青.对象持久化常用方法研究 . 北京机械工业学院学报(综合版), 2003,
18(1)
[20] 吴卫平王丽芳蒋泽军.基于ORM的数据持久层框架研究 . 微电子学与计算机, 2008, 25(7)
[21] JamesR. Trott. Patter ns of Enterp riseApplic ation Archit ectur e . Addiso n-Wesley Profes siona l(2009)
[22] JamesR. Trott. Design Patter ns Explai ned: A New Perspe ctive on Object-Orient ed Design (2nd Editio n), Addiso n-Wesley Profes siona l (2010)。