前言:想要寫出一篇引人入勝的文章?我們特意為您整理了敏捷開發(fā)在高職軟件課程教學中應用范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:針對傳統教學的問題,提出把當前軟件開發(fā)領域最流行的“敏捷開發(fā)模型”應用在高職軟件技術專業(yè)課程教學中,將Java課程與前端課程HTML網頁設計相銜接,基于教師團隊進行全局教學內容的設計與優(yōu)化,結合高職院校學生特點,介紹具體教學實施過程,最后通過教學效果說明教學改革的有效性。
關鍵詞:敏捷開發(fā);高職;軟件技術;Java語言
0引言
隨著軟件技術的發(fā)展和軟件應用環(huán)境的變化,軟件開發(fā)過程表現出明顯的迭代式特點。敏捷開發(fā)作為一種輕量級開發(fā)方法,具有迭代性特征,廣泛應用于工業(yè)界軟件開發(fā)過程,也推動了相關大學課程的教學改革。近幾年,基于敏捷開發(fā)的教學實踐在部分本科院校已經展開[1-3],在提升本科院校學生軟件工程能力方面取得了一定成效,但新的教學模式也面臨著諸多挑戰(zhàn),特別是針對目前高職院校學生普遍存在的職業(yè)理想模糊、職業(yè)能力不足、缺乏團隊精神的現象,學生個人發(fā)展和能力提升受阻,無法適應崗位需求和社會發(fā)展的需要[4]。如何將敏捷開發(fā)模型有效融入高職軟件教學體系,如何管理和評價基于團隊項目的敏捷開發(fā)過程,是當下高職院校教師面臨的重要課題。Java作為一種編程語言,在軟件工業(yè)領域得到廣泛應用,并且常年占據軟件工業(yè)程序設計語言排名榜首,近幾年隨著JavaWeb網站、安卓系統應用APP的爆炸式增長,Java語言獲得了更廣泛的市場需求。Java程序設計作為計算機專業(yè)及電子信息類等其他專業(yè)的入門級專業(yè)課程,是學習動態(tài)網站開發(fā)、安卓APP、小程序設計的重要先行課程,是軟件開發(fā)的基礎,具有較高的實踐要求,對于初學者,很多內容具有一定難度,如面向對象三大特性、抽象類和接口、集合框架、文件流等,理論知識單調枯燥、晦澀難懂,學生在學習理論知識時可能面臨一些困難[5]。
1教學內容改革
高職院校軟件技術專業(yè)方向主要包括Web前端、程序開發(fā)、軟件測試、軟件維護等方向,涉及的課程有常用辦公軟件使用、計算機網絡搭建與管理、Linux操作系統配置與管理、HTML網頁制作、MySQL數據庫開發(fā)與管理、JavaWeb網站開發(fā)、桌面應用程序編碼、軟件文檔書寫、軟件建模等。傳統的Java課程,任課教師主要關注自己負責課程的教學,未從專業(yè)群整體上考慮如何改善,各課程銜接不夠密切,難以進行深入教學,造成學生的知識深度和知識結構存在缺陷,難以滿足企業(yè)對人才的需求[6]。本校Java編程技術基礎和HTML網頁設計兩門課程,是軟件技術相關專業(yè)學生的專業(yè)基礎課,分別對應軟件功能的后臺開發(fā)和前端效果實現。在教學內容的選取上,采用“項目驅動,案例教學,一體化課堂”的教學模式展開,充分考慮本院校現有的教學條件,以人才培養(yǎng)方案要求為總體目標,與軟件技術專業(yè)前端課程對接,尋求貼近社會實際工作、規(guī)模適中的項目作為任務載體,根據學生學習能力選擇適合高職院校學生的開發(fā)項目。根據這一思路,可以將學生在HTML網頁制作前端課程中學習的購物網站經過精心組織和設計,根據其后臺功能需求轉換為Java教學項目,啟動界面如圖1所示,學生具有購物平臺的經歷,對直觀掌握“JD購物商城”項目的需求有益。按照項目的開發(fā)流程和項目的功能模塊,課程共設計9個子任務(見表1),每個任務均經過整體規(guī)劃,分步實施,涵蓋Java課程的所有知識點。共18個學習模塊,總計72課時,并針對每個學習模塊進行單元教學設計,每經過一輪敏捷開發(fā),就完成一個學習模塊,讓學生“所見即所得”。當前任務完成不僅擴充前一個任務內容,還引出下一次任務需求;循序漸進地實現完整的項目,不僅考慮到學生的編程能力,還體現知識的組織連貫性、項目的完整性。
2教學實施
將軟件開發(fā)的敏捷開發(fā)模型應用在課程與教學領域,積極主動、有效率地響應學生個體差異以及不斷變化的學習需求。在教學中,首先將學生作為課程開發(fā)團隊的重要成員并貫穿始終;其次對學習需求進行分解和細化,做到準確掌握;另外通過站會、協商民主的方式對課程開發(fā)中的問題反復權衡、共同決策,讓學生廣泛參與到問題發(fā)現與應對的過程中。在重點培養(yǎng)技能型人才的高職院校,將敏捷開發(fā)模型應用到軟件開發(fā)的課程項目中,開發(fā)過程以學生發(fā)展為核心,將軟件技術專業(yè)知識應用在項目產品中,通過不斷迭代循環(huán)完善項目功能,提升學生的職業(yè)能力和團隊精神。在此開發(fā)模式下,項目被分割為多個小項目,每個小項目都具備可集成、可視、可運行的效果,最終實現開發(fā)項目的整體運行。在教學過程中,教師和學生共同按照開發(fā)流程從下發(fā)任務、日常站會(DailyMeeting)、評審會議(SprintReviewMeeting)、回顧會議4個核心過程逐步展開,并演變出具體的教學模型(如圖2所示)。在實施過程中,劃分成3個階段:課前準備、敏捷開發(fā)和課后拓展,讓學生體驗到軟件開發(fā)企業(yè)的工作流程和方法,實現從校到企的良好過渡。
2.1課前準備
1)教師課前準備。教師在授課之前,準備本次任務的“需求說明書”文檔,并對任務中涉及的新知識點“for循環(huán)語句”“while循環(huán)語句”“break”“continue”“return”等關鍵字,提前在云平臺發(fā)布預習任務(學習MOOC、觀看微視頻、閱讀資料、完成測評),設置任務截止時間。任務結束之后收集學生反饋的信息(學習時長、測試結果),云平臺根據考核權重,自動核算學生課前預習成績。教師根據學生課前成績進行分組,4~5人組成一個項目開發(fā)團隊,將課前成績排名靠前的學生任命為項目組長,負責帶領整個團隊進行本次任務開發(fā)。教師結合學生在課前任務中遇到的問題,準備課堂教學的側重點。2)學生課前準備。學生根據教師發(fā)布的預習任務“循環(huán)的概念”,提前了解for循環(huán)、while循環(huán)的語法結構,觀看教學資源,記錄和反饋預習中遇到的疑難問題,完成課前任務“猜年齡游戲”,在云平臺發(fā)起頭腦風暴討論活動,實現自我知識建構。學生提前記住相應語法規(guī)則,讀懂、對比相關的Java程序,完成對知識點記憶、理解和初步應用的目標。
2.2課堂教學
以“任務三注冊和登錄”中的子任務“用戶登錄功能實現”教學實施為例,課堂教學流程的組織情況如下。1)分析易錯案例。根據學生課前在云平臺提交的作業(yè)情況,請學生對課前發(fā)布的易錯案例“猜年齡游戲”進行分析,教師適當補充并提問。經過教學實施發(fā)現,學生在分析過程中,普遍對for循環(huán)的條件控制理解不夠深刻,不能靈活運用循環(huán)設置“猜3次錯誤就退出游戲”。2)下發(fā)任務。教師下發(fā)“用戶登錄功能實現”任務書,任務書內容包括:①任務簡介,介紹目前“JD購物商城”項目的進展情況,以及最終完整項目的功能需求;②任務目標,介紹本次課學生要完成的主要技術目標和性能目標;③提交物清單,包括各小組完成本次任務須提交的項目文件、站會記錄、項目實施報告。教師借助Java開發(fā)平臺Eclipse向學生展示項目完成效果,讓學生對任務要求有直觀清楚的認識,并現場公布本次任務的分組情況。3)召開站會。此過程對應敏捷開發(fā)中的迭代開發(fā)初級階段。組長帶領開發(fā)團隊對任務需求進行分析,掌握大致的工作量;開發(fā)團隊的成員進行任務認領,確定本次任務的開發(fā)人員、測試人員。教師在小組召開站會期間,為了使小組成員更好地理解和進行迭代開發(fā),克服畏難心理、增強成就感,提醒項目組長將開發(fā)任務劃分成盡可能小的模塊;在項目成員確認分工之后,巡查項目組成員個人工作進展情況。4)評審會議。在此過程中,項目成員明確分工開始執(zhí)行任務,完成之后測試人員進行代碼審查和功能測試,在審查或測試階段如發(fā)現任何問題,記錄并反饋給開發(fā)人員解決問題。敏捷理念主張采用集體評審的方式來實現產品的開發(fā)與運作,通過協商民主的方式就開發(fā)過程中的問題反復權衡、共同決策,因此小組在評審會議中,應廣泛汲取成員意見,并達成一致的解決方案。教師在小組進行評審會議期間,提醒項目組解決以下問題:①任務進度的管理;②開發(fā)人員代碼的提交、合并;③借助代碼分析工具檢測Java代碼質量,快速找到代碼中的錯誤和潛在缺陷。5)回顧會議。本次任務完成后,項目團隊中的測試人員向教師和其他項目組人員展示階段成果,項目組依據考核評分標準完成組間互評。教師點評并給出改進意見,對巡視過程中發(fā)現的典型問題、優(yōu)秀樣例進行解析和講評,總結課堂實踐環(huán)節(jié)中的通用性錯誤,要求學生在課后完成本次子任務的項目實施報告并提交至云課堂。
2.3課后考核評價
學生總結本次任務完成情況,撰寫項目實施報告并提交至云平臺;教師通過云平臺發(fā)布拓展任務,任務以學生課中出現的錯漏問題為側重點,強化薄弱部分,并適當進階難度。筆者改革傳統的學生評價手段和方法,采用階段評價、過程性評價與目標評價相結合,理論與實踐一體化的評價模式,全過程考核評分細則見表2。評價過程包括課前、課中、課后3個階段,教師結合演示情況和文檔對本階段任務進行綜合評價,學生自評分占30%,教師評價分占70%,其中自評分由組內所有成員的具體業(yè)績分組成。
3教學效果
本專業(yè)教學團隊已經在2個學期的軟件技術專業(yè)理論實踐課程中使用項目驅動的敏捷開發(fā)模型,在提升學生編程能力、激發(fā)學生學習興趣、提高軟件開發(fā)質量等方面,取得了較好的效果,主要體現在以下幾個方面:①編程大賽成績提升顯著。本專業(yè)學生參加由工業(yè)和信息化部人才交流中心主辦的“藍橋杯”大賽JavaC組賽項,2021年榮獲省賽一、二等獎16人,與2020年的10人、2019年的9人相比,獲獎人數逐年穩(wěn)步上升,學生的編程能力明顯增強。②項目開發(fā)技能得到提升。在實踐過程中,學生以項目組長、測試員、開發(fā)人員的身份自愿領取開發(fā)任務,體驗了企業(yè)真實的開發(fā)流程,實現了與行業(yè)及市場的接軌,使得其在校就獲得了企業(yè)開發(fā)經驗。③考核評價客觀公平。由于敏捷開發(fā)模型的透明性,每位學生的工作完成情況在實踐過程中一目了然,教師打分結合學生自評、組間互評,保證了評價的公正性。
4結語
校企合作、產教融合的深入改革對學生在校學習方式提出了更多要求,學生有更多的方法和途徑獲取知識,給教師授課提出了更高的要求。敏捷開發(fā)模型應用在教學過程中,以學生為中心,利用信息技術的優(yōu)勢,改變傳統的教學方法,要求學生主動學習、解決問題。該模型也對教師的能力有更高的要求,除了要具有扎實的專業(yè)學科知識,還要具備一定的信息技術能力、學習資源設計與開發(fā)能力和創(chuàng)新能力,對教師在課堂上的把控能力、引導能力、溝通能力和組織能力等方面也提出了更高的要求,有效促進了教師的職業(yè)發(fā)展。
作者:許孟杰 徐昶 單位:湖北科技職業(yè)學院軟件工程學院