軟件類課程設(shè)計研究

時間:2022-12-12 11:08:22

導(dǎo)語:軟件類課程設(shè)計研究一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

軟件類課程設(shè)計研究

基于敏捷思維的軟件課程設(shè)計研究敏捷開發(fā)其輕量級、快速響應(yīng)的特性使其在當(dāng)今軟件開發(fā)中有著非常重要的地位。當(dāng)前軟件類課程教學(xué)中,存在重理論、弱實踐的情況。針對該問題,借鑒敏捷思維中的相關(guān)特性,在軟件類課程教學(xué)設(shè)計中強調(diào)敏捷理念快速迭代、原型開發(fā)、強調(diào)溝通等方面,進(jìn)行教學(xué)模式創(chuàng)新,達(dá)到提升學(xué)生積極性與實踐能力的目的。

一、前言

軟件開發(fā)過程(softwaredevelopmentprocess)又叫做軟件開發(fā)生命周期(softwaredevelopmentlifecycle,SDLC),是軟件產(chǎn)品開發(fā)的任務(wù)框架和規(guī)范,也可以簡單地稱為軟件生命周期及軟件過程。軟件在開發(fā)設(shè)計過程中有許多的模型,這用于對設(shè)計過程中所涉及的各項任務(wù)以及方法進(jìn)行描述。

二、當(dāng)前軟件類課程教育現(xiàn)狀

在我國信息技術(shù)類的專業(yè)課程中,軟件類課程所占比例很高,如數(shù)據(jù)庫、面向?qū)ο蟪绦蛟O(shè)計、網(wǎng)頁設(shè)計等。該類課程的學(xué)習(xí)效果將較大影響未來學(xué)生的專業(yè)技能打造影響未來的就業(yè)效果,但該部分課程傳統(tǒng)的教學(xué)實踐,主要以章節(jié)知識點作為過程,以此來構(gòu)建整個課程知識體系的講授與實踐,由于遵循傳統(tǒng)的軟件開發(fā)中的過程組織形式,把軟件開發(fā)中的生命周期階段依照經(jīng)典理論的順序組織起來,堅持按需求、分析、設(shè)計、編碼和測試的階段進(jìn)行開發(fā)與教學(xué)。此類方法具有理論成熟,各過程較為清晰,并有規(guī)范的文檔格式要求,是以往軟件類課程教學(xué)中常用的方式。但由于該類教學(xué)過程中前期環(huán)節(jié)較為枯燥,導(dǎo)致學(xué)生的畏難情緒增強,容易在初期階段就影響此類學(xué)生的學(xué)習(xí)興趣,從而影響學(xué)習(xí)效果,導(dǎo)致中后期的教學(xué)效果不佳。

三、敏捷開發(fā)模式

敏捷開發(fā)模式是2000年后開始興起的一種軟件開發(fā)模式,屬于輕載軟件模式。因其在實踐中開發(fā)效率優(yōu)于傳統(tǒng)的軟件工程開發(fā)模式,現(xiàn)已在全球開發(fā)中占有越來越高的比重,2010年12月10日,中國敏捷軟件開發(fā)聯(lián)盟正式成立。敏捷思維注重集思廣益,博取眾長,使得每個人的能力都能得到更好的體現(xiàn),并且強調(diào)先有一個初步的原型,對其進(jìn)行高迭代,不斷完善軟件產(chǎn)品的過程,使得敏捷開發(fā)能在短時間內(nèi)開發(fā)出可運行的系統(tǒng)。其強調(diào)應(yīng)對需求快速變化,調(diào)整開發(fā)的方式。能夠讓學(xué)生先看到一個基礎(chǔ)的“產(chǎn)品”,隨著教學(xué)的不斷深入,“產(chǎn)品”也在不斷的完善和優(yōu)化,隨著課程的結(jié)束,“產(chǎn)品”也就設(shè)計完畢,這樣不斷刺激學(xué)生的求知欲,在學(xué)習(xí)過程中能夠不斷得到反饋,激發(fā)其學(xué)習(xí)的熱情。這需要從教學(xué)內(nèi)容設(shè)計與實踐內(nèi)容進(jìn)行篩選,一方面教學(xué)內(nèi)容要擴(kuò)展敏捷思維的使用范圍,減少或降低很多敏捷方法中應(yīng)用條件的限制,另一方面理論聯(lián)系實際地對這部分內(nèi)容綜合講解,保證學(xué)生對理解知識點的情況下,對敏捷開發(fā)的有全面認(rèn)識和理解。在工業(yè)領(lǐng)域和教學(xué)領(lǐng)域都存在敏捷方法的實施問題,如何利用并組合現(xiàn)有工具技術(shù)形成適合敏捷開發(fā)的環(huán)境并融入教學(xué)實踐,對于深入理解和實際應(yīng)用該方法具有深遠(yuǎn)的意義。

