軟件類課程設計研究
時間:2022-12-12 11:08:22
導語:軟件類課程設計研究一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
基于敏捷思維的軟件類課程設計研究敏捷開發其輕量級、快速響應的特性使其在當今軟件開發中有著非常重要的地位。當前軟件類課程教學中,存在重理論、弱實踐的情況。針對該問題,借鑒敏捷思維中的相關特性,在軟件類課程教學設計中強調敏捷理念快速迭代、原型開發、強調溝通等方面,進行教學模式創新,達到提升學生積極性與實踐能力的目的。
一、前言
軟件開發過程(softwaredevelopmentprocess)又叫做軟件開發生命周期(softwaredevelopmentlifecycle,SDLC),是軟件產品開發的任務框架和規范,也可以簡單地稱為軟件生命周期及軟件過程。軟件在開發設計過程中有許多的模型,這用于對設計過程中所涉及的各項任務以及方法進行描述。
二、當前軟件類課程教育現狀
在我國信息技術類的專業課程中,軟件類課程所占比例很高,如數據庫、面向對象程序設計、網頁設計等。該類課程的學習效果將較大影響未來學生的專業技能打造影響未來的就業效果,但該部分課程傳統的教學實踐,主要以章節知識點作為過程,以此來構建整個課程知識體系的講授與實踐,由于遵循傳統的軟件開發中的過程組織形式,把軟件開發中的生命周期階段依照經典理論的順序組織起來,堅持按需求、分析、設計、編碼和測試的階段進行開發與教學。此類方法具有理論成熟,各過程較為清晰,并有規范的文檔格式要求,是以往軟件類課程教學中常用的方式。但由于該類教學過程中前期環節較為枯燥,導致學生的畏難情緒增強,容易在初期階段就影響此類學生的學習興趣,從而影響學習效果,導致中后期的教學效果不佳。
三、敏捷開發模式
敏捷開發模式是2000年后開始興起的一種軟件開發模式,屬于輕載軟件模式。因其在實踐中開發效率優于傳統的軟件工程開發模式,現已在全球開發中占有越來越高的比重,2010年12月10日,中國敏捷軟件開發聯盟正式成立。敏捷思維注重集思廣益,博取眾長,使得每個人的能力都能得到更好的體現,并且強調先有一個初步的原型,對其進行高迭代,不斷完善軟件產品的過程,使得敏捷開發能在短時間內開發出可運行的系統。其強調應對需求快速變化,調整開發的方式。能夠讓學生先看到一個基礎的“產品”,隨著教學的不斷深入,“產品”也在不斷的完善和優化,隨著課程的結束,“產品”也就設計完畢,這樣不斷刺激學生的求知欲,在學習過程中能夠不斷得到反饋,激發其學習的熱情。這需要從教學內容設計與實踐內容進行篩選,一方面教學內容要擴展敏捷思維的使用范圍,減少或降低很多敏捷方法中應用條件的限制,另一方面理論聯系實際地對這部分內容綜合講解,保證學生對理解知識點的情況下,對敏捷開發的有全面認識和理解。在工業領域和教學領域都存在敏捷方法的實施問題,如何利用并組合現有工具技術形成適合敏捷開發的環境并融入教學實踐,對于深入理解和實際應用該方法具有深遠的意義。
四、敏捷思維教學模式設計
現實開發中,由于項目需求的不可預設性,預先設計一個具備可調整彈性、較為完美的架構是無法實現也沒必要的。當前我們設計的教學模式,也應該在案例設置、教學模塊選擇、實踐環節的安排上,盡量遵循這個原則:注重實踐目標的達成,盡可能讓更多的學員完成該門課程所涉及的軟件在實際開發中所需的基本應用環節,讓學生能更好的參與到實踐開發環節中來,相反,一些較難的理論知識點,在適當環節應當給予略過,讓學員有所了解,在今后學習過程中,能夠知道回來學習即可。如圖1所示,敏捷思維重視強調學生與學生在“作品”開發上的溝通銜接,學生與教師在學習反饋的及時有效,教學設計上的緊密協作、面對面溝通,要求能夠及時完成新的“產品”版本,建設緊湊而自我組織型的團隊,能夠很好地適應需求變化的代碼編寫和團隊組織方法,也更注重軟件開發中人所起到的作用。為此,我們在教學過程中結合敏捷開中所采用的幾種方法如:極限編程(XP)、Scrum、精益開發(leandevelopment)、動態系統開發方法(DSDM)、特征驅動開發(featuredrivendevelopment)、水晶開發(cristalclear)等[2]。綜合其快速迭代的特征來設計教學模式:(1)“迭代式”的實踐練習。如圖2所示,把課程中的實踐練習設計為一個軟件產品開發,整個教學過程劃分為幾個迭代周期,依照課程進度每個迭代周期是一個定長或不定長的時間塊,每個迭代學習期持續的時間一般較短,通常為1~4學時。在傳統的教學中,一次性的明確了大的教學目標,但由于學生能力的參差不齊,使得總體設計環節學員的進度不一,大的目標導致實現的差異性較大,使得學生難以完成,導致抄襲情況凸顯,違背了最初目標。而在迭代式教學中,把學員的實踐目標范圍縮小,使得技能需求描述更加清晰,依托實踐進度情況,動態修正各項技能的反復求精,把學生能力從不全面到全面,提升其專業水平,改變那種傳統教學過程中,追求機械地知識講授,而不考慮學生實踐完成效果及專業技術變化等客觀條件。(2)作業的“增量交付”。每一階段的實踐練習在一個在每個迭代學習期結束時將被提交,而不是在整個學期結束時以期末作業的形式一次性提交。每次交付的都是可被實施應用的練習“作品”。使用迭代的思想來設計作業,從前期一個基本的原型,到功能隨著知識點的推進而不斷完善。每次作品的實現,有助于激發學生的成就感,并且實踐過程中的操作內容將有利于提高動手能力的培養,一次親手完成的實踐任務將極大的達到人才培養的目標。(3)教師和學生的反饋互動,從而推動教學開展。敏捷開發非常強調開發者和用戶能經?;?,主張用戶能夠在開發過程中全程參與進來,這個思路正好借鑒進了教學改革中,教學中的師生互動可以很好的模擬這個過程。這使得“作品”的設計中,各項“需求”變化和“實踐反饋”能及時有效的讓教師動態管理,并投入到教學設計的改變當中去。同時,同學參與討論也能極大的提高溝通技能,這也是本專業學生所欠缺的。(4)鼓勵持續集成。軟件設計中,一些新功能可能會出現于每個迭代周期即將結束時出現,并集成到產品中去。學生在實踐過程中,一些突發的靈感會使得他們偶爾增加出新的模塊,這些變化可能到后期會對整個“產品”運行帶來影響,甚至導致后期運行不順利。但其帶來的好處是顯而易見的,這樣能培養學生擁有一個積極的、有自我創新、能夠自我管理的學習品質,提高他們學習的主觀能動性。這同敏捷設計理念中的開發團隊自我管理,以人為中心建立開發過程和機制、而非把過程和機制強加給別人的觀點是不謀而合的。
五、存在的問題及改進思路
(1)課程體系銜接。軟件開發涉及相關知識內容較多,不同對于企業人才需求可以有所側重,但部分課程的關聯性較強,如果過于強調敏捷開發,勢必會造成部分前置課程知識點學生接觸不夠,后續教學中需要再次復習的情況。這類問題需要教師在工作中更加注重關鍵點的溝通,同時教師與教師之前也要有敏捷開發中的“溝通”,良好的互動與溝通才能把一塊知識體系串聯起來,提高課堂理論教學的效率,減少部分知識點教學時間的重復性消耗。(2)評價體系建立敏捷思維多樣性強,特別是不同任課教師間允許采用不同語言和工具來設計不同的“作品”,多樣化的工具帶來的是評價標準不易統一,教師間也就難以相互幫忙指導,這需要在評價過程中,明確目標導向,即“產品”——軟件的自主設計為第一位的,對于學生的評價也應遵循這一原則,以項目為導向,軟件的完成度及運行效果作為課程評價。
六、結語
敏捷方式本意是為了解決在軟件設計過程中存在的諸如低質量、需求遺漏、延期帶來的挫折等。此類問題在筆者所處學校教學培養中依然存在,為此需要傳統方法中使用敏捷思維,去掉冗余的理論部分,知識點,把學生的價值成為開發主體,通過課程中的講解以及課后的小組訓練,改變教學中過多灌輸純理論的教學方式,追尋一個原則,在軟件類課程中,完整參與一次項目實踐開發好過一次深入的理論知識點學習。消除開發中的神秘感,增強同學的學習興趣,學生通過學習各種工具,在今后工作應用中打下實踐基礎,并留有理論基礎,便于后續開發過程中,有需要再回過頭來加強理論知識點學習,踐行敏捷理念。
作者:楊揚 單位:玉溪師范學院
- 上一篇:城市設計與城市控制性研究
- 下一篇:編程算法課程設計論文