熊照雷, 閆慧澤, 孫 立, 茹柯耶
(南京航空航天大學 a.理學院; b.機電學院,江蘇 南京 211100)
基于Linux kernel的Android操作系統在出現不久便以開放性和可移植性贏得眾多移動終端廠商青睞,經過精心設計其安全性也能在開發人員的有效掌握之內,多樣化的應用軟件構成了愈趨完備的生態體系[1-4]。由于搭載Android系統的移動設備普遍較為低廉但實用,使得其學生群體中占到足夠高的比重.通過對普通高等學校大學生手機使用及其習慣的調查,觀察到大學生的日常生活與手機的聯系愈加密切[5]。在這樣的一個現狀下可以很清楚地看到手持移動平臺在高校教育教學中的應用前景。
本系統是基于Android操作系統的數據處理移動平臺,通過手機進入平臺選擇不同的實驗,前期進行實驗指導,后期處理和分析繁雜的實驗數據,并且對于數據結果進行有效性檢驗、數值分析以及數據錯誤校驗等反饋。
搭建本系統的目的在于能夠協助需要實驗數據處理的學生以及教師進行便攜、快捷、高效的數據處理和分析,并利用分析結果對于實驗操作進行評價、核準以及改進。同時,可以節省學校大量的實驗用計算機所占機房面積以及這些計算機的高額管理與維護費用,大大降低實驗教學成本。平臺的目標受眾為全體承擔實驗教學任務的教師和參與實驗的廣大學生。
背景1:大學實驗作為學生群體實踐大學課本知識,接觸知識于現實應用的主要窗口是每一個學生都要參與的必修實驗課程。所有實驗數據都必須控制在一定的誤差內才算有效操作,在這個過程中可考察學生的實驗操作技巧和實驗數據的處理[6]。因此對于數據處理算法的選擇是極為關鍵的核心問題。
背景2:由于數據異常敏感,又因為對于運算結果高精度的要求,使得國內絕大多數高校仍舊使用傳統的固定機房來處理實驗數據[6]。除了初期購置臺式電腦和數據處理專業軟件的高額費用之外,日常的管理與維護,軟件的升級與維護更是一筆不小的費用,且臺式電腦大面積占用實驗室空間,壓縮了本就十分寶貴的使用空間資源。同時學生還需要在不同的實驗室操作實驗和處理數據,這也導致了在教學管理上保證實驗教學效率與效果的難度。隨著近年來互聯移動平臺的飛速發展,移動設備的軟件開發成為解決上述問題的有效突破口。
背景3:實驗數據處理中常常利用數值分析(數值逼近,數值代數)的方法來處理實驗數據,并得到數值解[6-8]。學生憑借這個結果進行實驗正確性或者實驗理論的驗證。大學實驗數據處理的計算量級大概在萬級,極少有十萬級計算量級的實驗數據處理過程,而如今一般智能手機的計算能力能夠達到浮點運算在千萬量級每秒。這為智能手機成為大學實驗數據處理平臺提供了有利的物理基礎。
本軟件最終用戶為參與實驗的教師和大學生。此軟件友好的交互操作,快捷簡便,由于學生有智能型手機并操作熟練,所以推廣以及使用很方便。軟件預期使用頻度為20~25集群次/周,僅在特定實驗教學中使用。
實驗數據處理需要足夠可信度與準確度,所以在實驗數據處理時需要用盡量精確的算法,提高精度準確度,保證百分百的正確性,有誤差的地方也應有誤差范圍的提示說明。
3.3.1功能分析
在進行需求分析時,常用現已成熟的統一建模語言(Unified Model Language,UML)來刻畫軟件用戶的需求,建立UML圖形所需信息由軟件用戶討論并確認[4,9-10]。如圖1與圖2所示,UML圖形的建立有助于開發者和用戶直觀地了解到有關需求的信息,并可以及時地反映最新的需求,方便各種修改。

圖1 UML用例圖

