倪 康,陳 志
(南京郵電大學 計算機學院、軟件學院、網絡空間安全學院,江蘇 南京 210023)
目前,將工程教育理念融入大學課堂教學得到了廣泛推廣和應用[1-3]。在課堂教學過程中,有針對性地培養學生處理復雜工程問題的實踐能力,能夠更好地滿足各用人單位的需求[4-6]。統一建模語言(Unified Modeling Language,UML)作為軟件工程行業標準化的建模語言,對較為復雜的大型軟件系統進行系統、全面的分析與設計,且課程理念貫穿于軟件設計、開發、測試、維護等各方面,在軟件工程領域占據重要地位。此外,該課程與面向對象程序設計、數據庫原理等課程相輔相成,有利于計算機科學與技術、軟件工程等課程體系知識的鏈接[7]。
傳統UML 課程教學重概念和各種模型知識講解,易造成整個課堂學習枯燥乏味,且不能與實際應用緊密聯系,學生學習積極性不高,存在以教師講授為主、授課方式單一、實踐環節薄弱、課程考核方式單一等問題。近年來,CDIO 理念以其較強的實踐經驗、先進的工程教育理念、較全面的課程體系,使其在不同專業不同課程的授課中得以廣泛推廣和應用[8-9]。例如:穆磊等[10]將CDIO 理念應用于RFID 原理與應用課程中,江帆[11]提出基于CDIO 理念的物聯網課程教學改革方法,李彤等[12]構建了SE-CDIO 軟件工程國家精品課程理論課程架構。上述研究將CDIO、SECDIO 理念中的構思、設計、實現和運作合理地應用于課程設計,但缺少對案例啟發、教學輔助等機制的嵌入。
案例驅動教學是一種基于建構主義理論設計的教學模式,能夠激發學生學習興趣,提升學習效果。近年來,學者們提出了與案例相結合的UML 課程改革方法,以著力解決UML 理論與實踐不能緊密聯系的問題,提高課程教學效果。例如,郭艷燕等[13]提出一種混合式的UML 課程教學改革方案,綜合使用大規模開放在線課程(Massive Open Online Course,MOOC)、小規模限制性在線課程(Small Private Online Course,SPOC)、雨課堂及QQ 課程群,并以類圖為例,詳細闡述了具體教學改革內容。鄔卓恒等[14]以用例圖為例,通過案例教學將學生從枯燥的理論知識中脫離出來,實現學生對UML 基礎理論知識的認識、掌握和應用。雖然上述方法利用多種教學方式,以提升利用UML 理論解決實際工程問題的能力[15],但對軟件工程專業學生所擅長的軟件編程能力欠缺考慮;同時,針對不同專業與基礎的學生而言,課堂教學效果如何與任課教師的主觀判斷有極大關系,不能全面且實時地對課程教學中存在的問題作出及時改進。
針對上述問題,本文結合軟件工程專業學生所擅長的軟件編程能力,探究一種基于“SE-CDIO-CA”的UML 課程教學改革方法,該方法從軟件工程專業培養目標與畢業要求出發,將課程分為項目需求分析與建模、項目設計與優化、項目實現與優化,項目維護與發布4 個部分,同時將IBM-RSA 和PlantUML 命令行建模、案例啟發、在線教學輔助融入各環節:課堂導入、分組討論、知識講解與課堂總結等。該方法還可以實時掌握學生課堂學習情況,并給出任課教師后續教學改進建議,不斷提升學生利用UML 相關理論知識解決實際工程問題的能力。
基于“SE-CDIO-CA”的UML 課程教學整體方案如圖1所示,該方案在全面適應國家社會發展并滿足軟件工程人才培養需求的前提下,以軟件工程專業學生畢業要求為指導,綜合設計UML 課程培養目標,通過“SE-CDIO-CA”UML 課程改革方法,融入工程教育理念,形成基于“SECDIO-CA”的UML 課程教學整體方案。

Fig.1 Overall teaching scheme of UML course based on "SE-CDIO-CA"圖1 基于“SE-CDIO-CA”的UML課程教學整體方案
基于“SE-CDIO-CA”的UML 課程教學方法將案例啟發和建模工具(PlantUML、IBM RSA)有機融入課堂教學各方面,并從4 個方面構建課程體系:需求分析與建模、項目分析與設計、項目實現與優化、項目維護與發布。這4 個方面完全與CDIO 思想中的構思、設計、實現與運作緊密結合,均對應著不同的授課內容。此外,通過教學(實踐)目標、教學(實踐)評價和教學(實踐)反思反哺整個教學過程,并利用在線輔助教學系統實時關注學生課堂學習情況,及時調整課堂教學策略,已達到更優的課堂教學效果。
培養目標主要包括3 個方面:思想素質教育目標、知識教學目標和能力教學目標。思想素質教育目標方面,培養具有愛國情懷、民族自豪感、良好的職業操守和人文素養的軟件工程專業人才,增強學生在軟件工程相關領域的法律意識和安全意識,樹立正確的道德觀;在知識教學目標方面,需培養學生掌握UML 及相關領域專業知識和開發工具,并具備利用UML 分析和解決軟件工程領域復雜工程問題的能力。引入OBE 教育模式,能力教學目標與畢業要求存在映射關系,具體表述如圖2所示。

