黃曉玲 趙生慧
(滁州學院計算機與信息工程學院,安徽 滁州 239000)
課程實驗教學是實踐能力培養最核心也是最重要的一種實現方式。因軟件類課程實驗學時受限制等因素[1],實驗內容僅僅依靠在實驗室中無法完成,學生還需花費課下時間重現上次實驗環境繼續完成實驗,導致實驗過程不具有延續性。教師也無法實時的對學生實驗狀況進行監控和指導,只能通過提交的作業和有限的實驗課堂表現進行成績評定,不僅導致學生的成績評定較難保證客觀性[2],還可能出現學生在實驗過程中如有錯誤,教師無法及時發現,從而實驗教學效果不理想。
另一方面,軟件類課程實踐教學環境本身的多樣性和復雜性對環境的搭建、管理和使用也帶來不便。軟件類課程實驗教學環境因課程不同,往往需要建立在多個操作系統平臺,并且在同一個平臺上要安裝和更新大量應用軟件,使得應用環境的搭建復雜而繁瑣。
為了解決上述問題,很有必要改變傳統的實驗教學環境,積極大膽地研究和嘗試新技術在軟件類課程實驗教學中的應用。云計算是最近幾年興起的一種新的網絡計算模式,它能夠根據用戶需求以服務的方式向用戶提供動態彈性可伸縮的資源,它的獨特性在于它是完全建立在可自我維護和管理的虛擬資源層上的[3]。云計算特點為我們構建軟件類課程實驗環境提供了新的途徑[4-7],但同時也提出了新的挑戰。在云計算環境中,傳統實驗教學環境和教學方式不能直接應用,需要根據云計算特點進行重新設計。
綜上所述,本文將運用云計算技術,構建一個軟件類課程實驗教學設計與實施方案,不僅降低軟件類課程實驗環境管理和維護成本,還能更高效的支持學生課后自主活動。
基于云計算的實驗教學環境
軟件類課程實驗教學環境基于開源云平臺OpenStack構建,分為云訪問接入層、應用層、虛擬化層和物理層,如圖1所示。云訪問接入層包括云教學管理平臺和OpenStack API。學生可以通過Web界面和VNC訪問云分配給用戶的資源,云平臺管理人員可以使用Web界面或直接調用OpenStack API的形式統一對云教學平臺進行管理。應用層包括教學過程跟蹤服務,教學監控服務,實際過程和結果存儲服務,及常用操作系統和實驗教學軟件。其中教學過程跟蹤服務、教學監控服務用于記錄學生訪問虛擬機的日志信息;基于HDFS(Hadoop Distributed File System)存儲學生提交的作業和學生日志信息分析結果,以及教師錄入的學生成績;基于OpenStack Swift存儲常用的含操作系統和實驗教學軟件的鏡像文件及相關資源教學資源庫,實現實驗過程和結果存儲服務。虛擬化層主要是通過開源云平臺OpenStack提供的 IaaS(Infrastructure as a Service),虛擬出動態靈活的 VM(Virtual Machine),該層為應用層提供資源。物理層主要是物理機器資源,包括CPU、存儲、內存等,該層為虛擬化層提供基礎性資源。模型實現環境主要基于OpenStack構建由20臺服務器組成的云計算平臺,Hadoop搭建在云平臺提供的VM中,采用MapReduce并行計算模型對虛擬機日志信息進行分析,從而實現實現教學監控功能。

圖1 基于云計算的實驗教學環境模型
本實驗數據來自于學生訪問虛擬機日志信息、教師評價信息以及OpenStack提供的虛擬機的日志信息,Hadoop提交的分析實驗過程和結果監控、Hypervisor。實驗所使用日志為2013年2月25日至6月16日的三個月內的所有查詢。以軟件類課程中的軟件課程實驗為例。目前的軟件工程實驗課程普遍采用團隊開發方式進行訓練,即在一個學期內,5-6人一組進行軟件項目的協同開發。
通過記錄94名學生訪問VM時間,可以發現學生行為。如圖2所示是學生訪問云實驗平臺的時間分布。 實驗從晚上 18:00-23:30,我們可以發現從晚上7:00訪問頻度增加,到9:40左右到達頂峰。這符合學生晚上使用網絡習慣。

