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