基于大学生综合测评1的评估2系统研发
2014-12-12许凌蔚
许凌蔚
(合肥工业大学软件学院,安徽合肥 230601)
基于大学生综合测评1的评估2系统研发
许凌蔚
(合肥工业大学软件学院,安徽合肥 230601)
本文基于国内大多数高校的综合测评规则进行抽象、建模,从而设计并研发出一个B/S架构的系统,以满足各大高校以及各类机构组织的评估需要。
评估系统 测评 互评 自评
1 绪论
据调查,当前国内多数普通高校均会存在着一种评估方法——综合测评,而学校学生测评的日常管理工作都是人工操作。然而,众所周知,通过人工测评,会存在以下问题:
(1)由于数据量比较大,难以建立输入合法性检测机制
(2)人工操作大量的数据,总会难以避免地出现统计失误,评估的准确率不能得到保障。
(3)纸质版的数据难以保存,同时查找效率低下,容易遗失。
当前时代是一个信息化的时代,可从综合测评中抽取出处理逻辑,进而搭建一个测评平台,并基于该测评平台,设计出一个通用的评估模型,以适用于各类型的机构的评估工作。该种平台存在以下优点:
(1)减轻评估管理人员以及被评估人员的负担,提升工作效率;
(2)维护简便,同时可以确保输入数据的合法性;
(3)便于后期对数据进行维护;
(4)能够跨平台进行使用,可充分利用现有的设备,无需重复投资。
2 系统相关分析
2.1 需求分析
该系统需要适用于目前的大部分机构、组织,能够给予其足够的自由度使其可以自由设置评估项目,包括项目类型(自评3、互评4、测评5),评估方式(等级评估、分数评估)以及项目数量、项目从属6,同时还要实现对参与评估的人员的管理,包括将相应用户加入到某个项目中,以及将相应用户从某个项目中删除等等。
此外,该项目还能将评估结果导出、拥有友好的用户界面以及有较优的反应时间。
表1
图1
2.2 系统建模
由于本系统的特殊要求,因此要把重点放在数据存储上,其需要具有极高的灵活性。其模型设计如表1所示。
其中,“数据库层”为最底层,用于存储三种数据,一种是评估项目数据的存储(动态数据),另外一个是评估项目结构的存储(静态数据),第三种是用户信息的存储。由于数据库的高灵活性,必然会带来数据库的复杂性,而这种复杂性不仅是数据结构上的,也是处理逻辑上的;而为了避免由于数据库的复杂性所带来的时间耗费,故使用“数据信息层”将数据库中的数据转存为有用的信息,同时,该层也可以将上层传来的数据逆向存储到“数据库层”中;在“信息服务层”中将整合其上层模型以及下层模型的各种信息,将其分类封装后供“业务逻辑层”或者“数据信息层”根据不同的需求进行调用;在“业务逻辑层”中,通过获取“信息服务层”中的信息,按照业务逻辑的需要进行分类组织筛选,将符合要求的信息输送到“界面显示层”,同时,将该层中接收到的信息传入“信息服务层”中;而在“界面显示层”中将业务逻辑层中的信息按照界面的对应设置进行输出到屏幕上,同时也可以获取用户的输入。
2.3 架构设计
按照上述模型,结合本系统的实际情况考虑,基于MVC模式进行系统架构设计。MVC模式包括三个部分:模型(Model)、视图(View)和控制器(Controller),分别对应于内部数据、数据表示和输入输出控制部分[1]。如图1所示。
在本系统中,总共有3个模块组成,分别是评估设计模块,评估模块以及人员管理模块,其中三个模块分别对应三个视图“评估设置视图”、“评估视图”、“人员管理视图”,这三个视图与系统建模中的“界面显示层”相对应;而业务逻辑控制器则与系统建模中的“业务逻辑层”相对应;而“评估结构模型”、“评估数据模型”以及“人员管理模型”则与系统建模中的“信息服务层”相对应,分别用以处理其对应的三个视图中的数据;“信息存储结构”则对应系统建模中的“数据信息层”,主要作用是将数据库中的数据通过对应的算法提取出来,形成有用的信息;“数据库”对应系统建模中的“数据库层”,用以存储全部的元数据。
2.4 关键点
不难发现,本系统的关键点在于其可扩展性,只有优秀的可扩展性才可以支持多种评估规则的设置。因此,本系统的数据库设计是该系统的重中之重。数据库的功能直接影响该系统的功能,而数据库的性能则是其能否很好地执行、响应对应功能的一个决定性因素。因此一个数据库质量的好坏直接就决定了该系统是否能够完成既定目标,实现具体功能。
而众所周知,当期的主流数据库是关系型数据库,其表结构中的数据是通过主键和索引进行搜索和查找的,但是如果按照普通的数据库的设计方法进行设计,每当修改评估设置的时候都需要修改数据库中的表结构(包括新增表、删除表和修改表),这无疑给数据库的性能造成很大的负担。笔者专门对此进行了实验,实验结果表明,对MySQL数据库来说,这种对表结构进行修改的操作在并发性相对略高的情况下,就会导致较大的使用延迟,由此所带来的用户体验也会相对较差。因此,通过对于多种存储方式的研究后,笔者发现,当数据库采用了类似C/C++中树的储存结构时,所实现的灵活性是最高的,其功能与树相似,可以自由地扩展任意节点,可以自由地添加子节点或者兄弟节点,从而来适应各种组织、机构的评估规则,同时每个节点的构成采用面向对象中类的思想。然而,要使用这种方法进行数据库设计,则需要将数据库每个节点的公有属性抽象出来,专门放置在一个表中。经过研究,本系统中的每个节点都包括六个属性:第一个属性是其该节点的唯一编号;第二个属性是该节点的父节点编号;第三个属性则是该节点对应项目所占其父项节点对应项目的分数比例;第四个属性是该节点对应的项目所允许的最大参与人数;第五个属性是该节点对应的项目所允许的最小参与人数;第六个属性则是该节点的类型,在本系统中需要的类型共有两种:(1)分类项类型:即在节点下会有其他子节点;(2)最终项类型:即该节点为子节点,其下不存在子节点,而对于等级评价,则是将其等级转化为分数存储在该属性中。而存储在数据库中的数据,则根据需要通过深度优先遍历或者广度优先遍历把需要的数据取出来,存储到信息存储结构中即可很方便地对其进行调用。除了储存评估结构外,还需要通过表来存储评估结果和存储人员的基本信息。此外,还需要通过javascript来实现生成Excel文件,由于该类功能的实现较为简单,笔者故不在此一一叙述了。
注释:
[1]大学生综合测评:大学生相互为对方提供的评估.
[2]评估:根据自评结果、互评结果和测评结果按照权重相加得出的结果.
[3]自评:由自己对自己进行评价(包括等级和分数)通过计算得出的成绩.
[4]互评:由同级之间互相评价(包括等级和分数)的结果通过计算得出的成绩.
[5]测评:由上级或者老师直接给出的评价(包括等级和分数)通过计算得出的成绩.
[6]项目从属:某个评估项目与其他评估项目的从属关系,如某个父评估项目下还有子评估项目.
[1]任中方,张华,闫明松,等.MVC模式研究的综述[J].计算机应用研究,2004,21(10).