王 勇,谈少盈,贾乾,贾岩松
(空军预警学院,湖北武汉 430019)
标图课程具有很强的实践性,实践课占比90%,常用分步细训法[1]、分层训练法[2]展开教学训练,不同训练阶段应该使用对应的想定进行教学,所以想定内容应该契合教学进度、难易程度需要适用学情特点。在标图课程教学中,教员教学、教练员课后组训、学员自训过程中都可以自由发挥任意制作想定,随意制作的想定不够严谨。制作想定是一项费时耗力的工作,各自制作的想定容易雷同,教员、教练员人员流动,继任者需要重新制作,诸如此类情况都会造成重复劳动,浪费时间和人力。另外,想定系统信息化建设缺少关注,师资队伍弱,资金投入少,受此影响,想定库建设滞后[3]。
结合以上需求,本文设计了一套以实现想定资源信息化管理为目标的想定库系统[4],来自不同渠道不同人员制作的想定都可以上传至该系统,由教员进行审核,并根据难易程度、教学安排对想定资源进行分类,使得在不同学习阶段可以清晰明了的使用合适的想定,学员、教员或其他人员都可以共用系统中的想定资源,并根据教学任务和形势发展不断丰富系统中的想定资源。
根据想定库管理的需求,将整个系统主要设计成三个模块,如图1所示,分别为配置模块、想定模块、用户模块,每个模块包含相关具体功能,这些模块紧密相连,共同组成了整个想定库系统。
图1 系统功能模块图
如图2所示,是标图想定库系统的整体系统架构图,包括用户与系统交互的界面层、通过网络接口提供服务的服务层、实现具体业务逻辑处理过程的业务逻辑层、衔接业务处理与数据存取的数据访问层、持久化数据的数据存储层。
图2 标图想定库系统架构图
这种分层系统架构设计遵循高内聚、低耦合的设计原则,每一层各司其职、互不影响,专注该层需要完成的处理过程,层级之间使用网络接口和方法调用协同完成某一系统功能,调用方只需要按约定的格式传递参数和接收返回结果,不必关心被调用方内部的实现过程,这样被调用方只要不改变入参和出参的数据结构,其自身内部的变动不会对调用方的处理过程造成影响,达到层级之间低耦合的目的。各层内部模块之间联系紧密,相关性很强,聚集在同一层,不需要跨层访问,方便相互调用的同时可以提高效率,实现各层内部高内聚的目的。系统具体功能设计如下:
(1)上传想定。作为该系统首要的核心功能,想定数据的信息除了有标题、分类、航线数量、重现难度、干扰难度、首点坐标、描述等,还有对应的图片和文件信息。想定文件的格式不仅限于txt 文件,可以是任意格式。想定的标题通常与文件名保持一致,所以成功上传想定文件之后,取文件名填充想定标题内容,并且允许使用者进行修改。
(2)搜索想定。通过输入想定的标题、选择人员类别,上传时间、航迹数量、首点坐标、重现难度、干扰难度等搜索满足条件的想定列表,其中标题内容可以模糊搜索,上传时间的可选粒度为年份。
(3)想定列表。分页显示想定记录并按上传时间倒排序,每页显示的想定记录数有10 条/页、20条/页、30条/页、50条/页可选。
(4)修改想定。教员上传的想定无需审核,上传成功之后即可在首页展示,但是对于学员上传的想定,初始状态都是待审核,需要教员审核,想定状态变成审核通过之后才会展示在首页,对于信息有误的想定,教员可以选择驳回。所以修改想定的主要目标就是修改想定的审核状态,同时也可以选择修改除图片和文件以外的想定的其它属性。
(5)想定分类导航管理。可以根据培训层次、难易程度、教学进展、特殊场景以及其它标准,添加想定分类信息,从而对想定资源进行精细化分类,这样便于管理和使用想定数据,分类导航的层级不固定,可以只有一层,也可能是多层,还要便于使用和扩展。
(6)想定下载。在展示想定页面的操作列,点击下载想定的按钮,将保存想定时上传的想定文件下载到本地。
(7)预览想定。在展示想定页面的操作列,点击预览想定的按钮,弹出页面显示保存想定时上传的想定图片。
(8)权限设置。审核、修改、删除想定和分类导航管理这些功能只有教员用户才能操作,并且学员只能看到自己上传的想定,教员可以看到所有人上传的想定数据。
(9)用户注册。输入用户名、密码、姓名,选择用户类别,可选项包括教员、学员即可完成注册。
(10)用户登录。使用注册时填写的账号信息完成登录,只有用户名、密码、人员类型三者同时正确才能登录。
(11)用户退出。点击安全退出,清除浏览器中保存的用户登录状态。
遵循数据库设计规范,借助E-R模型、UML统一建模语言分阶段将系统需要存储和管理的数据逐步转换为关系数据库模型,最终得到结构清晰、字段齐全、符合需求的数据库表结构以及表字段之间的关系,如图3所示,主要的表就是用来保存想定资源的想定表t_scenario,其它的表都是为了满足设计范式,由想定表衍生而来。其中分类导航表t_nav中设计了id和fid,分别表示当前分类的序列号和父级分类的序列号,这样两个字段就可以表示无限层级关系,数据显示也很容易转换成树结构。
图3 标图想定库系统数据库模型
本系统是集计算机软件、通讯、网络、Web 和数据库技术为一体的应用系统[5],系统实现了前后端分离的思想,具体包括显示网页和数据的前端、负责业务处理的后端两个子项目,前后端分离的思想不仅体现在编码开发上,在系统部署时两个子项目也是分开部署,这样在系统开发阶段,各开发人员可以并行同时开发,无需等待一方做完另一方才能开始,可以极大提升开发效率,而且编程人员在实现自己负责的功能模块时不会被影响也不会影响其它功能,符合单一职责原则。
如图4所示,为本系统技术架构图。前端主体采用渐进式框架Vue.js,Vue.js 是单页面应用,可使页面局部刷新,即不用每次跳转页面都要请求所有数据和dom,只需要请求发生变化的数据和网页元素,这样大大加快了访问速度和提升用户体验,而且很多简约、美观的UI 库都是基于vue.js 进行的开发,可以无缝集成到vue.js 实现页面渲染,比如本系统中使用的ElementUI 就提供了非常丰富的网页控件,包括页面布局、导航风格、提示弹框、日期控件、分页、进度条等等,在Vue.js项目中通过import导入即可使用,各控件提供了默认的样式设置,并且提供了样式属性,只需修改相应属性值即可调整控件大小、颜色、字体、位置等等。后端Spring Boot 继承了传统Spring 的优点,比如依赖倒置、面向切面编程,简化了传统Spring 需要添加诸多配置文件的繁琐工作,整合了很多常用第三方框架,比如服务器Tomcat、记录日志的Log4j、访问数据库的MyBatis,项目运行、系统监控、数据操作等功能在Spring Boot 中已经具备,开发人员的工作只是实现业务处理过程的编码开发,减轻工作量,提升效率。
图4 标图想定库系统技术架构图
2.2.1 树形数据解析。
每一条分类导航数据在关系型数据库中对应一行记录,如表1所示,为分类导航表中的数据。
表1 分类导航表中的数据
由于操作页面需要展示分类导航的父子关系,这就需要将扁平的一行行数据转换成具有层级关系的树型数据结构,即后端返回的数据是由每一条分类导航记录转换成的对象的集合,前端接收集合之后进行循环遍历,遍历过程的代码如图5所示。
图5 树型数据解析代码
遍历过程首先将集合数据保存到下标索引值取对应数据唯一标识id 值的数组temp 中,即temp[2]取的数据就是id=2 的分类记录,然后遍历集合数据,如果数据父级序列号为空,即表示是第一级菜单,则直接放入返回数组中,如果父级序号不为空,判断父级的子级集合是否存在,不存在则初始化为空数组,判断父级的菜单等级是否存在,不存在则初始化为1,然后将当前处于遍历中的数据的菜单等级置为其父级菜单等级+1并放入其父级菜单的子集合数组中,遍历完成可以得到每一级菜单及其子级菜单集合对象。
2.2.2 组件间通信。
Vue.js通过组件,把单页应用中的各种模块拆分到单独的组件(component)中,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,但是组件之间通常需要互相传值,比如首页中的条件检索组件和结果列表组件,检索的结果就需要传递到显示组件中进行渲染,这时就需要使用组件间通信技术。本系统中主要使用$emit实现子组件向父组件传值,如图6所示,用于显示想定列表的LoadDataShow.vue为父组件,包含了用于条件检索的SearchCondition.vue子组件。
图6 子组件向父组件传值
首先父组件在应用子组件时添加属性@load-Data=”searchResult”,其中loadData 为子组件传值时调用的方法名,searchResult 为父组件接受子组件传递的参数时会调用的方法,子组件中通过网络请求到后端数据之后使用this.$emit将结果传给父组件方法searchResult,如果要传多个值即在父组件方法声明多个参数进行接收。
通过与任课教员沟通,使用想定库系统之后,不同再重复制作上课用的训练想定,共用他人的想定或者只是简单修改即可使用,省去了在工作电脑磁盘上查找拷贝想定文件的时间,也不用担心磁盘文件损坏,可以专心准备课程知识点,提升了课堂教学质量,与使用该系统之前相比,工作量下降50%左右。
想定库系统首先在2021年秋季学期某专业期班进行使用,如图7 所示,为课后不同自训时间的人数占期班总人数的比例,相比没有使用想定库系统的期班,自训时间在45 分钟、60 分钟、90 分钟的人数比例都有所增加,说明学员的训练热情高涨。
图7 课后自训时间人数比例
如表2所示,课中教学效果的提升与课后自训时间的增加带来的结果也非常显著,在教学中运用了想定库系统的期班结业考核的优秀率、合格率、平均成绩都得到了提高。
表2 使用想定库同一课程成绩对比
通过以上的数据可以看到,想定库系统可以节省教员制作、管理训练想定的时间,把更多的时间和精力用在教学业务上,改善教学质量,同时可以激发学员的学习兴趣,课后主动加时训练,两者相互促进,共同受益,实现共赢。
标图想定库系统是IT技术在教育领域一次很好的应用,该系统对想定资源进行收集、分类,极大节约制作想定的人力资源,不断完善想定素材,让学员分阶段有针对性的进行训练,提高训练效果。但是缺少对想定质量的评价,系统运行出错时定位困难等不足。针对当前系统存在的问题,后期将新增日志管理、数据分析、使用反馈等功能。