蘭剛 甘濤 管慶 傅翀
[摘 要] 目前軟件類綜合設(shè)計(jì)課程存在設(shè)計(jì)過程缺乏規(guī)范性、對(duì)軟件工程相關(guān)能力訓(xùn)練不足、小組不同成員的能力鍛煉不均衡等問題。通過教學(xué)設(shè)計(jì),強(qiáng)調(diào)系統(tǒng)能力的培養(yǎng),加強(qiáng)過程管理,強(qiáng)化綜合設(shè)計(jì)任務(wù)執(zhí)行過程的規(guī)范性,并采用翻轉(zhuǎn)課堂等方式,引導(dǎo)學(xué)生按軟件工程的規(guī)范進(jìn)行綜合設(shè)計(jì)項(xiàng)目開發(fā),有效加強(qiáng)了軟件工程思維訓(xùn)練,提高了學(xué)生軟件工程能力。
[關(guān)鍵詞] 綜合設(shè)計(jì);軟件工程;過程管理;翻轉(zhuǎn)課堂
綜合設(shè)計(jì)課程屬于提升專業(yè)工程能力的實(shí)踐類課程。通過綜合設(shè)計(jì),學(xué)生可以把所學(xué)知識(shí)應(yīng)用于具體的工程問題解決,在鞏固相關(guān)知識(shí)的同時(shí),提升工程能力。我院作為軟件工程學(xué)院,早已實(shí)施了卓越工程師計(jì)劃,并且通過了工程教育專業(yè)認(rèn)證[1-3]。我院尤其重視綜合設(shè)計(jì),把其列為核心實(shí)踐課程,并對(duì)綜合設(shè)計(jì)課程進(jìn)行了持續(xù)改進(jìn)。
綜合設(shè)計(jì)實(shí)驗(yàn)是一項(xiàng)重在過程的教學(xué)工作,相對(duì)于設(shè)計(jì)成果和設(shè)計(jì)報(bào)告,更應(yīng)該強(qiáng)調(diào)設(shè)計(jì)過程對(duì)學(xué)生能力的培養(yǎng),因此綜合設(shè)計(jì)更應(yīng)該注重設(shè)計(jì)過程管理。綜合設(shè)計(jì)過程涵蓋從設(shè)計(jì)開始到結(jié)束的各個(gè)環(huán)節(jié),設(shè)計(jì)過程進(jìn)行管理則包含了設(shè)計(jì)流程規(guī)范性管理、設(shè)計(jì)過程教學(xué)指導(dǎo)管理、設(shè)計(jì)過程考核方式、設(shè)計(jì)過程對(duì)學(xué)生能力的培養(yǎng)以及對(duì)學(xué)生主動(dòng)性積極性促進(jìn)方面的考量。本文闡述了綜合設(shè)計(jì)過程管理的具體實(shí)施方案。
一、目前綜合設(shè)計(jì)I執(zhí)行中存在的問題
我院的綜合設(shè)計(jì)由綜合設(shè)計(jì)I,II,III三個(gè)階段組成。時(shí)間跨度從第2學(xué)期到第7學(xué)期,是一個(gè)難度和工作量都逐步提升的過程。其中綜合設(shè)計(jì)I在大二上學(xué)期進(jìn)行,是學(xué)生首次綜合應(yīng)用所學(xué)的知識(shí)進(jìn)行一個(gè)工程項(xiàng)目的設(shè)計(jì)。此前綜合設(shè)計(jì)I在設(shè)計(jì)過程管理中,存在以下問題。
(一)設(shè)計(jì)過程缺乏規(guī)范性,對(duì)軟件工程相關(guān)能力訓(xùn)練不足
由于綜合設(shè)計(jì)I是學(xué)生初次接觸的工程設(shè)計(jì),而且大二上學(xué)期的學(xué)生所掌握的知識(shí)有限,因此設(shè)計(jì)題目相對(duì)簡(jiǎn)單。這樣導(dǎo)致的結(jié)果是很多組的學(xué)生拿到任務(wù)后,簡(jiǎn)單梳理下思路,在大致劃分系統(tǒng)的模塊之后,就開始進(jìn)行編碼設(shè)計(jì),而不是遵循軟件工程的要求,按需求分析、可行性分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼設(shè)計(jì)、測(cè)試這樣一個(gè)規(guī)范流程來完成設(shè)計(jì)[4]。雖然指導(dǎo)老師也會(huì)強(qiáng)調(diào)按軟件工程規(guī)范進(jìn)行設(shè)計(jì),但大多數(shù)同學(xué)還是在完成設(shè)計(jì)最后寫總結(jié)報(bào)告的時(shí)候才補(bǔ)充需求分析、可行性分析、概要設(shè)計(jì)等方面的內(nèi)容,而不是嚴(yán)格按軟件工程規(guī)范進(jìn)行設(shè)計(jì),設(shè)計(jì)過程的隨意性較大,導(dǎo)致相當(dāng)一部分同學(xué)對(duì)軟件工程相關(guān)能力訓(xùn)練不足,對(duì)軟件工程規(guī)范在實(shí)際工程中的應(yīng)用掌握不夠全面,理解不夠深刻。
(二)小組不同成員的能力鍛煉不均衡
由于綜合設(shè)計(jì)I的設(shè)計(jì)任務(wù)相對(duì)簡(jiǎn)單,可能導(dǎo)致一個(gè)組的不同學(xué)生在完成設(shè)計(jì)任務(wù)時(shí)所承擔(dān)的任務(wù)量差距較大。比如可能由一個(gè)能力相對(duì)強(qiáng)的學(xué)生完成整個(gè)設(shè)計(jì)的編碼任務(wù),而其他成員完成查找資料、論文排版等一些相對(duì)簡(jiǎn)單的任務(wù),使得一個(gè)組的不同組員得到的能力鍛煉差別較大,部分成員得到的鍛煉不夠,一些學(xué)員甚至存在“混”和吃“大鍋飯”的想法[5]。
二、研究的基本思路
綜合設(shè)計(jì)I是整個(gè)綜合設(shè)計(jì)課程體系中的基礎(chǔ)階段。此時(shí)學(xué)生已經(jīng)完成了C語言課程的學(xué)習(xí),并同步進(jìn)行軟件工程課程的學(xué)習(xí)。因此綜合設(shè)計(jì)I需要在學(xué)生初次進(jìn)行一個(gè)軟件工程項(xiàng)目設(shè)計(jì)的時(shí)候,能夠正確的引導(dǎo)學(xué)生應(yīng)用軟件工程的方法和工具進(jìn)行軟件項(xiàng)目的設(shè)計(jì),強(qiáng)化學(xué)生的軟件工程思維,為后面的綜合設(shè)計(jì)II、綜合設(shè)計(jì)III兩個(gè)階段的設(shè)計(jì)以及以后工作中參與大型項(xiàng)目設(shè)計(jì)打下堅(jiān)實(shí)的基礎(chǔ)。我們擬采用以下思路來進(jìn)行綜合設(shè)計(jì)I實(shí)驗(yàn)建設(shè)。
(一)強(qiáng)調(diào)系統(tǒng)能力的培養(yǎng)
系統(tǒng)能力的培養(yǎng)具有突出的工程教育特征,是解決復(fù)雜工程問題的直接體現(xiàn)。與其他專業(yè)學(xué)生的計(jì)算機(jī)基礎(chǔ)和應(yīng)用能力相比,計(jì)算機(jī)軟件類專業(yè)學(xué)生更應(yīng)突出強(qiáng)調(diào)計(jì)算機(jī)軟件系統(tǒng)能力的培養(yǎng)[6]。而軟件工程相關(guān)的知識(shí)、方法和工具,是軟件類工程項(xiàng)目實(shí)施的基礎(chǔ),是學(xué)生必須掌握的基礎(chǔ)系統(tǒng)能力。在綜合設(shè)計(jì)整個(gè)過程中,都需要重視對(duì)軟件工程思維及相關(guān)技能的培養(yǎng)。
(二)加強(qiáng)過程管理
加強(qiáng)設(shè)計(jì)過程的管理,使得指導(dǎo)老師對(duì)綜合設(shè)計(jì)的指導(dǎo)和管理從偏向結(jié)果的管理方式,轉(zhuǎn)變?yōu)檫^程管理和結(jié)果并重的管理方式。加大對(duì)教學(xué)過程的關(guān)注,使教育真正轉(zhuǎn)向素質(zhì)教育,形成持續(xù)提升的教育發(fā)展趨勢(shì)是教育的必然選擇[7],因此需要通過對(duì)實(shí)驗(yàn)管理過程進(jìn)行頂層設(shè)計(jì)、優(yōu)化過程實(shí)施及過程管理[8],提高綜合設(shè)計(jì)的效果。
(三)強(qiáng)化綜合設(shè)計(jì)任務(wù)執(zhí)行過程的規(guī)范性
強(qiáng)化綜合設(shè)計(jì)任務(wù)執(zhí)行過程的規(guī)范性,引導(dǎo)學(xué)生嚴(yán)格按照軟件工程的規(guī)范來進(jìn)行設(shè)計(jì),從學(xué)生第一次進(jìn)行軟件工程項(xiàng)目開發(fā)起,就培養(yǎng)其軟件工程思維習(xí)慣,為以后學(xué)生走向工作崗位,成為高端軟件設(shè)計(jì)人才打下堅(jiān)實(shí)的基礎(chǔ)。
(四)通過教學(xué)設(shè)計(jì)增強(qiáng)學(xué)生自主學(xué)習(xí)和主動(dòng)合作學(xué)習(xí)的積極性
自主學(xué)習(xí)能力的培養(yǎng)是創(chuàng)新人才實(shí)踐教學(xué)的重要內(nèi)容[9]。自主學(xué)習(xí)能力有助于提高學(xué)生獲取知識(shí)的積極性和自覺性。主動(dòng)合作學(xué)習(xí),是指學(xué)生在學(xué)習(xí)過程能夠主動(dòng)開展合作,共同學(xué)習(xí)、探討、分享所學(xué)的知識(shí)、方法和技巧[ 10 ]。需要通過教學(xué)設(shè)計(jì)和管理,讓學(xué)生自覺認(rèn)識(shí)到合作的積極效應(yīng)。
三、綜合設(shè)計(jì)I改革實(shí)踐
根據(jù)以上思路,我們?cè)诰C合設(shè)計(jì)I的建設(shè)時(shí),做了以下調(diào)整和改革。
(一)框架性設(shè)計(jì)任務(wù)
在綜合設(shè)計(jì)I階段,設(shè)計(jì)題目和任務(wù)都是框架性的,沒有具體的設(shè)計(jì)目標(biāo)。而具體的設(shè)計(jì)目標(biāo),由學(xué)生在任務(wù)框架下自行確定。
比如其中一個(gè)題目是“基于MSP430F5529的小游戲開發(fā)”。該題目規(guī)定設(shè)計(jì)的任務(wù)是開發(fā)一個(gè)小游戲,但具體是什么樣的小游戲,游戲需要具備哪些功能,該如何操作等,都是由學(xué)生經(jīng)過小組討論后自行確定。經(jīng)過指導(dǎo)老師審核通過后,每個(gè)組根據(jù)自己提出的具體目標(biāo)去完成設(shè)計(jì)任務(wù)。
這樣做的一個(gè)優(yōu)點(diǎn)是在同一個(gè)任務(wù)框架下,不同組所選擇的具體設(shè)計(jì)目標(biāo)不同,不同組之間的具體設(shè)計(jì)內(nèi)容并不重復(fù)。這樣2~3個(gè)老師可以共同負(fù)責(zé)同一個(gè)設(shè)計(jì)任務(wù)的4~6組學(xué)生進(jìn)行設(shè)計(jì)。所有組都可以詳細(xì)介紹自己的設(shè)計(jì)思想、方法和具體實(shí)現(xiàn)等,以翻轉(zhuǎn)課堂的方式進(jìn)行交流,而不用擔(dān)心這樣的交流可能會(huì)導(dǎo)致自己的設(shè)計(jì)內(nèi)容可能被其他組“抄襲”。
(二)按軟件工程規(guī)范流程進(jìn)行設(shè)計(jì)過程管理
為了強(qiáng)化學(xué)生的軟件工程意識(shí),使得每個(gè)組的設(shè)計(jì)過程能按照軟件工程的規(guī)范嚴(yán)格執(zhí)行,本次綜合設(shè)計(jì)實(shí)驗(yàn)課的建設(shè),按軟件工程規(guī)范流程來設(shè)計(jì)指導(dǎo),以這種方式加強(qiáng)學(xué)生軟件工程相關(guān)能力的訓(xùn)練。為此,選取了部分指導(dǎo)課,專門用于軟件工程相關(guān)內(nèi)容的研討,具體設(shè)計(jì)如下。
1.第一次指導(dǎo),部署任務(wù),主要是對(duì)任務(wù)進(jìn)行詳細(xì)講解,使學(xué)生對(duì)任務(wù)有更深的理解。對(duì)任務(wù)實(shí)現(xiàn)的方向和主要技術(shù)路線做探討,講解需要學(xué)生自學(xué)掌握的一些基礎(chǔ)知識(shí)和開發(fā)工具。
詳解介紹評(píng)價(jià)和考核方式,以及對(duì)設(shè)計(jì)過程管理的要求。布置后面幾次研討內(nèi)容和時(shí)間節(jié)點(diǎn),讓同學(xué)提前準(zhǔn)備。
2.第一次研討,進(jìn)行可行性分析和需求分析相關(guān)技術(shù)討論。主要內(nèi)容是可行性分析該如何做,應(yīng)該從哪些角度進(jìn)行可行性分析,闡述對(duì)需求分析相關(guān)知識(shí)和方法的認(rèn)識(shí)和理解,如需求分析可以采用哪些方式來描述,常用工具有哪些,確定具體的設(shè)計(jì)內(nèi)容,并對(duì)具體的設(shè)計(jì)目標(biāo)進(jìn)行描述;準(zhǔn)備用什么方式來對(duì)本次設(shè)計(jì)的需求分析進(jìn)行描述,給出小組完成設(shè)計(jì)任務(wù)的進(jìn)度計(jì)劃表。
3.第二次研討,軟件可行性分析和需求分析闡述、概要設(shè)計(jì)方法研討。主要內(nèi)容是就選定設(shè)計(jì)目標(biāo)闡述具體的可行性分析和需求分析。闡述對(duì)系統(tǒng)概要設(shè)計(jì)相關(guān)知識(shí)和方法的了解和認(rèn)識(shí),如系統(tǒng)總體設(shè)計(jì)(概要設(shè)計(jì))可以采用哪些方式來描述,常用工具有哪些,準(zhǔn)備用什么方式來進(jìn)行本次設(shè)計(jì)的系統(tǒng)概要設(shè)計(jì)。
4.第三次研討,系統(tǒng)總體設(shè)計(jì)闡述、系統(tǒng)詳細(xì)設(shè)計(jì)方法研討。主要內(nèi)容是根據(jù)每組所做的需求分析,給出系統(tǒng)的概要設(shè)計(jì)和模塊劃分,通過討論,確定不同組員負(fù)責(zé)模塊的分工。原則除專職測(cè)試外,每個(gè)組員都需要承擔(dān)相應(yīng)模塊的設(shè)計(jì)任務(wù)。闡述對(duì)詳細(xì)設(shè)計(jì)相關(guān)知識(shí)和方法的認(rèn)識(shí)和理解。針對(duì)示例程序的學(xué)習(xí)有什么心得體會(huì)和收獲。
5.第四次研討,復(fù)雜工程問題和關(guān)鍵知識(shí)點(diǎn)的討論。主要內(nèi)容是就系統(tǒng)的概要設(shè)計(jì),闡述對(duì)設(shè)計(jì)題目所需的關(guān)鍵知識(shí)點(diǎn)的理解。闡述設(shè)計(jì)相關(guān)的復(fù)雜工程問題及解決方案。
6.第五次研討,系統(tǒng)詳細(xì)設(shè)計(jì)介紹。具體要求是根據(jù)系統(tǒng)概要設(shè)計(jì)和模塊劃分,每個(gè)組員分別闡述自己所負(fù)責(zé)模塊關(guān)鍵部分的詳細(xì)設(shè)計(jì)。闡述設(shè)計(jì)過程中遇到的復(fù)雜工程問題及解決方案。
7.第二、第三次指導(dǎo)。檢查設(shè)計(jì)進(jìn)度,輔助解決學(xué)生設(shè)計(jì)中遇到的問題。
8.第六次研討,中期檢查。主要內(nèi)容是每個(gè)組介紹目前設(shè)計(jì)的進(jìn)度;介紹設(shè)計(jì)中遇到的復(fù)雜工程問題及解決方案;講解后續(xù)進(jìn)度安排和計(jì)劃。
9.第四、第五次指導(dǎo),檢查設(shè)計(jì)進(jìn)度,輔助解決學(xué)生設(shè)計(jì)中遇到的問題。
10.第七次研討,系統(tǒng)測(cè)試方法討論。每個(gè)組就系統(tǒng)測(cè)試方法和使用工具進(jìn)行討論,并且介紹準(zhǔn)備采用的測(cè)試方法和工具。
11.第六次指導(dǎo),總結(jié)報(bào)告撰寫、答辯準(zhǔn)備指導(dǎo)。檢查學(xué)生最后的完成情況,指導(dǎo)學(xué)生撰寫總結(jié)報(bào)告、撰寫總結(jié)報(bào)告的注意事項(xiàng),指導(dǎo)學(xué)生準(zhǔn)備答辯材料。
(二)學(xué)生對(duì)設(shè)計(jì)進(jìn)度的把控更嚴(yán)格
在第一次指導(dǎo)課進(jìn)行任務(wù)講解時(shí),指導(dǎo)教師就把整個(gè)設(shè)計(jì)過程要進(jìn)行的主題研討內(nèi)容以及時(shí)間節(jié)點(diǎn)安排告知學(xué)生,并要求學(xué)生制定本組的項(xiàng)目實(shí)施計(jì)劃,嚴(yán)格按計(jì)劃執(zhí)行。而每周的研討和進(jìn)度檢查,可以督促學(xué)生按計(jì)劃進(jìn)度執(zhí)行。尤其是研討課,學(xué)生需要詳細(xì)講解具體的設(shè)計(jì)方法和實(shí)現(xiàn),指導(dǎo)教師會(huì)根據(jù)每次同學(xué)匯報(bào)和講解的表現(xiàn)給出設(shè)計(jì)過程分,這也將促使學(xué)生嚴(yán)格按計(jì)劃執(zhí)行設(shè)計(jì)任務(wù)。
(三)翻轉(zhuǎn)課堂設(shè)計(jì)
從上文可以看出,整個(gè)設(shè)計(jì)過程安排了7次軟件工程相關(guān)主題的研討。這7次研討以翻轉(zhuǎn)課堂的方式進(jìn)行,以學(xué)生匯報(bào)、師生討論、教師點(diǎn)評(píng)、解答的模式實(shí)施。通過翻轉(zhuǎn)課堂設(shè)計(jì),把設(shè)計(jì)指導(dǎo)變?yōu)榱酥黝}研討。
每個(gè)組根據(jù)每次研討課的主題,自主查閱資料準(zhǔn)備PPT,上講臺(tái)講解。講解的重點(diǎn)是對(duì)相關(guān)主題內(nèi)容的理解、具體實(shí)現(xiàn)的詳細(xì)描述、目前遇到的問題、解決問題的技術(shù)手段等。
每組學(xué)生講解完成后,指導(dǎo)教師會(huì)對(duì)該組學(xué)生講解中存在的問題和講解不清楚之處進(jìn)行提問,和學(xué)生一起探討,并指導(dǎo)學(xué)生解決設(shè)計(jì)中遇到的技術(shù)難題。在此期間,其他組的同學(xué)也可以提問,一起討論,這樣有助于學(xué)生梳理相關(guān)的知識(shí)點(diǎn),使得學(xué)生對(duì)相關(guān)知識(shí)點(diǎn)的掌握更清晰。
最后,指導(dǎo)教師會(huì)對(duì)該組學(xué)生講解的內(nèi)容進(jìn)行點(diǎn)評(píng),包括存在的問題、遺漏和不完善之處、與其他組相比較所具備的優(yōu)點(diǎn)、改進(jìn)建議等,使得學(xué)生通過翻轉(zhuǎn)課堂形式的研討后,除了能鞏固他們所掌握的知識(shí)外,還能夠得到提升。
由于加強(qiáng)了綜合設(shè)計(jì)過程的管理,并采取了翻轉(zhuǎn)課堂的研討方式,使得指導(dǎo)老師對(duì)每個(gè)小組的執(zhí)行情況和執(zhí)行進(jìn)度有較為清晰的了解,并且對(duì)一個(gè)組內(nèi)每個(gè)學(xué)生所承擔(dān)任務(wù)的工作量、出力多少、學(xué)習(xí)能力和態(tài)度等,有一個(gè)直觀的了解和感受,可以相對(duì)客觀的對(duì)小組內(nèi)的每個(gè)同學(xué)的設(shè)計(jì)過程成績(jī)進(jìn)行評(píng)定。通過對(duì)每次研討進(jìn)行考評(píng)的方式,實(shí)現(xiàn)了對(duì)設(shè)計(jì)過程相對(duì)客觀的考核評(píng)價(jià)。
(四)增加設(shè)計(jì)過程考核的權(quán)重
由于加強(qiáng)了對(duì)綜合設(shè)計(jì)過程的管理,使得指導(dǎo)老師可以相對(duì)客觀的對(duì)一個(gè)組的每個(gè)同學(xué)的平時(shí)成績(jī)進(jìn)行評(píng)定。在這種情況下,我們?cè)黾恿嗽O(shè)計(jì)過程考核分?jǐn)?shù)占總成績(jī)的權(quán)重,使其從原來的10%提升為40%,而且評(píng)價(jià)方式也由原來的組內(nèi)互評(píng),改為以指導(dǎo)老師評(píng)價(jià)為主,同學(xué)組內(nèi)互評(píng)為輔的評(píng)價(jià)方式。每次研討課都給予了相應(yīng)的分?jǐn)?shù),通過這種方式實(shí)現(xiàn)了對(duì)設(shè)計(jì)過程的考核評(píng)價(jià)。
四、綜合設(shè)計(jì)改革成果分析
本次綜合設(shè)計(jì)改革是整個(gè)綜合設(shè)計(jì)實(shí)驗(yàn)課程平臺(tái)建設(shè)項(xiàng)目的第一階段,該部分在2018—2019年度的第一學(xué)期進(jìn)行了實(shí)施,取得了較為明顯的效果。
(一)強(qiáng)化了學(xué)生對(duì)軟件工程相關(guān)方法和工具的掌握
通過上述主題研討課的安排,使得學(xué)生的整個(gè)綜合設(shè)計(jì)過程都嚴(yán)格按照軟件工程的規(guī)范流程進(jìn)行。而主題研討方式,一個(gè)組講解他們對(duì)研討主題的理解以及具體實(shí)施方案時(shí),其他組的同學(xué)在旁聽,且可以提問探討。不同組對(duì)同一個(gè)問題的理解可能有差異,而且針對(duì)本組設(shè)計(jì)任務(wù)采用的具體實(shí)施技術(shù)和方法也不同,這樣的探討容易在不同組之間形成思維碰撞,使得學(xué)生對(duì)相關(guān)主題的理解更加深刻、更加全面。