王 鈞
(甘肅農(nóng)業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院,甘肅 蘭州 730070)
基于敏捷開發(fā)模式的嵌入式實(shí)驗(yàn)教學(xué)探索
——以農(nóng)業(yè)院校為例
王 鈞
(甘肅農(nóng)業(yè)大學(xué) 信息科學(xué)技術(shù)學(xué)院,甘肅 蘭州 730070)
“嵌入式系統(tǒng)”是一門涉及范圍廣、綜合性、實(shí)踐性強(qiáng)的課程。針對農(nóng)業(yè)院校嵌入式系統(tǒng)實(shí)驗(yàn)課程建設(shè)的總體目標(biāo)及特點(diǎn),分析了該課程在實(shí)驗(yàn)教學(xué)過程中存在著實(shí)驗(yàn)內(nèi)容簡單、課程設(shè)置不合理、過分強(qiáng)調(diào)實(shí)驗(yàn)結(jié)果等問題。通過闡述敏捷開發(fā)模式的意義,以提高學(xué)生的實(shí)際應(yīng)用能力為目標(biāo),提出了“敏捷開發(fā)模式”結(jié)合嵌入式案例教學(xué)的實(shí)驗(yàn)教學(xué)改革思路,并探討了在農(nóng)業(yè)院校實(shí)施此教學(xué)方法的組織與實(shí)施策略。實(shí)踐證明,該教學(xué)方法在提高學(xué)生學(xué)習(xí)興趣、加深知識理解、培養(yǎng)實(shí)踐及創(chuàng)新能力等方面都具有積極的作用。
嵌入式系統(tǒng);軟件工程;實(shí)驗(yàn)教學(xué);敏捷開發(fā)
DOI號:10.13320/j.cnki.jauhe.2017.0021
“嵌入式系統(tǒng)”作為一門理論與實(shí)際應(yīng)用緊密結(jié)合的課程,實(shí)驗(yàn)教學(xué)在其中發(fā)揮了至關(guān)重要的作用。嵌入式系統(tǒng)實(shí)驗(yàn)作為該課程在教學(xué)過程中的重要組成部分,不但可以加深學(xué)生對嵌入式相關(guān)知識的理解,還能從多方面發(fā)掘?qū)W生的創(chuàng)造力,全面培養(yǎng)學(xué)生發(fā)現(xiàn)問題、分析問題以及解決問題的能力,對于全面提高學(xué)生的綜合素質(zhì)和能力,都具有極其重要的意義[1]。
目前,大多數(shù)高校的嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)都以傳統(tǒng)的驗(yàn)證性實(shí)驗(yàn)為主,在設(shè)置實(shí)驗(yàn)教學(xué)內(nèi)容的時候,普遍忽視了嵌入式軟、硬件的開發(fā)特點(diǎn),只是簡簡單單的將理論知識與實(shí)驗(yàn)方法進(jìn)行了融合,學(xué)生在學(xué)習(xí)后普遍反映該課程的學(xué)習(xí)較為枯燥,整體教學(xué)效果不佳。因此,針對嵌入式系統(tǒng)課程的特點(diǎn),如何提高實(shí)驗(yàn)環(huán)節(jié)的教學(xué)質(zhì)量,是培養(yǎng)高素質(zhì)嵌入式人才的關(guān)鍵所在。
嵌入式系統(tǒng)是一門理論與實(shí)際應(yīng)用緊密結(jié)合的課程,該課程的應(yīng)用性相對較強(qiáng),通過學(xué)習(xí),要求學(xué)生全面了解和掌握嵌入式的相關(guān)理論知識,以及嵌入式的軟、硬件開發(fā)設(shè)計的一般方法,提升學(xué)生的動手能力和解決實(shí)際問題的能力。在實(shí)際的教學(xué)過程中,強(qiáng)調(diào)課程的“基礎(chǔ)性+應(yīng)用性+綜合性”?;A(chǔ)性是指授課內(nèi)容應(yīng)該涵蓋嵌入式系統(tǒng)的基礎(chǔ)理論知識,通過課堂講解和實(shí)驗(yàn)環(huán)節(jié)加深學(xué)生對基礎(chǔ)知識的理解。應(yīng)用性是指該課程的實(shí)踐性較強(qiáng)。甘肅農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院通過“實(shí)驗(yàn)教學(xué)+課程設(shè)計”的實(shí)踐教學(xué)模式,使學(xué)生能夠很好的將理論知識與實(shí)際應(yīng)用緊密地結(jié)合起來,從而進(jìn)一步加深學(xué)生對嵌入式開發(fā)的理解。綜合性是指該課程所涉及的知識面廣、課程內(nèi)容多。學(xué)生在實(shí)際的學(xué)習(xí)過程中普遍感覺到該課程抽象且難以理解,教師講授起來較為困難,授課過程難以掌控。嵌入式系統(tǒng)課程在實(shí)際教學(xué)過程中所面臨如下問題。
1.專業(yè)跨度大。該課程所涉及的專業(yè)相對較多,不但包括通信工程、計算機(jī)工程、電子信息工程、自動控制、機(jī)電工程、和儀器儀表等,而且還與其他研究領(lǐng)域相互滲透,形成了新的研究方向。因此,該課程可以作為一個基礎(chǔ)性的研究平臺課,為其他相關(guān)專業(yè)提供服務(wù)。
2.綜合知識運(yùn)用性相對較強(qiáng)。嵌入式系統(tǒng)的開發(fā)設(shè)計需要將軟、硬件相互結(jié)合,并且涵蓋了計算機(jī)網(wǎng)絡(luò)、軟件工程、計算機(jī)組成原理、計算機(jī)操作系統(tǒng)、自動控制原理等諸多專業(yè)的相關(guān)課程。如程序設(shè)計語言(匯編,C/C++,JAVA等)、操作系統(tǒng)、數(shù)字電路、微機(jī)原理、和芯片設(shè)計等課程,課程內(nèi)容的綜合性相對較強(qiáng)。因此,該課程可以被認(rèn)為是計算機(jī)類相關(guān)專業(yè)本科階段所學(xué)各種知識的綜合運(yùn)用,學(xué)習(xí)該課程,可以有效提高學(xué)生對所學(xué)知識的綜合運(yùn)用能力。
3.與實(shí)際應(yīng)用緊密結(jié)合。該課程強(qiáng)調(diào)理論與實(shí)際應(yīng)用緊密結(jié)合,實(shí)踐教學(xué)作為該課程的重要組成部分,它的質(zhì)量將直接影響到該課程的實(shí)際教學(xué)效果。缺乏實(shí)踐教學(xué)環(huán)節(jié)的嵌入式系統(tǒng)課程只能算是“紙上談兵”,只有經(jīng)歷了大量的實(shí)踐教學(xué),才能使學(xué)生深刻地理解嵌入式系統(tǒng)的基本理論,熟練掌握嵌入式系統(tǒng)的開發(fā)方法。
(一)實(shí)驗(yàn)內(nèi)容簡單
目前,大多數(shù)農(nóng)業(yè)院校的嵌入式實(shí)驗(yàn)安排多以驗(yàn)證性實(shí)驗(yàn)為主,相對復(fù)雜的綜合性開發(fā)設(shè)計性實(shí)驗(yàn)偏少,在實(shí)驗(yàn)教學(xué)環(huán)節(jié)中,學(xué)生常常根據(jù)實(shí)驗(yàn)教材上的內(nèi)容機(jī)械地對實(shí)驗(yàn)步驟進(jìn)行模仿,由學(xué)生自己親自動手設(shè)計的實(shí)驗(yàn)內(nèi)容偏少;實(shí)驗(yàn)內(nèi)容的更新滯后,大多數(shù)實(shí)驗(yàn)內(nèi)容往往要使用多年,不能與嵌入式的最新技術(shù)結(jié)合,同時實(shí)驗(yàn)內(nèi)容的設(shè)置與社會實(shí)際需求聯(lián)系的不夠緊密。由于以上多種原因,造成目前的嵌入式培養(yǎng)模式不利于學(xué)生綜合能力和創(chuàng)新能力的培養(yǎng)。
(二)過分強(qiáng)調(diào)實(shí)驗(yàn)結(jié)果
目前,大多數(shù)農(nóng)業(yè)院校都存在著嵌入式實(shí)驗(yàn)課時安排不足的問題,由于時間所限,教師為了完成教學(xué)任務(wù),在實(shí)驗(yàn)環(huán)節(jié)的設(shè)置上多以培養(yǎng)實(shí)驗(yàn)技能為主。通過實(shí)驗(yàn),學(xué)生也只是學(xué)會了如何機(jī)械地使用和調(diào)整各種設(shè)備儀器,以及如何按部就班地按照實(shí)驗(yàn)步驟進(jìn)行實(shí)驗(yàn)和處理實(shí)驗(yàn)數(shù)據(jù)。學(xué)生在整個實(shí)驗(yàn)過程中更加關(guān)注如何得出符合理論的實(shí)驗(yàn)結(jié)果,而對實(shí)驗(yàn)中出現(xiàn)的各種現(xiàn)象和結(jié)果很少進(jìn)行獨(dú)立的思考、分析、研究。嵌入式系統(tǒng)實(shí)驗(yàn)對學(xué)生掌握和理解嵌入式技術(shù)的幫助很小,無法從中深刻的體會到嵌入式技術(shù)的生命力以及應(yīng)用前景。因此,整個實(shí)驗(yàn)教學(xué)的實(shí)際教學(xué)效果欠佳。
(三)實(shí)驗(yàn)課程設(shè)置不合理
目前,大多數(shù)農(nóng)業(yè)院校將嵌入式系統(tǒng)實(shí)驗(yàn)的課時設(shè)置為16學(xué)時,相對課程的難易程度以及重要性來說,學(xué)時分配相對較少,加之學(xué)生在思想上沒有意識到嵌入式實(shí)驗(yàn)對嵌入式軟、硬件綜合能力培養(yǎng)的重要性,實(shí)驗(yàn)前期的準(zhǔn)備不夠充分,學(xué)生在實(shí)驗(yàn)過程中對實(shí)驗(yàn)指導(dǎo)教師的依賴性較強(qiáng)。實(shí)驗(yàn)課上,指導(dǎo)教師花費(fèi)了大量的時間和精力來講解嵌入式實(shí)驗(yàn)的基本原理以及實(shí)驗(yàn)平臺的使用和操作方法,僅從剩余時間來看,學(xué)生只能按照老師的具體要求進(jìn)行操作,沒有任何的自行設(shè)計。除此之外,學(xué)生對親自動手實(shí)踐缺乏積極性,很難對嵌入式系統(tǒng)實(shí)驗(yàn)提起任何興趣,特別是當(dāng)他們遇到新的技術(shù)或新的難題就更加缺乏信心了。
針對以上問題,為了在有限的課時內(nèi)提高嵌入式實(shí)驗(yàn)教學(xué)質(zhì)量,應(yīng)該對嵌入式實(shí)驗(yàn)課程教學(xué)內(nèi)容進(jìn)行改進(jìn),在課程設(shè)置上通過引入敏捷開發(fā)模式,并結(jié)合嵌入式案例教學(xué)等教學(xué)手段和方法,激發(fā)學(xué)生的學(xué)習(xí)興趣,在實(shí)驗(yàn)課程中,轉(zhuǎn)變老師與學(xué)生的角色,強(qiáng)調(diào)“學(xué)生”在整個實(shí)驗(yàn)中的主體地位,培養(yǎng)學(xué)生應(yīng)用所學(xué)知識解決實(shí)際問題的能力和創(chuàng)新能力。
2001年雪鳥會議后,敏捷開發(fā)法開始獲得各界的認(rèn)可,特別是受到軟件開發(fā)者的普遍歡迎。到今天,這種開發(fā)法已經(jīng)在大量軟件項(xiàng)目當(dāng)中得到了廣泛的應(yīng)用,并且獲得了成功。敏捷開發(fā)通常以用戶的需求進(jìn)化為基礎(chǔ),利用反復(fù)迭代、循序漸進(jìn)等方法完成相關(guān)項(xiàng)目的開發(fā)。在敏捷開發(fā)的開始階段,整個項(xiàng)目將分為多個小的子項(xiàng)目,每個子項(xiàng)目都具備可集成、可視以及可運(yùn)行、使用的特征,開發(fā)人員對每個子項(xiàng)目分別進(jìn)行開發(fā),并且其成果都必須經(jīng)過獨(dú)立的測試。也就是說,這種開發(fā)方法是將一個大的開發(fā)項(xiàng)目進(jìn)行分割,將它分成多個獨(dú)立運(yùn)行、相互聯(lián)系,并且在整個開發(fā)過程中處于可用狀態(tài)的小項(xiàng)目,對它們分別完成開發(fā)。極限編程是一種近螺旋式敏捷開發(fā)方法,同時也是一種靈巧的、輕量級的軟件工程開發(fā)方法。在項(xiàng)目的開發(fā)過程中,開發(fā)人員會將一個復(fù)雜的開發(fā)過程分解為許多個相對較為簡單的小的開發(fā)周期,并且強(qiáng)調(diào)項(xiàng)目開發(fā)的嚴(yán)謹(jǐn)性和周密性[2]。它以交流、樸素、反饋和勇氣為基礎(chǔ)和價值觀,使得在整個項(xiàng)目的開發(fā)過程中,可以使客戶與開發(fā)人員及時了解和掌握項(xiàng)目的最新開發(fā)進(jìn)度、變化以及待解決的問題和困難等,并根據(jù)開發(fā)項(xiàng)目的實(shí)際情況及時調(diào)整項(xiàng)目的開發(fā)過程,即認(rèn)為軟件項(xiàng)目的開發(fā)都可以從簡入手、加強(qiáng)相互交流、尋求反饋以及勇于實(shí)事求是4個方面入手來進(jìn)行改善[3,4]。
在實(shí)際嵌入式開發(fā)過程中,嵌入式企業(yè)管理者為了提高嵌入式系統(tǒng)的軟、硬件開發(fā)質(zhì)量,往往會制定許多項(xiàng)目開發(fā)管理規(guī)則以及設(shè)計方法,嵌入式系統(tǒng)的開發(fā)質(zhì)量也隨之得到了較大幅度的提升。但伴隨著嵌入式理論的不斷發(fā)展,整個系統(tǒng)的軟、硬件開發(fā)流程和規(guī)范也逐漸變得越來越復(fù)雜,且讓人難于理解和實(shí)施。
極限編程方法由于具有輕載、基于時間、緊湊、并行且基于構(gòu)件的項(xiàng)目開發(fā)過程的特點(diǎn),使得這種開發(fā)方法可以被應(yīng)用于嵌入式系統(tǒng)的開發(fā)設(shè)計和實(shí)驗(yàn)教學(xué)環(huán)節(jié)。通過極限編程方法與嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)的結(jié)合,在整個實(shí)驗(yàn)教學(xué)過程中,要求學(xué)生結(jié)對成組,以強(qiáng)帶弱;指導(dǎo)教師在整個實(shí)驗(yàn)教學(xué)環(huán)節(jié)中,根據(jù)具體的案例進(jìn)行實(shí)驗(yàn)內(nèi)容的設(shè)置,并且將實(shí)驗(yàn)教學(xué)內(nèi)容巧妙地隱含在嵌入式系統(tǒng)的開發(fā)項(xiàng)目中,讓學(xué)生自己發(fā)現(xiàn)實(shí)驗(yàn)過程中所存在的問題,并且通過自己的獨(dú)立思考和教師的指導(dǎo)獨(dú)立解決這些問題[5]。在完成實(shí)驗(yàn)項(xiàng)目的同時,也掌握了相關(guān)的知識,提高了學(xué)生自行解決問題的能力。整個實(shí)驗(yàn)的設(shè)置,既要考慮如何讓學(xué)生學(xué)會發(fā)現(xiàn)問題、分析問題以及解決問題,也要充分考慮如何培養(yǎng)學(xué)生的創(chuàng)新意識、創(chuàng)新能力以及自主學(xué)習(xí)的能力。
基于敏捷開發(fā)的嵌入式實(shí)驗(yàn)教學(xué)首先指導(dǎo)教師會根據(jù)課程教學(xué)大綱和知識點(diǎn)來確定每節(jié)實(shí)驗(yàn)課的實(shí)驗(yàn)內(nèi)容,同時按照知識點(diǎn)將實(shí)驗(yàn)內(nèi)容分解為多個簡單的模塊,然后由學(xué)生自行完成各個模塊的開發(fā)、測試,最后寒磣系統(tǒng)的集成及集成測試,在測試過程中如果發(fā)現(xiàn)問題,要求學(xué)生及時進(jìn)行改進(jìn),直至整個系統(tǒng)能夠正常運(yùn)用(如圖1所示)。
圖1 基于敏捷開發(fā)的嵌入式實(shí)驗(yàn)教學(xué)模式示意圖
目前,典型的嵌入式系統(tǒng)往往包括:應(yīng)用層、系統(tǒng)軟件層、中間層和硬件層[6](如圖2所示)。因此,嵌入式系統(tǒng)的開發(fā)也是在以上幾個層次之上發(fā)生的。我校的嵌入式系統(tǒng)實(shí)驗(yàn)課根據(jù)嵌入式開發(fā)內(nèi)容與嵌入式平臺間的相互關(guān)系,大致地將嵌入式系統(tǒng)實(shí)驗(yàn)分為4種類型,即基于應(yīng)用層開發(fā)實(shí)驗(yàn)、基于硬件的純軟件開發(fā)實(shí)驗(yàn)、基于軟硬件協(xié)同開發(fā)實(shí)驗(yàn)以及純硬件開發(fā)實(shí)驗(yàn),4種開發(fā)實(shí)驗(yàn)的類型與特征描述如表1所示。
圖2 嵌入式系統(tǒng)層次架構(gòu)
農(nóng)業(yè)院校采用敏捷開發(fā)模式進(jìn)行嵌入式實(shí)驗(yàn)教學(xué),其主要特色可以歸納為以下幾點(diǎn)。
1.在農(nóng)業(yè)院校嵌入式實(shí)驗(yàn)教學(xué)中引入敏捷開發(fā)模式不但可以降低實(shí)驗(yàn)的難度,而且可以培養(yǎng)學(xué)生應(yīng)用軟件工程思想進(jìn)行嵌入式開發(fā)的習(xí)慣,包括如何運(yùn)用敏捷開發(fā)的方法來發(fā)現(xiàn)、分析、解決嵌入式開發(fā)過程中所遇到的各種難題,從而提升學(xué)生運(yùn)用所學(xué)知識解決問題的能力和創(chuàng)造力。
2.結(jié)合農(nóng)業(yè)院校的特點(diǎn),該課程在實(shí)驗(yàn)題目的選擇上,多以解決具體農(nóng)業(yè)問題為主,將農(nóng)業(yè)與嵌入式系統(tǒng)有機(jī)的結(jié)合起來,讓學(xué)生在掌握嵌入式和農(nóng)業(yè)知識的同時,又培養(yǎng)了學(xué)生如何運(yùn)用所學(xué)知識解決實(shí)際問題的能力。
3.整個實(shí)驗(yàn)教學(xué)過程中,以具體的案例為線索,讓學(xué)生了解和掌握案例中所涉及的相關(guān)理論知識,并且通過運(yùn)用其中的技術(shù)手段來效仿該案例,完成新系統(tǒng)的開發(fā)設(shè)計。
4.學(xué)生通過參與實(shí)驗(yàn)掌握極限編程的基本方法,增強(qiáng)學(xué)生的團(tuán)隊(duì)合作意識,提高他們的自學(xué)能力和動手解決實(shí)際問題的能力。
(一)組織與實(shí)施策略
在遵循敏捷開發(fā)方法核心思想的基礎(chǔ)上,充分利用極限編程的理念,結(jié)合嵌入式系統(tǒng)實(shí)驗(yàn)課程的特點(diǎn),將嵌入式系統(tǒng)課程實(shí)驗(yàn)教學(xué)與敏捷開發(fā)方法相互結(jié)合,可以幫助學(xué)生理解嵌入式系統(tǒng)軟、硬件開發(fā)需求與嵌入式系統(tǒng)測試及開發(fā)的關(guān)系,使學(xué)生在掌握和應(yīng)用嵌入式的關(guān)鍵性技術(shù)的同時,了解和掌握響應(yīng)客戶需求變化、結(jié)對編程、測試驅(qū)動以及重構(gòu)等敏捷開發(fā)方法中的關(guān)鍵技術(shù)。同時,嵌入式實(shí)驗(yàn)課采用“案例驅(qū)動”的教學(xué)模式,向?qū)W生講授敏捷開發(fā)方法在實(shí)際項(xiàng)目開發(fā)中的應(yīng)用,指導(dǎo)教師組織學(xué)生組成項(xiàng)目小組完成規(guī)定題目的敏捷開發(fā),在整個實(shí)驗(yàn)過程中鼓勵小組成員之間加強(qiáng)溝通與合作,并對結(jié)對編程、測試驅(qū)動、重構(gòu)、持續(xù)集成等敏捷方法進(jìn)行指導(dǎo),協(xié)助項(xiàng)目組完成實(shí)驗(yàn)項(xiàng)目。
(二)實(shí)驗(yàn)教學(xué)實(shí)施過程
1.案例的選取。目前,大多數(shù)農(nóng)業(yè)院校都存在著嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)環(huán)節(jié)設(shè)置不合理的情況。我校嵌入式系統(tǒng)實(shí)驗(yàn)課所涉及的題目一般由教師指定,同時也鼓勵學(xué)生向指導(dǎo)教師推薦,但要征得指導(dǎo)教師的認(rèn)可方可使用。由于該課程實(shí)驗(yàn)學(xué)時相對緊張,實(shí)驗(yàn)選題的難度不宜太大,同時結(jié)合農(nóng)業(yè)院校的特點(diǎn),在實(shí)驗(yàn)題目的選擇上偏向精準(zhǔn)農(nóng)業(yè)、設(shè)施農(nóng)業(yè)以及智慧農(nóng)業(yè)等相關(guān)方向,課程教學(xué)的目標(biāo)就是通過利用嵌入式系統(tǒng)課程的實(shí)驗(yàn)教學(xué)環(huán)節(jié),讓學(xué)生深刻體會嵌入式系統(tǒng)的軟、硬件開發(fā)方法,在實(shí)驗(yàn)過程中注重完成質(zhì)量,要求作品的質(zhì)量能接近或達(dá)到實(shí)際使用的程度。已有的選題包括:農(nóng)產(chǎn)品冷鏈配送測控系統(tǒng)、智能溫室測控系統(tǒng)設(shè)計等。實(shí)驗(yàn)題目的選擇更多地考慮到學(xué)生知識的綜合運(yùn)用以及創(chuàng)新能力的培養(yǎng)。
2.構(gòu)建敏捷開發(fā)實(shí)驗(yàn)環(huán)境。由于在實(shí)驗(yàn)環(huán)節(jié)引入了敏捷開發(fā)方法,將現(xiàn)有的實(shí)驗(yàn)箱和計算機(jī)擺放將做相應(yīng)的調(diào)整,使得新的實(shí)驗(yàn)環(huán)境便于小組成員間以及各小組間的高效率交流,并且在實(shí)驗(yàn)室中配備了白板,方便學(xué)生針對某一問題展開充分的討論。
除此之外,實(shí)驗(yàn)小組的每一位成員都將以客戶、開發(fā)人員、項(xiàng)目經(jīng)理、測試人員等角色出現(xiàn)在同一個開放的環(huán)境中。指導(dǎo)教師通常以“客戶”的身份出現(xiàn)在實(shí)驗(yàn)中,并且負(fù)責(zé)對實(shí)驗(yàn)小組進(jìn)行指導(dǎo),每個實(shí)驗(yàn)小組將從中挑選一名組織、溝通能力相對較強(qiáng)的學(xué)生作為該組的項(xiàng)目經(jīng)理,其主要職責(zé)是負(fù)責(zé)對項(xiàng)目進(jìn)度和資源進(jìn)行控制和管理,其余兩名同學(xué)按照“以強(qiáng)帶弱”的原則組成編程小組。在項(xiàng)目的開發(fā)設(shè)計完成后,挑選其他組的編程人員組成本組的測試小組,測試小組的人員交叉負(fù)責(zé)項(xiàng)目的測試、驗(yàn)收和管理。
3.需求分析與管理。指導(dǎo)教師全程參與并指導(dǎo)學(xué)生進(jìn)行實(shí)驗(yàn),按照敏捷開發(fā)方法的核心思想,指導(dǎo)教師和學(xué)生將把各種需求轉(zhuǎn)換成多個小的模塊,這些模塊根據(jù)條件的不同有可能又會被實(shí)驗(yàn)小組再次拆解成更小的模塊或者將它們組合起來,所有被重新整合的模塊都會被記錄在一些小卡片上,每個模塊的功能將被學(xué)生在每周一次的實(shí)驗(yàn)課上完成。在實(shí)驗(yàn)項(xiàng)目的開始階段,指導(dǎo)教師會幫助各個實(shí)驗(yàn)小組根據(jù)模塊的重要程度來依次確定各個模塊的優(yōu)先級,而學(xué)生則根據(jù)各個需求模塊的開發(fā)風(fēng)險來確定需求模塊的開發(fā)順序。通常風(fēng)險較高的需求模塊往往被優(yōu)先進(jìn)行開發(fā),同時指導(dǎo)教師和學(xué)生分別從不同角度對各個模塊進(jìn)行評估,根據(jù)最終的評估結(jié)果把這些模塊放在不同的開發(fā)周期里,指導(dǎo)教師同學(xué)生一起商議為整個實(shí)驗(yàn)制定一個盡可能詳細(xì)、全面的開發(fā)計劃。最后,測試人員將根據(jù)“客戶”的實(shí)際需求對各個需求模塊進(jìn)行測試,發(fā)現(xiàn)問題并反饋,使實(shí)驗(yàn)項(xiàng)目不斷完善。
4.基于“測試驅(qū)動”的項(xiàng)目開發(fā)。極限編程的實(shí)際開發(fā)過程通常是由許多個基于“測試驅(qū)動”的開發(fā)周期組成,實(shí)驗(yàn)項(xiàng)目的外層設(shè)計過程往往都是緊緊圍繞著這些開發(fā)周期來進(jìn)行的,例如實(shí)驗(yàn)項(xiàng)目的計劃、設(shè)計等。我校每周一次的實(shí)驗(yàn)課被看成一個開發(fā)周期,這其中包含了很多個測試單元。在項(xiàng)目的起始階段,由于項(xiàng)目毫無進(jìn)展,以至于對每個模塊的單元測試都不會成功,但是隨著實(shí)驗(yàn)進(jìn)程的深入,各個模塊的功能將逐漸被實(shí)現(xiàn),能夠通過單元測試的模塊也將逐漸增多。極限編程正是利用這種指導(dǎo)思想使指導(dǎo)教師和學(xué)生很容易在項(xiàng)目的開發(fā)過程中檢驗(yàn)既定的開發(fā)任務(wù)是否完成。除此之外,極限編程還利用設(shè)計走查、代碼走查、重構(gòu)等方法來實(shí)現(xiàn)系統(tǒng)的重整和優(yōu)化。這其中也會不斷的進(jìn)行單元測試以及系統(tǒng)功能測試,極限編程正是利用這種方法來保證重整和優(yōu)化后的系統(tǒng)仍能滿足“客戶”的所有需求。
5.結(jié)對編程。在實(shí)驗(yàn)項(xiàng)目的開發(fā)過程中,按照“以強(qiáng)帶弱”的原則將兩個學(xué)生結(jié)對組成編程小組,他們共同使用一臺計算機(jī)和試驗(yàn)箱進(jìn)行實(shí)驗(yàn)項(xiàng)目的開發(fā)設(shè)計。這種結(jié)對編程的好處是:其中1個人在進(jìn)行項(xiàng)目開發(fā)設(shè)計的時候,另外1人可以對實(shí)驗(yàn)項(xiàng)目的開發(fā)設(shè)計進(jìn)行思考,在他的頭腦中始終保持總體的設(shè)計概念。另外,當(dāng)實(shí)驗(yàn)項(xiàng)目在開發(fā)設(shè)計階段遇到困難的時候,編程小組的成員之間可以互換位置由另一個成員來完成,但如果遇到的難題兩人都無法解決,兩個成員之間便可進(jìn)行交流及討論,而他們之間的交流很有可能被其他項(xiàng)目組成員或指導(dǎo)教師聽到,并可能給予幫助。極限編程正是利用這種結(jié)對編程的方式使項(xiàng)目的進(jìn)展更加順暢和有章可循。與此同時,結(jié)對編程能夠使整個實(shí)驗(yàn)更具有娛樂性和社交性,增強(qiáng)學(xué)生的興趣。另外,每一位學(xué)生在實(shí)驗(yàn)項(xiàng)目的開發(fā)過程中都可以修改其他人的開發(fā)設(shè)計方案,但要嚴(yán)格遵守嵌入式系統(tǒng)的開發(fā)規(guī)范和設(shè)計方法,同時要保證修改后新的方案能通過隨后進(jìn)行的單元測試。
6.實(shí)驗(yàn)項(xiàng)目測試。極限編程要求實(shí)驗(yàn)小組成員在開始本組編程實(shí)驗(yàn)之前必須首先對各個模塊進(jìn)行單元測試。每次實(shí)驗(yàn)小組除了要對已完成開發(fā)測試的模塊進(jìn)行整合外,還要對整合后的新模塊進(jìn)行新的測試,包括在實(shí)驗(yàn)過程中進(jìn)行的任何嵌入模塊的走查和修改,都要求實(shí)驗(yàn)小組成員對其進(jìn)行新的單元測試。如果其中發(fā)現(xiàn)了任何問題,實(shí)驗(yàn)小組就會增加新的單元測試,確保每個模塊能夠正常運(yùn)行。根據(jù)極限編程的要求,在實(shí)驗(yàn)過程中除了有常規(guī)的單元測試外,還包括功能測試、集成測試、壓力測試、和系統(tǒng)測試等[7]。所有的測試內(nèi)容都是極限編程中最為重要的文檔,所以在實(shí)驗(yàn)結(jié)束后,實(shí)驗(yàn)所涉及的所有測試過程和結(jié)果都要寫入最終的實(shí)驗(yàn)報告。
7.實(shí)驗(yàn)項(xiàng)目結(jié)果評審。在實(shí)驗(yàn)結(jié)束以后,學(xué)生將根據(jù)本組實(shí)驗(yàn)的完成情況向指導(dǎo)教師提交實(shí)驗(yàn)報告并進(jìn)行實(shí)驗(yàn)答辯,指導(dǎo)教師對其實(shí)驗(yàn)成果進(jìn)行評估打分。對表現(xiàn)優(yōu)異的學(xué)生鼓勵其撰寫和發(fā)表科技論文,對有興趣進(jìn)一步學(xué)習(xí)的學(xué)生,指導(dǎo)教師將鼓勵他們組成興趣小組,幫助他們完善作品,參加全國大學(xué)生嵌入式設(shè)計大賽。最后,指導(dǎo)教師將針對個人和實(shí)驗(yàn)小組在實(shí)驗(yàn)過程中的總體表現(xiàn)和實(shí)驗(yàn)完成情況進(jìn)行總結(jié)和點(diǎn)評,在指出他們存在不足的同時,幫助學(xué)生整理敏捷開發(fā)過程中的技術(shù)內(nèi)容,從而提高學(xué)生對嵌入式學(xué)習(xí)的積極性,但也要從中指出他們在實(shí)驗(yàn)過程中存在的不足。
敏捷開發(fā)作為一種新興的軟件工程的開發(fā)方法,很多實(shí)際方法還在研究中。在農(nóng)業(yè)院校的嵌入式實(shí)驗(yàn)課程中引入敏捷開發(fā)方法,不僅可以使本校學(xué)生加深理解、掌握嵌入式課程和相關(guān)農(nóng)業(yè)的理論知識,更能讓他們懂得如何應(yīng)用所學(xué)知識來解決實(shí)際問題。敏捷開發(fā)模式不僅能夠在實(shí)驗(yàn)課程的第一線培養(yǎng)農(nóng)業(yè)院校學(xué)生應(yīng)用知識解決問題的能力,還能從多方面發(fā)掘?qū)W生的創(chuàng)造力,全面培養(yǎng)學(xué)生發(fā)現(xiàn)問題、分析問題以及解決問題的思想和方法,提高了學(xué)生的綜合素質(zhì)和能力,包括學(xué)生的實(shí)踐能力、動手能力、分析能力、應(yīng)變能力、交流能力、團(tuán)隊(duì)合作能力。最關(guān)鍵的是在這種以“項(xiàng)目驅(qū)動”為背景的實(shí)驗(yàn)教學(xué)中,這種教學(xué)方法既體現(xiàn)了指導(dǎo)教師在實(shí)驗(yàn)過程中的主導(dǎo)作用又充分的發(fā)揮了學(xué)生自身的主體作用,更加體現(xiàn)了現(xiàn)代高等教育的新型教學(xué)模式。
在農(nóng)業(yè)院校將敏捷開發(fā)模式與嵌入式實(shí)驗(yàn)課相結(jié)合在增加實(shí)驗(yàn)復(fù)雜度的同時,也對農(nóng)業(yè)院校的教師提出了更高的要求。首先,指導(dǎo)教師在題目的選擇上要考慮如何將農(nóng)業(yè)與嵌入式結(jié)合在一起,而且還要根據(jù)具體的實(shí)驗(yàn)內(nèi)容將嵌入式系統(tǒng)實(shí)驗(yàn)教學(xué)和敏捷開發(fā)模式融合起來。其次,要求農(nóng)業(yè)院校的指導(dǎo)教師在實(shí)驗(yàn)環(huán)節(jié)中能夠較為靈活地運(yùn)用敏捷開發(fā)的思想。最后,要求指導(dǎo)教師在實(shí)驗(yàn)過程中能夠給予學(xué)生正確地指導(dǎo)。
[1] 劉文定,郭文會.“自動控制理論”綜合設(shè)計性實(shí)驗(yàn)探索與實(shí)踐[J].中國林業(yè)教育,2009(27):68-70.
[2] 張林.軟件開發(fā)模式的演進(jìn)[J].硅谷,2011(12):24-25.
[3] 張志敏,杜景龍,連達(dá)軍.基于敏捷開發(fā)模式的“GIS軟件工程”實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)室研究與探索,2014,33(11):205-207.
[4] 陳昊,明仲.在軟件工程實(shí)驗(yàn)教學(xué)中引入敏捷方法的探索[J].計算機(jī)教育,2008(24): 46-47.
[5] 孔峰. 面向創(chuàng)新能力培養(yǎng)的數(shù)據(jù)庫課程實(shí)驗(yàn)教學(xué)改革[J].中國現(xiàn)代教育裝備,2010(23):107-109.
[6] 榮國平,劉天宇,謝明娟.嵌入式系統(tǒng)開發(fā)中敏捷方法的應(yīng)用研究綜述[J].軟件學(xué)報,2014,25(2):267-283.
[7] 廖新.糧基于任務(wù)調(diào)度的自動測試方法及系統(tǒng)實(shí)現(xiàn)[D].成都:電子科技大學(xué),2011.
(編輯:劉偉霄)
2016-11-06
王 鈞(1982-),碩士,講師,主要研究方向:嵌入式系統(tǒng)。
G642
A
1008-6927(2017)01-0096-06
河北農(nóng)業(yè)大學(xué)學(xué)報(社會科學(xué)版)2017年1期