四、敏捷思維教學(xué)模式設(shè)計

現(xiàn)實開發(fā)中,由于項目需求的不可預(yù)設(shè)性,預(yù)先設(shè)計一個具備可調(diào)整彈性、較為完美的架構(gòu)是無法實現(xiàn)也沒必要的。當(dāng)前我們設(shè)計的教學(xué)模式,也應(yīng)該在案例設(shè)置、教學(xué)模塊選擇、實踐環(huán)節(jié)的安排上,盡量遵循這個原則:注重實踐目標(biāo)的達(dá)成,盡可能讓更多的學(xué)員完成該門課程所涉及的軟件在實際開發(fā)中所需的基本應(yīng)用環(huán)節(jié),讓學(xué)生能更好的參與到實踐開發(fā)環(huán)節(jié)中來,相反,一些較難的理論知識點,在適當(dāng)環(huán)節(jié)應(yīng)當(dāng)給予略過,讓學(xué)員有所了解,在今后學(xué)習(xí)過程中,能夠知道回來學(xué)習(xí)即可。如圖1所示,敏捷思維重視強調(diào)學(xué)生與學(xué)生在“作品”開發(fā)上的溝通銜接,學(xué)生與教師在學(xué)習(xí)反饋的及時有效,教學(xué)設(shè)計上的緊密協(xié)作、面對面溝通,要求能夠及時完成新的“產(chǎn)品”版本,建設(shè)緊湊而自我組織型的團(tuán)隊,能夠很好地適應(yīng)需求變化的代碼編寫和團(tuán)隊組織方法,也更注重軟件開發(fā)中人所起到的作用。為此,我們在教學(xué)過程中結(jié)合敏捷開中所采用的幾種方法如:極限編程(XP)、Scrum、精益開發(fā)(leandevelopment)、動態(tài)系統(tǒng)開發(fā)方法(DSDM)、特征驅(qū)動開發(fā)(featuredrivendevelopment)、水晶開發(fā)(cristalclear)等[2]。綜合其快速迭代的特征來設(shè)計教學(xué)模式:(1)“迭代式”的實踐練習(xí)。如圖2所示,把課程中的實踐練習(xí)設(shè)計為一個軟件產(chǎn)品開發(fā),整個教學(xué)過程劃分為幾個迭代周期,依照課程進(jìn)度每個迭代周期是一個定長或不定長的時間塊,每個迭代學(xué)習(xí)期持續(xù)的時間一般較短,通常為1~4學(xué)時。在傳統(tǒng)的教學(xué)中,一次性的明確了大的教學(xué)目標(biāo),但由于學(xué)生能力的參差不齊,使得總體設(shè)計環(huán)節(jié)學(xué)員的進(jìn)度不一,大的目標(biāo)導(dǎo)致實現(xiàn)的差異性較大,使得學(xué)生難以完成,導(dǎo)致抄襲情況凸顯,違背了最初目標(biāo)。而在迭代式教學(xué)中,把學(xué)員的實踐目標(biāo)范圍縮小,使得技能需求描述更加清晰,依托實踐進(jìn)度情況,動態(tài)修正各項技能的反復(fù)求精,把學(xué)生能力從不全面到全面,提升其專業(yè)水平,改變那種傳統(tǒng)教學(xué)過程中,追求機械地知識講授,而不考慮學(xué)生實踐完成效果及專業(yè)技術(shù)變化等客觀條件。(2)作業(yè)的“增量交付”。每一階段的實踐練習(xí)在一個在每個迭代學(xué)習(xí)期結(jié)束時將被提交,而不是在整個學(xué)期結(jié)束時以期末作業(yè)的形式一次性提交。每次交付的都是可被實施應(yīng)用的練習(xí)“作品”。使用迭代的思想來設(shè)計作業(yè),從前期一個基本的原型,到功能隨著知識點的推進(jìn)而不斷完善。每次作品的實現(xiàn),有助于激發(fā)學(xué)生的成就感,并且實踐過程中的操作內(nèi)容將有利于提高動手能力的培養(yǎng),一次親手完成的實踐任務(wù)將極大的達(dá)到人才培養(yǎng)的目標(biāo)。(3)教師和學(xué)生的反饋互動,從而推動教學(xué)開展。敏捷開發(fā)非常強調(diào)開發(fā)者和用戶能經(jīng)常互動,主張用戶能夠在開發(fā)過程中全程參與進(jìn)來,這個思路正好借鑒進(jìn)了教學(xué)改革中,教學(xué)中的師生互動可以很好的模擬這個過程。這使得“作品”的設(shè)計中,各項“需求”變化和“實踐反饋”能及時有效的讓教師動態(tài)管理,并投入到教學(xué)設(shè)計的改變當(dāng)中去。同時,同學(xué)參與討論也能極大的提高溝通技能,這也是本專業(yè)學(xué)生所欠缺的。(4)鼓勵持續(xù)集成。軟件設(shè)計中,一些新功能可能會出現(xiàn)于每個迭代周期即將結(jié)束時出現(xiàn),并集成到產(chǎn)品中去。學(xué)生在實踐過程中,一些突發(fā)的靈感會使得他們偶爾增加出新的模塊,這些變化可能到后期會對整個“產(chǎn)品”運行帶來影響,甚至導(dǎo)致后期運行不順利。但其帶來的好處是顯而易見的,這樣能培養(yǎng)學(xué)生擁有一個積極的、有自我創(chuàng)新、能夠自我管理的學(xué)習(xí)品質(zhì),提高他們學(xué)習(xí)的主觀能動性。這同敏捷設(shè)計理念中的開發(fā)團(tuán)隊自我管理,以人為中心建立開發(fā)過程和機制、而非把過程和機制強加給別人的觀點是不謀而合的。

