黃曉玲 趙生慧
(滁州學(xué)院計(jì)算機(jī)與信息工程學(xué)院,安徽 滁州 239000)
課程實(shí)驗(yàn)教學(xué)是實(shí)踐能力培養(yǎng)最核心也是最重要的一種實(shí)現(xiàn)方式。因軟件類課程實(shí)驗(yàn)學(xué)時(shí)受限制等因素[1],實(shí)驗(yàn)內(nèi)容僅僅依靠在實(shí)驗(yàn)室中無法完成,學(xué)生還需花費(fèi)課下時(shí)間重現(xiàn)上次實(shí)驗(yàn)環(huán)境繼續(xù)完成實(shí)驗(yàn),導(dǎo)致實(shí)驗(yàn)過程不具有延續(xù)性。教師也無法實(shí)時(shí)的對(duì)學(xué)生實(shí)驗(yàn)狀況進(jìn)行監(jiān)控和指導(dǎo),只能通過提交的作業(yè)和有限的實(shí)驗(yàn)課堂表現(xiàn)進(jìn)行成績評(píng)定,不僅導(dǎo)致學(xué)生的成績評(píng)定較難保證客觀性[2],還可能出現(xiàn)學(xué)生在實(shí)驗(yàn)過程中如有錯(cuò)誤,教師無法及時(shí)發(fā)現(xiàn),從而實(shí)驗(yàn)教學(xué)效果不理想。
另一方面,軟件類課程實(shí)踐教學(xué)環(huán)境本身的多樣性和復(fù)雜性對(duì)環(huán)境的搭建、管理和使用也帶來不便。軟件類課程實(shí)驗(yàn)教學(xué)環(huán)境因課程不同,往往需要建立在多個(gè)操作系統(tǒng)平臺(tái),并且在同一個(gè)平臺(tái)上要安裝和更新大量應(yīng)用軟件,使得應(yīng)用環(huán)境的搭建復(fù)雜而繁瑣。
為了解決上述問題,很有必要改變傳統(tǒng)的實(shí)驗(yàn)教學(xué)環(huán)境,積極大膽地研究和嘗試新技術(shù)在軟件類課程實(shí)驗(yàn)教學(xué)中的應(yīng)用。云計(jì)算是最近幾年興起的一種新的網(wǎng)絡(luò)計(jì)算模式,它能夠根據(jù)用戶需求以服務(wù)的方式向用戶提供動(dòng)態(tài)彈性可伸縮的資源,它的獨(dú)特性在于它是完全建立在可自我維護(hù)和管理的虛擬資源層上的[3]。云計(jì)算特點(diǎn)為我們構(gòu)建軟件類課程實(shí)驗(yàn)環(huán)境提供了新的途徑[4-7],但同時(shí)也提出了新的挑戰(zhàn)。在云計(jì)算環(huán)境中,傳統(tǒng)實(shí)驗(yàn)教學(xué)環(huán)境和教學(xué)方式不能直接應(yīng)用,需要根據(jù)云計(jì)算特點(diǎn)進(jìn)行重新設(shè)計(jì)。
綜上所述,本文將運(yùn)用云計(jì)算技術(shù),構(gòu)建一個(gè)軟件類課程實(shí)驗(yàn)教學(xué)設(shè)計(jì)與實(shí)施方案,不僅降低軟件類課程實(shí)驗(yàn)環(huán)境管理和維護(hù)成本,還能更高效的支持學(xué)生課后自主活動(dòng)。
基于云計(jì)算的實(shí)驗(yàn)教學(xué)環(huán)境
軟件類課程實(shí)驗(yàn)教學(xué)環(huán)境基于開源云平臺(tái)OpenStack構(gòu)建,分為云訪問接入層、應(yīng)用層、虛擬化層和物理層,如圖1所示。云訪問接入層包括云教學(xué)管理平臺(tái)和OpenStack API。學(xué)生可以通過Web界面和VNC訪問云分配給用戶的資源,云平臺(tái)管理人員可以使用Web界面或直接調(diào)用OpenStack API的形式統(tǒng)一對(duì)云教學(xué)平臺(tái)進(jìn)行管理。應(yīng)用層包括教學(xué)過程跟蹤服務(wù),教學(xué)監(jiān)控服務(wù),實(shí)際過程和結(jié)果存儲(chǔ)服務(wù),及常用操作系統(tǒng)和實(shí)驗(yàn)教學(xué)軟件。其中教學(xué)過程跟蹤服務(wù)、教學(xué)監(jiān)控服務(wù)用于記錄學(xué)生訪問虛擬機(jī)的日志信息;基于HDFS(Hadoop Distributed File System)存儲(chǔ)學(xué)生提交的作業(yè)和學(xué)生日志信息分析結(jié)果,以及教師錄入的學(xué)生成績;基于OpenStack Swift存儲(chǔ)常用的含操作系統(tǒng)和實(shí)驗(yàn)教學(xué)軟件的鏡像文件及相關(guān)資源教學(xué)資源庫,實(shí)現(xiàn)實(shí)驗(yàn)過程和結(jié)果存儲(chǔ)服務(wù)。虛擬化層主要是通過開源云平臺(tái)OpenStack提供的 IaaS(Infrastructure as a Service),虛擬出動(dòng)態(tài)靈活的 VM(Virtual Machine),該層為應(yīng)用層提供資源。物理層主要是物理機(jī)器資源,包括CPU、存儲(chǔ)、內(nèi)存等,該層為虛擬化層提供基礎(chǔ)性資源。模型實(shí)現(xiàn)環(huán)境主要基于OpenStack構(gòu)建由20臺(tái)服務(wù)器組成的云計(jì)算平臺(tái),Hadoop搭建在云平臺(tái)提供的VM中,采用MapReduce并行計(jì)算模型對(duì)虛擬機(jī)日志信息進(jìn)行分析,從而實(shí)現(xiàn)實(shí)現(xiàn)教學(xué)監(jiān)控功能。
圖1 基于云計(jì)算的實(shí)驗(yàn)教學(xué)環(huán)境模型
本實(shí)驗(yàn)數(shù)據(jù)來自于學(xué)生訪問虛擬機(jī)日志信息、教師評(píng)價(jià)信息以及OpenStack提供的虛擬機(jī)的日志信息,Hadoop提交的分析實(shí)驗(yàn)過程和結(jié)果監(jiān)控、Hypervisor。實(shí)驗(yàn)所使用日志為2013年2月25日至6月16日的三個(gè)月內(nèi)的所有查詢。以軟件類課程中的軟件課程實(shí)驗(yàn)為例。目前的軟件工程實(shí)驗(yàn)課程普遍采用團(tuán)隊(duì)開發(fā)方式進(jìn)行訓(xùn)練,即在一個(gè)學(xué)期內(nèi),5-6人一組進(jìn)行軟件項(xiàng)目的協(xié)同開發(fā)。
通過記錄94名學(xué)生訪問VM時(shí)間,可以發(fā)現(xiàn)學(xué)生行為。如圖2所示是學(xué)生訪問云實(shí)驗(yàn)平臺(tái)的時(shí)間分布。 實(shí)驗(yàn)從晚上 18:00-23:30,我們可以發(fā)現(xiàn)從晚上7:00訪問頻度增加,到9:40左右到達(dá)頂峰。這符合學(xué)生晚上使用網(wǎng)絡(luò)習(xí)慣。
圖2 學(xué)生訪問VM時(shí)間分析
基于Hadoop對(duì)虛擬機(jī)監(jiān)控日志分析結(jié)果,可以獲得每個(gè)學(xué)生每天運(yùn)行虛擬機(jī)的情況。圖3是以一個(gè)實(shí)驗(yàn)班級(jí)30人為例,學(xué)生訪問頻度情況,多數(shù)學(xué)生對(duì)團(tuán)隊(duì)項(xiàng)目參與度是階段性提高的。
圖3 項(xiàng)目訪問頻度分析
軟件工程實(shí)驗(yàn)包括:項(xiàng)目計(jì)劃文檔、需求分析、項(xiàng)目設(shè)計(jì)、項(xiàng)目編碼及測試,實(shí)驗(yàn)以設(shè)計(jì)型和綜合型為主,基于Hadoop的日志結(jié)果,如表1所示。
表1 軟件工程實(shí)驗(yàn)日志分析結(jié)果
通過表1數(shù)據(jù)表明,項(xiàng)目計(jì)劃階段,學(xué)生參與度較低,還不能很好全局的規(guī)劃整個(gè)項(xiàng)目,項(xiàng)目只能依賴教師給出的文檔模板及相關(guān)資料撰寫文檔,所以時(shí)間、人員及人員任務(wù)安排不能符合真實(shí)情況。實(shí)際的實(shí)驗(yàn)中,指導(dǎo)教師與各組進(jìn)行計(jì)劃討論,幫助各組合理分配任務(wù)。
各個(gè)項(xiàng)目組在后期又重新調(diào)整進(jìn)度安排,修改項(xiàng)目計(jì)劃。
項(xiàng)目需求分析階段實(shí)驗(yàn)內(nèi)容主要結(jié)合建模工具,構(gòu)建不同角度的系統(tǒng)模型,以技術(shù)為主,實(shí)驗(yàn)內(nèi)容具體,學(xué)生較感興趣。因此與項(xiàng)目計(jì)劃階段,訪問頻度高出近40%,效果相對(duì)較好。從實(shí)驗(yàn)文檔質(zhì)量來看,多數(shù)組是以整個(gè)系統(tǒng)為單位進(jìn)行系統(tǒng)建模,圖較復(fù)雜,文字描述不清。實(shí)際的實(shí)驗(yàn)中,指導(dǎo)教師與各組進(jìn)行需求分析討論,幫助各組劃分系統(tǒng)子功能。建議各組按照子功能進(jìn)行系統(tǒng)建模,以減少模型的復(fù)雜度。
項(xiàng)目設(shè)計(jì)階段實(shí)驗(yàn)參與度較高,組員之間協(xié)作緊密,整體完成較好,分析原因如下:
(1)學(xué)生在項(xiàng)目計(jì)劃及需求分析文檔后,對(duì)如何寫文檔有一定的認(rèn)識(shí);
(2)學(xué)生各自負(fù)責(zé)將前期需求階段成果映射成設(shè)計(jì)階段成果,任務(wù)較具體,加深學(xué)生理解需求建模的意義。
項(xiàng)目編碼階段雖參與度較高,但實(shí)驗(yàn)效果不理想。因項(xiàng)目編碼與項(xiàng)目測試之間的實(shí)驗(yàn)間隔較短,多數(shù)學(xué)生無法完成任務(wù);另外部分學(xué)生編程能力較薄弱,導(dǎo)致前期分析和設(shè)計(jì)之后無法完成編碼。擬今后教學(xué)中加大項(xiàng)目編碼和項(xiàng)目測試實(shí)驗(yàn)的間隔時(shí)間,讓學(xué)生在課余時(shí)間完成此部分工作。
因編碼階段的延遲交付,學(xué)生加快項(xiàng)目進(jìn)度,導(dǎo)致日志顯示項(xiàng)目測試階段學(xué)生的參與度較高??傮w來說:多數(shù)學(xué)生能參與項(xiàng)目,但是有5%的學(xué)生未參與項(xiàng)目,這都是傳統(tǒng)實(shí)驗(yàn)中無法發(fā)現(xiàn)。
傳統(tǒng)的實(shí)驗(yàn)教學(xué)環(huán)境不能很好地支持學(xué)生課后自主學(xué)習(xí),教師無法對(duì)學(xué)生實(shí)驗(yàn)過程信息進(jìn)行監(jiān)控,對(duì)實(shí)驗(yàn)過程中出現(xiàn)的問題,不能及時(shí)發(fā)現(xiàn)并解決。本文基于云計(jì)算進(jìn)行軟件類實(shí)驗(yàn)教學(xué)平臺(tái)的構(gòu)建和應(yīng)用,通過基于Hadoop平臺(tái)的日志分析結(jié)果,不僅可以分析學(xué)生實(shí)驗(yàn)行為,為教師更好的改進(jìn)實(shí)驗(yàn)教學(xué),還可以為教師提供較為客觀的實(shí)驗(yàn)成績評(píng)定標(biāo)準(zhǔn)。后期的工作將平臺(tái)擴(kuò)展,做一個(gè)較為通用的實(shí)驗(yàn)教學(xué)平臺(tái)。
[1] 黃芳,任勝兵,劉高嵩.基于項(xiàng)目實(shí)踐的軟件工程本科課程教學(xué)模式探討[J].湖南社會(huì)科學(xué),2009,(5):174-176.
[2] 曾紅衛(wèi),劉悅,劉煒.軟件工程實(shí)踐教學(xué)方法探索[J].計(jì)算機(jī)工程與科學(xué),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ì)算的多媒體教學(xué)環(huán)境設(shè)計(jì)[J].現(xiàn)代教育技術(shù),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ì)算的實(shí)驗(yàn)教學(xué)平臺(tái)的研究和設(shè)計(jì)[J].滁州學(xué)院學(xué)報(bào),2011,(2):90-93.