吉雪蕓,胡 沖,李愛華
(1.保定學院 數據科學與軟件工程學院,河北 保定 071000;2.保定學院 人工智能學院,河北 保定 071000)
隨著2016年我國加入了國際工程聯盟《華盛頓協議》,解決復雜工程問題(Complex Engineering Problems)的能力成為本科生培養的基本要求,本科工程教育不僅要深入理解和把握復雜工程問題,更要培養學生具有解決復雜工程問題的能力[1]。同時,伴隨著軟件需求越來越高,涉及的領域越來越廣泛,解決復雜工程問題的能力已成為軟件工程專業的主要培養目標。
近年來,高校圍繞軟件工程專業的實踐教學展開了研究和探索,如賈經冬等將騰訊開發平臺引入并應用于軟件工程實踐課程教學的過程之中[2],周喜紅在產學研實踐方面進行了培養軟件工程專業本科生解決復雜工程問題能力的探討[3],吉雪蕓等提出了以能力為導向的產學研一體化研究[4]。這些研究并沒有剖析復雜工程問題包含的實踐領域。然而,在解決復雜工程問題的實踐領域的能力培養、完善軟件工程的實踐教學體系、落實處于前沿的實踐項目、制定判斷或者衡量教學效果的標準等方面,還需要進一步的探索和研究。為此,筆者進行了以提高學生解決復雜工程問題能力為目標的軟件工程專業實踐教學改革,以期進一步提升學生的綜合能力。
根據《華盛頓協議》認證專業提供的知識體系,復雜工程問題的界定包含8種知識,其中涉及實踐領域的知識有3個方面:(1)為工程實踐領域提供理論框架和知識體系的工程專業知識,大部分處于本學科的前沿;(2)在實踐領域支持工程設計的知識;(3)工程學科實踐領域中工程實踐(技術)的知識[5]。對于軟件工程專業來說,培養學生解決復雜工程問題的能力,其實踐教學內容必須包含這3個方面。
復雜工程問題的主要表征為:必須運用深入的工程原理經過分析才可能解決,需求涉及技術、工程等多方面因素,并可能相互有一定沖突,需要通過建立合適的抽象模型才能解決,在建模過程中需要體現出創造性等條件因素。解決復雜工程問題需要具備的能力和素質由專業能力、綜合素質以及社會能力組成,其中專業能力包括多學科知識應用能力、復雜工程問題分析能力、復雜工程系統設計與開發能力、文獻研究與實驗分析能力、現代工具使用能力[1]。由此,軟件工程專業實踐教學的目標為培養學生復雜工程問題分析能力、復雜工程系統設計與開發能力、現代工具使用能力等。因此,對軟件工程專業原有的課程體系進行改革,形成新的圍繞解決復雜工程問題能力的實踐教學是非常必要的。
所有的課程在技術、技能或者理論知識點均具備實踐領域的知識特征[5],對培養學生解決復雜工程問題的能力起到決定性的作用。例如,Java方向企業級應用開發的實踐教學課程群分成3個模塊:專業基礎課、職業與實踐課、項目實踐課。課程群如圖1所示。

圖1 企業級應用Java方向實踐教學課程群
將培養復雜工程問題解決能力作為最終目標,明確每門課程在整個體系中起到的作用,按照各個技術方向、前驅基礎理論和培養能力進行細化,有助于教師對教學內容的強調,對師生教學活動起到更好的指導作用。以“Java項目綜合實踐”課程為例,部分技術方向、前驅理論知識及培養能力見表1。

表1 “Java項目綜合實踐”課程內容與理論基礎、復雜工程專業能力的對應關系
根據實踐教學培養學生解決復雜工程問題能力這一目標,選擇適合的實踐項目案例。這些案例可以從目前已經運行的產品中選擇,也可以由教師或者專家根據市場需求提出。案例之間必須有技術上的傳承以及功能上緊密的聯系,要將典型項目案例融入到軟件工程實踐教學的相關課程或者教學環節中,開展有針對性的教學,構建有理論依據的實踐教學體系。
軟件開發技術和市場軟件產品的結合相當緊密,熱門市場需求從B/S模式的Web應用到分布式Web應用以及移動Web應用,技術要求越來越廣泛,產品復雜性也越來越高。教師必須隨時學習新技術,掌握開發工具,與企業(尤其是互聯網企業)保持同步,同時保持先進的開發理念,才能更好地完成授課任務。通過在北京、天津以及保定各個軟件公司的調研,2015年到2022年Java Web應用的主要技術如表2所示。

