陳美娟
中海油田服務(wù)股份有限公司 北京 100000
測評系統(tǒng)較傳統(tǒng)的投票類系統(tǒng)具有更為復(fù)雜的業(yè)務(wù)邏輯關(guān)系,體現(xiàn)為測評問卷與測評人、試題與試題、試題與選項(xiàng)之間有較強(qiáng)的邏輯關(guān)系,這些邏輯關(guān)系最終轉(zhuǎn)化為系統(tǒng)中個(gè)性化的功能需求,為測評系統(tǒng)的通用性及擴(kuò)展性帶來了一定的影響。如何提高測評模型的通用性與擴(kuò)展性,降低開發(fā)復(fù)雜度提高開發(fā)效率,是本文研究的主要內(nèi)容。
在通常情況下,測評系統(tǒng)主要是由測評問卷、測評項(xiàng)、測評項(xiàng)選項(xiàng)值、測評人、被測評目標(biāo)與答題記錄六部分組成。在實(shí)際應(yīng)用中,因業(yè)務(wù)場景不同,測評問卷、測評項(xiàng)與選項(xiàng)值之間關(guān)系復(fù)雜多變,為了能夠適應(yīng)各種業(yè)務(wù)場景,要求業(yè)務(wù)模型的設(shè)計(jì)能夠靈活變化。然而,常見測評系統(tǒng)中包含了大量通用功能需求,如在線答題、提交問卷、統(tǒng)計(jì)答題情況等,這些功能需求相對固定具有一定的通用性。為統(tǒng)籌處理各種變化及不變因素,設(shè)計(jì)出一個(gè)通用的測評模型,提出了以下兩個(gè)核心設(shè)計(jì)原則。
該設(shè)計(jì)原則主要是將個(gè)性化功能需求分解為功能處理與業(yè)務(wù)規(guī)則處理,并將業(yè)務(wù)規(guī)則處理標(biāo)準(zhǔn)化,以提高個(gè)性化功能解決方案的通用性。例如,在設(shè)計(jì)問卷組卷的功能時(shí),可分為組卷功能、組卷的邏輯規(guī)則與測評項(xiàng)邏輯聯(lián)動的處理,其中組卷功能是通用的主要負(fù)責(zé)問卷組成及問卷的顯示處理;而組卷邏輯規(guī)則是變化的,它負(fù)責(zé)問卷組成的邏輯與,通過將通用與個(gè)性化功能進(jìn)行分離,并將個(gè)性化規(guī)則化標(biāo)準(zhǔn)化,可極大的提高模型的通用性、降低開發(fā)復(fù)雜度。
該模型框架在設(shè)計(jì)上分為展示層、業(yè)務(wù)層、持久層和域模型層。通過分層,可以降低各部分之間的耦合度,有利于開發(fā)分工,增加該模型的可維護(hù)性及可擴(kuò)展性。
以下為各層的職責(zé)及簡要說明:
展示層:基于Web的應(yīng)用面向測評人員的部分。通過試題渲染解析器依據(jù)前端試題對象生成試題,并負(fù)責(zé)緩存用戶答題記錄、前端數(shù)據(jù)校驗(yàn)及管理用戶的請求,作出相應(yīng)的響應(yīng);并預(yù)留試題事件響應(yīng)接口處理方法,便于處理個(gè)性化的業(yè)務(wù)邏輯。答題完成校驗(yàn)成功后,將請求發(fā)送至后端業(yè)務(wù)層進(jìn)行處理。
業(yè)務(wù)層:一個(gè)典型Web應(yīng)用的中間部分。主要負(fù)責(zé)處理各類業(yè)務(wù)邏輯,如組卷邏輯、組題規(guī)則,將規(guī)則、問卷模板與相應(yīng)處理器結(jié)合完成問卷整體界面的生成。組題規(guī)則及問卷模板應(yīng)用,將問卷樣式與問卷試題兩部分松耦合,可根據(jù)需要定義個(gè)性化的界面模板,以滿足各種復(fù)雜的需求。
持久層:Web應(yīng)用服務(wù)器端的最終部位,它是與數(shù)據(jù)庫直接發(fā)生關(guān)系的層。主要負(fù)責(zé)建立持久化類及其屬性與數(shù)據(jù)庫中表及其字段的對應(yīng)關(guān)系;提供簡化SQL語句的機(jī)制、多種類數(shù)據(jù)庫支持;實(shí)現(xiàn)數(shù)據(jù)的CRUD操作;數(shù)據(jù)庫連接的建立與管理。
域模型層:域模型層的Java類由實(shí)際需求中的業(yè)務(wù)對象組成,主要包含問卷、測評人、測評項(xiàng)、測評結(jié)果、測評邏輯等,并提供問卷導(dǎo)入模板、測評邏輯導(dǎo)入模板,為問卷及測評邏輯的創(chuàng)建提供指引,并實(shí)現(xiàn)快速創(chuàng)建。
通過分析可以發(fā)現(xiàn),展示層、業(yè)務(wù)層、域模型層均采用了“邏輯規(guī)則+模板+解析器”的設(shè)計(jì),將固定與變化部分分離開來,既可實(shí)現(xiàn)應(yīng)用的快速交付,同時(shí)還保證了該模型的通用性與可擴(kuò)展性。
試題組卷功能由后端程序處理,當(dāng)測評人員登錄后,依據(jù)該人員對應(yīng)的組卷邏輯與組題規(guī)則從數(shù)據(jù)庫中提取試題信息及試題類型,以JSON格式傳遞至頁面前端,由前端負(fù)責(zé)答題界面的渲染。
動態(tài)答題界面的主要設(shè)計(jì)思路是將試題數(shù)據(jù)與展示樣式分離。采用標(biāo)準(zhǔn)的Extjs4前端框架,通過試題渲染解析器,依據(jù)渲染處理規(guī)則,將后端獲取到的試題數(shù)據(jù)動態(tài)生成相應(yīng)的答題界面,并在頁面的統(tǒng)一處理中預(yù)留試題級聯(lián)處理的事件接口,方便開發(fā)人員處理個(gè)性化的聯(lián)動邏輯。
一般在企業(yè)內(nèi)部開展問卷測評時(shí),被測評人員較為固定,防止重復(fù)答題可采用賬號密碼身份認(rèn)證或郵件發(fā)送帶有加密身份信息的一次信訪問地址的方式。在用戶提交問卷記錄時(shí)判斷該用戶是否存在答題記錄,如果存在則拒絕重復(fù)答題。在身份認(rèn)證方面可采用基于AD域或傳統(tǒng)Form表單的方式,以適應(yīng)不同的業(yè)務(wù)場景。
答題記錄統(tǒng)計(jì)、統(tǒng)計(jì)已答題人數(shù)、未答題人員清單、郵件提醒等功能作為測評系統(tǒng)的通用功能,處理邏輯相對固化,由系統(tǒng)內(nèi)置作為固定功能提供。
該模型通過分類或者個(gè)性化匹配規(guī)則將測評人員與問卷建立關(guān)系,問卷支持多級嵌套與主標(biāo)題與子標(biāo)題,同時(shí)可支持多選、單選、文本框填寫等題型。答題記錄存放了所有答題明細(xì)及整體答題記錄信息,通過解析記錄信息最終獲取到所有答題明細(xì)。
因問卷在設(shè)計(jì)完成后一般不會變化,當(dāng)測評用戶量很大時(shí),可采用Freemarker模板技術(shù)預(yù)先生成不同類型試卷的靜態(tài)答題界面。正式答題時(shí),僅將用戶的身份信息附加到答題界面即可。該方式可極大減少用戶答題時(shí)試卷生成數(shù)據(jù)庫讀寫次數(shù)及試卷生成的處理時(shí)間,提高整體處理效率及用戶體驗(yàn)。
該測評系統(tǒng)模型架構(gòu)采用了成熟、穩(wěn)定的技術(shù)。前端頁面框架采用成熟的Extjs4.2,后臺框架采用成熟的JavaSSH2。通過對前后臺框架進(jìn)行整體設(shè)計(jì),并結(jié)合通用測評系統(tǒng)的特點(diǎn),設(shè)計(jì)與實(shí)現(xiàn)了一套通用的測評管理系統(tǒng)。開發(fā)人員可在此基礎(chǔ)上個(gè)性化定制,實(shí)現(xiàn)快速交付。
此測評框架模型成功應(yīng)用于公司內(nèi)部人員培訓(xùn)課程調(diào)查問卷項(xiàng)目的建設(shè),節(jié)約60%的項(xiàng)目開發(fā)周期,具有開發(fā)周期短、項(xiàng)目建設(shè)平穩(wěn)、應(yīng)用交付快等特點(diǎn)。
通過分析測評系統(tǒng)通用功能及模型,提出了通用與個(gè)性化分離原則與分層設(shè)計(jì)的思想,并采用了“邏輯規(guī)則+模板+解析器”的設(shè)計(jì)方法,設(shè)計(jì)了一個(gè)具備動態(tài)組題、試卷生成等功能的通用測評系統(tǒng)模型。并經(jīng)過實(shí)際應(yīng)用證明該測評模型架構(gòu)具備一定的通用性與可擴(kuò)展性。