1. 引言
2020年伊始,中国武汉爆发了新形冠状病毒疫情。面对来势汹汹的疫情我国乃至世界各国都极为重视,并在疫情初期当机立断作出决策,减少接触、自我隔离,学校停课、工厂停工、企业关闭。然而秉着停课不停学、停工不停业的原则,很多工作学习活动都由线下转为线上。在艰苦抗疫期间,习近平总书记也明确指出,要“鼓励运用线上技术,在疫情监测分析、病毒溯源、防控救治、资源调配等方面更好发挥支撑作用” [1]。疫情期间的民生意见是国家格外重视和关注的微问题,因此我们亟需一个适用于各行各业的线上市场调查管理系统 [2]。随着近几年计算机领域取得了突飞猛进的发展,网络调查已经逐步替代了传统问卷调查,目前基于网络问卷的调查方式已十分普遍,一些学者已提出了比较完善的系统设计方案。例如通过利用Excel VBA代码制作问卷调查单、设置问卷调查结果的详细记录设计的基于VBA的问卷调查数据自动获取与分析的系统设计 [3],采用目前流行的框架开发模式设计的基于SSM框架的通用电子问卷调查系统设计 [4],基于Flask-RESTful的定制化问卷系统设计 [5],基于Bootstrap的交互式调查系统的设计 [6]。
本文对这些设计方案进行了深入研究,发现传统的网络问卷调查系统存在以下几个问题:1) 调查分析的整合性不强,统计信息不完整,因此用户根据统计信息得出的结论难免会有偏差;2) 在系统设计过程中,无法排除人为因素对最后统计结果造成的影响而导致统计结果的不准确;3) 数据加密性不强,调查信息很可能会被泄露;4) 数据库管理系统中的数据存储方式不够理想,存储数据不全面。因此为改进和优化现有的网络调查系统 [7],针对上述问题,本文设计了基于重测信度法的分析算法来对统计结果的可信度进行检测,以及基于数据库的图表自动生成技术生成多个自由可选的统计图表加强调查整合性,和双层数据加密技术来对用户的统计信息进行保护。
2. 相关技术
2.1. 基于ASP.NET的开发环境
ASP.NET技术是基于ASP发展的最新技术。作为.NET体系的一部分,可以利用它在服务器端高速构建起一个具有强大功能的应用程序。同其它Web开发技术相比,ASP.NET具有极其明显的优势,例如可视化的开发环境,方便开发者使用的各种组件,这些都具有极高的可操作性 [8]。
本文利用ASP.NET平台进行开发,不同于需要写入大量代码的动态平台,ASP.NET平台通常使用脚本语言,这改变了过去开发模式中存在的冗余等问题。本系统在ASP.NET平台上系统的设计前端使用HTML语言和原生JavaScript语言进行开发、后端使用python2.7.6语言进行开发。.NET框架主要组成部分如图1所示。
2.2. MVC开发模式
本系统在Model/View/Controller Architecture 模式进行开发设计,该模式为同一类型的数据提供不同视图的应用程序,它将交互系统分解成模型、视图、控制器三种部件。视图是应用程序中用户界面的部分,即用户看到并与之交互的界面。控制器工作就是根据用户的输入,控制用户界面数据显示和更新模型的状态。模型是应用程序的主体部分,表示业务数据或者业务逻辑。
系统的整体架构如图2所示。系统是由客户层、业务逻辑层和数据层组成的。客户层在浏览器下运行,当业务逻辑层接收到其操作结果后,控制器、模型和视图三者间的数据流通继续由业务逻辑层负责,同时ADO.NET完成对数据库的更新操作 [9]。
3. 数据库设计
本文使用MySQL-server-5.5.54.x86_64.rpm在操作系统下安装部署Mysql服务,通过python的PyMySQL库来进行MySql数据的常规操作,如创建连接,对数据库、表的增删改查功能。主要管理的数据有:管理人员数据,填写问卷人员数据,问卷数据,问卷统计数据等。按照系统的功能需求,主要列表如下,以下列出主要表的详细信息(表1~6)。
Table 1. Overview of questionnaires
表1. 问卷概览信息表
Table 3. Detailed questionnaire information
表3. 问卷详细信息表
4. 系统功能设计与实现
4.1. 系统结构设计
线上文件调查系统主要分为四大模块,其主要功能如下所示。
1) 问卷调查模块:主要面向的是问卷参与方,参与方可以对已经发布的调查问卷进行填写并提交。
2) 问卷管理模块:主要面向的是问卷管理方,管理方可以对系统内中的问卷进行创建、修改、发布、统计问卷等操作。
3) 问卷分析模块:这部分主要是对问卷的数据进行统计和分析,从而得到一些结论和规律。
4) 用户管理模块:主要面向的是系统维护方,维护方可以对系统内中的账户进行创建、修改、删除等操作。系统逻辑结构示意图如图3所示。
4.2. 系统主要功能设计
4.2.1. 问卷调查模块
问卷调查模块功能包含浏览问卷、填写问卷等功能,如图4所示。
1) 浏览问卷:本系统可以将已经发布的问卷显示在无需登录的浏览问卷中。方便被参与人员浏览问卷,参与人员可以挑选自己感兴趣的问卷进行填写。主要代码如下。
2) 填写问卷:参与人员根据浏览问卷页面选择需要填写的问卷,单击“填写”按钮,进入填写调查问卷页面,该页面将显示对应发布的问卷内容,用户可以选择回答题目,也可以全都不回答,当回答完毕后,需要填写参与人员个人信息,如姓名、性别、年龄、联系方式后,选择提交功能。提交后,系统会判断是否是有效问卷,如果问卷中没有回答任何一道题,系统后台对此问卷归类为垃圾问卷,不进行入库操作。
代码说明:
call login(user,pwd)//登录操作
访问数据库
if 浏览问卷
then
paperId←填写问卷的ID,questiontitle←问卷题目,questionvalue←问卷答案
flag←call checkResult(questiontitle,questionvalue)
if flag=无效
then
return
end if
ret←call insertResult(paperId,questiontile,questionvalue)
Return
if 填写问卷
then
paperId←填写问卷的ID,num←题目数量,questiontitle←问卷题目,questionvalue←问卷答案
flag←call input(n,,questionvalue)
if flag=拒绝
then
return
end if
ret←call insertResult(paperId,questiontile,questionvalue)
Return
4.2.2. 问卷管理模块
问卷管理功能模块包含创建问卷、发布问卷、查看调查问卷报告、导出问卷报告等功能 [10],如图5所示。
1) 创建问卷:用户登陆系统后,可以在系统中创建调查问卷,数据库将问卷题目人性化地设计成可变字符类型,方便用户在创建调查问卷可以添加自定义类型问题,而非老旧的固定选择问卷题目,增强了系统的创新力。
2) 发布问卷:用户登陆系统后,可以对系统中已经创建好的问卷进行发布,发布问卷需要配置发布调查问卷的结束时间,单击发布问卷,该问卷会进入到问卷调查模块中,可以给予其他非登录本系统用户进行调查问卷填写操作。
3) 问卷报告:用户登陆系统后,可以对系统中已经发布的问卷进行查看,该功能具有统计参与问卷人数、回答最多题目TOP10、查阅整理问卷回答情况等功能。此功能应用了Echars开源图表框架来进行统计中的饼图与柱图显示,方便用户聚焦重点数据,提升用户使用体验 [11]。
4) 导出问卷:用户登陆系统后,可以在问卷报告页面查看数据后导出多种格式的报告,导出问卷功能,支持的格式有:excel、pdf、html等主流报告格式,数据内容丰富。用户将导出的报告可以进行二次数据分析、汇报工作使用。
代码说明:
call login(user,pwd)//登录操作
访问数据库
if 创建问卷
then papername←问卷名称,papertitle←问卷题目,paperclass←问卷类型,pubtime←发布时间
call addpaper(papername,papertile,paperclass,papercreatetime,pubtime)
return paperid
else if 发布问卷
then paperid←发布问卷ID,pubtime←发布时间,pubtime←发布时间,endtime←问卷结束时间
call pubpaper(paperid,pubtime,endtime)
return 成功
else if 导出问卷
then paperid←导出问卷ID
sdf←shape(paperif)//导出类型
paper←call export_paper(paperid)
return paper
4.2.3. 问卷分析模块
该模块主要是对用户提交的问卷信息进行统计分析,进而得出适当结论。分析的内容主要针对于调查结果的信度以及用户的回复度和选择度。首先信度代表整个问卷的可信度,这是我们进行统计分析的基础,一个可信度很低的问卷所得出的结论往往也是差强人意的。其次用户的回复度可以说明问卷题目设置的合理性,如果一个问卷的回复度极低这说明用户对题目的设置不认可,问卷对用户的吸引力不足,需要重新设置。最后选择度是我们进行分析的主要目的,以一个带有四个选项的题目为例,我们可以根据统计看出每个选项的用户支持度,进而可以看出大众对于这个问题的看法,这也是我们进行调查的目的。
本文对信度的分析采用重测信度法。即在对问卷的测验环节,用相同的问卷在不同的时间里对同一组测试者进行测试然后计算两次测验的一致性进而算出信度α。采用的算法如下:
① 令第一次测验结果为X,第二次测验结果为Y,两次结果之间的不可控误差记为Z,它们有一定的关系如公式(1)所示。
(1)
② 对于不可控误差它的期望值往往设置为0,即E(Z) = 0,代表两次测验结果相互独立。所以第一次与第二次测验结果的期望值相同,如公式(2)所示。
(2)
③ 第一次测量得分的方差等于第二次得分的方差加上误差的方差,如公式(3)所示。
(3)
④ 信度的规定第二次的方差在第一次方差中所占比例,如公式(4)所示。
(4)
信度在理想化的情况是1,但这往往是不切实际的。在问卷调查中我们规定信度介于0.8到0.85之间的问卷是适当的,如若低于0.7则需要重新设置问卷。
对于回复度和选择度的分析本文采用了直观的统计图表。图表的绘制采用了基于数据库的图表自动生成技术,实现这一技术首先要完成与数据库的连接,本文改进了以往对数据的直接导入,采用了依据数据库实现数据表的连接减少了数据的冗余 [12]。导入后的数据保存在selfAllDate中,根据选择要绘制的统计图系统调用相应的函数自动生成如图6所示。本系统中提供了大量的图表种类如折线图、饼状图、柱形图等,具有很强的直观性,为后续的分析提供了帮助。
4.2.4. 用户管理模块
用户管理功能模块包含,添加用户、修改用户、删除用户等功能,如图7所示。
1) 添加用户:管理员可以对本系统添加多个负责管理问卷的用户,创建用户除必须要填写用户名、密码、姓名、性别外,可以选填年龄、办公室电话、移动电话、邮箱等数据。填写完毕后,单击添加用户按钮,系统会对用户名进行验证是否已存在,如果存在,提示用户该用户名已存在,请重新创建。
为了提高用户安全性,本系统对新用户数据进行加密 [13],将账号 + 密码 + 创建时间 + 创建者通过MD5技术混淆加密,然后进行入库操作。
2) 修改用户:管理员可以对本系统已经添加的用户进行修改操作,修改内容除必须要填写用户名、密码、姓名、性别外,可以选填年龄、办公室电话、移动电话、邮箱等数据。修改完毕后,单击修改按钮,系统会根据该用户ID,更新对应的数据项内容。更新成功后返回成功提示。
3) 删除用户:管理员可以对本系统已经添加的用户进行删除操作,选中需要删除的用户,单击删除用户按钮,系统会根据用户ID,将用户表内对应数据的status字段更新为1。代表用户已经删除。不直接删除数据表内容,只更新状态标记为已删除这样带来的好处是,将来我们可以针对已删除用户做一个扩展功能叫做恢复误删除用户功能。
用户界面示例如图8所示。
代码说明:
call login(user,pwd) //登录操作
访问数据库
if 进入添加用户界面
then username←用户名,pwd←密码,infos←用户信息,age←年龄,phone←用户电话
if 信息已存在
then 返回上一界面
else val←call addAdmin(username,pwd,infos)//插入用户信息
B←mod(ID,pwd,username)//B为加密后的信息
else if 进入修改用户界面
then userId←修改的用户ID,pwd←修改密码,infos←修改信息
val←callmodify(username,pwd,infos)//插入用户信息
else
userId←要删除的用户ID
val←call delAdmin(userId)
return val
5. 对比分析
为了对本系统的系统性能进行实证分析,本文设置了基于文献 [3] [4] [5] [6] 和本系统的五个调查问卷,在不同学校的同一年级找700名学生,同一时间测试,每个问卷都包括25道题,每个问题都有备选答案,题目后面给出相应选项。通过比较可以看出不同系统的问卷执行情况,经过分析可以看出在问卷回复率、抗攻击性、数据分析能力的测试上本系统的性能都是较好的。
5.1. 回复率测试
回复率可以看出问卷设置的合理性、用户对问卷界面美观性、系统的流畅性、以及系统对题目的自动优化功能是否满意。如果一个问卷的回复度极低这说明问卷对用户的吸引力不足,需要重新设置。一个回复率高的问卷才具有进一步分析的价值。从表7可以看出本系统的回复率明显高于文献 [3] [4] [5] [6],对于普通回复率和有效回复率本系统大约提高了10%,15%。
5.2. 抗攻击测试
数据统计完成后,查看数据库可以看到统计调查的所有数据,现对数据库进行攻击测试,5个系统的数据保留情况如下表所示。从表8可以看出与文献 [3] [4] [5] [6] 相比本文的数据加密效果是最好的,就平均性能而言本文已远远超过了其他系统,因此本系统的数据库抗攻击性能良好。
5.3. 数据分析能力测试
数据分析能力是检验一个系统性能的关键,本文通过测试5个系统的数据分析速度以及系统导出直观统计图表的能力和信度,来间接分析系统的数据分析能力,如表9所示本文的统计速度快、直观图表的种类多,相对其他而言更加适用于各类统计分析。
Table 9. Data analysis capability test
表9. 数据分析能力测试
6. 结语
相对于传统线下的问卷调查,本文充分利用网络的便利性,设计并实现了线上网络调查系统,该系统操作方便、灵活、交互性强、功能齐全,更与疫情期间“尽量减少接触与集聚”的政策相吻合。在系统设计上改变了以往的固定模式,该系统为问卷参与人员提供了依据自身具体情况自适应浏览选择调查问卷的功能,增添了用户的自主选择性。针对网络调查的人为干扰问题设计了基于重测信度法的分析算法,旨在排除低信度调查结果,而增强调查结果的可信度;针对数据泄露问题提出了双层数据加密技术来对用户的统计信息进行保护,旨在增强调查系统的安全性。同时本系统采用了MD5非对称加密技术,对密码错误次数过多账户锁定,以保证用户登陆的安全性。
基金项目
辽宁省社会科学规划基金项目(L19BTQ001)。
NOTES
*通讯作者。