程洪斌,王善勤,吳昌雨
(滁州職業(yè)技術(shù)學(xué)院,安徽 滁州 239000)
基于Grails框架的高職院校教學(xué)任務(wù)管理系統(tǒng)
程洪斌,王善勤,吳昌雨
(滁州職業(yè)技術(shù)學(xué)院,安徽 滁州 239000)
針對(duì)高職院校教學(xué)中存在任務(wù)下發(fā)完成進(jìn)度無法實(shí)時(shí)監(jiān)控等問題;基于B/S模式,運(yùn)用G rai l s框架技術(shù),設(shè)計(jì)了域模型類、控制器類和視圖類,采用Boot st rap前端開發(fā)框架,實(shí)現(xiàn)了系統(tǒng)的用戶管理、標(biāo)簽管理、任務(wù)管理三大核心功能模塊等;此系統(tǒng)的開發(fā)為高職院校教學(xué)任務(wù)實(shí)時(shí)管理提供網(wǎng)絡(luò)平臺(tái)。
B/S;G rai l s;Boot st rap;教學(xué)任務(wù);管理
引言:隨著WEB和數(shù)據(jù)庫技術(shù)的發(fā)展,將一套復(fù)雜的業(yè)務(wù)邏輯用計(jì)算機(jī)來實(shí)現(xiàn)可省去大量社會(huì)資源,可替代大量人工,緩解工作人員巨大壓力。目前國內(nèi)外很多高職院?;凇绊?xiàng)目引導(dǎo)、任務(wù)驅(qū)動(dòng)”思想進(jìn)行教學(xué)改革,教學(xué)管理工作面臨前所未有的挑戰(zhàn),教學(xué)管理充滿了各種角色,每種角色都對(duì)應(yīng)相應(yīng)的權(quán)限和功能,每天都有大量的任務(wù)去處理。如果這些任務(wù)繼續(xù)使用紙質(zhì)文檔去完成的話,既花費(fèi)大量的人力物力,也不能實(shí)時(shí)監(jiān)管任務(wù)完成進(jìn)度。由于高職院校信息化而使教師對(duì)下發(fā)給學(xué)生的任務(wù)實(shí)時(shí)監(jiān)管工作繁雜起來,使學(xué)校管理人員無法很好地管理好教學(xué)過程中的任務(wù)。為了教師可以對(duì)教學(xué)任務(wù)實(shí)時(shí)監(jiān)控管理及查看任務(wù)的完成情況,為了學(xué)校降低管理成本、提高課堂教學(xué)效率,設(shè)計(jì)并實(shí)現(xiàn)了教學(xué)任務(wù)管理系統(tǒng)。
教學(xué)任務(wù)管理系統(tǒng)是一個(gè)教師教學(xué)過程中教師下發(fā)任務(wù)與學(xué)生提交任務(wù)的平臺(tái),是教務(wù)管理平臺(tái)的重要組成部分,教學(xué)任務(wù)包括用戶管理、標(biāo)簽管理、任務(wù)管理三大模塊。標(biāo)簽組組長可以為一個(gè)標(biāo)簽組添加成員,并對(duì)成員下發(fā)教學(xué)任務(wù)。當(dāng)任務(wù)文檔上傳至服務(wù)器后可以轉(zhuǎn)換成SWF格式并在頁面上顯示出來。用戶看到任務(wù)后,可以下載任務(wù)文檔,完成任務(wù)后用戶提交完成后的任務(wù)文檔。標(biāo)簽組組長審核完后,即可刪除該任務(wù)。
(一)系統(tǒng)的可行性分析
隨著信息化普及,各大高職院校配備的服務(wù)器基本上可以滿足系統(tǒng)運(yùn)行需要,個(gè)人辦公計(jì)算機(jī)能夠滿足開發(fā)任務(wù),所需資料可以到圖書館查閱或者基金項(xiàng)目中出資購買,因此整個(gè)系統(tǒng)的開發(fā),經(jīng)濟(jì)可行性良好。
該系統(tǒng)采用了先進(jìn)并且符合實(shí)際應(yīng)用的開發(fā)方法,使用廣泛應(yīng)用于Web開發(fā)的開發(fā)工具:Dreamweaver、IntelliJ IDEA、功能強(qiáng)大的數(shù)據(jù)庫管理工具M(jìn)ySQL。采用Grails框架技術(shù)、Bootstrap前端開發(fā)框架,結(jié)合自己的實(shí)際工作及開發(fā)能力,可以開發(fā)滿足基本需求的教學(xué)任務(wù)管理系統(tǒng)。
(二)系統(tǒng)的角色分析
系統(tǒng)分為管理員、用戶兩個(gè)角色,管理員主要負(fù)責(zé)管理用戶和標(biāo)簽,用戶根據(jù)身份不同進(jìn)行不同的任務(wù),教學(xué)任務(wù)管理系統(tǒng)面向的用戶群體主要有教師、學(xué)生。針對(duì)系統(tǒng)角色,系統(tǒng)適用領(lǐng)域包括通過軟件實(shí)現(xiàn)教學(xué)任務(wù)管理、通過軟件進(jìn)行教務(wù)系統(tǒng)內(nèi)標(biāo)簽組管理、通過軟件實(shí)現(xiàn)教務(wù)系統(tǒng)內(nèi)任務(wù)分發(fā)與提交等。
(三)系統(tǒng)的主要功能需求分析
1、用戶管理
添加用戶功能是將用戶從Excel中導(dǎo)入數(shù)據(jù)庫(也提供頁面添加功能);刪除用戶功能是由超級(jí)管理員或系部管理員進(jìn)行刪除(或禁用);修改密碼功能是用戶登錄后可以修改自己的密碼;密碼找回功能是通過用戶信息的郵箱字段,發(fā)送一個(gè)超鏈接給用戶,并進(jìn)行密碼的修改;查看用戶功能是系部管理員和超級(jí)管理員可以查看系統(tǒng)中有哪些用戶。
2、標(biāo)簽管理
添加標(biāo)簽組功能是任何用戶可以添加一個(gè)新的標(biāo)簽組,并且該用戶作為該標(biāo)簽組的組長;刪除標(biāo)簽組功能是標(biāo)簽組組長可以解散標(biāo)簽組即是刪除該標(biāo)簽組;查看標(biāo)簽組功能是系部管理員可以查看一共有哪些標(biāo)簽組,用戶可以查看自己有多少個(gè)標(biāo)簽。
3、任務(wù)管理
發(fā)布任務(wù)功能包括發(fā)布的任務(wù)的內(nèi)容和附件及限定用戶提交、提交時(shí)間;執(zhí)行任務(wù)功能是用戶接收到組長發(fā)布的任務(wù)查看任務(wù)(下載附件),并且上傳要提交的材料;接收任務(wù)功能是接收到用戶提交的材料后,在線查看、審核,將通過審核的材料下載到本地,將未通過的返回給用戶。
(四)用例模型分析
圖1 用例圖
用例模型是收集系統(tǒng)功能需求的一個(gè)有力工具,它使得分析員與用戶之間的交流更加容易[1]。圖1表示了基于Web的任務(wù)管理系統(tǒng)的用例模型,其形象地描述了發(fā)布接收任務(wù)等功能,并且從功能的角度指出了每個(gè)功能的執(zhí)行者(角色)。
(一)系統(tǒng)設(shè)計(jì)原則
教學(xué)任務(wù)管理系統(tǒng)在設(shè)計(jì)開發(fā)上遵循從實(shí)際情況出發(fā)的原則,在充分利用現(xiàn)有網(wǎng)絡(luò)和軟硬件資源的基礎(chǔ)上,最大限度地滿足用戶的需要,使系統(tǒng)建成后,確實(shí)能為用戶的實(shí)際工作帶來方便,達(dá)到系統(tǒng)建設(shè)的預(yù)期目標(biāo)。同時(shí)在考慮近期目標(biāo)的同時(shí),還要充分考慮到系統(tǒng)將來的擴(kuò)展性。其具體設(shè)計(jì)原則有如下幾點(diǎn):易用性原則、實(shí)用性原則、擴(kuò)展性原則、穩(wěn)定性原則、安全性原則。
(二)系統(tǒng)主要功能結(jié)構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)的需求,將要實(shí)現(xiàn)主要功能有用戶管理、任務(wù)管理和標(biāo)簽管理。而其中的各個(gè)子功能又分為多個(gè)子功能模塊,該系統(tǒng)的主要功能結(jié)構(gòu)圖如圖2所示。
圖2 教學(xué)任務(wù)管理系統(tǒng)主要功能結(jié)構(gòu)圖
(三)系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
圖3 系統(tǒng)的E-R圖
本系統(tǒng)使用的是IDEA來進(jìn)行數(shù)據(jù)庫建模,通過使用建模工具,不僅能得到優(yōu)化的業(yè)務(wù)功能和數(shù)據(jù)需求模型,還能方便地構(gòu)造實(shí)體和聯(lián)系,表達(dá)實(shí)體間的各種約束關(guān)系[2],而且可以實(shí)現(xiàn)從E-R模型到數(shù)據(jù)庫物理設(shè)計(jì)的轉(zhuǎn)換。系統(tǒng)部分?jǐn)?shù)據(jù)庫結(jié)構(gòu)圖如圖3所示。
(一)系統(tǒng)開發(fā)架構(gòu)
本系統(tǒng)采用Grails框架開發(fā)。GrailS是一套用于快速Web應(yīng)用開發(fā)的開源框架,它基于Groovy編程語言,并構(gòu)建于Spring、Hibernate和其他標(biāo)準(zhǔn)Java框架之上,從而為形成一套能實(shí)現(xiàn)超高生產(chǎn)力的一站式框架[3]。在Grails中,“M”指的是Domain類,可以將這個(gè)Domain理解為數(shù)據(jù)庫中的一張表,一個(gè)Domain的實(shí)例則對(duì)應(yīng)為該表的一條記錄??刂破鳌癈”起到橋梁作用,它能夠接收用戶提交的請(qǐng)求,可以調(diào)用M獲取數(shù)據(jù)并把數(shù)據(jù)傳遞給視圖“V”。視圖“V”的作用是輸出頁面,Grails中的頁面技術(shù)是GSP技術(shù),可以使用網(wǎng)頁編輯器進(jìn)行編輯設(shè)計(jì)。MVC架構(gòu)的Grails執(zhí)行流程如圖4所示。
圖4 Grails的MVC架構(gòu)執(zhí)行流程圖
(二)系統(tǒng)關(guān)鍵代碼實(shí)現(xiàn)及分析
1、域模型類層
Grails工程的全部域類都在grails-app/domain目錄下。域模型類會(huì)遵照約定實(shí)現(xiàn)與關(guān)系數(shù)據(jù)庫中的表之間的關(guān)聯(lián)。Grails對(duì)Hibernate使用的約定進(jìn)行了擴(kuò)展,具體內(nèi)容為:將類名中的每個(gè)單詞的首字母變?yōu)樾?,并在單詞之間用下劃線“一”連接,就構(gòu)成了與之相關(guān)的表名;每個(gè)屬性對(duì)應(yīng)表中的一列,屬性名和列名之間的轉(zhuǎn)換規(guī)則與類名和表名的轉(zhuǎn)換規(guī)則相同;域模型類有一個(gè)默認(rèn)被自動(dòng)添加的id屬性(不需要用戶定義,由Grails在運(yùn)行時(shí)注入),并會(huì)在表中顯示出來;域模型類還會(huì)默認(rèn)創(chuàng)建一個(gè)version屬性,用來在Hibernate中確保事務(wù)的完整性并支持樂觀鎖,該屬性不會(huì)在表中顯示出來。
下列是文件類Users的代碼:
該類對(duì)應(yīng)數(shù)據(jù)庫里的users表,該表結(jié)構(gòu)如表1所示。
該類共定義了8個(gè)屬性,分別對(duì)應(yīng)表中的8個(gè)字段并通過Grails約束生成器(Construction)對(duì)應(yīng)每個(gè)字段設(shè)定的約束。mapping閉包用于定義數(shù)據(jù)庫表的主鍵,如果沒有指定,默認(rèn)會(huì)將Graiis自動(dòng)添加的id屬性作為主鍵。本系統(tǒng)部分主要主要域模型類表如表2所示。
表2 系統(tǒng)主要主要域模型類
2、控制器類層
控制器對(duì)于Grails來說是一個(gè)相當(dāng)核心的概念,它是一些負(fù)責(zé)處理來自客戶端請(qǐng)求的類??刂破魇腔谠偷?,也就是說Grails會(huì)為每個(gè)請(qǐng)求創(chuàng)建一個(gè)新的控制器實(shí)例。其中有如下幾種處理請(qǐng)求的方式:簡單地委托給一個(gè)合適的視圖;操作領(lǐng)域模型,然后將它在視圖上顯示;直接寫入響應(yīng)(Response)的writer對(duì)象中;重定向到另外一個(gè)操作(Action)或另外一個(gè)控制器中的操作。
在Grails中,控制器也是一個(gè)類,它位于grailsapp/controller目錄中類名都以Controller結(jié)尾。下面是客戶管理功能的控制器類的部分代碼:
“def index={}”是Groovy不同于Java的一種語法結(jié)構(gòu),叫做閉包。閉包是一段代碼的集合,與Java的方法類似,可以調(diào)用。在控制器中,閉包有了新的含義,叫做action。Graiis會(huì)根據(jù)請(qǐng)求的URL決定調(diào)用哪個(gè)action。一個(gè)典型的Graiis的URL格式為:
“http://主機(jī)名:端口/項(xiàng)目名稱/控制器名/action名/ID或其他參數(shù)”。index操作是控制器的默認(rèn)操作。當(dāng)URL路徑中沒有指定操作名,則系統(tǒng)會(huì)使用默認(rèn)操作。當(dāng)用戶訪問系統(tǒng)時(shí),會(huì)首先執(zhí)行index操作,index操作使用了重定向(redirect)方法,將客戶端的請(qǐng)求重定向到list方法。在系統(tǒng)中每個(gè)控制器類中分別定義了list、show、delete、edit、update、create和save方法,這些方法用于實(shí)現(xiàn)基本的業(yè)務(wù)邏輯功能。
根據(jù)系統(tǒng)功能模塊劃分每個(gè)功能模塊對(duì)于一個(gè)控制類,本系統(tǒng)部分主要控制類有LoginController(登陸控制類)、ResourcesController(資源控制類)、Submit-TaskController(提交任務(wù)控制類)、TaskController(任務(wù)控制類)、UsersController(用戶控制類)、Labelling-Controller(標(biāo)簽控制類)User_LableController(用戶標(biāo)簽控制類)。
3、視圖類層
Grails提供了一種新的視圖技術(shù),即GSP,它與JSP非常相似,和JSP一樣有很多直接可以使用的對(duì)象。同時(shí)在GSP頁面中也可以編寫Groovy代碼。Grails中所有的gsp頁面文件都存放在grails-app/ view目錄中,每個(gè)控制器都在view目錄中對(duì)應(yīng)一個(gè)與控制器名相同的文件夾,每個(gè)文件夾下會(huì)有控制器用到的多個(gè)gsp頁面。一般每個(gè)gsp頁面對(duì)應(yīng)控制器類中的一個(gè)方法。下面是登陸頁面部分代碼:
(三)實(shí)現(xiàn)的功能分析
1、登錄功能
本系統(tǒng)中對(duì)于登錄模塊的設(shè)計(jì)是供學(xué)校內(nèi)部使用,使用權(quán)的授予是由系統(tǒng)管理員決定的,只有在系統(tǒng)管理員首次在員工管理模塊中添加了用戶信息后,授予此用戶登錄名、密碼后才能安全登錄,在權(quán)限的范圍內(nèi)能夠完成相應(yīng)操作。用戶輸入“用戶名”、“密碼”及“驗(yàn)證碼”后,若登錄成功后進(jìn)入系統(tǒng)首頁,否則會(huì)提示“對(duì)不起,用戶的用戶名或密碼有錯(cuò),請(qǐng)重新登錄!”或“驗(yàn)證碼錯(cuò)誤,請(qǐng)重新輸入!”。
2、任務(wù)管理模塊主要功能實(shí)現(xiàn)
發(fā)布任務(wù):該類功能主要實(shí)現(xiàn)任務(wù)的發(fā)布,根據(jù)用戶的權(quán)限可以發(fā)布任務(wù),并在發(fā)布任務(wù)的同時(shí)可以選擇上傳附件,這是可選的,選擇接收用戶可以選擇到人也可以選擇到標(biāo)簽組并且在選擇任務(wù)截至日期時(shí)系統(tǒng)會(huì)控制只能選擇大于當(dāng)前的日期。
查看任務(wù)列表:該功能可以查看自己所發(fā)布的任務(wù)列表,可以查看提交的時(shí)間以及當(dāng)前任務(wù)的狀態(tài),點(diǎn)擊查看可以看到不同用戶所提交的材料,并可以在線瀏覽材料
任務(wù)審核:為了體現(xiàn)用戶提交的任務(wù)的質(zhì)量,可以在線審核,如果符合要求,點(diǎn)擊通過,反則點(diǎn)擊不通過,點(diǎn)擊完成之后系統(tǒng)會(huì)給出相應(yīng)的提示。
隨著信息技術(shù)的不斷深入和發(fā)展,教學(xué)任務(wù)管理系統(tǒng)將在高校獲得廣泛的應(yīng)用。本系統(tǒng)研究了教學(xué)任務(wù)管理系統(tǒng)的關(guān)鍵技術(shù),分析了教學(xué)任務(wù)管理工作,建立了教學(xué)任務(wù)管理系統(tǒng)的模型;本文在分析了Grails框架的基礎(chǔ)上,針對(duì)B/S結(jié)構(gòu)模式的優(yōu)越性,完成了系統(tǒng)的設(shè)計(jì)、實(shí)現(xiàn)。實(shí)踐證明此系統(tǒng)能夠?yàn)楦咝L峁┚W(wǎng)絡(luò)環(huán)境下的教學(xué)任務(wù)管理工作環(huán)境,有效地提高了工作效率。但今后仍需繼續(xù)關(guān)注先進(jìn)開發(fā)技術(shù)并將其應(yīng)用到教學(xué)任務(wù)管理系統(tǒng)中,為學(xué)校提供更加智能、高效的教學(xué)任務(wù)管理系統(tǒng)。同時(shí)也為運(yùn)用Grails框架開發(fā)Web應(yīng)用系統(tǒng)提供一定參考。
[1]于泳,王慧.基于UML的辦公自動(dòng)化系統(tǒng)建模與實(shí)現(xiàn)[J].中國電子商務(wù).2011,(12):38-38.
[2]俞曉,左友東等.ERwin在智能考試系統(tǒng)中的應(yīng)用[J].四川師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,(04):434-437.
[3]于洪方.敏捷開發(fā)方法在世紀(jì)互聯(lián)MIS系統(tǒng)中的應(yīng)用與研究[D].成都:電子科技大學(xué),2010:12-21.
TP311.52
A
1671-5993(2015)01-0032-05
2015-01-31
安徽省示范性高職院校建設(shè)項(xiàng)目“軟件技術(shù)專業(yè)”研究成果,項(xiàng)目編號(hào):SJ2010003;滁州職業(yè)技術(shù)學(xué)院院級(jí)科研基金項(xiàng)目“初探數(shù)據(jù)挖掘在大學(xué)生職業(yè)生涯規(guī)劃中的應(yīng)用”研究成果,項(xiàng)目編號(hào):YJY-2011-17。
程洪斌(1966-),男,安徽鳳陽人,滁州職業(yè)技術(shù)學(xué)院信息工程系講師,研究方向:計(jì)算機(jī)技術(shù);
王善勤(1980-),男,安徽靈璧人,滁州職業(yè)技術(shù)學(xué)院信息工程系講師,研究方向:數(shù)據(jù)挖掘;
吳昌雨(1977-),男,安徽滁州人,滁州職業(yè)技術(shù)學(xué)院信息工程系講師,研究方向:軟件開發(fā)。
滁州職業(yè)技術(shù)學(xué)院學(xué)報(bào)2015年1期