王 勇,談少盈,賈乾,賈巖松
(空軍預(yù)警學(xué)院,湖北武漢 430019)
標(biāo)圖課程具有很強(qiáng)的實(shí)踐性,實(shí)踐課占比90%,常用分步細(xì)訓(xùn)法[1]、分層訓(xùn)練法[2]展開教學(xué)訓(xùn)練,不同訓(xùn)練階段應(yīng)該使用對(duì)應(yīng)的想定進(jìn)行教學(xué),所以想定內(nèi)容應(yīng)該契合教學(xué)進(jìn)度、難易程度需要適用學(xué)情特點(diǎn)。在標(biāo)圖課程教學(xué)中,教員教學(xué)、教練員課后組訓(xùn)、學(xué)員自訓(xùn)過程中都可以自由發(fā)揮任意制作想定,隨意制作的想定不夠嚴(yán)謹(jǐn)。制作想定是一項(xiàng)費(fèi)時(shí)耗力的工作,各自制作的想定容易雷同,教員、教練員人員流動(dòng),繼任者需要重新制作,諸如此類情況都會(huì)造成重復(fù)勞動(dòng),浪費(fèi)時(shí)間和人力。另外,想定系統(tǒng)信息化建設(shè)缺少關(guān)注,師資隊(duì)伍弱,資金投入少,受此影響,想定庫(kù)建設(shè)滯后[3]。
結(jié)合以上需求,本文設(shè)計(jì)了一套以實(shí)現(xiàn)想定資源信息化管理為目標(biāo)的想定庫(kù)系統(tǒng)[4],來自不同渠道不同人員制作的想定都可以上傳至該系統(tǒng),由教員進(jìn)行審核,并根據(jù)難易程度、教學(xué)安排對(duì)想定資源進(jìn)行分類,使得在不同學(xué)習(xí)階段可以清晰明了的使用合適的想定,學(xué)員、教員或其他人員都可以共用系統(tǒng)中的想定資源,并根據(jù)教學(xué)任務(wù)和形勢(shì)發(fā)展不斷豐富系統(tǒng)中的想定資源。
根據(jù)想定庫(kù)管理的需求,將整個(gè)系統(tǒng)主要設(shè)計(jì)成三個(gè)模塊,如圖1所示,分別為配置模塊、想定模塊、用戶模塊,每個(gè)模塊包含相關(guān)具體功能,這些模塊緊密相連,共同組成了整個(gè)想定庫(kù)系統(tǒng)。
圖1 系統(tǒng)功能模塊圖
如圖2所示,是標(biāo)圖想定庫(kù)系統(tǒng)的整體系統(tǒng)架構(gòu)圖,包括用戶與系統(tǒng)交互的界面層、通過網(wǎng)絡(luò)接口提供服務(wù)的服務(wù)層、實(shí)現(xiàn)具體業(yè)務(wù)邏輯處理過程的業(yè)務(wù)邏輯層、銜接業(yè)務(wù)處理與數(shù)據(jù)存取的數(shù)據(jù)訪問層、持久化數(shù)據(jù)的數(shù)據(jù)存儲(chǔ)層。
圖2 標(biāo)圖想定庫(kù)系統(tǒng)架構(gòu)圖
這種分層系統(tǒng)架構(gòu)設(shè)計(jì)遵循高內(nèi)聚、低耦合的設(shè)計(jì)原則,每一層各司其職、互不影響,專注該層需要完成的處理過程,層級(jí)之間使用網(wǎng)絡(luò)接口和方法調(diào)用協(xié)同完成某一系統(tǒng)功能,調(diào)用方只需要按約定的格式傳遞參數(shù)和接收返回結(jié)果,不必關(guān)心被調(diào)用方內(nèi)部的實(shí)現(xiàn)過程,這樣被調(diào)用方只要不改變?nèi)雲(yún)⒑统鰠⒌臄?shù)據(jù)結(jié)構(gòu),其自身內(nèi)部的變動(dòng)不會(huì)對(duì)調(diào)用方的處理過程造成影響,達(dá)到層級(jí)之間低耦合的目的。各層內(nèi)部模塊之間聯(lián)系緊密,相關(guān)性很強(qiáng),聚集在同一層,不需要跨層訪問,方便相互調(diào)用的同時(shí)可以提高效率,實(shí)現(xiàn)各層內(nèi)部高內(nèi)聚的目的。系統(tǒng)具體功能設(shè)計(jì)如下:
(1)上傳想定。作為該系統(tǒng)首要的核心功能,想定數(shù)據(jù)的信息除了有標(biāo)題、分類、航線數(shù)量、重現(xiàn)難度、干擾難度、首點(diǎn)坐標(biāo)、描述等,還有對(duì)應(yīng)的圖片和文件信息。想定文件的格式不僅限于txt 文件,可以是任意格式。想定的標(biāo)題通常與文件名保持一致,所以成功上傳想定文件之后,取文件名填充想定標(biāo)題內(nèi)容,并且允許使用者進(jìn)行修改。
(2)搜索想定。通過輸入想定的標(biāo)題、選擇人員類別,上傳時(shí)間、航跡數(shù)量、首點(diǎn)坐標(biāo)、重現(xiàn)難度、干擾難度等搜索滿足條件的想定列表,其中標(biāo)題內(nèi)容可以模糊搜索,上傳時(shí)間的可選粒度為年份。
(3)想定列表。分頁顯示想定記錄并按上傳時(shí)間倒排序,每頁顯示的想定記錄數(shù)有10 條/頁、20條/頁、30條/頁、50條/頁可選。
(4)修改想定。教員上傳的想定無需審核,上傳成功之后即可在首頁展示,但是對(duì)于學(xué)員上傳的想定,初始狀態(tài)都是待審核,需要教員審核,想定狀態(tài)變成審核通過之后才會(huì)展示在首頁,對(duì)于信息有誤的想定,教員可以選擇駁回。所以修改想定的主要目標(biāo)就是修改想定的審核狀態(tài),同時(shí)也可以選擇修改除圖片和文件以外的想定的其它屬性。
(5)想定分類導(dǎo)航管理??梢愿鶕?jù)培訓(xùn)層次、難易程度、教學(xué)進(jìn)展、特殊場(chǎng)景以及其它標(biāo)準(zhǔn),添加想定分類信息,從而對(duì)想定資源進(jìn)行精細(xì)化分類,這樣便于管理和使用想定數(shù)據(jù),分類導(dǎo)航的層級(jí)不固定,可以只有一層,也可能是多層,還要便于使用和擴(kuò)展。
(6)想定下載。在展示想定頁面的操作列,點(diǎn)擊下載想定的按鈕,將保存想定時(shí)上傳的想定文件下載到本地。
(7)預(yù)覽想定。在展示想定頁面的操作列,點(diǎn)擊預(yù)覽想定的按鈕,彈出頁面顯示保存想定時(shí)上傳的想定圖片。
(8)權(quán)限設(shè)置。審核、修改、刪除想定和分類導(dǎo)航管理這些功能只有教員用戶才能操作,并且學(xué)員只能看到自己上傳的想定,教員可以看到所有人上傳的想定數(shù)據(jù)。
(9)用戶注冊(cè)。輸入用戶名、密碼、姓名,選擇用戶類別,可選項(xiàng)包括教員、學(xué)員即可完成注冊(cè)。
(10)用戶登錄。使用注冊(cè)時(shí)填寫的賬號(hào)信息完成登錄,只有用戶名、密碼、人員類型三者同時(shí)正確才能登錄。
(11)用戶退出。點(diǎn)擊安全退出,清除瀏覽器中保存的用戶登錄狀態(tài)。
遵循數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范,借助E-R模型、UML統(tǒng)一建模語言分階段將系統(tǒng)需要存儲(chǔ)和管理的數(shù)據(jù)逐步轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫(kù)模型,最終得到結(jié)構(gòu)清晰、字段齊全、符合需求的數(shù)據(jù)庫(kù)表結(jié)構(gòu)以及表字段之間的關(guān)系,如圖3所示,主要的表就是用來保存想定資源的想定表t_scenario,其它的表都是為了滿足設(shè)計(jì)范式,由想定表衍生而來。其中分類導(dǎo)航表t_nav中設(shè)計(jì)了id和fid,分別表示當(dāng)前分類的序列號(hào)和父級(jí)分類的序列號(hào),這樣兩個(gè)字段就可以表示無限層級(jí)關(guān)系,數(shù)據(jù)顯示也很容易轉(zhuǎn)換成樹結(jié)構(gòu)。
圖3 標(biāo)圖想定庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)模型
本系統(tǒng)是集計(jì)算機(jī)軟件、通訊、網(wǎng)絡(luò)、Web 和數(shù)據(jù)庫(kù)技術(shù)為一體的應(yīng)用系統(tǒng)[5],系統(tǒng)實(shí)現(xiàn)了前后端分離的思想,具體包括顯示網(wǎng)頁和數(shù)據(jù)的前端、負(fù)責(zé)業(yè)務(wù)處理的后端兩個(gè)子項(xiàng)目,前后端分離的思想不僅體現(xiàn)在編碼開發(fā)上,在系統(tǒng)部署時(shí)兩個(gè)子項(xiàng)目也是分開部署,這樣在系統(tǒng)開發(fā)階段,各開發(fā)人員可以并行同時(shí)開發(fā),無需等待一方做完另一方才能開始,可以極大提升開發(fā)效率,而且編程人員在實(shí)現(xiàn)自己負(fù)責(zé)的功能模塊時(shí)不會(huì)被影響也不會(huì)影響其它功能,符合單一職責(zé)原則。
如圖4所示,為本系統(tǒng)技術(shù)架構(gòu)圖。前端主體采用漸進(jìn)式框架Vue.js,Vue.js 是單頁面應(yīng)用,可使頁面局部刷新,即不用每次跳轉(zhuǎn)頁面都要請(qǐng)求所有數(shù)據(jù)和dom,只需要請(qǐng)求發(fā)生變化的數(shù)據(jù)和網(wǎng)頁元素,這樣大大加快了訪問速度和提升用戶體驗(yàn),而且很多簡(jiǎn)約、美觀的UI 庫(kù)都是基于vue.js 進(jìn)行的開發(fā),可以無縫集成到vue.js 實(shí)現(xiàn)頁面渲染,比如本系統(tǒng)中使用的ElementUI 就提供了非常豐富的網(wǎng)頁控件,包括頁面布局、導(dǎo)航風(fēng)格、提示彈框、日期控件、分頁、進(jìn)度條等等,在Vue.js項(xiàng)目中通過import導(dǎo)入即可使用,各控件提供了默認(rèn)的樣式設(shè)置,并且提供了樣式屬性,只需修改相應(yīng)屬性值即可調(diào)整控件大小、顏色、字體、位置等等。后端Spring Boot 繼承了傳統(tǒng)Spring 的優(yōu)點(diǎn),比如依賴倒置、面向切面編程,簡(jiǎn)化了傳統(tǒng)Spring 需要添加諸多配置文件的繁瑣工作,整合了很多常用第三方框架,比如服務(wù)器Tomcat、記錄日志的Log4j、訪問數(shù)據(jù)庫(kù)的MyBatis,項(xiàng)目運(yùn)行、系統(tǒng)監(jiān)控、數(shù)據(jù)操作等功能在Spring Boot 中已經(jīng)具備,開發(fā)人員的工作只是實(shí)現(xiàn)業(yè)務(wù)處理過程的編碼開發(fā),減輕工作量,提升效率。
圖4 標(biāo)圖想定庫(kù)系統(tǒng)技術(shù)架構(gòu)圖
2.2.1 樹形數(shù)據(jù)解析。
每一條分類導(dǎo)航數(shù)據(jù)在關(guān)系型數(shù)據(jù)庫(kù)中對(duì)應(yīng)一行記錄,如表1所示,為分類導(dǎo)航表中的數(shù)據(jù)。
表1 分類導(dǎo)航表中的數(shù)據(jù)
由于操作頁面需要展示分類導(dǎo)航的父子關(guān)系,這就需要將扁平的一行行數(shù)據(jù)轉(zhuǎn)換成具有層級(jí)關(guān)系的樹型數(shù)據(jù)結(jié)構(gòu),即后端返回的數(shù)據(jù)是由每一條分類導(dǎo)航記錄轉(zhuǎn)換成的對(duì)象的集合,前端接收集合之后進(jìn)行循環(huán)遍歷,遍歷過程的代碼如圖5所示。
圖5 樹型數(shù)據(jù)解析代碼
遍歷過程首先將集合數(shù)據(jù)保存到下標(biāo)索引值取對(duì)應(yīng)數(shù)據(jù)唯一標(biāo)識(shí)id 值的數(shù)組temp 中,即temp[2]取的數(shù)據(jù)就是id=2 的分類記錄,然后遍歷集合數(shù)據(jù),如果數(shù)據(jù)父級(jí)序列號(hào)為空,即表示是第一級(jí)菜單,則直接放入返回?cái)?shù)組中,如果父級(jí)序號(hào)不為空,判斷父級(jí)的子級(jí)集合是否存在,不存在則初始化為空數(shù)組,判斷父級(jí)的菜單等級(jí)是否存在,不存在則初始化為1,然后將當(dāng)前處于遍歷中的數(shù)據(jù)的菜單等級(jí)置為其父級(jí)菜單等級(jí)+1并放入其父級(jí)菜單的子集合數(shù)組中,遍歷完成可以得到每一級(jí)菜單及其子級(jí)菜單集合對(duì)象。
2.2.2 組件間通信。
Vue.js通過組件,把單頁應(yīng)用中的各種模塊拆分到單獨(dú)的組件(component)中,而組件實(shí)例的作用域是相互獨(dú)立的,這就意味著不同組件之間的數(shù)據(jù)無法相互引用,但是組件之間通常需要互相傳值,比如首頁中的條件檢索組件和結(jié)果列表組件,檢索的結(jié)果就需要傳遞到顯示組件中進(jìn)行渲染,這時(shí)就需要使用組件間通信技術(shù)。本系統(tǒng)中主要使用$emit實(shí)現(xiàn)子組件向父組件傳值,如圖6所示,用于顯示想定列表的LoadDataShow.vue為父組件,包含了用于條件檢索的SearchCondition.vue子組件。
圖6 子組件向父組件傳值
首先父組件在應(yīng)用子組件時(shí)添加屬性@load-Data=”searchResult”,其中l(wèi)oadData 為子組件傳值時(shí)調(diào)用的方法名,searchResult 為父組件接受子組件傳遞的參數(shù)時(shí)會(huì)調(diào)用的方法,子組件中通過網(wǎng)絡(luò)請(qǐng)求到后端數(shù)據(jù)之后使用this.$emit將結(jié)果傳給父組件方法searchResult,如果要傳多個(gè)值即在父組件方法聲明多個(gè)參數(shù)進(jìn)行接收。
通過與任課教員溝通,使用想定庫(kù)系統(tǒng)之后,不同再重復(fù)制作上課用的訓(xùn)練想定,共用他人的想定或者只是簡(jiǎn)單修改即可使用,省去了在工作電腦磁盤上查找拷貝想定文件的時(shí)間,也不用擔(dān)心磁盤文件損壞,可以專心準(zhǔn)備課程知識(shí)點(diǎn),提升了課堂教學(xué)質(zhì)量,與使用該系統(tǒng)之前相比,工作量下降50%左右。
想定庫(kù)系統(tǒng)首先在2021年秋季學(xué)期某專業(yè)期班進(jìn)行使用,如圖7 所示,為課后不同自訓(xùn)時(shí)間的人數(shù)占期班總?cè)藬?shù)的比例,相比沒有使用想定庫(kù)系統(tǒng)的期班,自訓(xùn)時(shí)間在45 分鐘、60 分鐘、90 分鐘的人數(shù)比例都有所增加,說明學(xué)員的訓(xùn)練熱情高漲。
圖7 課后自訓(xùn)時(shí)間人數(shù)比例
如表2所示,課中教學(xué)效果的提升與課后自訓(xùn)時(shí)間的增加帶來的結(jié)果也非常顯著,在教學(xué)中運(yùn)用了想定庫(kù)系統(tǒng)的期班結(jié)業(yè)考核的優(yōu)秀率、合格率、平均成績(jī)都得到了提高。
表2 使用想定庫(kù)同一課程成績(jī)對(duì)比
通過以上的數(shù)據(jù)可以看到,想定庫(kù)系統(tǒng)可以節(jié)省教員制作、管理訓(xùn)練想定的時(shí)間,把更多的時(shí)間和精力用在教學(xué)業(yè)務(wù)上,改善教學(xué)質(zhì)量,同時(shí)可以激發(fā)學(xué)員的學(xué)習(xí)興趣,課后主動(dòng)加時(shí)訓(xùn)練,兩者相互促進(jìn),共同受益,實(shí)現(xiàn)共贏。
標(biāo)圖想定庫(kù)系統(tǒng)是IT技術(shù)在教育領(lǐng)域一次很好的應(yīng)用,該系統(tǒng)對(duì)想定資源進(jìn)行收集、分類,極大節(jié)約制作想定的人力資源,不斷完善想定素材,讓學(xué)員分階段有針對(duì)性的進(jìn)行訓(xùn)練,提高訓(xùn)練效果。但是缺少對(duì)想定質(zhì)量的評(píng)價(jià),系統(tǒng)運(yùn)行出錯(cuò)時(shí)定位困難等不足。針對(duì)當(dāng)前系統(tǒng)存在的問題,后期將新增日志管理、數(shù)據(jù)分析、使用反饋等功能。