韓蘭靈+劉玉琴+高朋
摘 要:移動設(shè)備能便捷承載、收發(fā)音頻文件等媒體數(shù)據(jù),可隨時隨地滿足日語學(xué)習(xí)中大量語境輸入和語言訓(xùn)練的需求?;诎沧肯到y(tǒng)的日語聽力作業(yè)系統(tǒng),利用移動設(shè)備的優(yōu)點而設(shè)計開發(fā)。主要是為日語學(xué)習(xí)者提供便捷的日語聽力訓(xùn)練平臺,同時也幫助教師統(tǒng)計和觀察日語學(xué)習(xí)者的聽解能力,從而對學(xué)習(xí)者進(jìn)行更有針對性的教學(xué)指導(dǎo),對傳統(tǒng)的聽力課堂教學(xué)是有益的補(bǔ)充,本文主要介紹該系統(tǒng)實現(xiàn)的概要以及結(jié)果的總結(jié)。
關(guān)鍵詞:日語教學(xué);日語聽力;移動學(xué)習(xí);安卓(Android)
中圖分類號:TP315 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-8454(2015)17-0083-03
引言
2012年北大的賈積有教授就提出了便攜式電子學(xué)伴[1]的概念,時至今日,移動平臺已經(jīng)非常成熟,出現(xiàn)了很多應(yīng)用于教學(xué)的移動應(yīng)用,例如輔助日語發(fā)音學(xué)習(xí)軟件[2]以及安卓平臺英語學(xué)習(xí)資源[3]的制作。與電腦相比,智能手機(jī)成為學(xué)生幾乎人人必備的便攜式工具,移動端的聽力練習(xí)系統(tǒng)可以輔助完成如上課題。結(jié)合軟件學(xué)院的特色,有必要開發(fā)一個基于安卓的日語聽力作業(yè)系統(tǒng)。學(xué)習(xí)者通過觸手可及的移動設(shè)備輔助學(xué)習(xí),加強(qiáng)日常訓(xùn)練,同時采集到的數(shù)據(jù)也能夠在教師一方反饋,幫助教師獲取學(xué)習(xí)者的學(xué)習(xí)動態(tài),對傳統(tǒng)的教學(xué)方式形成有益的補(bǔ)充,可以提高教學(xué)效率與效果。
一、可行性分析
為了給日語學(xué)習(xí)者提供更加方便的日語聽力訓(xùn)練的平臺,手機(jī)APP是選擇之一。作為一個搭建在智能平臺上的應(yīng)用,可為教師和學(xué)習(xí)者節(jié)省很多時間,比如拷貝音頻、布置作業(yè)、批改作業(yè)等,這些都可以在云端完成;日語學(xué)習(xí)者只需要按照服務(wù)器分發(fā)的作業(yè)完成對應(yīng)的訓(xùn)練;服務(wù)器能夠自動批改,統(tǒng)計對錯,產(chǎn)生各類統(tǒng)計數(shù)據(jù),讓教師將更多的關(guān)注放在如何為學(xué)生提供更有針對性的指導(dǎo)上,而不必花費大量的時間人工批改作業(yè),對于師生來說是雙贏的工具。這款應(yīng)用首先在Android系統(tǒng)上實現(xiàn),待功能成熟以后可以開始兼容IOS和Windows Phone。從技術(shù)可行性上來說,軟件學(xué)院擁有得天獨厚的優(yōu)勢,日語學(xué)習(xí)者均擁有編程背景,通過一定程度學(xué)習(xí),可以掌握并勝任下文提到的三個方向中的任意一個,并且從親歷學(xué)習(xí)的角度提出設(shè)計需求。整個項目需要一個服務(wù)器和相應(yīng)的開發(fā)環(huán)境,可以得到學(xué)校的保障,并且有大學(xué)生創(chuàng)新項目的支持。雖然整個項目的工程量較大,但不斷打磨可以完成。
二、需求分析
對于該項目的需求,總體分為三大部分——針對教師、日語學(xué)習(xí)者、服務(wù)端。教師主要包括閱卷、審查等功能;日語學(xué)習(xí)者包含了聽寫、上傳作業(yè)等功能;服務(wù)端需要對這些應(yīng)用的功能提供對應(yīng)的支持。
教師方面的功能在Web端實現(xiàn),包括修改題庫、添加題目、設(shè)置考試模式、查看日語學(xué)習(xí)者成績、分?jǐn)?shù)變化趨勢等等,在Web上實現(xiàn)一個類似于后臺管理的頁面。
日語學(xué)習(xí)者方面的功能在手機(jī)上實現(xiàn),可以拉取最新的作業(yè),進(jìn)行聽力訓(xùn)練并提交答案,保留答題的歷史。
服務(wù)端作為整個應(yīng)用的支撐需要完成對日語學(xué)習(xí)者數(shù)據(jù)的采集、日語學(xué)習(xí)者和教師資源的管理,還有對應(yīng)的統(tǒng)計信息的功能,方便教師查閱。整體功能概括如表1所示。
三、概要設(shè)計
1.數(shù)據(jù)庫設(shè)計
后端服務(wù)運行在一臺服務(wù)器上作為整個系統(tǒng)的支撐,需要管理整個系統(tǒng)的用戶、學(xué)校、教師信息以及對應(yīng)的作業(yè)管理的信息和成績,這些數(shù)據(jù)以典型的關(guān)系型數(shù)據(jù)庫MySQL來存儲,圖1展示了數(shù)據(jù)庫的關(guān)系設(shè)計圖。
題庫和每個日語學(xué)習(xí)者的作業(yè)都是一一映射的,添加和修改題庫通過一個全局對象來存儲,每個日語學(xué)習(xí)者有自己單獨的作業(yè)副本,這些副本的屬性相對于全局的作業(yè)來說,多了日語學(xué)習(xí)者對作業(yè)的完成情況和對應(yīng)作業(yè)的成績。作業(yè)可以重復(fù)發(fā)布,有利于教師重復(fù)利用題庫,所以將作業(yè)分為兩類——存儲在題庫中的題目和布置給日語學(xué)習(xí)者的每日作業(yè),統(tǒng)計成績時依據(jù)該日語學(xué)習(xí)者的每日作業(yè)來計算對應(yīng)的數(shù)據(jù)。如果要達(dá)到更強(qiáng)的針對性可以添加班級、學(xué)校對象來進(jìn)行更加細(xì)致的作業(yè)劃分,這樣作業(yè)可以按照班級和日期來投放,有利于分類和管理。
2.交互設(shè)計
除此之外,整個系統(tǒng)的時序交互重點在日語學(xué)習(xí)者的學(xué)習(xí)交互、教師的管理和統(tǒng)計事件上,圖2展示不同業(yè)務(wù)對應(yīng)事件的時序關(guān)系。
日語學(xué)習(xí)者交互主要是更新手機(jī)端布置的聽力材料并及時完成對應(yīng)的訓(xùn)練,把答案提交以后,遠(yuǎn)程服務(wù)器會同步更新內(nèi)容并統(tǒng)計相應(yīng)的數(shù)據(jù),而教師則可以管理對應(yīng)的題庫,查看學(xué)生成績和分發(fā)每日作業(yè),主要的流程按照這樣的時序進(jìn)行。
3.技術(shù)架構(gòu)
(1)Web端
后端采取ThinkPHP這款PHP Web框架,該框架是中國技術(shù)人員開發(fā)的,有豐富的文檔和案例,便于新手上手,其次該款框架設(shè)計優(yōu)良,適合本應(yīng)用,該框架整體遵循MVC(見圖3)原則即模型(Model)、視圖(View)、控制器(Controller),模型這一層主要和上面提到的數(shù)據(jù)庫打交道,負(fù)責(zé)對原始的數(shù)據(jù)庫操作進(jìn)行封裝,利用ORM(Object Relational Mapping,面向?qū)ο笥成浼夹g(shù)),將這些純粹的SQL數(shù)據(jù)庫查詢語句封裝成相應(yīng)數(shù)據(jù)對象的方法,比如日語學(xué)習(xí)者的添加,可以作為日語學(xué)習(xí)者類的一個方法,這樣就能在數(shù)據(jù)操作上和其他的部分相互解耦,提高程序的可擴(kuò)展性。視圖部分采取ThinkPHP自帶的模板引擎,能夠提高網(wǎng)頁內(nèi)容的重用率,同時可以節(jié)省重復(fù)開發(fā)的時間,另外能夠做到動態(tài)顯示相應(yīng)的數(shù)據(jù),模板引擎依賴于數(shù)據(jù)層的數(shù)據(jù),通過邏輯操作以顯示相應(yīng)的界面內(nèi)容。
這是從Web的角度出發(fā),因為整個管理系統(tǒng)搭建在Web上。但是整個服務(wù)的主體還是手機(jī)應(yīng)用,所以作為服務(wù)端,必要的應(yīng)用層的接口是要存在的,而框架也有對應(yīng)的數(shù)據(jù)封裝,能夠很好地承載數(shù)據(jù)的請求,控制承擔(dān)Web界面和手機(jī)應(yīng)用后臺請求的路由以及相應(yīng)請求處理的主體,通過程序的主要流程都在控制器內(nèi)完成,包括作業(yè)文件存儲、成績統(tǒng)計等類似的輸入輸出操作和CPU計算操作。
(2)移動端
手機(jī)應(yīng)用使用傳統(tǒng)原生的Android開發(fā)工具鏈,使用Java語言進(jìn)行開發(fā),當(dāng)中也采取了一定的開源UI框架,涉及ListView、Button控件和網(wǎng)絡(luò)傳輸庫等。使用優(yōu)秀的開源框架大大縮短開發(fā)時間,可以將精力集中在業(yè)務(wù)邏輯主體上,而不用過多擔(dān)心細(xì)枝末節(jié),但是相應(yīng)的代價是要熟悉一套新的API,這個學(xué)習(xí)曲線相對于不用庫的曲線會更大,而且產(chǎn)生的問題在自己不熟悉的領(lǐng)域很難第一時間捕捉并解決掉。進(jìn)行一定的權(quán)衡,使用開源框架優(yōu)于重復(fù)純手工完成所有工作。
一些優(yōu)秀的開源Android庫可以參考Github上面的一個索引,里面包括了大量的UI庫和網(wǎng)絡(luò)工具庫以及圖形庫,可以挑選適合自己的庫來進(jìn)行開發(fā)。[4]本應(yīng)用主要采用的是里面的ListView類庫和http工具庫。ListView類庫主要為了實現(xiàn)手機(jī)應(yīng)用的主要界面的列表內(nèi)容,網(wǎng)絡(luò)庫則是用于與服務(wù)器溝通。與服務(wù)器的通信方式采用HTTP,并且數(shù)據(jù)格式按照J(rèn)SON的格式傳輸,前后端統(tǒng)一格式和方法以后,就可以采取統(tǒng)一的約定進(jìn)行開發(fā)。
要注意的是,該應(yīng)用的幾個關(guān)鍵點技術(shù)或者邏輯有音頻的播放以及相應(yīng)的作業(yè)數(shù)據(jù)同步。音頻播放需要考慮具體的網(wǎng)絡(luò)環(huán)境,比如連接的是內(nèi)網(wǎng)的話,網(wǎng)絡(luò)狀態(tài)比較好可以采取在線播放,這樣可以節(jié)省APP的存儲代價,但是又要提供下載的接口方便本地重復(fù)播放,這樣設(shè)計網(wǎng)絡(luò)接口的時候就要提供兩種模式,這在手機(jī)端需要資源播放設(shè)置不同模式,音頻的在線播放在服務(wù)端是基于HTTP協(xié)議的Range頭信息,只要服務(wù)器能夠支持?jǐn)帱c續(xù)傳,那么手機(jī)就可以實現(xiàn)在線播放。
四、集成測試
引用百度百科來說:集成測試[5],也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但并不能保證連接起來也能正常工作。一些局部反映不出來的問題,在全局上很可能暴露出來。
早期所有的代碼需要經(jīng)過單元測試,也就是寫相應(yīng)的測試用例來保證一個函數(shù)或者一個模塊的可用性,集成測試則是將所有模塊組合在一起進(jìn)行測試,這個過程是交付驗收之前必須經(jīng)歷的過程。在校園環(huán)境下,很大程度依賴于實際試用期反應(yīng)的問題,同時結(jié)合一些自動化測試的方法來進(jìn)行一些主要功能可用性的測試,經(jīng)過一段時間的試用期和自動化測試后,該產(chǎn)品相對來說可以得到很大保障,能夠維持穩(wěn)定運行。
在集成測試之前,在代碼上加入了單元測試,保證每個模塊在解耦的同時能夠保持可用性,為下個階段的集成測試做準(zhǔn)備。單元測試主要集中測試了,Web網(wǎng)頁的網(wǎng)絡(luò)請求是否可達(dá)、管理平臺上對于作業(yè)的增刪改查是否有效、郵件注冊是否成功、聽力文件是否能夠和數(shù)據(jù)庫同步而不產(chǎn)生錯誤等一系列功能,具體體現(xiàn)在必要的自動化測試的代碼上,用測試代碼測試實現(xiàn)代碼。
在初步完成項目的代碼實現(xiàn)之后,需要進(jìn)行集成測試。集成測試首先一部分是在項目上線的工程中,人工模擬各個流程,不僅僅是成功的流程,應(yīng)該嘗試可能發(fā)生的不同情況,包括極限測試、壓力測試等等,例如上傳的文件是否進(jìn)行了格式檢查、是否禁止了非選項內(nèi)答案的上傳、是否限制了文件的大小、是否在斷網(wǎng)的情況下產(chǎn)生提示、使用流量的時候是否可行等等,這些都是生產(chǎn)條件下可能沒有考慮的問題,都要在實際的測試當(dāng)中發(fā)現(xiàn)。在完成了集成測試以后,需要對代碼進(jìn)行必要的修改,以防止錯誤的情況在真實的生產(chǎn)環(huán)境中使用。
五、結(jié)語
該應(yīng)用的開發(fā)能夠輔助傳統(tǒng)的課堂聽力教學(xué),為學(xué)生高效利用零散的時間進(jìn)行聽力練習(xí)提供便捷的平臺,有效促進(jìn)日語學(xué)習(xí)。但是整個實現(xiàn)過程做了一些嘗試,也走了很多彎路,比如Android原生應(yīng)用的優(yōu)點在于使用原生接口,運行效果可以得到保障,但是跨平臺卻難以實現(xiàn),最初設(shè)計應(yīng)該綜合考慮應(yīng)用的移植,例如將該應(yīng)用遷移到微信平臺[6]上,或者使用跨平臺的技術(shù)[7],例如PhoneGap(現(xiàn)Cordova),或者讓W(xué)eb應(yīng)用依賴內(nèi)嵌瀏覽器的方法來達(dá)到兼容IOS和WP的目的,最初的原型設(shè)計就應(yīng)該綜合考慮這些因素。在時間和人力有限的條件下,很難像互聯(lián)網(wǎng)公司一樣針對多個平臺均開發(fā)原生的應(yīng)用,如果較早采取有效的跨平臺方法,可以免去很多后顧之憂。
參考文獻(xiàn):
[1]賈積有.高性價比的便攜式智能電子學(xué)伴及其在傳統(tǒng)教室的應(yīng)用探討[J].中國電化教育, 2012(3):120-126.
[2]劉玉琴,江波,姜國海.移動終端輔助日語發(fā)音學(xué)習(xí)軟件的設(shè)計與實現(xiàn)[J].中小學(xué)電教, 2014(10):68-70.
[3]張寶,陳穎.利用App Inventor制作中小學(xué)安卓平臺學(xué)習(xí)資源實例分析[J].中小學(xué)信息技術(shù)教育,2014(6).
[4]優(yōu)秀Android開源項目集合 [DB/OL].https://github.com/Trinea/android-open-project.
[5]百度百科[EB/OL].http://baike.baidu.com/view/106652.htm.
[6]張志禎.移動學(xué)習(xí)的跨平臺開發(fā)技術(shù)[J].中國教育網(wǎng)絡(luò),2013(6):29-32.
[7]姚壵.基于微信平臺的任務(wù)型對外漢語聽說課教學(xué)初探[R].數(shù)字化漢語教學(xué)(第九屆中文教學(xué)現(xiàn)代化國際研討會),2014.7:313-318.
(編輯:王天鵬)