Fig.2 Mapping relationship between teaching objectives and graduation requirements圖2 教學目標與畢業要求映射關系
在多樣化軟件工程問題中,學生能夠理解和設計UML模型驅動的多樣化軟件工程領域復雜工程解決方案,并通過對比分析和研究獲得可替代的解決方案,該培養目標對應軟件工程畢業要求中對學生問題分析能力的具體要求;在軟件設計基本方法和技術中,學生需要理解軟件產品設計和開發相關方法,并能夠針對復雜工程問題,給出特定需求的軟件架構和系統設計方案,該培養目標較好地貼合畢業要求中對設計和開發解決方案的相關要求;在全周期全流程軟件設計中,要求學生理解全周期和全流程開發的基本方法和技術,培養溝通表達能力,理解其中所涉及到的經濟決策和工程管理問題,此培養目標與畢業要求對項目管理的相關要求保持一致。畢業要求支撐教學目標,并可達成相關教學目標。
PlantUML&IBM RSA 案例啟發式教學方法充分考慮軟件工程學生對編程的敏感性,將建模工具(PlantUML、IBM RSA)引入課堂教學中,促使理論和實踐相融合,并培養學生UML 標準化建模思維能力。此外,該方法利用實際工程案例,結合UML 課程基礎知識,以問題驅動的方式,將案例融入課堂教學各方面。圖3 給出了PlantUML&IBM RSA 案例啟發式教學方法教學活動示意圖。

Fig.3 Schematic diagram of teaching activities of PlantUML&IBM RSA case heuristic teaching method圖3 PlantUML&IBM RSA 案例啟發式教學方法教學活動

Fig.4 Schematic diagram of three-level case teaching method圖4 三級案例教學法
該方法主要分為以下步驟:提出問題、討論案例、結合案例講解知識點、分組給出解決方案、總結案例、升華案例并給出課后思考問題,各步驟所占課時長如圖3 所示。討論案例、解決方案和總結案例均會與在線教學輔助系統進行交互。在知識點講解部分,利用代碼化UML 建模工具(PlantUML)和UML 建模軟件(IBM RSA),結合具體的案例分析,全面講解課程知識點,并討論給出具體的解決方案(包括參考模型圖)。教學評價主要包括混合式教學評價和實踐評價,各評價機制能夠從多角度對學生的學習效果進行有效評價,反哺教學過程各方面,以達到更好的課堂授課效果。
該方法中,案例啟發式教學采用三級教學法,主要包括知識初識、專業應用和實踐提升3 個階段。三級教學法呈“階梯”狀,通過案例逐層深入,將課堂教學與實際應用緊密結合,真正達到“學以致用”的目標。
每一級教學法對應著整個PlantUML&IBM RSA 案例啟發式教學過程的不同階段:知識初識對應著提出問題和討論案例階段;專業應用對應著分組給出解決方案和總結案例階段;實踐提升與升華案例、課后思考階段緊密結合。本部分以用例圖為例,給出PlantUML&IBM RSA 案例啟發式教學方法的全過程,如表1所示。

Table 1 Process of PlantUML&IBM RSA case heuristic teaching——taking use case diagram as an example表1 PlantUML&IBM RSA 案例啟發式教學全過程——以用例圖為例
在提出問題環節,需全面考慮課程教學目標,并針對具體教學內容,結合學生日常生活中經常接觸到的實例,抽取關鍵信息,構成待講解實例,并層次性地給出該實例思考題。在討論案例環節,學生需根據具體案例描述和思考題,以分組的形式開展討論,教師在該環節需起到引導作用,時刻關注學生的討論情況,特別鼓勵學生結合與本實例相關的實際生活經驗,擴展本實例相關功能需求,并展開討論,最后將討論結果以文字形式上傳至在線教學輔助系統,為教師講解知識點提供參考。在知識點講解環節,教師根據學生分組討論結果及案例,詳細講解所涉及到的知識點,并給出較為具象的知識體系,使得學生能夠更加清晰地了解課程知識點在實際案例中的具體體現。
在分組給出解決方案環節,學生根據教師知識點講解,進行具體建模,并將建模結果上傳至在線教學輔助系統,該系統會自動評判每組建模結果。在總結案例環節,教師可根據系統全面分析結果,了解學生課堂學習效果,對各小組建模過程中遇到的問題進行針對性解答,對掌握程度欠佳和重要知識點作進一步強調。最后,在升華案例和課后思考環節,要求學生針對本案例的功能需求進行擴展訓練,可根據實際應用中較為全面的需求進行建模補充,在完善本案例的同時,提升學生思維能力,在進一步鞏固課堂所學的同時,培養學生以實際需求為導向的實踐能力。
UML 課程在線教學輔助系統通過搜集大量學生討論結果,形成訓練數據庫,利用神經主題模型,對學生課堂學習情況進行建模,并據此給出不同階段課堂教學指導性建議,以供授課教師參考。特別地,該系統可根據學生課堂討論結果,實時給出更為具體且貼合學生實際學習情況的指導性建議。該在線教學輔助系統示意圖如圖5所示。

