徐傳運(yùn),張 楊,涂 飛,王 森,龍 華,張小川
(1.重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 重慶 400054;2.重慶師范大學(xué) 計(jì)算機(jī)與信息科學(xué)學(xué)院,重慶 400030)
?
【博士論壇】
CDIO驅(qū)動(dòng)的軟件工程課程案例庫(kù)建設(shè)研究
徐傳運(yùn)1,張 楊2,涂 飛1,王 森1,龍 華1,張小川1
(1.重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 重慶 400054;2.重慶師范大學(xué) 計(jì)算機(jī)與信息科學(xué)學(xué)院,重慶 400030)
針對(duì)軟件工程教學(xué)過(guò)程中理論與實(shí)踐分離、離散的知識(shí)學(xué)習(xí)與綜合的軟件系統(tǒng)開(kāi)發(fā)能力相矛盾、當(dāng)前案例偏于輔助理解理論而輕于能力培養(yǎng)、課程組織順序與軟件工程實(shí)踐順序不一致等問(wèn)題,基于CDIO思想的軟件工程課程案例設(shè)計(jì)階梯模型,提出CDIO驅(qū)動(dòng)的課程案例庫(kù)建設(shè)方案,并以軟件工程課程案例庫(kù)為依托開(kāi)展了專業(yè)課程教學(xué)方法的綜合改革。
CDIO;階梯模型;課程案例庫(kù);軟件工程
作為一個(gè)新近發(fā)展起來(lái)的專業(yè),軟件工程專業(yè)在學(xué)生培養(yǎng)理論、方法、實(shí)踐等方面國(guó)內(nèi)外都處于探索階段,相關(guān)的教育實(shí)體都以自己的教學(xué)實(shí)踐,在探索行之有效的教學(xué)方法[1-14]。
當(dāng)前軟件工程課程教學(xué)中普遍存在以下4種主要問(wèn)題:
(1)理論教學(xué)與實(shí)踐教學(xué)分離:即理論知識(shí)脫離工程實(shí)踐,導(dǎo)致學(xué)生在實(shí)踐時(shí)迷茫、蠻干、低效、質(zhì)量低、不規(guī)范、不可控;具體實(shí)踐沒(méi)有結(jié)合理論,導(dǎo)致學(xué)生只能算是“工匠”,無(wú)法在實(shí)踐中去驗(yàn)證、理解和提升理論,只能完成小工程,難以勝任大工程。
(2)離散的知識(shí)學(xué)習(xí)與軟件系統(tǒng)開(kāi)發(fā)必需的綜合能力相矛盾:當(dāng)前軟件工程課程體系通常分為基礎(chǔ)課、專業(yè)基礎(chǔ)課、專業(yè)課幾個(gè)層次,每門課程都各自為中心的講授理論、開(kāi)設(shè)驗(yàn)課,而沒(méi)有把提高學(xué)生的軟件項(xiàng)目開(kāi)發(fā)能力直接聯(lián)系起來(lái),致使學(xué)生即使每門課都學(xué)得很好,但仍然存在不能開(kāi)發(fā)軟件系統(tǒng)的問(wèn)題。
(3)當(dāng)前案例的目標(biāo)偏向輔助理解理論而輕于能力培養(yǎng):當(dāng)前的軟件工程案例通常只與單門課程配套,大部分是針對(duì)單個(gè)知識(shí)點(diǎn)設(shè)計(jì)(為了學(xué)生更好地理解知識(shí)點(diǎn)),而與軟件工程專業(yè)最終的教學(xué)目標(biāo)(培養(yǎng)學(xué)生的軟件系統(tǒng)開(kāi)發(fā)能力)較少有直接的關(guān)聯(lián)。
(4)教學(xué)課程的組織順序與軟件工程實(shí)踐順序不一致:軟件工程專業(yè)的教學(xué)課程是根據(jù)軟件工程知識(shí)結(jié)構(gòu)的內(nèi)在關(guān)系進(jìn)行組織的(即從基礎(chǔ)到專業(yè),從先導(dǎo)到后續(xù)的順序),但軟件工程實(shí)踐是按照軟件系統(tǒng)開(kāi)發(fā)活動(dòng)的先后(即主要的順序是系統(tǒng)分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、發(fā)布、實(shí)施)。然而,如果軟件工程教學(xué)直接從實(shí)現(xiàn)技術(shù)(即程序設(shè)計(jì),主要涉及C語(yǔ)言程序設(shè)計(jì)、JAVA語(yǔ)言程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等課程)開(kāi)始,必將導(dǎo)致學(xué)生在學(xué)習(xí)了程序設(shè)計(jì)的基本能力之后需要進(jìn)行較大規(guī)模的程序設(shè)計(jì)實(shí)踐,但較大規(guī)模的程序又需要系統(tǒng)分析與設(shè)計(jì)的綜合能力(而此時(shí)學(xué)生還不具備這樣的素質(zhì)和能力),最終使得學(xué)生的程序設(shè)計(jì)能力沒(méi)有得到實(shí)質(zhì)的鍛煉和有效的提升。
以上4種問(wèn)題的本質(zhì)在于:理論知識(shí)的傳統(tǒng)學(xué)習(xí)軌跡(先搞清楚基本原理,再動(dòng)手實(shí)施)與工程實(shí)踐的具體操作流程(先動(dòng)手做,實(shí)踐過(guò)程中發(fā)現(xiàn)問(wèn)題,再思考解決方案)正好相反,因此應(yīng)該將其組合成環(huán)環(huán)相扣的階梯模型,其核心思想為:軟件工程專業(yè)培養(yǎng)從基礎(chǔ)技能的原理性課程啟程,快速學(xué)習(xí)后就進(jìn)入運(yùn)用所學(xué)理論知識(shí)的虛擬項(xiàng)目中實(shí)踐;學(xué)生在具體的項(xiàng)目開(kāi)發(fā)中發(fā)現(xiàn)其對(duì)理論知識(shí)的理解和基礎(chǔ)技能的使用存在的種種問(wèn)題,再進(jìn)一步學(xué)習(xí)訓(xùn)練專業(yè)技能的理論和實(shí)踐課程,以完善其專業(yè)技能和職業(yè)素養(yǎng);周而循環(huán),在專業(yè)技能實(shí)踐環(huán)節(jié)中發(fā)現(xiàn)的自身不足,有機(jī)會(huì)在研習(xí)綜合設(shè)計(jì)類課程的時(shí)候進(jìn)行修正,而綜合素質(zhì)的欠缺還能夠在最后的創(chuàng)新創(chuàng)業(yè)環(huán)節(jié)中彌補(bǔ)。
基于CDIO的軟件工程課程案例庫(kù)建設(shè),以及基于此的教學(xué)方法改革是一種行之有效的解決方案。CDIO代表構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate),以產(chǎn)品研發(fā)到產(chǎn)品運(yùn)行的生命周期為載體,將工程畢業(yè)生的能力分為工程基礎(chǔ)知識(shí)、個(gè)人能力、人際團(tuán)隊(duì)能力和工程系統(tǒng)能力4個(gè)層面,讓學(xué)生以主動(dòng)的、付諸實(shí)踐的,且將相關(guān)課程加以有機(jī)聯(lián)系的方式學(xué)習(xí)軟件工程?;贑DIO的基本思想,本文原創(chuàng)性地提出“CDIO”(即IDCO,代表實(shí)現(xiàn)(Implement)、設(shè)計(jì)(Design)、構(gòu)思(Conceive)和運(yùn)作(Operate))這一概念,用以實(shí)現(xiàn)如圖1所示的軟件工程課程案例設(shè)計(jì)模型。
在任何理論尚未完全成熟的專業(yè)領(lǐng)域,案例教學(xué)法是把理論與實(shí)踐結(jié)合的有效方法。比如古代建筑業(yè)理論尚不成熟的時(shí)候,“師傅帶徒弟”參與建筑項(xiàng)目就是最優(yōu)的人才培養(yǎng)模式。本文所建設(shè)的課程案例庫(kù),就是讓軟件工程專業(yè)的學(xué)生有機(jī)會(huì)在各類課程教師的全程指導(dǎo)下充分參與到各個(gè)層次的案例項(xiàng)目中,通過(guò)一個(gè)個(gè)具體的軟件案例,分階段地逐步掌握軟件工程開(kāi)發(fā)所需的思維模式和綜合能力。
CDIO驅(qū)動(dòng)的軟件工程課程案例庫(kù)建設(shè)總體思路為:
(1)多渠道收集切實(shí)可行的項(xiàng)目案例,把多門課程的多個(gè)知識(shí)點(diǎn)有機(jī)融入到同一個(gè)項(xiàng)目案例中,對(duì)課程案例庫(kù)中的所有項(xiàng)目案例進(jìn)行有利于技能培養(yǎng)的改造。各門課程在講授理論時(shí),以解決案例中相關(guān)子問(wèn)題作為教學(xué)目標(biāo)之一。完成一系列相關(guān)課程后,學(xué)生就能徹底解決和充分理解項(xiàng)目案例中所有子問(wèn)題,就能開(kāi)發(fā)項(xiàng)目案例所依托的軟件系統(tǒng),從而把多門課程的相關(guān)知識(shí)點(diǎn)在項(xiàng)目案例的全程引導(dǎo)下有機(jī)結(jié)合起來(lái)。
(2)以培養(yǎng)學(xué)生軟件系統(tǒng)開(kāi)發(fā)綜合能力為中心建設(shè)軟件工程課程案例庫(kù),在項(xiàng)目案例的基礎(chǔ)上設(shè)計(jì)針對(duì)單門課程的課程案例,每個(gè)課程案例都服務(wù)于學(xué)生軟件系統(tǒng)開(kāi)發(fā)能力的提高。例如:設(shè)計(jì)“公務(wù)員招聘報(bào)名系統(tǒng)”項(xiàng)目案例,該項(xiàng)目案例涉及到所有專業(yè)基礎(chǔ)課和專業(yè)核心課,比如“數(shù)據(jù)庫(kù)原理及應(yīng)用”這門課的課程案例就是“公務(wù)員招聘報(bào)名系統(tǒng)”的數(shù)據(jù)庫(kù)設(shè)計(jì)部分,其培養(yǎng)目標(biāo)就是提高學(xué)生軟件系統(tǒng)的數(shù)據(jù)設(shè)計(jì)能力。
(3)基于CDIO設(shè)計(jì)軟件工程綜合案例庫(kù),其中項(xiàng)目案例的每一個(gè)階段都可以獨(dú)立抽取出來(lái)作為課程案例,而課程案例所需的理論知識(shí)由其所屬課程提供。例如:在設(shè)計(jì)“JAVA程序設(shè)計(jì)”的課程案例時(shí),指導(dǎo)教師應(yīng)該提供系統(tǒng)分析、設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)的相關(guān)內(nèi)容,學(xué)生僅需要根據(jù)案例提供的內(nèi)容編程實(shí)現(xiàn)相應(yīng)的軟件系統(tǒng)。
基于CDIO的基本思想,分階段設(shè)置基礎(chǔ)型(培養(yǎng)學(xué)生基礎(chǔ)知識(shí)的應(yīng)用能力)、設(shè)計(jì)型(養(yǎng)學(xué)生綜合運(yùn)用知識(shí)的軟件開(kāi)發(fā)能力)、綜合/探究型(培養(yǎng)學(xué)生的綜合設(shè)計(jì)能力)、創(chuàng)新創(chuàng)業(yè)型(培養(yǎng)學(xué)生項(xiàng)目研發(fā)能力)4個(gè)層次的課程案例和項(xiàng)目案例,把學(xué)科建設(shè)成果轉(zhuǎn)化為本科教學(xué)的優(yōu)質(zhì)資源,實(shí)現(xiàn)從驗(yàn)證型向技能型、從單一知識(shí)點(diǎn)向復(fù)合知識(shí)點(diǎn)的轉(zhuǎn)變,打造多層次合理遞進(jìn)、各階段無(wú)縫連接的培養(yǎng)模式。
基于上述思想,CDIO驅(qū)動(dòng)的軟件工程課程案例庫(kù)的核心工作主要分為兩個(gè)方面:
(1)案例建設(shè)。案例庫(kù)中的項(xiàng)目案例和課程案例:首先是一個(gè)基本的軟件系統(tǒng),建設(shè)時(shí)盡量讓案例保持普通軟件系統(tǒng)本就具有的所有特性,盡量讓系統(tǒng)與真實(shí)的商用系統(tǒng)一致;其次是一個(gè)經(jīng)過(guò)精心設(shè)計(jì)、與教學(xué)內(nèi)容和教學(xué)過(guò)程緊密結(jié)合的軟件系統(tǒng),應(yīng)該在確保前一點(diǎn)的基礎(chǔ)上,對(duì)案例進(jìn)行適當(dāng)而不失本真的改造,使其能有效應(yīng)用于具體的教學(xué)過(guò)程中。
(2)案例系統(tǒng)的開(kāi)發(fā),即開(kāi)發(fā)用于案例教學(xué)的軟件系統(tǒng)本身。為了保持普通商用系統(tǒng)的基本特性、開(kāi)發(fā)過(guò)程、開(kāi)發(fā)方法,應(yīng)該使用普通商用系統(tǒng)的開(kāi)發(fā)工具讓學(xué)生能經(jīng)歷真實(shí)軟件產(chǎn)品的構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)作全過(guò)程,使得案例系統(tǒng)的開(kāi)發(fā)與普通的軟件系統(tǒng)的開(kāi)發(fā)沒(méi)有本質(zhì)的不同。但是作為一個(gè)用于本科教學(xué)的軟件系統(tǒng)樣本,案例特別強(qiáng)調(diào)開(kāi)發(fā)的規(guī)范化、正統(tǒng)化、標(biāo)準(zhǔn)化,理論、技術(shù)、方法、工具的先進(jìn)性以及開(kāi)發(fā)過(guò)程、開(kāi)發(fā)結(jié)果的高質(zhì)量,因此在商用軟件開(kāi)發(fā)過(guò)程中經(jīng)常存在的、違背理論的靈活變通處理方法,以及根據(jù)特定情況而采用的、違背規(guī)范化和標(biāo)準(zhǔn)化的小技巧都不應(yīng)該出現(xiàn)在案例庫(kù)中。
軟件工程課程案例庫(kù)中軟件系統(tǒng)的具體內(nèi)容應(yīng)該包括9個(gè)方面的內(nèi)容:即軟件系統(tǒng)的背景、軟件系統(tǒng)的需求材料、軟件系統(tǒng)的需求分析報(bào)告、軟件系統(tǒng)的設(shè)計(jì)(包括:概要設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、交互設(shè)計(jì)、詳細(xì)設(shè)計(jì)等)、軟件系統(tǒng)的實(shí)現(xiàn)(包括:模板數(shù)據(jù)庫(kù)、可執(zhí)行的程序、代碼、)、軟件系統(tǒng)的測(cè)試設(shè)計(jì)、軟件系統(tǒng)的測(cè)試報(bào)告、軟件系統(tǒng)的部署指南和軟件系統(tǒng)的操作手冊(cè)。而軟件工程課程案例庫(kù)主要包含3個(gè)方面的建設(shè)結(jié)果:即案例的知識(shí)點(diǎn)設(shè)置設(shè)計(jì)、案例的教學(xué)使用指南和案例的學(xué)習(xí)指南。
軟件系統(tǒng)案例為面向案例的教學(xué)提供了基礎(chǔ),而案例的合理使用,需要把理論教學(xué)、實(shí)踐教學(xué)與案例緊密結(jié)合;案例價(jià)值的充分發(fā)揮,需要采用與之相適應(yīng)的教學(xué)方法。在傳統(tǒng)教學(xué)中,每門課程只需要完成課程規(guī)定的教學(xué)目標(biāo),而基于CDIO理念的跨課程案例驅(qū)動(dòng)的一體化教學(xué),要求軟件工程的所有課程必須相互配合、相互支撐,共同服務(wù)于學(xué)生軟件系統(tǒng)研發(fā)能力的全面培養(yǎng)。因此,要求教師必須對(duì)教學(xué)案例有充分理解、對(duì)其他課程的內(nèi)容有所了解,才能在教學(xué)重點(diǎn)和教學(xué)方式上與其他相關(guān)課程相互配合,同時(shí)也要求教師與時(shí)俱進(jìn)地提升基本技能、人際能力以及產(chǎn)品、過(guò)程和系統(tǒng)構(gòu)建能力。
由此可知,基于課程案例庫(kù)的教學(xué)改革重點(diǎn)在于:充分調(diào)動(dòng)相關(guān)教師參與軟件工程教學(xué)改革的主動(dòng)性和積極性,強(qiáng)化各任課教師綜合運(yùn)用案例系統(tǒng)的能力,進(jìn)而提高專業(yè)教師的軟件產(chǎn)品研發(fā)水平。
CDIO驅(qū)動(dòng)的軟件系統(tǒng)案例庫(kù)建設(shè)以及軟件工程專業(yè)課程教學(xué)方法研究的特色與創(chuàng)新之處在于:
(1)以層次化的課程設(shè)計(jì)階梯模型作為軟件工程專業(yè)踐行CDIO理念的突破口。本文以層次化的課程設(shè)計(jì)階梯模型為中心和紐帶,把軟件工程的專業(yè)課程緊密聯(lián)系起來(lái),形成CDIO要求的一體化課程體系,達(dá)到CDIO要求學(xué)生具備的工程基礎(chǔ)知識(shí)、個(gè)人能力、人際團(tuán)隊(duì)能力和工程系統(tǒng)能力等4個(gè)層次能力的目標(biāo)。
(2)逆向CDIO驅(qū)動(dòng)的課程案例庫(kù)建設(shè)。傳統(tǒng)的案例建設(shè)多以單門課程為依托,輔助單個(gè)知識(shí)點(diǎn)的理解、培養(yǎng)學(xué)生單個(gè)方面的能力,這種方式不利于培養(yǎng)學(xué)生開(kāi)發(fā)軟件產(chǎn)品的綜合能力,導(dǎo)致學(xué)生每一種技術(shù)都了解,但就是不能開(kāi)發(fā)出完整的軟件產(chǎn)品。本文以培養(yǎng)學(xué)生的軟件產(chǎn)品研發(fā)綜合能力為目標(biāo),從基礎(chǔ)性技能的培養(yǎng)入手、逐層遞進(jìn),把相關(guān)課程的關(guān)聯(lián)知識(shí)點(diǎn)結(jié)合到同一個(gè)案例中,有利于學(xué)生理解理論知識(shí),并綜合運(yùn)用這些知識(shí)分析、解決實(shí)際問(wèn)題,最終開(kāi)發(fā)出完整的軟件產(chǎn)品。
(3)通過(guò)項(xiàng)目案例和課程案例把理論教學(xué)與實(shí)踐教學(xué)充分結(jié)合。理論與實(shí)踐分離一直軟件工程教學(xué)中存在的問(wèn)題,本文以項(xiàng)目案例和課程案例為媒介,把二者有機(jī)結(jié)合起來(lái)(把理論知識(shí)融入到案例中有助于學(xué)生理解抽象的理念知識(shí),在理論知識(shí)指導(dǎo)下建立案例有助于學(xué)生科學(xué)、系統(tǒng)地實(shí)踐)。
[1] 林芳,陳慶強(qiáng),楊榮華.基于工程能力培養(yǎng)的軟件工程專業(yè)實(shí)踐體系構(gòu)建[J].計(jì)算機(jī)教育,2015(15):62-65.
[2] 李彤,張璇,王旭,等.SE-CDIO工程教育模式的探索與實(shí)踐[J].高等工程教育研究,2014(1):52-57.
[3] 張培穎,鄭秋梅,宮法明,等.CDIO工程教育模式在軟件工程核心課程教學(xué)中的應(yīng)用[J].教育探索,2014(12):21-22.
[4] 宗欣露,徐慧.基于CDIO教育模式的軟件工程課程教學(xué)改革[J].教育教學(xué)論壇,2015(4):96-97.
[5] 呂慶文,曹蕾,李遠(yuǎn)念,等.基于CDIO模式培養(yǎng)復(fù)合型卓越軟件工程師的探索[J].高教探索,2013(1):71-76.
[6] 林連南,左寶河,劉嘉偉.“三位一體”的卓越軟件工程師培養(yǎng)模式 [J].計(jì)算機(jī)教育,2015(2):1-4.
[7] 喬付,王國(guó)權(quán).CDIO 理念下軟件工程專業(yè)課程群建設(shè)探索[J].廣西教育,2011(1):37-38.
[8] 李春英,湯志康.CDIO模式下的軟件工程課程設(shè)計(jì)實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(1):173-175.
[9] 趙楷,張琳琳.基于CDIO的《軟件工程》實(shí)踐課程教學(xué)改革與探索[J].現(xiàn)代計(jì)算機(jī),2012(9):31-36.
[10]孫凌宇,冷明,郭晨,等.基于CDIO的創(chuàng)新型軟件工程人才培養(yǎng)模式研究[J].山西財(cái)經(jīng)大學(xué)學(xué)報(bào),2011,33(1):239-240.
[11]才智,張學(xué)金.基于 CDIO 模式的軟件工程課程群教學(xué)改革[C].Third International Conference on Education Technology and Training (ETT).2010.
[12]朱廣萍,柳益君,葉飛躍,等.基于崗位能力的軟件工程專業(yè)實(shí)踐能力培養(yǎng)研究[J].江蘇理工學(xué)院學(xué)報(bào),2014(6):86-92.
[13]盧瑩,莊麗華.基于CDIO工程教育理念的軟件工程實(shí)踐教學(xué)改革[J].教育教學(xué)論壇,2015(28):102-104.
[14]張淑麗,劉勝輝,張宏國(guó).軟件工程 CDIO 綜合訓(xùn)練項(xiàng)目設(shè)計(jì)與執(zhí)行研究[J].黑龍江教育(高教研究與評(píng)估),2011(10).
(責(zé)任編輯周江川)
重慶市研究生教改項(xiàng)目”工程碩士研究生創(chuàng)新教學(xué)模式的探索與實(shí)踐”(yjg143053);重慶市教改項(xiàng)目“軟件工程專業(yè)實(shí)踐教學(xué)體系的構(gòu)建與實(shí)踐”(133021);重慶師范大學(xué)高等教育教學(xué)改革研究項(xiàng)目(201403);重慶市教委科學(xué)技術(shù)研究項(xiàng)目(KJ1400525)
徐傳運(yùn)(1979—),男,副教授,博士,研究方向:軟件工程、人工智能。
10.13769/j.cnki.cn50-1011/d.2016.12.009
徐傳運(yùn),張楊,涂飛,等.CDIO驅(qū)動(dòng)的軟件工程課程案例庫(kù)建設(shè)研究[J].重慶與世界,2016(12):28-30.
G642
A
1007-7111(2016)12-0028-03