楊 雷,王 剛
(1.東北大學 計算機科學與工程學院,沈陽 110169;2.東北大學PBL 教學創新研究中心,沈陽 110169)
新世紀以來,新一代科技革命和產業革命方興未艾,給工程發展帶來了歷史性的機遇,這其中云計算、物聯網、人工智能與大數據更是深入生活中的各個領域,改變了人們的生活。在這個背景下,教育部提出了新工科建設要求,推動人才培養理念、培養模式等方面的改革[1-2],用以適應新興產業發展的需要,培養新型工程人才,引領工程教育建設強國。教育部聯合工業和信息化部及中國工程院于2018 年10 月8 日發布了《關于加快建設發展新工科實施卓越工程師教育培養計劃 2.0的意見》,該文件的發布充分推動了“新工科”建設的深化與擴展,同時也對計算機類專業人才的能力與素質培養提出了更高的要求[3]。計算機類專業作為涵蓋人工智能、大數據、“互聯網+”和網絡安全等新興技術并且能夠充分體現新工科強調的交叉融合的新工科專業,應該勇于承擔責任,緊跟新工科建設的步伐,履行工程教育發展賦予的使命,將培養工程實踐能力強、融合創新能力強,并具有國際競爭力的新型工程人才作為主要培養目標之一[4]。
在當前新工科背景下,計算機類專業課程教學改革探索受到了社會和教育界的高度重視。軟件建模技術為計算機科學技術方向的專業選修課程。本課程的任務是介紹統一建模語言UML 和一些相關的建模知識。通過該課程的學習,學生掌握一些軟件開發和設計過程中有效的建模知識和方法,掌握面向對象領域的核心概念,學會使用UML 建模工具,掌握利用用例技術進行業務建模的方法和實踐過程,掌握利用用例技術進行需求建模的方法和實踐過程,掌握利用用例分析進行面向對象分析的方法和實踐過程,了解軟件設計模式和體系結構設計,了解設計模型到代碼的正向和逆向轉換過程。通過軟件建模技術課程的學習,為系統和科學的軟件開發打下良好的基礎。其所包含的知識以及技術方法,對于計算機專業本科生來說,無論對進一步學習計算機領域里的其他知識,還是將來從事應用開發及技術管理等工作都起著重要的作用。
東北大學軟件建模技術課程主要授課對象是計算機科學與技術專業大學三年級本科生。課程的教學時長是32 學時,其中理論教學24 學時,實驗教學8 學時。目前的課程現狀具有以下特點。
(1)軟件建模技術課程內容繁雜[5],知識點多,邏輯性、抽象性強。軟件建模技術課程從面向對象和UML 的基本概念入手,循序漸進地講解業務建模、需求建模、需求分析、設計原則和模式、架構設計、構件設計和代碼生成等分析設計期間的各個知識點。相對于24 學時的授課學時,軟件建模技術課程專業理論強,概念、原則、原理復雜,內容規模龐大與繁雜。
(2)軟件建模技術課程理論教學以教師課堂講授為主,授課內容重視理論教學,對于應用思維與應用能力的培養重視不夠。分析和設計是軟件開發中至關重要的一環,面向對象的方法是主流的軟件開發方法,UML 是用于面向對象分析設計的標準化建模語言。軟件建模技術應該關注于培養學生實際軟件開發中所需要的知識和實踐技能。目前如何調動學生學習的積極性和主動性也是一個主要問題。軟件建模技術課程教學內容繁雜,知識點,學時緊張。如何合理地組織課堂教學內容,充分調動學生課堂學習的積極性,提高課堂教學效果是教師需積極思考探索的重點內容。很多學生缺少主動進行編程實踐的機會,不利于學生創新能力的提高。同時,課程對于如何與實際問題相結合,處理實際問題的能力重視不夠。盡管課程包括8學時實驗,但是實驗題目的設計往往是對于基本軟件建模技術實現以及簡單應用的訓練和考察。實驗題目缺乏應用創新性。同時,教學實踐中發現,有的學生即便課程取得較好的成績,仍然感到本課程抽象不易理解,更不知在實際問題中如何進行應用,如何針對實際項目應用建模知識進行建模,無法把學到的建模知識應用項目開發實踐中。
針對計算機類專業軟件建模技術課程現狀,有必要以新工科理念為指引進行相應的改革和實踐,充分調動學生學習的主觀能動性,提高軟件建模技術課程的教學質量,提升學生的工程實踐能力、創新能力和綜合素質。為達到上述目標,我們將從優化教學內容、改進教學模式和完善教學評價等方面對軟件建模技術課程進行改革探索。
軟件建模技術作為工程性非常強的一門專業課,具有專業理論強的特點,概念、原則和原理十分復雜。課程的目標還要掌握UML 的語言體系,理解各模型的作用和應用范疇,合理應用各種模型于軟件系統開發,能夠勝任基本的系統分析和設計階段的建模工作。如何充分利用24 學時的授課實踐,如何更合理地組織課程教學內容成為目前的首要任務。在之前的教學內容安排上以UML 語言體系及各種模型的基本概念、使用方法為主,介紹開發過程和面向對象結合為輔,表1 給出了課程改革前后,教學內容和學時安排的變化,從中可以看出,之前的教學內容以講授用例圖、類圖、時序圖和狀態圖等為主,因此學生在實踐中存在個人能力強、團隊協作能力弱,實踐應用少,自主分析能力不足等問題。歸根結底是學生無法將所學理論完全與實踐應用相結合,工程實踐能力差的問題。之后的將UML 語言體系及各種模型的基本概念和面向對象的開發過程相結合,從輔以實際的項目開發實例,通過面向對象建模過程來串聯UML 知識點,將零散知識點轉化為完整連續的建模知識線,改善課程過去知識點繁多、學生不知如何下手的困境,有利于培養學生工程價值觀,更好地達到工程化教育的目標。

