譚武
(廣東省商業(yè)職業(yè)技術(shù)學(xué)校,廣東 廣州 510360)
基于Web的考務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
譚武
(廣東省商業(yè)職業(yè)技術(shù)學(xué)校,廣東 廣州 510360)
隨著教學(xué)管理模式的改革與發(fā)展,以及學(xué)校辦學(xué)規(guī)模的逐漸擴(kuò)大,考務(wù)管理工作的復(fù)雜度和難度都在大幅度地提高,如何高效、無誤地完成考務(wù)工作,給考務(wù)工作者留下了一個很大的難題。本文提出了人工與自動相結(jié)合的考場編排算法,并采用SSH框架與Ajax技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了基于Web的網(wǎng)絡(luò)化、智能化的考務(wù)管理系統(tǒng)。
考務(wù)管理;考場編排;算法;SSH框架;Ajax技術(shù)
隨著教學(xué)管理模式的改革與發(fā)展,以及學(xué)校辦學(xué)規(guī)模的逐漸擴(kuò)大,考務(wù)管理工作的復(fù)雜度和難度都在大幅度的提高,如何高效、無誤地完成考務(wù)工作,給考務(wù)工作者留下了一個很大的難題。
目前大部分學(xué)校的考務(wù)管理工作還是停留在人工操作上,考場編排容易出現(xiàn)漏排、多排和沖突等情況。盡管有一部分學(xué)校已經(jīng)啟用了信息化的考務(wù)管理系統(tǒng),但這些系統(tǒng)往往存在著諸多不足,主要表現(xiàn)在:系統(tǒng)缺少自動安排考試的功能,考試安排的主要工作還是要靠人工完成;系統(tǒng)缺少檢驗(yàn)安排結(jié)果的功能;系統(tǒng)的操作極其繁瑣,相關(guān)信息的提示不足,安排考試時仍需要翻查各種文件資料和做各種標(biāo)記。
正是由于人工安排的困難和現(xiàn)有系統(tǒng)存在的諸多不足,開發(fā)一個智能化的考務(wù)管理系統(tǒng)是非常有必要的。
學(xué)校的考試類型可分為兩大類:第一類是學(xué)期教學(xué)計(jì)劃內(nèi)考試,主要以期末考試、學(xué)科補(bǔ)考的形式出現(xiàn),由學(xué)校自行組織;第二類是國家、省、市級的統(tǒng)一考試,如全國大學(xué)生英語四、六級考試,省級或國家級計(jì)算機(jī)等級考試等,這類考試一般是校外組織、校內(nèi)實(shí)施,[1]而本系統(tǒng)的設(shè)計(jì)主要是針對前者。
考務(wù)管理系統(tǒng)的主要功能是實(shí)現(xiàn)學(xué)校的考務(wù)管理。該系統(tǒng)分為四個模塊:用戶管理模塊、考試數(shù)據(jù)管理模塊、考場編排模塊和查詢打印模塊。用戶管理模塊的功能主要是添加、刪除系統(tǒng)的用戶,并設(shè)置系統(tǒng)用戶的權(quán)限??荚嚁?shù)據(jù)管理模塊是考務(wù)管理系統(tǒng)的基礎(chǔ)模塊。該模塊的功能是管理各種用于編排考場的信息,主要包括教學(xué)計(jì)劃、科目、班級、課室、考試時間、試卷、監(jiān)考員等。該模塊又可以分為教學(xué)計(jì)劃管理、科目管理、班級管理、課室管理、考試時間管理和監(jiān)考員管理等子模塊??紙鼍幣虐ㄗ詣泳幣藕腿斯ぞ幣?。自動編排:系統(tǒng)根據(jù)考試的基本信息,自動完成所有考試科目的考試安排工作,包括安排考試時間、考試班級、考場、監(jiān)考員等,并自動完成校對工作。人工編排:考務(wù)員根據(jù)考務(wù)管理系統(tǒng)提供的考試基本信息的提示信息,安排每一個考試科目的考試時間、考試班級、考場、監(jiān)考員等,并自動完成校對工作。查詢打印模塊的功能是查詢考試、考場信息和打印考場安排的各種信息??紕?wù)管理系統(tǒng)的功能結(jié)構(gòu)如圖1所示。
傳統(tǒng)的開發(fā)模式,由于開發(fā)出來的Web應(yīng)用系統(tǒng)結(jié)構(gòu)模糊不清,可擴(kuò)展性差,無法重用,而且系統(tǒng)難于維護(hù)和升級,已被廣大開發(fā)者所遺棄。J2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制。
本系統(tǒng)的架構(gòu)是基于J2EE的三層架構(gòu),三層即數(shù)據(jù)層、業(yè)務(wù)層和表現(xiàn)層。系統(tǒng)采用SSH框架來實(shí)現(xiàn)這三層的分離與合作。SSH框架整合了Struts、Spring和Hibernate三大主流開源框架,分別應(yīng)用于系統(tǒng)的表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層,實(shí)現(xiàn)了層間解耦,具有高可擴(kuò)展性、高性能和高安全性的特點(diǎn),使J2EE企業(yè)級開發(fā)更加快捷高效。[2]考務(wù)管理系統(tǒng)的層次結(jié)構(gòu)及基本業(yè)務(wù)流程如圖2所示。
下面以科目管理子模塊為例,說明系統(tǒng)的實(shí)現(xiàn)原理。
在表示層中,首先用戶通過“科目管理頁面”提交管理科目的請求(Request),然后Struts根據(jù)配置文件(strutsconfig.xml)將ActionServlet接收到的Request委派給“科目管理Action”處理。在業(yè)務(wù)層中,管理服務(wù)組件的Spring IoC容器負(fù)責(zé)向“科目管理Action”提供相應(yīng)的業(yè)務(wù)組件“科目管理”,通過業(yè)務(wù)組件“科目管理”所提供的方法來實(shí)現(xiàn)業(yè)務(wù)邏輯的處理。同時,Spring通過依賴注入的方式為業(yè)務(wù)組件“科目管理”注入“科目DAO”組件,從而通過“科目DAO”組件提供的方法對“科目”組件進(jìn)行操作。而在持久層中,則依賴于Hibernate的對象化映射,將對“科目”組件的操作映射為對數(shù)據(jù)庫的操作,從而實(shí)現(xiàn)了對數(shù)據(jù)庫中相對應(yīng)的表“科目”的更新。
為了提高系統(tǒng)的易用性、改善用戶體驗(yàn),系統(tǒng)在SSH框架之上結(jié)合Ajax技術(shù)開發(fā)實(shí)現(xiàn)。Ajax(Asynchronous JavaScript and XML)[3]是異步JavaScript和XML的簡稱,是一種能以異步的方式與服務(wù)器端進(jìn)行交互的客戶端Web開發(fā)技術(shù)。
Ajax是多種技術(shù)的一種綜合應(yīng)用,包括了JavaScript、XHTML、CSS、DOM、XML和XSTL,以及最重要的一個對象XMLHttpRequest。其中,使用XHTML和CSS實(shí)現(xiàn)數(shù)據(jù)信息的統(tǒng)一化、標(biāo)準(zhǔn)化顯示;使用DOM實(shí)現(xiàn)瀏覽器端豐富的動態(tài)顯示效果以及與服務(wù)器端的交互;使用XML和XSTL進(jìn)行瀏覽器和服務(wù)器兩端的數(shù)據(jù)信息交換與處理。[4]
考務(wù)管理系統(tǒng)的主要工作是編排考場,在考場的編排方式上,一般分為自動編排、手工編排和自動與手工編排結(jié)合等。[1]自動編排考場需要設(shè)計(jì)編排的算法,由于考場編排工作的復(fù)雜性和特殊性,導(dǎo)致在實(shí)現(xiàn)編排算法時受到較多的限制,所以一般的考務(wù)管理系統(tǒng)并沒有實(shí)現(xiàn)自動編排的功能。手工編排考場的關(guān)鍵是實(shí)現(xiàn)考場相關(guān)信息的動態(tài)顯示和編排結(jié)果的驗(yàn)證、核對。手工編排對考務(wù)管理人員的邏輯思維能力和思維的嚴(yán)密性提出了較高的要求,否則編排就非常容易出錯。所以,在考場的編排方式上最好是采用自動編排和手工編排相結(jié)合的方式。下文將詳細(xì)介紹自動編排算法的設(shè)計(jì)與實(shí)現(xiàn)。
考場自動編排算法的設(shè)計(jì)應(yīng)遵循以下原則:(1)正確性??紙鼍幣潘璧臄?shù)據(jù),包括科目、班級、考場、監(jiān)考員,必須保證是正確的。其次,考場編排的結(jié)果要保證不能存在沖突。(2)合理性。第一,在安排考試時,某個班的考試不能安排得過于集中,考試應(yīng)合理分布。譬如,不能出現(xiàn)像一個班第一天有2次考試,第三天也有2次考試,而第二天卻1次考試都沒有的情況。第二,教師的監(jiān)考次數(shù)應(yīng)基本持平,不能出現(xiàn)有些教師的監(jiān)考次數(shù)較多,而某些教師的監(jiān)考次數(shù)較少的現(xiàn)象。第三,考場的安排應(yīng)盡量合理,避免出現(xiàn)有些考場空余座位較多,而有些考場則座位不夠的情況。(3)高效性。指的是考場自動編排算法的設(shè)計(jì)應(yīng)保證系統(tǒng)能在較短的時間內(nèi)編排完成,避免出現(xiàn)讓用戶等待的時間太長的情況。
除了以上原則外,考場自動編排算法的設(shè)計(jì)還要考慮以下實(shí)際情況。
班級人數(shù)超過一定數(shù)量(一般為25人)時,同一班級同一個科目的考試將分為兩個考場進(jìn)行,學(xué)號為單號的一個考場,其余的在另外考場;同一個考場同一時間段可以同時進(jìn)行兩個班級不同科目的考試,也可以只進(jìn)行一個班級一個科目的考試;安排考場時,班級人數(shù)不能多于課室所能容納的人數(shù);教師的監(jiān)考次數(shù)由各個部門指定,但是所指定的監(jiān)考總次數(shù)應(yīng)大于或等于考試的次數(shù);教師的具體監(jiān)考任務(wù)由教務(wù)員安排,但是每個教師的監(jiān)考次數(shù)不能大于各個部門指定的監(jiān)考次數(shù);盡量保證最后一時間段的考試所有班級都參加,也就是說應(yīng)使得所有班級考試結(jié)束的時間基本保持一致。
基于以上設(shè)計(jì)原則與約束條件,考場自動編排算法的基本流程如圖3所示。
考場自動編排算法的主要流程包括“準(zhǔn)備數(shù)據(jù)”、“自動編排考試的班級、科目”、“手動確定考試時間段和具體時間”、“自動編排考場”、“自動編排監(jiān)考員”等?!皽?zhǔn)備數(shù)據(jù)”,包括教學(xué)計(jì)劃管理、科目管理、班級管理、考場管理、監(jiān)考員管理等?!白詣泳幣趴荚嚨陌嗉?、科目”,該步驟的主要任務(wù)是確定某個班級在哪個時間段考哪個科目。具體的流程如圖4所示。
“手動確定考試時間段和具體時間”,該步驟的任務(wù)是由考務(wù)員最終確定考試時間段的考試安排和每個時間段的具體時間。目的是保證考試時間的合理性和考試時間的合理分布?!鞍才趴紙觥?,該步驟的主要任務(wù)是為考試查找并安排合適的考場??紙龅陌才艖?yīng)遵循以下原則:(1)考場的容量以夠用為原則;(2)班級的人數(shù)應(yīng)小于或等于考場的容量;(3)同一時間段,不能安排2個不同的班級在同一考場考同一個科目;(4)同一時間段,不能安排超過2個班級同時進(jìn)行考試。具體的流程如圖5所示。“安排監(jiān)考員”,該步驟的任務(wù)是為每一場考試安排相應(yīng)的監(jiān)考員。具體的流程如圖6所示。
考場自動編排算法的設(shè)計(jì)實(shí)現(xiàn)了考場編排的自動化與智能化,而“手工確定考試時間段和具體時間”功能的加入,又增加了系統(tǒng)的人性化和合理性,保證了考場編排結(jié)果的可用性。
考務(wù)管理系統(tǒng)的啟用,將有利于提高學(xué)校的服務(wù)水平和管理水平,有助于提高學(xué)校的信息化水平,提高考務(wù)管理工作的效率,能滿足學(xué)??紕?wù)管理工作的需要,將填補(bǔ)學(xué)校在考務(wù)管理方面信息化、自動化的空白,能解決實(shí)際的問題,在學(xué)校中有非常高的推廣價(jià)值。☉
[1]洪流,葉紅輝.高校考務(wù)管理系統(tǒng)的優(yōu)化及實(shí)現(xiàn)[J].湖州師范學(xué)院學(xué)報(bào),2008(4).
[2]郭廣軍,朱昭君,王劍波.基于SSH架構(gòu)的課程作業(yè)與成績管理系統(tǒng)[J].微電子學(xué)與計(jì)算機(jī),2010,27(8):157-160.
[3]LiZhiqiang.Studyon ApplicationofE-BusinessSystem Based on Ajax Technology.IEEE.2010:472-475.
[4]趙永屹,宿紅毅,胡韶輝.基于AJAX與J2EE的新型Web應(yīng)用的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28 (1):189-192.
(編輯:金冉)
TP311.52
B
1673-8454(2012)11-0037-03