通用在线测评系统模型的设计与实现

2019-11-29 09:38陈美娟
商品与质量 2019年3期
关键词:答题模板逻辑

陈美娟

中海油田服务股份有限公司 北京 100000

测评系统较传统的投票类系统具有更为复杂的业务逻辑关系,体现为测评问卷与测评人、试题与试题、试题与选项之间有较强的逻辑关系,这些逻辑关系最终转化为系统中个性化的功能需求,为测评系统的通用性及扩展性带来了一定的影响。如何提高测评模型的通用性与扩展性,降低开发复杂度提高开发效率,是本文研究的主要内容。

1 设计思路与设计原则

在通常情况下,测评系统主要是由测评问卷、测评项、测评项选项值、测评人、被测评目标与答题记录六部分组成。在实际应用中,因业务场景不同,测评问卷、测评项与选项值之间关系复杂多变,为了能够适应各种业务场景,要求业务模型的设计能够灵活变化。然而,常见测评系统中包含了大量通用功能需求,如在线答题、提交问卷、统计答题情况等,这些功能需求相对固定具有一定的通用性。为统筹处理各种变化及不变因素,设计出一个通用的测评模型,提出了以下两个核心设计原则。

1.1 通用与个性化分离设计原则

该设计原则主要是将个性化功能需求分解为功能处理与业务规则处理,并将业务规则处理标准化,以提高个性化功能解决方案的通用性。例如,在设计问卷组卷的功能时,可分为组卷功能、组卷的逻辑规则与测评项逻辑联动的处理,其中组卷功能是通用的主要负责问卷组成及问卷的显示处理;而组卷逻辑规则是变化的,它负责问卷组成的逻辑与,通过将通用与个性化功能进行分离,并将个性化规则化标准化,可极大的提高模型的通用性、降低开发复杂度。

1.2 分层设计思想

该模型框架在设计上分为展示层、业务层、持久层和域模型层。通过分层,可以降低各部分之间的耦合度,有利于开发分工,增加该模型的可维护性及可扩展性。

以下为各层的职责及简要说明:

展示层:基于Web的应用面向测评人员的部分。通过试题渲染解析器依据前端试题对象生成试题,并负责缓存用户答题记录、前端数据校验及管理用户的请求,作出相应的响应;并预留试题事件响应接口处理方法,便于处理个性化的业务逻辑。答题完成校验成功后,将请求发送至后端业务层进行处理。

业务层:一个典型Web应用的中间部分。主要负责处理各类业务逻辑,如组卷逻辑、组题规则,将规则、问卷模板与相应处理器结合完成问卷整体界面的生成。组题规则及问卷模板应用,将问卷样式与问卷试题两部分松耦合,可根据需要定义个性化的界面模板,以满足各种复杂的需求。

持久层:Web应用服务器端的最终部位,它是与数据库直接发生关系的层。主要负责建立持久化类及其属性与数据库中表及其字段的对应关系;提供简化SQL语句的机制、多种类数据库支持;实现数据的CRUD操作;数据库连接的建立与管理。

域模型层:域模型层的Java类由实际需求中的业务对象组成,主要包含问卷、测评人、测评项、测评结果、测评逻辑等,并提供问卷导入模板、测评逻辑导入模板,为问卷及测评逻辑的创建提供指引,并实现快速创建。

通过分析可以发现,展示层、业务层、域模型层均采用了“逻辑规则+模板+解析器”的设计,将固定与变化部分分离开来,既可实现应用的快速交付,同时还保证了该模型的通用性与可扩展性。

2 整体设计与实现

2.1 题库组题部分设计与实现

试题组卷功能由后端程序处理,当测评人员登录后,依据该人员对应的组卷逻辑与组题规则从数据库中提取试题信息及试题类型,以JSON格式传递至页面前端,由前端负责答题界面的渲染。

2.2 动态答题界面生成的设计与实现

动态答题界面的主要设计思路是将试题数据与展示样式分离。采用标准的Extjs4前端框架,通过试题渲染解析器,依据渲染处理规则,将后端获取到的试题数据动态生成相应的答题界面,并在页面的统一处理中预留试题级联处理的事件接口,方便开发人员处理个性化的联动逻辑。

2.3 防重复答题设计与实现

一般在企业内部开展问卷测评时,被测评人员较为固定,防止重复答题可采用账号密码身份认证或邮件发送带有加密身份信息的一次信访问地址的方式。在用户提交问卷记录时判断该用户是否存在答题记录,如果存在则拒绝重复答题。在身份认证方面可采用基于AD域或传统Form表单的方式,以适应不同的业务场景。

2.4 通用统计部分设计与实现

答题记录统计、统计已答题人数、未答题人员清单、邮件提醒等功能作为测评系统的通用功能,处理逻辑相对固化,由系统内置作为固定功能提供。

2.5 业务模型设计与实现

该模型通过分类或者个性化匹配规则将测评人员与问卷建立关系,问卷支持多级嵌套与主标题与子标题,同时可支持多选、单选、文本框填写等题型。答题记录存放了所有答题明细及整体答题记录信息,通过解析记录信息最终获取到所有答题明细。

2.6 性能优化设计与实现

因问卷在设计完成后一般不会变化,当测评用户量很大时,可采用Freemarker模板技术预先生成不同类型试卷的静态答题界面。正式答题时,仅将用户的身份信息附加到答题界面即可。该方式可极大减少用户答题时试卷生成数据库读写次数及试卷生成的处理时间,提高整体处理效率及用户体验。

2.7 整体技术架构结构

该测评系统模型架构采用了成熟、稳定的技术。前端页面框架采用成熟的Extjs4.2,后台框架采用成熟的JavaSSH2。通过对前后台框架进行整体设计,并结合通用测评系统的特点,设计与实现了一套通用的测评管理系统。开发人员可在此基础上个性化定制,实现快速交付。

3 应用效果

此测评框架模型成功应用于公司内部人员培训课程调查问卷项目的建设,节约60%的项目开发周期,具有开发周期短、项目建设平稳、应用交付快等特点。

4 结语

通过分析测评系统通用功能及模型,提出了通用与个性化分离原则与分层设计的思想,并采用了“逻辑规则+模板+解析器”的设计方法,设计了一个具备动态组题、试卷生成等功能的通用测评系统模型。并经过实际应用证明该测评模型架构具备一定的通用性与可扩展性。

猜你喜欢
答题模板逻辑
高层建筑中铝模板系统组成与应用
刑事印证证明准确达成的逻辑反思
铝模板在高层建筑施工中的应用
逻辑
特高大模板支撑方案的优选研究
答题、拍照、必微博、求关注…… 减了老负担,又练“新技能”
创新的逻辑
Inventors and Inventions
挑战答题
一场全民答题狂欢