表1 軟件建模技術教學內容調整前后對比表
軟件建模技術是一門實踐性非常強的課程,要求學生有一定的編程基礎及軟件開發經驗,為了充分調動學生課堂學習的積極性,增加學生的實踐機會,提高課堂教學效果。教學過程設計為“翻轉課堂+問題驅動+案例實踐”的教學模式,問題設計都是以具體軟件工程設計問題作為實際案例,例如“旅店預定系統”“旅游業務申請系統”等。課程中知識的引入是伴隨著面向對象分析與設計(OOAD)的開發過程,引入問題驅動(PBL)[6-7]的教學模式,圍繞著提出問題、分析問題、設計解決方案以及反饋與評價等幾個階段展開教學活動。從時間軸上可以劃分為課前、課中和課后三個階段,如圖1 所示,每個階段的具體內涵如下。

圖1 教學模式實施路線圖
(1)課前屬于知識獲取階段。學生可以利用互聯網上的優質資源去學習課程內容,而不再單純地依賴授課老師去教授知識。隨著互聯網的普及和計算機技術在教育領域的應用,學生很方便通過互聯網獲取很多優質的教育資源,使“翻轉課堂”教學模式變得可行和現實[8-9]。通過課前練習及預設的案例來引出問題,以供學生課堂討論和交流。以“旅游業務申請系統”為例,在用例分析課程階段[10],學生通過課前學習實現學習一些經典的架構模式,包括層、管道和過濾器、黑板、客戶服務器、經紀人、點對點、架構模式、MVC、反射和微核等,學習類圖、交互圖、協作圖。通過上述知識的學習,進而引出思考問題:針對“旅游業務申請系統”進行用例分析,基于之前用例建模的結果,進行架構分析、構建系統用例實現,畫出系統分析類圖。
(2)課中屬于內化與擴展階段。在這種模式下,課堂和老師的角色則發生了變化。老師更多的責任是去理解學生的問題和引導學生去運用知識。課堂教學主要以案例分析、主題探討和問題解決等形式進行,針對課前提出的問題進行問題分析、設計方案討論和評價與反饋等開展學習活動,通過教師講解和學生之間的討論這種直接的交流方式,對學生課前學習的知識進行內化與擴展,提高學生對知識的掌握程度和應用能力。以“旅游業務申請系統”為案例,對于架構分析,采用初步選定分層架構,分析系統所涉及的架構機制,例如持久性機制、分布、安全性及遺留接口等。從需求文檔、詞匯表,特別是業務對象模型中進行系統的關鍵抽象,包括路線、旅游團、申請、支付明細、參加人和聯系人。對于構造用例實現,通過完善用例文檔,識別分析類,分析交互圖,完成參與類類圖,處理用例關系的步驟分別處理“辦理申請手續”“管理路線”“管理旅游團”“管理參加人”等用例。繪制分析類圖,需要從單個分析類入手,按照定義職責、定義屬性和定義關系,限定分析機制和統一分析類的步驟完成類圖。
(3)課后屬于成果固化階段。課后階段,判斷課堂提出的問題是否完結,如果完結的話,通過布置相應的作業,鞏固課堂學習的內容。對于“旅游業務申請系統”,在用例分析階段,學生需要提交完善之后的用例文檔,分析類類圖,用例實現相關的順序圖及參與類類圖。通過提交最終模型文件來檢驗學生對知識點掌握的最終效果,并對課堂學習的成果進行鞏固和提升。
軟件建模技術課程采用“平時+實驗+綜合實踐”的形式對學生的學習效果進行綜合評定。平時部分成績主要根據同學課堂討論的表現及平時作業。平時作業都是一些階段性的建模文檔,著重為理論知識應用提供實踐支撐,幫助學生理解各種模型在系統分析中的作用。綜合實踐以貼近實際需求的項目為標的,采用團隊開發的模式,每個項目2~3 名同學組成,小組成員分工合作,團隊按照面向對象分析與設計(OOAD)指導原則展開分析建模過程,完成系統模型。學生可以從老師擬定的備選題目中選擇題目,也可以自擬題目。綜合實踐的評價采用“團隊自評+組間互評+教師點評”的方式,使得每名同學充分參與,提高學習的主動性,以及提升學生自主學習、自主分析、自主建模和團隊合作的能力。
隨著以網絡化、信息化和智能化的深度融合為核心第四次工業革命的到來,傳統課堂講授方式已經不適應當今軟件建模技術課程的教學目標和方法。如何培養出適應新工科要求的具有綜合素質及創新能力的人才,對高等學校任課教師提出了新的挑戰。通過優化教學內容,改進教學模式,將“翻轉課堂+問題驅動(PBL)”教學模式引入軟件建模技術課程的教學實踐中來,充分調動了學生的學習積極性和主動性,引導學生發揮創新性思維,把握理論知識和實際工程應用問題的共性,培養學生利用所學知識分析和解決實際工程問題的能力。通過教學實踐證明,學生能夠積極地投身整個教學過程,課堂師生互動更加活躍,學生對這門課的反饋也好于以往。目前軟件建模技術課程教學改革尚處于探索階段,從教學內容、問題設計、過程組織及教學評價等各方面,還需要進一步經驗的積累,充分調動學生學習的主觀能動性,取得更好的教學效果。