李宏升LI Hong-sheng;宋三華SONG San-hua;陳中良CHEN Zhong-liang
(黃淮學院信息工程學院,駐馬店 463000)
(College of Information Engineering,Huanghuai University,Zhumadian 463000,China)
近年來,由于無線互聯(lián)網(wǎng)及嵌入式移動平臺的飛速發(fā)展,國內(nèi)各高校紛紛開設(shè)嵌入式系統(tǒng)開發(fā)課程,特別是學習門檻較低的安卓系統(tǒng)應用開發(fā)。由于安卓系統(tǒng)開發(fā)的SDK 涉及到JAVA、Ecilpse、ADT、Linux 等多種開發(fā)環(huán)境,如何構(gòu)建一套全功能、高效率、易操作的實驗模擬環(huán)境,成為目前安卓教學培訓及實驗實踐過程中所急需的平臺。本文所述的在線實驗平臺就是利用Eclipse 開發(fā)環(huán)境中功能強大的插件功能實現(xiàn)從教師和學生管理、實驗內(nèi)容庫管理、作業(yè)上傳及成績批改、登錄認證等多種功能于一體的安卓在線實驗平臺。[1]
根據(jù)筆者所在高校安卓課程培養(yǎng)方案的要求,對本教學平臺進行了詳細的需求分析。主要需解決如下幾方面的問題:
①系統(tǒng)交互性設(shè)計:在實驗活動中,要有實驗任務發(fā)布、實驗內(nèi)容查看、用戶注冊登錄等交互性環(huán)節(jié)。
②實驗課程管理:在課程組織與管理方面,要有設(shè)計、安排及維護實驗項目的功能。
③實驗案例難度劃分:針對于本??茖W生、成教及短期培訓學生的教學要求,將實驗項目按難度、應用方向、硬件來分類,以便于針對不同的學生群體安排相應的實驗計劃。
④文件上傳及管理:利用登錄認證過程來規(guī)范用戶上傳和更新相應的作業(yè)及文件,以用戶ID、實驗項目編號、上傳時間來標示附件的內(nèi)容、時間、來源,較好的解決了上傳文件的查閱和管理。[2]
根據(jù)上述分析,本系統(tǒng)應包含以下幾個模塊,其業(yè)務流程如圖1 所示。
其系統(tǒng)用例流程圖如圖1 所示。
圖1 在線實驗室的業(yè)務流程圖
教師操作功能:啟動窗戶端后,通過用戶名和密碼啟動、登錄到客戶端,沒有賬號注冊賬號。注冊過程中可輸入用戶名、密碼,可選擇老師的分組及其他信息,注冊后即可用賬號和密碼登錄。
編輯實驗項目內(nèi)容:新增或編輯各實驗項目的名稱及具體內(nèi)容、選擇實驗類別、上傳實驗案例代碼。
安排實驗計劃:進入實驗計劃菜單,新增實驗計劃,制定實驗項目時間表、實驗班級、周次、考核方式等具體內(nèi)容。在客戶端運行學生上傳作業(yè)代碼:可以把學生上傳的實驗代碼包導入客戶端模擬運行,對學生的實驗效果進行評價。
批改學生實驗作業(yè):根據(jù)學生上交的實驗報告及上傳的代碼包,根據(jù)培養(yǎng)方案對學生進行評價打分。
學生操作功能:從客戶端登錄后,可以以B/S 的方式訪問實驗計劃,查看實驗內(nèi)容、下載實驗代碼,在客戶端上進行實驗,提交實驗報告,上傳作業(yè)代碼包,查看實驗成績等。瀏覽課程實驗信息:進入瀏覽器登錄后,可以查看本專業(yè)相應的實驗開課計劃,進入具體的實驗項目,可以瀏覽實驗內(nèi)容和相關(guān)知識。
根據(jù)實驗計劃完成實驗:學生可通過B/S 模式查看、下載實驗項目內(nèi)容,根據(jù)實驗內(nèi)容要求,按照步驟和實驗代碼包完成實驗項目,并撰寫實驗報告提交。
上傳實驗代碼包:學生可根據(jù)實驗要求調(diào)試好的實驗代碼包上傳至自己在服務器上的存儲空間,并以特定的名稱命名(格式為:用戶ID、實驗項目編號、上傳時間)。
提交實驗報告:學生完成實驗后,可將按照模板撰寫的實驗報告文檔提交到系統(tǒng),并以特定的名稱命名(與代碼包規(guī)則相同)。
查看成績:教師可在實驗完成后,對學生的實驗代碼和實驗報告批改評價后,對學生的實驗項目進行打分,學生可登錄系統(tǒng)后,查詢各實驗項目的成績。[3][4]
3.1 系統(tǒng)總體架構(gòu)設(shè)計
圖2 系統(tǒng)總體架構(gòu)示意圖
系統(tǒng)各功能模塊的設(shè)計:本實驗教學平臺分為實驗代碼運行模塊,實驗作業(yè)提交管理模塊。在實驗代碼運行模塊中主要采用Eclipse 插件開發(fā)的機制實現(xiàn)文件的更新上傳下載,在實驗作業(yè)管理模塊,實現(xiàn)實驗計劃的編排,發(fā)布,實驗報告模板的編輯實驗作業(yè)的批改等功能。
實驗項目管理:通過本模塊對各實驗項目進行增刪查改,可對實驗項目的名稱、類別、是否必做、負責教師、實驗要求、報告模板、上傳代碼包名稱格式進行設(shè)定。
實驗計劃管理:在實驗計劃模塊中,教師把設(shè)置好的實驗項目添加到實驗列表中,并設(shè)定開課名稱、實驗名稱、實驗時間及結(jié)束時間,形成一個完整的實驗計劃。
文件交互管理:學生可以在登錄后的個人實驗項目列表中,查看下載相關(guān)的實驗預習報告和代碼包,并導入客戶端進行調(diào)試實驗;在完成實驗后,將實驗代碼和實驗報告以約定的名稱上傳至服務器指定的位置,教師可在課后統(tǒng)一批改,并在客戶端加載實驗代碼進行評價。
實驗報告編輯:學生在實驗過程中通過實驗報告編輯模塊可以在線撰寫實驗報告,通過功能強大的圖文編輯器形成內(nèi)容豐富的實驗報告上交。[5]
用戶和文件交互設(shè)計:利用Eclipse 插件開發(fā)一個基于XML 文件的透視圖,在此基礎(chǔ)上實現(xiàn)用戶交互界面和文件上傳下載界面。
用戶登錄模塊:利用SWT 和JFace 組件開發(fā)插件的應用,設(shè)置透視圖的擴展點org.eclipse.login.perspectives,在此類上實現(xiàn)Iperspective Factory 接口。
實驗項目的上傳瀏覽:在驗證用戶的登錄狀態(tài)后,就可實現(xiàn)實驗項目的更新發(fā)布了。將提取的用戶ID 及其他狀態(tài)信息以XML 文件的形式上傳至服務器,通過對XML文件的解析,獲取當前用戶當前操作的實驗的KEY,判斷取得的實驗項目版本號是否大于與服務器上的值,來決定是否更新該項實驗信息。更新實驗信息后,服務端會為每個實驗項目創(chuàng)建一個配置文件,記錄實驗項目的數(shù)據(jù)并用于用戶在客戶端瀏覽該實驗內(nèi)容。[6]
3.2 系統(tǒng)關(guān)鍵模塊的實現(xiàn)
3.2.1 認證模塊
運用Eclipse 的startup 擴展點實現(xiàn)登錄認證在客戶端啟動時就隨之加載運行,認證窗口界面采用Java Swing 設(shè)計,添加Jframe、Jlogin、Jbutton 等組件。為Button 按鈕添加監(jiān)聽事件:Jloginbutton.add ActionListener(new ActionListener()),為按鈕添加login Authentiaction()的認證方法獲取用戶名和密碼送給服務器進行認證。[7]
3.2.2 服務器端接口
接收客戶端登錄信息,運用HashMap 類接收用戶名和密碼進行服務端認證,成功后返回相應的信息。
提交新的實驗項目內(nèi)容,運用param Files.put(“expProject”,new File []{file})的方法上傳包含文件名和路徑字串的HashMap 對象,通過Http URL Connection 連接上傳文件的StringStream。
實驗項目的下載過程,設(shè)定srcPath 和destPath 對象作為下載對象的源路徑和目的路徑,用connection.getHeaderField (“connection-Disposition”) 方 法 和URL Decoder.decoder 的方法對文件進行URL 編碼,實現(xiàn)瀏覽器對中文名稱的兼容。最后通過getInputStream ()和FileOutstream()方法進行文件的讀取寫入,完成文件下載過程。[8]
3.3 實驗項目信息的上傳下載及與客戶端關(guān)聯(lián)
實驗項目信息的上傳過程是客戶端功能的重要組成部分,實驗項目相關(guān)信息封裝在Experiments 類中,與用戶類UserClient、實驗項目類ExpProject 類利用experiments屬性相關(guān)聯(lián)。
表1 Experiments、ExpProject 類的屬性
圖3 客戶端插件的菜單
圖4 Web 服務端登錄界面
當用戶提交實驗信息及報告時,觸發(fā)Experiments 類的updateExperimentsAction 方法,根據(jù)用戶ID、類型去更新相應的實驗信息數(shù)據(jù)和相應的URL 地址,學生在代碼包的上傳中會發(fā)生多次上傳的情況,為了簡化系統(tǒng)復雜度和減少無用文件殘留,系統(tǒng)采用固定代碼包的文件名,最后一次上傳的數(shù)據(jù)對上一次進行覆蓋的方法處理。
本實驗平臺在實際教學應用過程中,基本能完成安卓課程教學計劃的整個流程,滿足從實驗項目的編輯管理、實驗計劃的編排發(fā)布、實驗代碼包的上傳下載、實驗報告的編輯提交、實驗成績的批改評分等所有功能。
本平臺采用了Eclipse 插件的開發(fā)方式,使所有功能均集成在同一個客戶端系統(tǒng)中實現(xiàn),為教學系統(tǒng)的安裝和移植提供了方便,有利于在基于Eclipse 環(huán)境的開發(fā)環(huán)境,如Java,J2EE 中推廣應用。
隨著Eclipse 的Web 化進程的不斷推進,基于Eclipse的項目開發(fā)將脫離插件技術(shù)的束縛,開發(fā)方式將逐漸被采用瀏覽器的B/S 架構(gòu)所取代。圍繞Eclipse 平臺的強大功能,結(jié)合安卓、Java、J2EE 課程,基于Eclipser 的在線虛擬實驗室的應用范圍會更廣泛、實現(xiàn)的功能會更強大、在移動互聯(lián)網(wǎng)應用及智能手持設(shè)備的應用開發(fā)方面會產(chǎn)生更加深遠的意義。
[1]張躍玲.網(wǎng)絡教學交互模式研究[D].西北大學,2011.
[2]余永佳.高職Android 操作系統(tǒng)課程教學與研究[J].徐州建筑職業(yè)技術(shù)學院學報,2011(04):52-54.
[3]于杭路佳.數(shù)據(jù)挖掘在網(wǎng)絡教學評價中的應用[D].北京郵電大學,2010.
[4]成炳花,劉金廣.在B/S 網(wǎng)絡系統(tǒng)中應用XML 技術(shù)的研究[J].武漢理工大學學報,2010(22):119-212.
[5]趙林虎.基于Eclipse 富客戶端軟件測試管理平臺的設(shè)計與實現(xiàn)[D].北京郵電大學,2010.
[6]米天勝.基于開放式插件體系結(jié)構(gòu)的Eclipse 平臺及其應用[J].中國管理信息化(綜合版),2007(12):29-33.
[7]陳延.基于Eclipse 插件的集成開發(fā)環(huán)境擴展與改進[D].華中科技大學,2012.
[8]欒詠紅.基于Android 的XML 解析器的分析與比較[J].南京曉莊學院學報,2011(06):98-100.