劉麗 成麗君 王堃
本文針對軟件工程專業(yè)課程分散授課、知識不連貫的弊端,提出“案例貫穿”式模塊教學(xué)的方法。該方法將軟件工程部分課程分三個模塊集中在一個學(xué)期完成,并采用多種信息化手段將真實案例貫穿其中,既能提高學(xué)生整體工程意識,又能落實對理論知識的理解。實踐證明,該方法不僅獲得了好的教學(xué)效果,也提高了學(xué)生的綜合工程素養(yǎng)和工程實踐能力。
日益增長的互聯(lián)網(wǎng)需求表明,軟件開發(fā)的技術(shù)性人才固然重要,但熟悉軟件開發(fā)流程和軟件項目管理的復(fù)合型人才也非常重要。重技術(shù)、輕工程的思想要有所轉(zhuǎn)變。這是對軟件工程專業(yè)的考驗,也是以往教學(xué)過程中所忽略的。
軟件工程專業(yè)培養(yǎng)具有高尚職業(yè)道德和社會責(zé)任、基礎(chǔ)扎實、理工農(nóng)結(jié)合、素質(zhì)全面、工程實踐能力的工程型和應(yīng)用型人才。在傳統(tǒng)教學(xué)過程中,教師只強調(diào)掌握各種軟件開發(fā)工具和語言,忽視培養(yǎng)項目管理、團(tuán)隊合作溝通、文檔編寫和軟件測試等工程方面的能力,同時將軟件工程系列核心課程分散在多個學(xué)期,造成學(xué)生知識脫節(jié),不能很好掌握軟件開發(fā)的理論概念及流程。部分教師沒有軟件開發(fā)經(jīng)驗,教學(xué)過程中喜歡照搬課本,不會旁征博引,導(dǎo)致學(xué)生拘泥于課本,沒有完整成形的開發(fā)思路。
故軟件學(xué)院將軟件工程核心課程集中放在一個學(xué)期上完,一方面能確保課程的同步性,讓學(xué)生有一個連貫的知識脈絡(luò);另一方面保證課程的時效性,學(xué)生短時間內(nèi)不會忘記前面的知識。除此之外,教師通過多種信息化手段將案例貫穿其中,將實踐與理論相結(jié)合,實現(xiàn)了多元化的教學(xué)方式。這一方面調(diào)動了學(xué)生的積極性,另一方面也讓學(xué)生能夠更好地消化知識。
(一)軟件工程核心課程介紹
軟件工程核心課程包括軟件需求分析、軟件項目管理、軟件體系結(jié)構(gòu)與設(shè)計、團(tuán)隊激勵與溝通、軟件質(zhì)量保證與測試、人機(jī)交互軟件工程方法等,這六門課程集中在一學(xué)期完成,讓學(xué)生更好地掌握軟件開發(fā)的流程,也更容易形成清晰的知識脈絡(luò)。
(二)案例的選取
好的案例是軟件工程核心課程實施的主線。案例太大太難,不便于學(xué)生理解;案例太簡單,又無法讓學(xué)生全面地掌握知識點。軟件工程教研室選取了學(xué)院某畢業(yè)生的畢業(yè)設(shè)計項目“寵物寄養(yǎng)系統(tǒng)的設(shè)計與實現(xiàn)”作為授課案例。該項目文檔詳細(xì),有軟件可行性分析報告、軟件需求規(guī)格說明書、軟件概要和詳細(xì)設(shè)計、軟件測試過程、操作手冊等。該項目功能完善,有完整代碼可實際操作演練,趣味性和系統(tǒng)性強。通過該項目的具體實施,可幫助學(xué)生更好地熟悉軟件開發(fā)一整套流程,并對軟件開發(fā)有新的認(rèn)識。這也說明,各種開發(fā)技術(shù)與語言固然重要,但用戶的溝通能力、團(tuán)隊合作精神、文檔編寫的能力也很重要。
(三)模塊化集中教學(xué)
模塊化集中教學(xué)圍繞“一集中,二線路,三模塊”,并結(jié)合兩個信息化平臺開展,具體如圖1。
軟件學(xué)院軟件工程教研室將6門核心課程統(tǒng)一集中在大三下學(xué)期完成,且分成兩條路線。一條路線是從軟件開發(fā)的角度,按軟件開發(fā)的流程,學(xué)生依次學(xué)習(xí)軟件需求分析、軟件設(shè)計與體系結(jié)構(gòu)、軟件質(zhì)量保證與測試這三門課程,并且貫穿真實案例,確保學(xué)生學(xué)完對軟件開發(fā)的基本流程加深理解;另一條路線是從軟件管理的角度,學(xué)生依次學(xué)習(xí)軟件項目管理、團(tuán)隊激勵與溝通、人機(jī)交互軟件工程方法。從項目管理的角度,讓學(xué)生掌握如何管理項目遇到的問題,如何與整個團(tuán)隊合作溝通,最后如何確保開發(fā)一款交互性好的軟件。
這兩條路線的課程又分三個模塊完成,第一個模塊是在1~4周開設(shè)《軟件需求分析》《軟件項目管理》課程,第5周進(jìn)行相應(yīng)的實驗課;第二個模塊在第6~9周開設(shè)《軟件設(shè)計與體系結(jié)構(gòu)》《團(tuán)隊激勵與溝通》課程;第三個模塊在第11~14周開設(shè)《軟件質(zhì)量保證與測試》《人機(jī)交互軟件工程方法》等課程;在第15周進(jìn)行相應(yīng)的實驗課。完全實現(xiàn)了一月一結(jié)的效果,并將真實案例貫穿到軟件工程系列課程中,讓學(xué)生從頭到尾地體驗了一遍畢業(yè)設(shè)計文檔的編寫過程。信息化平臺“智慧教室和超星學(xué)習(xí)通”也滿足了線上和線下學(xué)生的需求,在幫助學(xué)生理解理論知識的同時,加深了學(xué)生對軟件開發(fā)流程的理解,為將來工作打下了堅實的基礎(chǔ)。不得不說“案例貫穿”式教學(xué)是軟件工程課程的一次突破,真正激勵了軟工教研室教師不斷創(chuàng)新。
(一)第一模塊課程的實施
根據(jù)軟件開發(fā)的流程,第一步要進(jìn)行軟件需求分析,故第一模塊要開設(shè)《軟件需求分析》課程,項目一啟動,我們就要進(jìn)行項目的管理,所以《軟件項目管理》也開課。故第一模塊(1~4周)開設(shè)《軟件需求分析》《軟件項目管理》兩門課。
《軟件需求分析》《軟件項目管理》都是軟件工程課程中的基礎(chǔ)性課程,俗話說好的開始是成功的一半,學(xué)好這兩門課程,對后續(xù)課程的掌握很有幫助。
信息化技術(shù)的融合也促進(jìn)了課堂教學(xué)的順利實施,利用學(xué)校提供的智慧教室,將“寵物寄養(yǎng)”中需求的獲取,需求規(guī)格說明書的編寫和項目管理形象直觀地講解給線下學(xué)生;對于部分因疫情無法線下上課的學(xué)生,采用“超星學(xué)習(xí)通”平臺實時直播,讓學(xué)生熟練掌握編寫需求規(guī)格說明書的方法,自主選擇熟悉軟件,完成一份需求規(guī)格說明書的編寫,并深入理解一個項目的準(zhǔn)備和計劃過程,學(xué)會項目管理的方法。通過采用翻轉(zhuǎn)課堂的方式,線下學(xué)生利用智慧教室演示整個需求規(guī)格說明書的完成,線上學(xué)生通過直播介紹自己的思路,讓學(xué)生充分認(rèn)識到與用戶溝通,獲取用戶的需求非常重要,學(xué)會管理項目也非常重要。
在教會學(xué)生掌握理論知識的同時,我們也要在潛移默化中對學(xué)生實施思想政治教育,不斷提高學(xué)生思想覺悟和軟件素養(yǎng),成為適應(yīng)社會需求變化的高素質(zhì)軟件工程技術(shù)、管理個服務(wù)人才。如通過第一模塊的課程就可以告訴學(xué)生軟件開發(fā)的第一個階段的重要性?!扒Ю镏校加谧阆隆?。只有打好基礎(chǔ),才能為后續(xù)課程做鋪墊。
(二)第二模塊課程的實施
按照軟件開發(fā)流程確認(rèn)了需求之后,從第6周開始,學(xué)生開始上《軟件設(shè)計與體系結(jié)構(gòu)》課程,并且這時候團(tuán)隊合作越發(fā)緊密,實施過程中也需要給團(tuán)隊加油打氣,故《團(tuán)隊激勵和溝通》也同步上線。通過學(xué)習(xí)讓學(xué)生明白團(tuán)隊的作用。
“寵物寄養(yǎng)”項目可以讓學(xué)生深入理解一個項目的概要設(shè)計和詳細(xì)設(shè)計具體如何開展。體系結(jié)構(gòu)的設(shè)計,給了軟件實現(xiàn)的平臺,也展示了不同風(fēng)格結(jié)構(gòu)的不同特點,這是軟件開發(fā)早期決策的體現(xiàn)。學(xué)生可以應(yīng)用輔助工具完成系統(tǒng)架構(gòu)設(shè)計,并結(jié)合智慧教室演示與講解自己設(shè)計的架構(gòu);教師也可以通過“超星學(xué)習(xí)通”上傳分享自己的架構(gòu),學(xué)生們可以從中體會不同風(fēng)格的優(yōu)缺點,發(fā)表意見和建議。這種將想法通過信息化、數(shù)字化手段進(jìn)行共享的方式,讓更多學(xué)生有發(fā)言的機(jī)會和勇氣,也讓學(xué)生明白過程的重要性,只有經(jīng)歷了選擇和比較這個過程,才知道哪個更適合。正如:天空沒有翅膀的痕跡,而我已飛過。學(xué)生一定要熟悉體系結(jié)構(gòu)選擇這個過程,選擇的過程體現(xiàn)了早期決策以及對業(yè)務(wù)流程的熟悉度,也告訴我們軟件開發(fā)不是一時興起。“羅馬不是一天建成的”,一定要注重平時的積累。
“寵物寄養(yǎng)”項目也可以讓學(xué)生明白團(tuán)隊成員間如何鼓舞士氣。通過超星學(xué)習(xí)通上的“搖號選人”功能,選中學(xué)生進(jìn)行分享溝通的技巧,也可以選一組學(xué)生進(jìn)行情景體驗,演示團(tuán)隊激勵與溝通,優(yōu)秀的情景體驗可以上傳至學(xué)習(xí)通供學(xué)生學(xué)習(xí)討論。通過這種新穎的信息化技術(shù),讓學(xué)生愉悅地學(xué)懂學(xué)會知識。自古以來,我們就知道團(tuán)結(jié)就是力量,合作才有成效,在團(tuán)隊工作中,需要互相溝通,互相激勵,才能有效完成任務(wù)。
所以,第二個模塊的課程起到承上啟下的作用,它既檢驗了早期的成果,也是對后期軟件實現(xiàn)的考驗,學(xué)生要知道它的重要性。
(三)第三模塊課程的實施
第三模塊從第10周開始,這周需要對前期工作進(jìn)行驗收,故學(xué)生開始學(xué)習(xí)《軟件質(zhì)量保證與測試》《人機(jī)交互軟件工程方法》兩門課程。前期體系結(jié)構(gòu)設(shè)計好,這周開始進(jìn)入測試階段,通過數(shù)字化多媒體技術(shù),讓學(xué)生觀看各種高科技產(chǎn)品,如:北斗導(dǎo)航系統(tǒng)、天河—2超級計算機(jī)、中國高鐵、超級鋼技術(shù)等,是如何經(jīng)過嚴(yán)密和專業(yè)的測試才投入使用的,從而讓學(xué)生掌握測試的概念,方法和流程,并向?qū)W生傳達(dá)測試的重要性。這也堅定學(xué)生的自信,激發(fā)學(xué)生的愛國熱情,提高專業(yè)課學(xué)習(xí)的積極性。通過“寵物寄養(yǎng)”讓學(xué)生感受項目的單元測試、集成測試、系統(tǒng)測試及性能測試具體是如何執(zhí)行的,掌握軟件測試計劃書和報告的編寫方法,并自選題目,寫一款軟件的測試計劃書,通過線上線下結(jié)合進(jìn)行演示。
《人機(jī)交互軟件工程方法》從用戶和機(jī)器交流的角度測試軟件的可用性,注重用戶的體驗感,學(xué)生可親身體驗學(xué)院實驗室的一些智能機(jī)器,感受信息化時代。這與第一階段開設(shè)的軟件需求分析呼應(yīng)起來,既說明用戶的需求和體驗是非常重要的,也表明了開發(fā)軟件的嚴(yán)謹(jǐn)性。我們要從方方面面考慮到用戶的感受,在準(zhǔn)確實現(xiàn)各種功能需求的基礎(chǔ)上,努力讓用戶有好的體驗。通過“寵物寄養(yǎng)”案例,讓學(xué)生切實體會提高用戶體驗的各種方法。
最終,通過一個項目的貫穿,各課程不再相互獨立,而是無縫銜接,緊密聯(lián)系的,這對達(dá)成整個學(xué)科的目標(biāo)很有幫助。
教學(xué)效果的評估是評判教學(xué)質(zhì)量的重要環(huán)節(jié),也是檢驗學(xué)生學(xué)習(xí)情況的重要標(biāo)準(zhǔn),軟件學(xué)院采用過程化考核的方法進(jìn)行教學(xué)效果評估,即考核貫穿教學(xué)的全過程。
軟件工程的六門核心課程采用線上線下結(jié)合的過程化考核方式,考核過程由平時成績+作業(yè)成績+實驗成績(有實驗課的)+階段性測驗+期末考試等5部分組成。平時成績包括考勤和課堂互動,具體實施辦法由各任課教師決定,重點讓學(xué)生意識到出勤和互動的重要性,教師可利用 “超星學(xué)習(xí)通”,每節(jié)課輪流選人進(jìn)行互動,互動成績自動記錄在平臺上。學(xué)生可隨時查看自己的成績,也可課堂上隨機(jī)提問進(jìn)行互動,紙質(zhì)記錄成績。作業(yè)形式多樣化,可以是在超星學(xué)習(xí)通平臺上以練習(xí)題的方式讓學(xué)生線上答題,也可以是小組作業(yè),作業(yè)頻率一般一章一次,讓學(xué)生及時鞏固上節(jié)所學(xué)內(nèi)容,小組作業(yè)也可以提高學(xué)生的團(tuán)隊合作意識,增強動手能力;在《軟件需求分析》,《軟件質(zhì)量保證與測試》,《人機(jī)交互軟件工程方法》等三門課程中安排實驗環(huán)節(jié),這三門課程相對實踐性強一些,一定的實驗可以更好幫助你學(xué)生鞏固知識,實驗結(jié)果上傳至學(xué)習(xí)通平臺,教師進(jìn)行線上批閱和反饋。階段性測試是對學(xué)生短期學(xué)習(xí)效果的檢查,因這六門課程都是開卷課程,階段性測驗也是開放形式,如《軟件需求分析》的階段性測驗的題目是讓學(xué)生編寫軟件需求規(guī)格說明書,其他各課程也是以這種項目報告或多媒體技術(shù)匯報的方式考察學(xué)生,既給足學(xué)生空間,讓學(xué)生充分發(fā)揮自己的想象力和創(chuàng)造力,又鍛煉學(xué)生獨立思考及搜索資料的能力;期末考試也是開放性考試,由四種題型的題目組成,如選擇、判斷、簡答、資料分析等,根據(jù)實際情況來決定線上還是線下考試。期末測驗是從細(xì)節(jié)考察學(xué)生平時積累的情況,以多種形式考察學(xué)生掌握的能力。
經(jīng)過過程化考核檢測,“案例貫穿”結(jié)合多種信息化手段的教學(xué)方法,確實較以往效果要好很多。通過“案例貫穿”,學(xué)生理解得更透徹,作業(yè)正確率更高,較以往純理論授課的提問率也要高很多,實驗項目做起來也更加得心應(yīng)手;通過多種信息化手段,培養(yǎng)學(xué)生情景創(chuàng)設(shè)、獨立思考、資源共享、協(xié)作交互的能力;通過階段性測驗,學(xué)生的報告從文檔排版和內(nèi)容質(zhì)量方面都有所提高,期末各題型得分率也較高。部分學(xué)生在模塊學(xué)習(xí)時,已經(jīng)有了畢業(yè)設(shè)計的初稿,可見“案例貫穿”著實對學(xué)生的理解有幫助,課程模塊化對學(xué)生撰寫畢業(yè)設(shè)計文檔有很大幫助。
總而言之,軟件學(xué)院采用的“案例貫穿式”模塊教學(xué)法,在提高教學(xué)效果的同時,也激發(fā)和促進(jìn)全新的教學(xué)模式誕生,讓教師教得更靈活,學(xué)生學(xué)得更愉悅,更能適應(yīng)多變的教學(xué)環(huán)境。
作者單位:山西農(nóng)業(yè)大學(xué) 軟件學(xué)院
基金項目:青年科技創(chuàng)新基金資助項目(2020QC25);線上線下混合式數(shù)據(jù)挖掘課程教學(xué)改革(PY-202025)。