表2 2015—2022年Java Web應用相關技術
從表2可以看出,軟件工程實踐類課程的教學內容與Java企業級APP開發技術的更新必須是同步的,這些主流技術都具有復雜性和整合性等特點,這些特點在實踐項目案例中必須得到體現。而主流開發技術隨著市場的需求會逐步發生變化,因此實踐教學的內容應隨之進行調整,比如2005—2008年的軟件技術專業,專業課程開設C#.net開發以及Java開發兩個方向,基礎部分面向全部學生開設,項目部分由學生自主選擇,Java開發方向使用SSH框架;2008—2012年,隨著大型電商成為市場熱點,為了讓學生更好地了解高可用、高并發的分布式技術,對實踐類課程進行了調整,改為必修Java方向;2013年開設基于安卓平臺的Java開發以及Java Web開發兩個方向;目前Java方向包含有基于大型Web應用的Java方向、安卓平臺的Java方向,Python方向包含大數據平臺等。實踐類課程的Java相關部分實踐案例見表3。
表3中的實踐案例都具備復雜工程問題特征,即:(1)在軟件架構上,需要運用工程原理進行分析與設計;(2)在軟件功能層次結構的設計上,需要建立模型;(3)需要運用多項前沿技術才能實現軟件功能;(4)需求上具有創新性,并不斷更新。
通過參與實踐項目案例,學生初步具備了復雜工程問題的解決能力。而真正具備這種能力,則需要把案例中獲得的經驗應用到實習見習和畢業設計中。
實習見習是鞏固實踐技能、學習前沿技術和工具的重要環節。考察學生在企業實習見習環節,總結出使用的技術工具、實現的軟件功能以及對應的能力如表4所示。從表4可以看出,軟件功能是市場上企業應用的主流,對學生復雜工程問題解決能力要求極高,因此企業實習見習有助于培養學生解決復雜工程問題的能力。

表4 技術工具及實現軟件功能、對應能力
畢業論文是體現學生四年專業水平的重要方式,是實踐教學的重要環節,也是提升學生解決復雜工程問題能力的重要時機。從選題到設計、開發、軟件的成型,學生遇到的一系列問題都會促進學生能力的提高。軟件工程專業的畢業論文選題大都圍繞企業前沿問題或者社會需求,涉及到市場先進技術。教師在指導學生畢業論文的過程中,除了技術上的實現外,還需要強調軟件的社會化需求,比如用戶體驗、現有技術及解決方案等,敦促學生將實際問題轉化為軟件成果。
對于實踐教學的考核評價體系,目前多數高校已經確定了考核模式,比如,必須包含過程性考核,考核方式必須多樣性等等,但是并沒有對考核標準進行界定,故無法清晰地描述教學效果。為了衡量教學效果,軟件工程專業的實踐教學考核應分為成果考核和能力考核,成果考核考查學生是否完成教學項目案例,能力考核必須考查學生是否完成具備復雜性問題特征的任務,比如,對功能的改進和建議,對原理的思考和探索,對架構、模式的創造性設想,撰寫有創新點的論文等。軟件工程實踐教學考核方式見圖2。
實踐教學的實施效果受各方面因素影響,但是大體可以從以下兩方面看出,采用基于培養解決復雜工程問題能力的軟件工程實踐教學,收到了一定成效。
專業對口率是指畢業后從事的工作,是否跟求學時所學內容相關。這一指標可以直接印證實踐教學是否在學生擇業中起到作用。另外,畢業生是否勝任崗位也可以由畢業3個月內工作勝任情況來得到證實。表5顯示經過實踐教學環節,某應用型本科院校軟件工程專業學生的就業質量。

表5 軟件工程畢業生就業質量統計
由表5可以看出,在已經就業的學生中,超過60%所在的崗位是和本專業相關的。這里說的相關,是指畢業后從事軟件開發、測試、運維等工作,而編程教師、電子商務、新媒體運營等崗位都沒有計入專業對口率的統計之中。
為了進一步證實實踐教學體系的教學效果,筆者對北京、上海、天津、河北等12家2020屆畢業生就業單位進行了訪談,其中對入職人員掌握崗位技能滿意程度非常滿意的有4家,基本滿意的有8家。由此可見,企業對應屆畢業生的工作能力認可度較高,實踐教學體系的教學效果普遍得到肯定。
隨著社會的發展,不斷培養出符合企業需求的具備解決復雜工程問題能力的軟件工程人才,仍是高校軟件工程專業實踐教學改革的方向。高校軟件工程專業教師要不斷提高實踐教學水平,為培養出符合社會實際需求的軟件工程人才而不懈努力。