圖2 UML活動圖
學生主要使用手機客戶端,用本系統進行實驗數據輸入/修改/計算,并將數據處理結果發送到電腦客戶端。因此,系統具備的功能:① 通過學號登陸,教師的打分記錄會和學號關聯進行保存;② 實驗內容/步驟的說明;③ 實驗數據的輸入/修改功能;④ 實驗數據處理,得到計算結果;⑤ 數據提交,提交至電腦客戶端。
教師使用電腦客戶端接收并審查學生實驗結果數據,給出評分并保存評分。
用例名稱:實驗數據錄入與處理。
用例標識號:001。
參與者:參與實驗學生。
簡要說明:學生在實驗室進行實驗以后記錄數據,將數據錄入處理系統,若實驗數據無誤并在誤差允許范圍之內則顯示出相關分析結果至移動終端。
前置條件:學生已經登錄到實驗數據綜合處理系統。
基本事件流:① 學生點擊進入登錄界面。② 學生輸入登錄學號和密碼。③ 學生選擇當前實驗模式。④ 學生輸入已經得到的實驗數據。⑤ 學生在數據輸入完后點擊確認按鈕。⑥ 學生得到實驗最終分析結果及相關操作重要參數。
其他時間流:① 在學生提交之前都可以按返回按鈕或者更正按鈕修改實驗數據。② 實驗數據誤差過大則會被要求重做實驗得到新的實驗數據再次輸入。
異常事件流:① 提示錯誤信息,學生確認,回滾程序。②返回到系統主頁面。
后置條件:系統返回實驗數據分析結果以及學生實驗時間和操作參數提示等。
注釋:暫無。
在軟件開發過程中為了能夠層次化的劃分系統結構,提煉出系統中各司其職相對獨立而又互相提供服務的功能塊,常常采用數據流圖Data Flow Diagram(DFD)來表示[4,10],如圖3與圖4所示。

圖3 0層DFD圖

圖4 1層DFD圖
3.3.2性能分析
(1) 精度。計算過程需保證0.000 01精度[11]。用戶輸入了錯誤的數據類型參數,系統將自動提示用戶再次輸入正確的數據。輸入多組數據若含錯誤數據時應可以具備檢錯功能,選取正確數據計算。
(2) 時間特性要求。數據處理模塊的計算過程要求在100 ms內完成。
(3) 靈活性。①由于實驗種類較多,一次性開發不會完整,需要預留接口便于添加新的實驗。②程序和頁面要分開,頁面方面可能會需要進行多次改動,注意數據的存儲。③計劃的變化或改進,不影響項目的按時實現[12,14-15]。
(4) 輸入輸出要求。①學號輸入。學號為string類型,輸入在EditText中,要有相應檢測合法性。②具體實例如牛頓環實驗輸入,10個環的10個左讀數與10個右讀數,輸入在EditText中,數據類型為double。輸入應合法;范圍在double表示范圍內,精度需0.001 mm。③具體實例如牛頓環實驗輸出:環序為int型,分別輸出10個環的環序;左讀數,右讀數,double型,0.001 mm精度,輸出輸入的相應數據;r為double型,0.001 mm精度,輸出環半徑;R2為double型,0.001 mm精度,輸出環半徑的平方。
(1) 系統環境的表示,如圖5所示。

圖5 系統環境的表示
(2) 將體系結構精化為構件,如圖6所示。
(3) 描述系統實例,如圖7所示。

圖6 初步構件精化圖

圖7 構件細化的數據處理系統功能實例
以牛頓環實驗為例,如表1所示。

