熊照雷, 閆慧澤, 孫 立, 茹柯耶
(南京航空航天大學 a.理學院; b.機電學院,江蘇 南京 211100)
基于Linux kernel的Android操作系統(tǒng)在出現(xiàn)不久便以開放性和可移植性贏得眾多移動終端廠商青睞,經(jīng)過精心設(shè)計其安全性也能在開發(fā)人員的有效掌握之內(nèi),多樣化的應(yīng)用軟件構(gòu)成了愈趨完備的生態(tài)體系[1-4]。由于搭載Android系統(tǒng)的移動設(shè)備普遍較為低廉但實用,使得其學生群體中占到足夠高的比重.通過對普通高等學校大學生手機使用及其習慣的調(diào)查,觀察到大學生的日常生活與手機的聯(lián)系愈加密切[5]。在這樣的一個現(xiàn)狀下可以很清楚地看到手持移動平臺在高校教育教學中的應(yīng)用前景。
本系統(tǒng)是基于Android操作系統(tǒng)的數(shù)據(jù)處理移動平臺,通過手機進入平臺選擇不同的實驗,前期進行實驗指導,后期處理和分析繁雜的實驗數(shù)據(jù),并且對于數(shù)據(jù)結(jié)果進行有效性檢驗、數(shù)值分析以及數(shù)據(jù)錯誤校驗等反饋。
搭建本系統(tǒng)的目的在于能夠協(xié)助需要實驗數(shù)據(jù)處理的學生以及教師進行便攜、快捷、高效的數(shù)據(jù)處理和分析,并利用分析結(jié)果對于實驗操作進行評價、核準以及改進。同時,可以節(jié)省學校大量的實驗用計算機所占機房面積以及這些計算機的高額管理與維護費用,大大降低實驗教學成本。平臺的目標受眾為全體承擔實驗教學任務(wù)的教師和參與實驗的廣大學生。
背景1:大學實驗作為學生群體實踐大學課本知識,接觸知識于現(xiàn)實應(yīng)用的主要窗口是每一個學生都要參與的必修實驗課程。所有實驗數(shù)據(jù)都必須控制在一定的誤差內(nèi)才算有效操作,在這個過程中可考察學生的實驗操作技巧和實驗數(shù)據(jù)的處理[6]。因此對于數(shù)據(jù)處理算法的選擇是極為關(guān)鍵的核心問題。
背景2:由于數(shù)據(jù)異常敏感,又因為對于運算結(jié)果高精度的要求,使得國內(nèi)絕大多數(shù)高校仍舊使用傳統(tǒng)的固定機房來處理實驗數(shù)據(jù)[6]。除了初期購置臺式電腦和數(shù)據(jù)處理專業(yè)軟件的高額費用之外,日常的管理與維護,軟件的升級與維護更是一筆不小的費用,且臺式電腦大面積占用實驗室空間,壓縮了本就十分寶貴的使用空間資源。同時學生還需要在不同的實驗室操作實驗和處理數(shù)據(jù),這也導致了在教學管理上保證實驗教學效率與效果的難度。隨著近年來互聯(lián)移動平臺的飛速發(fā)展,移動設(shè)備的軟件開發(fā)成為解決上述問題的有效突破口。
背景3:實驗數(shù)據(jù)處理中常常利用數(shù)值分析(數(shù)值逼近,數(shù)值代數(shù))的方法來處理實驗數(shù)據(jù),并得到數(shù)值解[6-8]。學生憑借這個結(jié)果進行實驗正確性或者實驗理論的驗證。大學實驗數(shù)據(jù)處理的計算量級大概在萬級,極少有十萬級計算量級的實驗數(shù)據(jù)處理過程,而如今一般智能手機的計算能力能夠達到浮點運算在千萬量級每秒。這為智能手機成為大學實驗數(shù)據(jù)處理平臺提供了有利的物理基礎(chǔ)。
本軟件最終用戶為參與實驗的教師和大學生。此軟件友好的交互操作,快捷簡便,由于學生有智能型手機并操作熟練,所以推廣以及使用很方便。軟件預(yù)期使用頻度為20~25集群次/周,僅在特定實驗教學中使用。
實驗數(shù)據(jù)處理需要足夠可信度與準確度,所以在實驗數(shù)據(jù)處理時需要用盡量精確的算法,提高精度準確度,保證百分百的正確性,有誤差的地方也應(yīng)有誤差范圍的提示說明。
3.3.1功能分析
在進行需求分析時,常用現(xiàn)已成熟的統(tǒng)一建模語言(Unified Model Language,UML)來刻畫軟件用戶的需求,建立UML圖形所需信息由軟件用戶討論并確認[4,9-10]。如圖1與圖2所示,UML圖形的建立有助于開發(fā)者和用戶直觀地了解到有關(guān)需求的信息,并可以及時地反映最新的需求,方便各種修改。
圖1 UML用例圖
圖2 UML活動圖
學生主要使用手機客戶端,用本系統(tǒng)進行實驗數(shù)據(jù)輸入/修改/計算,并將數(shù)據(jù)處理結(jié)果發(fā)送到電腦客戶端。因此,系統(tǒng)具備的功能:① 通過學號登陸,教師的打分記錄會和學號關(guān)聯(lián)進行保存;② 實驗內(nèi)容/步驟的說明;③ 實驗數(shù)據(jù)的輸入/修改功能;④ 實驗數(shù)據(jù)處理,得到計算結(jié)果;⑤ 數(shù)據(jù)提交,提交至電腦客戶端。
教師使用電腦客戶端接收并審查學生實驗結(jié)果數(shù)據(jù),給出評分并保存評分。
用例名稱:實驗數(shù)據(jù)錄入與處理。
用例標識號:001。
參與者:參與實驗學生。
簡要說明:學生在實驗室進行實驗以后記錄數(shù)據(jù),將數(shù)據(jù)錄入處理系統(tǒng),若實驗數(shù)據(jù)無誤并在誤差允許范圍之內(nèi)則顯示出相關(guān)分析結(jié)果至移動終端。
前置條件:學生已經(jīng)登錄到實驗數(shù)據(jù)綜合處理系統(tǒng)。
基本事件流:① 學生點擊進入登錄界面。② 學生輸入登錄學號和密碼。③ 學生選擇當前實驗?zāi)J健"?學生輸入已經(jīng)得到的實驗數(shù)據(jù)。⑤ 學生在數(shù)據(jù)輸入完后點擊確認按鈕。⑥ 學生得到實驗最終分析結(jié)果及相關(guān)操作重要參數(shù)。
其他時間流:① 在學生提交之前都可以按返回按鈕或者更正按鈕修改實驗數(shù)據(jù)。② 實驗數(shù)據(jù)誤差過大則會被要求重做實驗得到新的實驗數(shù)據(jù)再次輸入。
異常事件流:① 提示錯誤信息,學生確認,回滾程序。②返回到系統(tǒng)主頁面。
后置條件:系統(tǒng)返回實驗數(shù)據(jù)分析結(jié)果以及學生實驗時間和操作參數(shù)提示等。
注釋:暫無。
在軟件開發(fā)過程中為了能夠?qū)哟位膭澐窒到y(tǒng)結(jié)構(gòu),提煉出系統(tǒng)中各司其職相對獨立而又互相提供服務(wù)的功能塊,常常采用數(shù)據(jù)流圖Data Flow Diagram(DFD)來表示[4,10],如圖3與圖4所示。
圖3 0層DFD圖
圖4 1層DFD圖
3.3.2性能分析
(1) 精度。計算過程需保證0.000 01精度[11]。用戶輸入了錯誤的數(shù)據(jù)類型參數(shù),系統(tǒng)將自動提示用戶再次輸入正確的數(shù)據(jù)。輸入多組數(shù)據(jù)若含錯誤數(shù)據(jù)時應(yīng)可以具備檢錯功能,選取正確數(shù)據(jù)計算。
(2) 時間特性要求。數(shù)據(jù)處理模塊的計算過程要求在100 ms內(nèi)完成。
(3) 靈活性。①由于實驗種類較多,一次性開發(fā)不會完整,需要預(yù)留接口便于添加新的實驗。②程序和頁面要分開,頁面方面可能會需要進行多次改動,注意數(shù)據(jù)的存儲。③計劃的變化或改進,不影響項目的按時實現(xiàn)[12,14-15]。
(4) 輸入輸出要求。①學號輸入。學號為string類型,輸入在EditText中,要有相應(yīng)檢測合法性。②具體實例如牛頓環(huán)實驗輸入,10個環(huán)的10個左讀數(shù)與10個右讀數(shù),輸入在EditText中,數(shù)據(jù)類型為double。輸入應(yīng)合法;范圍在double表示范圍內(nèi),精度需0.001 mm。③具體實例如牛頓環(huán)實驗輸出:環(huán)序為int型,分別輸出10個環(huán)的環(huán)序;左讀數(shù),右讀數(shù),double型,0.001 mm精度,輸出輸入的相應(yīng)數(shù)據(jù);r為double型,0.001 mm精度,輸出環(huán)半徑;R2為double型,0.001 mm精度,輸出環(huán)半徑的平方。
(1) 系統(tǒng)環(huán)境的表示,如圖5所示。
圖5 系統(tǒng)環(huán)境的表示
(2) 將體系結(jié)構(gòu)精化為構(gòu)件,如圖6所示。
(3) 描述系統(tǒng)實例,如圖7所示。
圖6 初步構(gòu)件精化圖
圖7 構(gòu)件細化的數(shù)據(jù)處理系統(tǒng)功能實例
以牛頓環(huán)實驗為例,如表1所示。
表1 牛頓環(huán)實驗
以上步驟完成系統(tǒng)結(jié)構(gòu)的構(gòu)件級設(shè)計,接下來將針對每一個構(gòu)件級進行逐步精化,使其成為由原子功能函數(shù)組成的抽象類。在這一級別的設(shè)計中一定要注意原子功能的功能劃分,盡量降低函數(shù)功能間的耦合程度,耦合程度太高極易導致程序冗余,后期維護開銷大、以及功能拓展困難。因此,建立功能性高度內(nèi)聚的原子功能是抽象和模塊化的關(guān)鍵步驟。檢測原子功能是否內(nèi)聚獨立的方式之一就是嘗試在體系中進行單元測試,例如版權(quán)聲明模塊CpyRNotice,其具有函數(shù)LoadingView(context context),外部主程序接口Main(),由于其本身就是原子功能函數(shù),所以也就沒有測試所需要的樁程序。在測試中所需要的外部原子函數(shù)越少,接口越簡單,信息越單一就表示原子函數(shù)的高內(nèi)聚性[4,9-10,13]。同樣,對于所有函數(shù)進行單元測試來避免高耦合的結(jié)構(gòu)出現(xiàn)時必須進行的一步重要工作。對于原子功能的結(jié)構(gòu)測試結(jié)束后仍然需要將同一個模塊的不同原子功能組合起來,配備好相應(yīng)主程序以及樁程序進行組合功能檢測。舉例表達部分功能精化設(shè)計:CpyRNotice, ExpSolve。如圖8與圖9所示。
圖8 精化的版權(quán)聲明模塊
圖9 實驗數(shù)據(jù)處理模塊
以牛頓環(huán)實驗的算法為例:
設(shè)第m條暗條紋的干涉級別為(m+j)
此外通過其他算法,如逐差法計算可得:
逐差法(沒有經(jīng)過加權(quán)平均處理)
R=(871.5±5.2)mm
逐差法(經(jīng)過加權(quán)平均處理)
R=(868±2)mm
線性回歸
R=(870±2)mm
由數(shù)據(jù)處理理論可知,線性回歸法適于處理非等精度測量數(shù)據(jù),逐差法適合處理等精度測量數(shù)據(jù),而加權(quán)平均雖有效果,其過程卻很麻煩[7-8]。綜上所述,最終選用了線性回歸(最小二乘法)方法。
本系統(tǒng)在開發(fā)完成后,經(jīng)過了上千人次的高密度實際測試與使用,各項功能與技術(shù)性能達到設(shè)計要求,教學效果良好。不僅節(jié)省了實驗教學資金和實驗場地,也為教師提供了方便的實驗教學管理方式,更為學生提供了高效便捷的數(shù)據(jù)處理分析以及驗證的方法。當然,本系統(tǒng)只是將注意力轉(zhuǎn)入移動設(shè)備學習平臺建立的第一步,這一步看到了從學生到學校各個層面對于移動服務(wù)平臺的需求,有利于引導學生建立對于移動設(shè)備的良性依賴。針對實際使用后反饋回來的測試數(shù)據(jù),再進行高頻率的增量開發(fā),短時間內(nèi)進行多次交付部署,將改進后的版本投入使用,并繼續(xù)接受測試數(shù)據(jù)反饋。再下一步將完善本系統(tǒng),將更多地精力投入在建立校園移動平臺,擴大功能面和服務(wù)面。
[1] 焦文華. 基于Android的移動互聯(lián)網(wǎng)應(yīng)用的研究和實現(xiàn)[D].北京:北京郵電大學,2013.
[2] 岳傳真. Android系統(tǒng)移植和應(yīng)用程序開發(fā)[D].上海:復旦大學,2010.
[3] 丁麗萍. Android操作系統(tǒng)的安全性分析[J]. 信息網(wǎng)絡(luò)安全,2012(3):28-31,41.
DING Li-Ping. Analysis the Security of Android[J].Netinfo Security,2012(3):28-31,41.
[4] 公 磊,周 聰. 基于Android的移動終端應(yīng)用程序開發(fā)與研究[J]. 計算機與現(xiàn)代化,2008(8):85-89.
GONG Lei,ZHOU Cong. Development and Research of Mobile Termination Application Based on Android[J]. Computer and Modernization,2008(8):85-89.
[5] 鄭曉娜,辛 斌.在校大學生手機依賴調(diào)查報告-沈陽5所學校為例[J].沈陽航空航天大學學報,2012, 29(6):73-76.
ZHENG Xiao-na,XIN Bin. Survey report of dependence of college students on mobile phones-talking five schools in Shenyang as an example[J]. Journey of Shenyang Institute of Aeronautical Engineering,2012,29(6):73-76.
[6] 王艷萍. 物理實驗數(shù)據(jù)處理系統(tǒng)的開發(fā)與應(yīng)用[D].杭州師范大學,2011.
[7] 滕 堅.牛頓環(huán)實驗數(shù)據(jù)處理方法分析[J].物理通報,2006(6):34-36.
TENG Jian. Newton’s rings experiment data processing method of analysis[J]. Physics Bulletin, 2006(6): 34-36.
[8] 滕 堅,徐軍華. 牛頓環(huán)實驗數(shù)據(jù)處理的最佳方法[J].西安郵電學院學報,2006(2):129-130.
TENG Jian,XU Jun-hua. The optimum method of data processing for Newton’s ring experiment[J]. Journey of Xi’an Institute of Posts and Telecommunications,2006(2):129-130.
[9] 張友生,李 雄. 軟件開發(fā)模型研究綜述[J]. 計算機工程與應(yīng)用,2006(3):109-115.
ZHANG You-sheng,LI Xiong. Software Development Models:a Survey[J]. Computer Engineering and Applications,2006(3):109-115.
[10] Pressman R S,普雷斯曼,人 杰,等.軟件工程:實踐者的研究方法[M].北京:機械工業(yè)出版社,2007.
[11] 林永軍.Android課程實驗教學系統(tǒng)的研究與設(shè)計[D].北京:北京郵電大學,2012.
[12] Shane Condor,Lauren Decry. Android移動應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2010.
[13] 左媛媛. 人機交互設(shè)計在手機產(chǎn)品上的應(yīng)用研究[D].青島:青島理工大學,2012.
[14] 郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[15] 伯內(nèi)特,田俊靜.Android基礎(chǔ)教程[M].3版.北京:人民郵電出版社,2010.