圖2 學生訪問VM時間分析
基于Hadoop對虛擬機監控日志分析結果,可以獲得每個學生每天運行虛擬機的情況。圖3是以一個實驗班級30人為例,學生訪問頻度情況,多數學生對團隊項目參與度是階段性提高的。

圖3 項目訪問頻度分析
軟件工程實驗包括:項目計劃文檔、需求分析、項目設計、項目編碼及測試,實驗以設計型和綜合型為主,基于Hadoop的日志結果,如表1所示。

表1 軟件工程實驗日志分析結果
通過表1數據表明,項目計劃階段,學生參與度較低,還不能很好全局的規劃整個項目,項目只能依賴教師給出的文檔模板及相關資料撰寫文檔,所以時間、人員及人員任務安排不能符合真實情況。實際的實驗中,指導教師與各組進行計劃討論,幫助各組合理分配任務。
各個項目組在后期又重新調整進度安排,修改項目計劃。
項目需求分析階段實驗內容主要結合建模工具,構建不同角度的系統模型,以技術為主,實驗內容具體,學生較感興趣。因此與項目計劃階段,訪問頻度高出近40%,效果相對較好。從實驗文檔質量來看,多數組是以整個系統為單位進行系統建模,圖較復雜,文字描述不清。實際的實驗中,指導教師與各組進行需求分析討論,幫助各組劃分系統子功能。建議各組按照子功能進行系統建模,以減少模型的復雜度。
項目設計階段實驗參與度較高,組員之間協作緊密,整體完成較好,分析原因如下:
(1)學生在項目計劃及需求分析文檔后,對如何寫文檔有一定的認識;
(2)學生各自負責將前期需求階段成果映射成設計階段成果,任務較具體,加深學生理解需求建模的意義。
項目編碼階段雖參與度較高,但實驗效果不理想。因項目編碼與項目測試之間的實驗間隔較短,多數學生無法完成任務;另外部分學生編程能力較薄弱,導致前期分析和設計之后無法完成編碼。擬今后教學中加大項目編碼和項目測試實驗的間隔時間,讓學生在課余時間完成此部分工作。
因編碼階段的延遲交付,學生加快項目進度,導致日志顯示項目測試階段學生的參與度較高。總體來說:多數學生能參與項目,但是有5%的學生未參與項目,這都是傳統實驗中無法發現。
傳統的實驗教學環境不能很好地支持學生課后自主學習,教師無法對學生實驗過程信息進行監控,對實驗過程中出現的問題,不能及時發現并解決。本文基于云計算進行軟件類實驗教學平臺的構建和應用,通過基于Hadoop平臺的日志分析結果,不僅可以分析學生實驗行為,為教師更好的改進實驗教學,還可以為教師提供較為客觀的實驗成績評定標準。后期的工作將平臺擴展,做一個較為通用的實驗教學平臺。
[1] 黃芳,任勝兵,劉高嵩.基于項目實踐的軟件工程本科課程教學模式探討[J].湖南社會科學,2009,(5):174-176.
[2] 曾紅衛,劉悅,劉煒.軟件工程實踐教學方法探索[J].計算機工程與科學,2011,(33):15-18.
[3] Armbrust M.Above the Clouds:A Berkeley View of Cloud Computing[R].Berkeley,USA:Electrical Engineering and Computer Sciences University of California,Tech.Rep.:UCB/EECS-2009-28,2009.
[4] Armando Fox.Cloud computing in education[EB/OL]http://inews.berkeley.edu/articles/Spring2009/cloud-computing,2009-03-17.
[5] 劉中宇,劉素娥.基于云計算的多媒體教學環境設計[J].現代教育技術,2013,(2):43-46
[6] P.Holden,W.Kang.database in t he cloud:a work in progress[C].Proceedings of the 10th ACM conference on SIG information technology education,2009-10-05.
[7] 黃曉玲,趙生慧.面向云計算的實驗教學平臺的研究和設計[J].滁州學院學報,2011,(2):90-93.