表1 牛頓環實驗
以上步驟完成系統結構的構件級設計,接下來將針對每一個構件級進行逐步精化,使其成為由原子功能函數組成的抽象類。在這一級別的設計中一定要注意原子功能的功能劃分,盡量降低函數功能間的耦合程度,耦合程度太高極易導致程序冗余,后期維護開銷大、以及功能拓展困難。因此,建立功能性高度內聚的原子功能是抽象和模塊化的關鍵步驟。檢測原子功能是否內聚獨立的方式之一就是嘗試在體系中進行單元測試,例如版權聲明模塊CpyRNotice,其具有函數LoadingView(context context),外部主程序接口Main(),由于其本身就是原子功能函數,所以也就沒有測試所需要的樁程序。在測試中所需要的外部原子函數越少,接口越簡單,信息越單一就表示原子函數的高內聚性[4,9-10,13]。同樣,對于所有函數進行單元測試來避免高耦合的結構出現時必須進行的一步重要工作。對于原子功能的結構測試結束后仍然需要將同一個模塊的不同原子功能組合起來,配備好相應主程序以及樁程序進行組合功能檢測。舉例表達部分功能精化設計:CpyRNotice, ExpSolve。如圖8與圖9所示。

圖8 精化的版權聲明模塊

圖9 實驗數據處理模塊
以牛頓環實驗的算法為例:
設第m條暗條紋的干涉級別為(m+j)

此外通過其他算法,如逐差法計算可得:
逐差法(沒有經過加權平均處理)
R=(871.5±5.2)mm
逐差法(經過加權平均處理)
R=(868±2)mm
線性回歸
R=(870±2)mm
由數據處理理論可知,線性回歸法適于處理非等精度測量數據,逐差法適合處理等精度測量數據,而加權平均雖有效果,其過程卻很麻煩[7-8]。綜上所述,最終選用了線性回歸(最小二乘法)方法。
本系統在開發完成后,經過了上千人次的高密度實際測試與使用,各項功能與技術性能達到設計要求,教學效果良好。不僅節省了實驗教學資金和實驗場地,也為教師提供了方便的實驗教學管理方式,更為學生提供了高效便捷的數據處理分析以及驗證的方法。當然,本系統只是將注意力轉入移動設備學習平臺建立的第一步,這一步看到了從學生到學校各個層面對于移動服務平臺的需求,有利于引導學生建立對于移動設備的良性依賴。針對實際使用后反饋回來的測試數據,再進行高頻率的增量開發,短時間內進行多次交付部署,將改進后的版本投入使用,并繼續接受測試數據反饋。再下一步將完善本系統,將更多地精力投入在建立校園移動平臺,擴大功能面和服務面。
[1] 焦文華. 基于Android的移動互聯網應用的研究和實現[D].北京:北京郵電大學,2013.
[2] 岳傳真. Android系統移植和應用程序開發[D].上海:復旦大學,2010.
[3] 丁麗萍. Android操作系統的安全性分析[J]. 信息網絡安全,2012(3):28-31,41.
DING Li-Ping. Analysis the Security of Android[J].Netinfo Security,2012(3):28-31,41.
[4] 公 磊,周 聰. 基于Android的移動終端應用程序開發與研究[J]. 計算機與現代化,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] 鄭曉娜,辛 斌.在校大學生手機依賴調查報告-沈陽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] 王艷萍. 物理實驗數據處理系統的開發與應用[D].杭州師范大學,2011.
[7] 滕 堅.牛頓環實驗數據處理方法分析[J].物理通報,2006(6):34-36.
TENG Jian. Newton’s rings experiment data processing method of analysis[J]. Physics Bulletin, 2006(6): 34-36.
[8] 滕 堅,徐軍華. 牛頓環實驗數據處理的最佳方法[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] 張友生,李 雄. 軟件開發模型研究綜述[J]. 計算機工程與應用,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].北京:機械工業出版社,2007.
[11] 林永軍.Android課程實驗教學系統的研究與設計[D].北京:北京郵電大學,2012.
[12] Shane Condor,Lauren Decry. Android移動應用開發從入門到精通[M].北京:人民郵電出版社,2010.
[13] 左媛媛. 人機交互設計在手機產品上的應用研究[D].青島:青島理工大學,2012.
[14] 郭宏志.Android應用開發詳解[M].北京:電子工業出版社,2010.
[15] 伯內特,田俊靜.Android基礎教程[M].3版.北京:人民郵電出版社,2010.