五、存在的問題及改進(jìn)思路

(1)課程體系銜接。軟件開發(fā)涉及相關(guān)知識內(nèi)容較多,不同對于企業(yè)人才需求可以有所側(cè)重,但部分課程的關(guān)聯(lián)性較強,如果過于強調(diào)敏捷開發(fā),勢必會造成部分前置課程知識點學(xué)生接觸不夠,后續(xù)教學(xué)中需要再次復(fù)習(xí)的情況。這類問題需要教師在工作中更加注重關(guān)鍵點的溝通,同時教師與教師之前也要有敏捷開發(fā)中的“溝通”,良好的互動與溝通才能把一塊知識體系串聯(lián)起來,提高課堂理論教學(xué)的效率,減少部分知識點教學(xué)時間的重復(fù)性消耗。(2)評價體系建立敏捷思維多樣性強,特別是不同任課教師間允許采用不同語言和工具來設(shè)計不同的“作品”,多樣化的工具帶來的是評價標(biāo)準(zhǔn)不易統(tǒng)一,教師間也就難以相互幫忙指導(dǎo),這需要在評價過程中,明確目標(biāo)導(dǎo)向,即“產(chǎn)品”——軟件的自主設(shè)計為第一位的,對于學(xué)生的評價也應(yīng)遵循這一原則,以項目為導(dǎo)向,軟件的完成度及運行效果作為課程評價。

六、結(jié)語

敏捷方式本意是為了解決在軟件設(shè)計過程中存在的諸如低質(zhì)量、需求遺漏、延期帶來的挫折等。此類問題在筆者所處學(xué)校教學(xué)培養(yǎng)中依然存在,為此需要傳統(tǒng)方法中使用敏捷思維,去掉冗余的理論部分,知識點,把學(xué)生的價值成為開發(fā)主體,通過課程中的講解以及課后的小組訓(xùn)練,改變教學(xué)中過多灌輸純理論的教學(xué)方式,追尋一個原則,在軟件類課程中,完整參與一次項目實踐開發(fā)好過一次深入的理論知識點學(xué)習(xí)。消除開發(fā)中的神秘感,增強同學(xué)的學(xué)習(xí)興趣,學(xué)生通過學(xué)習(xí)各種工具,在今后工作應(yīng)用中打下實踐基礎(chǔ),并留有理論基礎(chǔ),便于后續(xù)開發(fā)過程中,有需要再回過頭來加強理論知識點學(xué)習(xí),踐行敏捷理念。

作者:楊揚 單位:玉溪師范學(xué)院