倪 康,陳 志
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210023)
目前,將工程教育理念融入大學(xué)課堂教學(xué)得到了廣泛推廣和應(yīng)用[1-3]。在課堂教學(xué)過程中,有針對(duì)性地培養(yǎng)學(xué)生處理復(fù)雜工程問題的實(shí)踐能力,能夠更好地滿足各用人單位的需求[4-6]。統(tǒng)一建模語言(Unified Modeling Language,UML)作為軟件工程行業(yè)標(biāo)準(zhǔn)化的建模語言,對(duì)較為復(fù)雜的大型軟件系統(tǒng)進(jìn)行系統(tǒng)、全面的分析與設(shè)計(jì),且課程理念貫穿于軟件設(shè)計(jì)、開發(fā)、測(cè)試、維護(hù)等各方面,在軟件工程領(lǐng)域占據(jù)重要地位。此外,該課程與面向?qū)ο蟪绦蛟O(shè)計(jì)、數(shù)據(jù)庫(kù)原理等課程相輔相成,有利于計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程等課程體系知識(shí)的鏈接[7]。
傳統(tǒng)UML 課程教學(xué)重概念和各種模型知識(shí)講解,易造成整個(gè)課堂學(xué)習(xí)枯燥乏味,且不能與實(shí)際應(yīng)用緊密聯(lián)系,學(xué)生學(xué)習(xí)積極性不高,存在以教師講授為主、授課方式單一、實(shí)踐環(huán)節(jié)薄弱、課程考核方式單一等問題。近年來,CDIO 理念以其較強(qiáng)的實(shí)踐經(jīng)驗(yàn)、先進(jìn)的工程教育理念、較全面的課程體系,使其在不同專業(yè)不同課程的授課中得以廣泛推廣和應(yīng)用[8-9]。例如:穆磊等[10]將CDIO 理念應(yīng)用于RFID 原理與應(yīng)用課程中,江帆[11]提出基于CDIO 理念的物聯(lián)網(wǎng)課程教學(xué)改革方法,李彤等[12]構(gòu)建了SE-CDIO 軟件工程國(guó)家精品課程理論課程架構(gòu)。上述研究將CDIO、SECDIO 理念中的構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)作合理地應(yīng)用于課程設(shè)計(jì),但缺少對(duì)案例啟發(fā)、教學(xué)輔助等機(jī)制的嵌入。
案例驅(qū)動(dòng)教學(xué)是一種基于建構(gòu)主義理論設(shè)計(jì)的教學(xué)模式,能夠激發(fā)學(xué)生學(xué)習(xí)興趣,提升學(xué)習(xí)效果。近年來,學(xué)者們提出了與案例相結(jié)合的UML 課程改革方法,以著力解決UML 理論與實(shí)踐不能緊密聯(lián)系的問題,提高課程教學(xué)效果。例如,郭艷燕等[13]提出一種混合式的UML 課程教學(xué)改革方案,綜合使用大規(guī)模開放在線課程(Massive Open Online Course,MOOC)、小規(guī)模限制性在線課程(Small Private Online Course,SPOC)、雨課堂及QQ 課程群,并以類圖為例,詳細(xì)闡述了具體教學(xué)改革內(nèi)容。鄔卓恒等[14]以用例圖為例,通過案例教學(xué)將學(xué)生從枯燥的理論知識(shí)中脫離出來,實(shí)現(xiàn)學(xué)生對(duì)UML 基礎(chǔ)理論知識(shí)的認(rèn)識(shí)、掌握和應(yīng)用。雖然上述方法利用多種教學(xué)方式,以提升利用UML 理論解決實(shí)際工程問題的能力[15],但對(duì)軟件工程專業(yè)學(xué)生所擅長(zhǎng)的軟件編程能力欠缺考慮;同時(shí),針對(duì)不同專業(yè)與基礎(chǔ)的學(xué)生而言,課堂教學(xué)效果如何與任課教師的主觀判斷有極大關(guān)系,不能全面且實(shí)時(shí)地對(duì)課程教學(xué)中存在的問題作出及時(shí)改進(jìn)。
針對(duì)上述問題,本文結(jié)合軟件工程專業(yè)學(xué)生所擅長(zhǎng)的軟件編程能力,探究一種基于“SE-CDIO-CA”的UML 課程教學(xué)改革方法,該方法從軟件工程專業(yè)培養(yǎng)目標(biāo)與畢業(yè)要求出發(fā),將課程分為項(xiàng)目需求分析與建模、項(xiàng)目設(shè)計(jì)與優(yōu)化、項(xiàng)目實(shí)現(xiàn)與優(yōu)化,項(xiàng)目維護(hù)與發(fā)布4 個(gè)部分,同時(shí)將IBM-RSA 和PlantUML 命令行建模、案例啟發(fā)、在線教學(xué)輔助融入各環(huán)節(jié):課堂導(dǎo)入、分組討論、知識(shí)講解與課堂總結(jié)等。該方法還可以實(shí)時(shí)掌握學(xué)生課堂學(xué)習(xí)情況,并給出任課教師后續(xù)教學(xué)改進(jìn)建議,不斷提升學(xué)生利用UML 相關(guān)理論知識(shí)解決實(shí)際工程問題的能力。
基于“SE-CDIO-CA”的UML 課程教學(xué)整體方案如圖1所示,該方案在全面適應(yīng)國(guó)家社會(huì)發(fā)展并滿足軟件工程人才培養(yǎng)需求的前提下,以軟件工程專業(yè)學(xué)生畢業(yè)要求為指導(dǎo),綜合設(shè)計(jì)UML 課程培養(yǎng)目標(biāo),通過“SE-CDIO-CA”UML 課程改革方法,融入工程教育理念,形成基于“SECDIO-CA”的UML 課程教學(xué)整體方案。
Fig.1 Overall teaching scheme of UML course based on "SE-CDIO-CA"圖1 基于“SE-CDIO-CA”的UML課程教學(xué)整體方案
基于“SE-CDIO-CA”的UML 課程教學(xué)方法將案例啟發(fā)和建模工具(PlantUML、IBM RSA)有機(jī)融入課堂教學(xué)各方面,并從4 個(gè)方面構(gòu)建課程體系:需求分析與建模、項(xiàng)目分析與設(shè)計(jì)、項(xiàng)目實(shí)現(xiàn)與優(yōu)化、項(xiàng)目維護(hù)與發(fā)布。這4 個(gè)方面完全與CDIO 思想中的構(gòu)思、設(shè)計(jì)、實(shí)現(xiàn)與運(yùn)作緊密結(jié)合,均對(duì)應(yīng)著不同的授課內(nèi)容。此外,通過教學(xué)(實(shí)踐)目標(biāo)、教學(xué)(實(shí)踐)評(píng)價(jià)和教學(xué)(實(shí)踐)反思反哺整個(gè)教學(xué)過程,并利用在線輔助教學(xué)系統(tǒng)實(shí)時(shí)關(guān)注學(xué)生課堂學(xué)習(xí)情況,及時(shí)調(diào)整課堂教學(xué)策略,已達(dá)到更優(yōu)的課堂教學(xué)效果。
培養(yǎng)目標(biāo)主要包括3 個(gè)方面:思想素質(zhì)教育目標(biāo)、知識(shí)教學(xué)目標(biāo)和能力教學(xué)目標(biāo)。思想素質(zhì)教育目標(biāo)方面,培養(yǎng)具有愛國(guó)情懷、民族自豪感、良好的職業(yè)操守和人文素養(yǎng)的軟件工程專業(yè)人才,增強(qiáng)學(xué)生在軟件工程相關(guān)領(lǐng)域的法律意識(shí)和安全意識(shí),樹立正確的道德觀;在知識(shí)教學(xué)目標(biāo)方面,需培養(yǎng)學(xué)生掌握UML 及相關(guān)領(lǐng)域?qū)I(yè)知識(shí)和開發(fā)工具,并具備利用UML 分析和解決軟件工程領(lǐng)域復(fù)雜工程問題的能力。引入OBE 教育模式,能力教學(xué)目標(biāo)與畢業(yè)要求存在映射關(guān)系,具體表述如圖2所示。
Fig.2 Mapping relationship between teaching objectives and graduation requirements圖2 教學(xué)目標(biāo)與畢業(yè)要求映射關(guān)系
在多樣化軟件工程問題中,學(xué)生能夠理解和設(shè)計(jì)UML模型驅(qū)動(dòng)的多樣化軟件工程領(lǐng)域復(fù)雜工程解決方案,并通過對(duì)比分析和研究獲得可替代的解決方案,該培養(yǎng)目標(biāo)對(duì)應(yīng)軟件工程畢業(yè)要求中對(duì)學(xué)生問題分析能力的具體要求;在軟件設(shè)計(jì)基本方法和技術(shù)中,學(xué)生需要理解軟件產(chǎn)品設(shè)計(jì)和開發(fā)相關(guān)方法,并能夠針對(duì)復(fù)雜工程問題,給出特定需求的軟件架構(gòu)和系統(tǒng)設(shè)計(jì)方案,該培養(yǎng)目標(biāo)較好地貼合畢業(yè)要求中對(duì)設(shè)計(jì)和開發(fā)解決方案的相關(guān)要求;在全周期全流程軟件設(shè)計(jì)中,要求學(xué)生理解全周期和全流程開發(fā)的基本方法和技術(shù),培養(yǎng)溝通表達(dá)能力,理解其中所涉及到的經(jīng)濟(jì)決策和工程管理問題,此培養(yǎng)目標(biāo)與畢業(yè)要求對(duì)項(xiàng)目管理的相關(guān)要求保持一致。畢業(yè)要求支撐教學(xué)目標(biāo),并可達(dá)成相關(guān)教學(xué)目標(biāo)。
PlantUML&IBM RSA 案例啟發(fā)式教學(xué)方法充分考慮軟件工程學(xué)生對(duì)編程的敏感性,將建模工具(PlantUML、IBM RSA)引入課堂教學(xué)中,促使理論和實(shí)踐相融合,并培養(yǎng)學(xué)生UML 標(biāo)準(zhǔn)化建模思維能力。此外,該方法利用實(shí)際工程案例,結(jié)合UML 課程基礎(chǔ)知識(shí),以問題驅(qū)動(dòng)的方式,將案例融入課堂教學(xué)各方面。圖3 給出了PlantUML&IBM RSA 案例啟發(fā)式教學(xué)方法教學(xué)活動(dòng)示意圖。
Fig.3 Schematic diagram of teaching activities of PlantUML&IBM RSA case heuristic teaching method圖3 PlantUML&IBM RSA 案例啟發(fā)式教學(xué)方法教學(xué)活動(dòng)
Fig.4 Schematic diagram of three-level case teaching method圖4 三級(jí)案例教學(xué)法
該方法主要分為以下步驟:提出問題、討論案例、結(jié)合案例講解知識(shí)點(diǎn)、分組給出解決方案、總結(jié)案例、升華案例并給出課后思考問題,各步驟所占課時(shí)長(zhǎng)如圖3 所示。討論案例、解決方案和總結(jié)案例均會(huì)與在線教學(xué)輔助系統(tǒng)進(jìn)行交互。在知識(shí)點(diǎn)講解部分,利用代碼化UML 建模工具(PlantUML)和UML 建模軟件(IBM RSA),結(jié)合具體的案例分析,全面講解課程知識(shí)點(diǎn),并討論給出具體的解決方案(包括參考模型圖)。教學(xué)評(píng)價(jià)主要包括混合式教學(xué)評(píng)價(jià)和實(shí)踐評(píng)價(jià),各評(píng)價(jià)機(jī)制能夠從多角度對(duì)學(xué)生的學(xué)習(xí)效果進(jìn)行有效評(píng)價(jià),反哺教學(xué)過程各方面,以達(dá)到更好的課堂授課效果。
該方法中,案例啟發(fā)式教學(xué)采用三級(jí)教學(xué)法,主要包括知識(shí)初識(shí)、專業(yè)應(yīng)用和實(shí)踐提升3 個(gè)階段。三級(jí)教學(xué)法呈“階梯”狀,通過案例逐層深入,將課堂教學(xué)與實(shí)際應(yīng)用緊密結(jié)合,真正達(dá)到“學(xué)以致用”的目標(biāo)。
每一級(jí)教學(xué)法對(duì)應(yīng)著整個(gè)PlantUML&IBM RSA 案例啟發(fā)式教學(xué)過程的不同階段:知識(shí)初識(shí)對(duì)應(yīng)著提出問題和討論案例階段;專業(yè)應(yīng)用對(duì)應(yīng)著分組給出解決方案和總結(jié)案例階段;實(shí)踐提升與升華案例、課后思考階段緊密結(jié)合。本部分以用例圖為例,給出PlantUML&IBM RSA 案例啟發(fā)式教學(xué)方法的全過程,如表1所示。
Table 1 Process of PlantUML&IBM RSA case heuristic teaching——taking use case diagram as an example表1 PlantUML&IBM RSA 案例啟發(fā)式教學(xué)全過程——以用例圖為例
在提出問題環(huán)節(jié),需全面考慮課程教學(xué)目標(biāo),并針對(duì)具體教學(xué)內(nèi)容,結(jié)合學(xué)生日常生活中經(jīng)常接觸到的實(shí)例,抽取關(guān)鍵信息,構(gòu)成待講解實(shí)例,并層次性地給出該實(shí)例思考題。在討論案例環(huán)節(jié),學(xué)生需根據(jù)具體案例描述和思考題,以分組的形式開展討論,教師在該環(huán)節(jié)需起到引導(dǎo)作用,時(shí)刻關(guān)注學(xué)生的討論情況,特別鼓勵(lì)學(xué)生結(jié)合與本實(shí)例相關(guān)的實(shí)際生活經(jīng)驗(yàn),擴(kuò)展本實(shí)例相關(guān)功能需求,并展開討論,最后將討論結(jié)果以文字形式上傳至在線教學(xué)輔助系統(tǒng),為教師講解知識(shí)點(diǎn)提供參考。在知識(shí)點(diǎn)講解環(huán)節(jié),教師根據(jù)學(xué)生分組討論結(jié)果及案例,詳細(xì)講解所涉及到的知識(shí)點(diǎn),并給出較為具象的知識(shí)體系,使得學(xué)生能夠更加清晰地了解課程知識(shí)點(diǎn)在實(shí)際案例中的具體體現(xiàn)。
在分組給出解決方案環(huán)節(jié),學(xué)生根據(jù)教師知識(shí)點(diǎn)講解,進(jìn)行具體建模,并將建模結(jié)果上傳至在線教學(xué)輔助系統(tǒng),該系統(tǒng)會(huì)自動(dòng)評(píng)判每組建模結(jié)果。在總結(jié)案例環(huán)節(jié),教師可根據(jù)系統(tǒng)全面分析結(jié)果,了解學(xué)生課堂學(xué)習(xí)效果,對(duì)各小組建模過程中遇到的問題進(jìn)行針對(duì)性解答,對(duì)掌握程度欠佳和重要知識(shí)點(diǎn)作進(jìn)一步強(qiáng)調(diào)。最后,在升華案例和課后思考環(huán)節(jié),要求學(xué)生針對(duì)本案例的功能需求進(jìn)行擴(kuò)展訓(xùn)練,可根據(jù)實(shí)際應(yīng)用中較為全面的需求進(jìn)行建模補(bǔ)充,在完善本案例的同時(shí),提升學(xué)生思維能力,在進(jìn)一步鞏固課堂所學(xué)的同時(shí),培養(yǎng)學(xué)生以實(shí)際需求為導(dǎo)向的實(shí)踐能力。
UML 課程在線教學(xué)輔助系統(tǒng)通過搜集大量學(xué)生討論結(jié)果,形成訓(xùn)練數(shù)據(jù)庫(kù),利用神經(jīng)主題模型,對(duì)學(xué)生課堂學(xué)習(xí)情況進(jìn)行建模,并據(jù)此給出不同階段課堂教學(xué)指導(dǎo)性建議,以供授課教師參考。特別地,該系統(tǒng)可根據(jù)學(xué)生課堂討論結(jié)果,實(shí)時(shí)給出更為具體且貼合學(xué)生實(shí)際學(xué)習(xí)情況的指導(dǎo)性建議。該在線教學(xué)輔助系統(tǒng)示意圖如圖5所示。
Fig.5 Schematic diagram of UML course online teaching auxiliary system圖5 UML課程在線教學(xué)輔助系統(tǒng)
在線教學(xué)輔助系統(tǒng)中的題型包括:客觀題、簡(jiǎn)答題和分析設(shè)計(jì)題,其中以分析設(shè)計(jì)題為主。對(duì)于客觀題部分,每道題目對(duì)應(yīng)不同的知識(shí)點(diǎn),根據(jù)學(xué)生在線提交結(jié)果,統(tǒng)計(jì)出學(xué)生對(duì)各知識(shí)點(diǎn)的掌握情況;對(duì)于簡(jiǎn)答題部分,將學(xué)生提交結(jié)果輸入到主題模型,例如:隱狄利克雷模型(Latent Dirichlet Allocation,LDA),詳細(xì)分析文本信息的核心思想或者關(guān)鍵詞,將學(xué)生提交結(jié)果中的核心思想或關(guān)鍵詞與該題所設(shè)置的標(biāo)準(zhǔn)答案進(jìn)行對(duì)比,給出學(xué)生針對(duì)該簡(jiǎn)答題回答的統(tǒng)計(jì)結(jié)果,其中主要包括對(duì)應(yīng)知識(shí)點(diǎn)的掌握情況、語言邏輯能力等方面;對(duì)于分析設(shè)計(jì)題,以案例分析題為主,該系統(tǒng)會(huì)將該類題型嵌入課堂教學(xué)的“討論案例”“分組給出解決方案”及“升華案例及課后思考”等階段。針對(duì)不同類型的UML 模型圖,根據(jù)學(xué)生在線提交結(jié)果分離出建?;驹睾突驹仃P(guān)系,將其結(jié)果與參考答案進(jìn)行對(duì)比,可得出對(duì)應(yīng)的統(tǒng)計(jì)建模分析結(jié)果。在線教學(xué)輔助系統(tǒng)所包含的分析設(shè)計(jì)題部分,可以根據(jù)學(xué)生不同階段不同課時(shí)的在線提交結(jié)果實(shí)時(shí)給出相應(yīng)分析結(jié)果。最后,匯總客觀題知識(shí)點(diǎn)掌握情況、簡(jiǎn)答題核心思想(摘要)及建模分析結(jié)果,形成最終的課堂授課指導(dǎo)性建議。
為了驗(yàn)證在線教學(xué)輔助系統(tǒng)的有效性,本文將90 組關(guān)于用例圖知識(shí)點(diǎn)的模擬數(shù)據(jù)(包括客觀題、簡(jiǎn)答題和分析設(shè)計(jì)題)隨機(jī)分為3 組,進(jìn)行5 次實(shí)驗(yàn)驗(yàn)證,具體實(shí)驗(yàn)結(jié)果如表2所示。
從表2 可以看出,在客觀題評(píng)價(jià)方面,系統(tǒng)可給出平均準(zhǔn)確率及易錯(cuò)知識(shí)點(diǎn)等相關(guān)信息;在簡(jiǎn)單題方面,通過抽取簡(jiǎn)答題核心思想,與基準(zhǔn)核心思想對(duì)比,并給出綜合性評(píng)價(jià);在分析設(shè)計(jì)題方面,通過分離用例圖基本元素及其關(guān)系,綜合判定結(jié)果,并給出易錯(cuò)點(diǎn);在綜合客觀題、簡(jiǎn)答題和分析設(shè)計(jì)題系統(tǒng)分析之后,給出最終的課堂授課指導(dǎo)性建議。該系統(tǒng)可實(shí)時(shí)觀測(cè)教師課堂授課情況,并指導(dǎo)授課教師對(duì)某個(gè)知識(shí)點(diǎn)進(jìn)行著重講解,以提高學(xué)生課堂學(xué)習(xí)效果。
根據(jù)本文UML 課程設(shè)計(jì),期末考察方式也將更加貼合工程教育認(rèn)證理念與和新時(shí)代人才需求。期末考察擬采用兩種方式:開卷考察和專業(yè)綜合大作業(yè)。對(duì)于開卷考察方式,為了更好地貼合工程教育認(rèn)證理念,課程摒棄了傳統(tǒng)的選擇、填空等客觀題,主要以分析(40%)、設(shè)計(jì)(40%)和綜合題(20%)作為主要考察題型。分析題主要根據(jù)題干要求,分析UML 模型,并回答相應(yīng)問題,包括用例圖分析、狀態(tài)圖分析等。設(shè)計(jì)題主要根據(jù)題干描述,繪制不同的UML 模型,比如:用例圖建模、類圖建模、順序圖建模等,該類題型學(xué)生可根據(jù)題干要求,結(jié)合實(shí)際生產(chǎn)生活,進(jìn)行一定程度的擴(kuò)展,以考察學(xué)生分析設(shè)計(jì)能力。綜合題主要針對(duì)現(xiàn)實(shí)生活中廣泛應(yīng)用的軟件、Web 網(wǎng)頁(yè)等,進(jìn)行UML 全流程建模,該類題型可擴(kuò)展性強(qiáng),更能有效地考察學(xué)生解決實(shí)際復(fù)雜工程問題的能力,該類題目不會(huì)設(shè)置具體參考答案,教師可根據(jù)學(xué)生具體建模結(jié)果及其思維擴(kuò)展能力,給出相應(yīng)的參考得分。
專業(yè)綜合大作業(yè)考察方式與常規(guī)大作業(yè)考場(chǎng)方式不同,其采用限時(shí)開卷的方式進(jìn)行,學(xué)生可攜帶任意相關(guān)學(xué)習(xí)資料,在統(tǒng)一時(shí)間段完成專業(yè)綜合大作業(yè)。專業(yè)綜合大作業(yè)包括5 道左右專業(yè)相關(guān)的課程綜合題目(4 道設(shè)計(jì)題和1 道專業(yè)綜合題),題目設(shè)置對(duì)應(yīng)課程知識(shí)點(diǎn),著重考察學(xué)生解決實(shí)際復(fù)雜工程問題的能力,且符合工程教育專業(yè)認(rèn)證要求,評(píng)分可進(jìn)行達(dá)成計(jì)算。
本文在工程教育認(rèn)證與新時(shí)代人才需求的驅(qū)動(dòng)之下,進(jìn)行基于“SE-CDIO-CA”的UML 課程教學(xué)改革。以SECDIO 工程教育理念為指導(dǎo),將IBM-RSA 和PlantUML 命令行建模、案例啟發(fā)、在線教學(xué)輔助有機(jī)融合到SE-CDIO 方法中。該方法從項(xiàng)目需求分析與建模、項(xiàng)目設(shè)計(jì)與優(yōu)化、項(xiàng)目實(shí)現(xiàn)與優(yōu)化,項(xiàng)目維護(hù)與發(fā)布4 個(gè)部分對(duì)課程體系進(jìn)行調(diào)整,符合CDIO 理念和軟件生命周期。對(duì)在線教學(xué)輔助系統(tǒng)的效果進(jìn)行驗(yàn)證,結(jié)果表明了該方法的有效性。但在具體實(shí)施過程中,還存在以下待改進(jìn)之處:①進(jìn)一步明確教學(xué)方法,針對(duì)不同年級(jí)不同基礎(chǔ)的學(xué)生,微調(diào)教學(xué)方法,以適應(yīng)其需求;②強(qiáng)化課程中的價(jià)值目標(biāo),將思政元素有機(jī)融入基于“SE-CDIO-CA”的UML 課程教學(xué)各方面;③有效改善課堂教學(xué)與實(shí)驗(yàn)教學(xué),進(jìn)一步培養(yǎng)學(xué)生解決復(fù)雜軟件工程問題的能力。