Fig.5 Schematic diagram of UML course online teaching auxiliary system圖5 UML課程在線教學輔助系統
在線教學輔助系統中的題型包括:客觀題、簡答題和分析設計題,其中以分析設計題為主。對于客觀題部分,每道題目對應不同的知識點,根據學生在線提交結果,統計出學生對各知識點的掌握情況;對于簡答題部分,將學生提交結果輸入到主題模型,例如:隱狄利克雷模型(Latent Dirichlet Allocation,LDA),詳細分析文本信息的核心思想或者關鍵詞,將學生提交結果中的核心思想或關鍵詞與該題所設置的標準答案進行對比,給出學生針對該簡答題回答的統計結果,其中主要包括對應知識點的掌握情況、語言邏輯能力等方面;對于分析設計題,以案例分析題為主,該系統會將該類題型嵌入課堂教學的“討論案例”“分組給出解決方案”及“升華案例及課后思考”等階段。針對不同類型的UML 模型圖,根據學生在線提交結果分離出建模基本元素和基本元素關系,將其結果與參考答案進行對比,可得出對應的統計建模分析結果。在線教學輔助系統所包含的分析設計題部分,可以根據學生不同階段不同課時的在線提交結果實時給出相應分析結果。最后,匯總客觀題知識點掌握情況、簡答題核心思想(摘要)及建模分析結果,形成最終的課堂授課指導性建議。
為了驗證在線教學輔助系統的有效性,本文將90 組關于用例圖知識點的模擬數據(包括客觀題、簡答題和分析設計題)隨機分為3 組,進行5 次實驗驗證,具體實驗結果如表2所示。
從表2 可以看出,在客觀題評價方面,系統可給出平均準確率及易錯知識點等相關信息;在簡單題方面,通過抽取簡答題核心思想,與基準核心思想對比,并給出綜合性評價;在分析設計題方面,通過分離用例圖基本元素及其關系,綜合判定結果,并給出易錯點;在綜合客觀題、簡答題和分析設計題系統分析之后,給出最終的課堂授課指導性建議。該系統可實時觀測教師課堂授課情況,并指導授課教師對某個知識點進行著重講解,以提高學生課堂學習效果。
根據本文UML 課程設計,期末考察方式也將更加貼合工程教育認證理念與和新時代人才需求。期末考察擬采用兩種方式:開卷考察和專業綜合大作業。對于開卷考察方式,為了更好地貼合工程教育認證理念,課程摒棄了傳統的選擇、填空等客觀題,主要以分析(40%)、設計(40%)和綜合題(20%)作為主要考察題型。分析題主要根據題干要求,分析UML 模型,并回答相應問題,包括用例圖分析、狀態圖分析等。設計題主要根據題干描述,繪制不同的UML 模型,比如:用例圖建模、類圖建模、順序圖建模等,該類題型學生可根據題干要求,結合實際生產生活,進行一定程度的擴展,以考察學生分析設計能力。綜合題主要針對現實生活中廣泛應用的軟件、Web 網頁等,進行UML 全流程建模,該類題型可擴展性強,更能有效地考察學生解決實際復雜工程問題的能力,該類題目不會設置具體參考答案,教師可根據學生具體建模結果及其思維擴展能力,給出相應的參考得分。
專業綜合大作業考察方式與常規大作業考場方式不同,其采用限時開卷的方式進行,學生可攜帶任意相關學習資料,在統一時間段完成專業綜合大作業。專業綜合大作業包括5 道左右專業相關的課程綜合題目(4 道設計題和1 道專業綜合題),題目設置對應課程知識點,著重考察學生解決實際復雜工程問題的能力,且符合工程教育專業認證要求,評分可進行達成計算。
本文在工程教育認證與新時代人才需求的驅動之下,進行基于“SE-CDIO-CA”的UML 課程教學改革。以SECDIO 工程教育理念為指導,將IBM-RSA 和PlantUML 命令行建模、案例啟發、在線教學輔助有機融合到SE-CDIO 方法中。該方法從項目需求分析與建模、項目設計與優化、項目實現與優化,項目維護與發布4 個部分對課程體系進行調整,符合CDIO 理念和軟件生命周期。對在線教學輔助系統的效果進行驗證,結果表明了該方法的有效性。但在具體實施過程中,還存在以下待改進之處:①進一步明確教學方法,針對不同年級不同基礎的學生,微調教學方法,以適應其需求;②強化課程中的價值目標,將思政元素有機融入基于“SE-CDIO-CA”的UML 課程教學各方面;③有效改善課堂教學與實驗教學,進一步培養學生解決復雜軟件工程問題的能力。