黃翔翔 王維 章平


關鍵詞:畢業設計;軟件工程;企業調研;項目管理;工程質量
0 引言
自2016年6月成為《華盛頓協議》正式會員以來,我國制定了《工程教育認證標準》[1],強調理工科院校應以提升學生解決復雜工程問題的能力作為本科教育的重點。在專業人才培養過程中,畢業設計作為重要的實踐環節[2-3],是對解決復雜工程問題能力的檢驗及提升的收尾階段。《工程教育認證標準》明確要求畢業設計的選題應緊密貼合本專業的實際工程問題,培養學生的創新實踐意識、協作精神以及解決復雜工程問題的能力。
1 安徽工程大學軟件工程專業培養方案解讀
軟件工程作為一門高技術、高應用性的學科,處在不斷演變和創新的發展過程中,快速發展的軟件工程行業面臨著復雜性、不確定性和多樣性的挑戰[4]。良好的溝通、團隊合作、提出問題、分析問題以及解決問題的能力,是軟件工程師必備的基本素養[5]。作為軟件工程專業的學生應具備利用新技術、新理念來解決復雜軟件工程問題以適應不斷變化的軟件環境。安徽工程大學軟件工程專業立足于宏觀地域發展需求,結合學校自身的辦學特色、理念和方針,制定出以培養高素質應用型人才、以服務于社會需求和以行業發展態勢為導向的特色培養方案。
1.1 以培養高素質應用型人才為導向的專業特色
依托軟件工程高原學科的高端裝備先進感知與智能控制教育部重點實驗室(模式識別與智能系統、智能感知與自主控制兩個方向)和校級計算機應用技術重點實驗室,安徽工程大學軟件工程專業形成以培養高素質應用型人才為導向的專業特色。在面向軟件產業的基礎上,強調工程技術能力和創新創業能力的培養,構建了縱向層次化、橫向模塊化的工程教育培養體系,即“三個加強、二個接軌、一個結合”(加強基礎、加強實踐、加強外語教學;與企業接軌、與行業接軌;產、教、賽、研、學相結合)。
“三個加強、二個接軌、一個結合”的特色培養模式以OBE育人理念為指導,注重培養學生解決復雜軟件工程問題的能力。OBE育人理念強調“以學生為中心,以產出為導向,持續改進”。“三個加強”以“以學生為中心”作為基本出發點:通過系統的課程設置和實踐項目,幫助學生掌握軟件工程領域的核心知識和基本技能;外語教學培養知識檢索和跨文化溝通的能力。“二個接軌”是“三個加強”的外在延伸:通過與企業和行業接軌,學生能夠了解實際工程項目的需求和挑戰,并學習運用相關的工程技術和工具解決問題。“一個結合”是對“以產出為導向,持續改進”的具體落實:通過“產、教、賽、研、學”的全方位結合,指導學生參加各類學科競賽,在競賽中檢驗學生的專業能力,以賽事表現作為持續改進的依據之一,并鼓勵優秀獲獎作品的成果轉化與推廣。
1.2 以服務于社會需求為導向的專業培養目標
安徽工程大學軟件工程專業以培養專業基礎厚、工程能力強、創新意識足、 德智體美勞全面發展的高素質應用型人才為己任,立足于安徽蕪湖,輻射至長三角區域,深度融合地方經濟,形成以服務于社會需求為導向的專業培養目標。本專業畢業生經過5年工程實踐能夠勝任高級軟件工程師、系統分析師、軟件架構師等崗位。具體內容包括以下4點。
1) 能夠從事本專業領域相關產品的設計、研究、開發,生產滿足需求的軟件產品,且具備終身學習的能力,能夠不斷學習和適應軟件新技術的發展。
2) 具備良好的口頭和書面表達能力、溝通能力以及專業工程實踐能力,能夠擔任團隊領導者或團隊骨干,帶領團隊攻堅項目實施過程中的難點和痛點問題。
3) 熟悉軟件工程專業方向的標準、規范和法規,能夠在多學科環境中展現出工程能力,為復雜工程問題提供系統性的解決方案。
4) 具備社會責任感,理解并堅守職業道德規范,綜合考慮法律、環境與可持續性發展等因素的影響,在工程實踐中能堅持公眾利益優先,腳踏實地,具有創新創業精神。
1.3 以行業發展態勢為導向的專業方向
以專業培養目標為指導,貼合工業互聯時代背景下的行業發展態勢,本校軟件工程專業分為移動互聯網軟件和嵌入式系統軟件兩個方向。隨著智能手機和平板電腦的普及,移動應用市場蓬勃發展,對具備移動應用開發技能的軟件工程師的需求不斷增加。該方向的學生將學習移動應用開發的基本原理、移動操作系統平臺的特點,以及與移動互聯網相關的技術和工具;掌握移動應用開發的整個流程,包括需求分析、界面設計、編碼和測試等環節;熟悉移動應用的部署和發布,了解移動應用市場的商業化運作。
智能制造是工業互聯時代的重要特征,各類智能化產品都需要在定制化的軟硬件平臺上開發出滿足場景需求的嵌入式軟件,如智能家居設備、汽車電子系統和醫療器械設備等。嵌入式系統軟件方向的學生將學習嵌入式系統的設計原理、硬件與軟件的接口,以及實時操作系統的特點和使用;精通嵌入式軟件開發的工具和技術,具備嵌入式系統的調試和測試能力;掌握嵌入式系統的功耗優化、性能調優和系統安全等方面的知識。
2 軟件工程專業畢業設計指導實踐探究
在對本專業培養方案解讀的基礎上,分析目前畢業設計中存在的實際問題,開展畢業設計指導實踐探究。通過對本專業近兩年畢業設計的調研,發現以下幾點問題。
1) 畢業設計課題來源比較單一,跨學科性質較弱:有部分課題的內容與前兩年較為相似,課題內容局限在網站設計、數據庫讀寫、信息管理系統等相對簡單且成熟的領域。
2) 畢業設計課題選擇比較盲目,難以體現個人能力:學生往往不清楚教師所擬定課題的潛在意義與目的,僅憑直覺在選題系統中盲目選題,難以在畢業設計的實踐過程中發揮出自身應有的水平。
3) 畢業設計論文書寫、代碼編寫以及項目管理不規范:較多學生無法熟練利用Office、WPS等常用辦公軟件進行論文的規范書寫和正確排版,更難以利用其他現代工具進行代碼的規范化編寫、調試和版本的合理控制。
針對以上問題,分別從深入企業,開展調研;課題預選,因材施教;項目管理,團隊協作等三個方面開展畢業設計指導實踐工作,鍛煉學生解決復雜軟件工程問題能力,提高畢業設計質量水平,貫徹OBE 育人理念。
2.1 深入企業,開展調研
針對畢業設計課題來源較為單一,跨學科性質較弱,綜合性不強等問題,在擬定畢業設計課題之前,深入企業,開展調研。畢業調研使學生能夠接觸實際的軟件工程問題,了解軟件行業的發展現狀和趨勢,為畢業設計的方向和內容提供有力支持。
筆者于2022年年尾和2023年年初帶領學生分別前往蕪湖哈特機器人產業技術研究院和合肥工業大學智能制造技術研究院開展調研。在蕪湖哈特機器人產業技術研究院的調研中,學生參觀并學習智能機器人平臺的種類、任務分工、工作流程以及底層軟硬件工作原理。蕪湖哈特機器人產業技術研究院需要在自主導航移動的機器人平臺上部署危險目標檢測和安全區域入侵檢測的模塊,以提高無人環境下的安全系數。基于這兩個需求,筆者擬定《基于YOLO的戲水目標檢測系統》和《基于YOLO的視頻入侵檢測系統》兩個畢業設計課題。在合肥工業大學智能制造技術研究院的調研中,可穿戴醫療康復設備、高精密航天航空零部件自動裝配平臺以及基于3D打印的高精度模型器具等工業產品極大地開闊了學生的視野。在調研期間,適逢合肥工業大學智能制造技術研究院承辦的安徽省高校物聯網應用創新大賽。在觀摩比賽的過程中,發現較多參賽隊伍的無人機難以按照預定路線如期返回。針對這一情況,擬定《基于三維重建技術的無人機自動巡檢系統》作為畢業設計課題。
通過與企業的深入交流,挖掘貼合實際的畢業設計課題,并結合教師自身的科研方向,不僅可以豐富課題來源,還能提高課題的跨學科性質。如表1所示,根據企業需求和筆者科研方向而擬定的畢業設計課題,本身就具有復雜工程問題的基本屬性,需要運用多方面技術(計算機視覺、計算機圖形學、深度學習等)、建立合適的抽象模型(最優化、空間變換、特征匹配等)并進行一定程度上的創新方能實現。
2.2 課題預選,因材施教
針對畢業設計課題的選擇較為盲目,難以體現個人能力的問題,采用課題預選,因材施教的策略。以指導三位學生的畢業設計為例,該策略從以下三個階段入手。
1) 調查問卷:開展畢業設計課題預選的調查問卷。如圖1所示,每位學生根據自身的專業背景、感興趣領域以及職業規劃等方面,從擬定的六道畢業設計課題(本專業要求每位教師至少擬定六道課題作為備選課題)中預選兩個課題。學生根據兩份課題任務書中的課題背景、課題內容和課題目標,完成對課題的感性認識。
2) 選題追蹤:學生在課題預選后的半個月內,提交對預選課題的調研分析,重點關注學生對復雜工程問題的理解、分析以及建模的能力。在這一過程中,定期與學生共同探討課題的可行性、創新性以及實施難度,初步掌握每位學生的表達能力、專業特長以及學習態度。
3) 課題確定:根據每位學生的課題預選問卷、所提交的調研分析以及平時表現,確立最終選題。例如,學生A動手實踐能力強,就業意向為企業、公司,則推薦其選擇設計類型課題;學生B對新知識、新技術表現出很強的求知欲,并準備繼續讀研深造,則推薦其選擇研究類型課題;學生C對預選課題沒有做充分的調研,無法把握課題的背景、內容和目標,則根據自身的特長確立可以達到畢業目標的課題。
通過“課題預選,因材施教”的策略,能夠針對每個學生的特點和能力進行個性化指導。在全面了解學生的專業背景和能力的前提下,可以提供合適的課題和學習資源,引導和激發主動學習和獨立思考的動機,培養自主解決問題的能力,幫助學生在畢業設計中發揮優勢和潛力。
2.3 項目管理,團隊協作
針對畢業設計論文書寫、代碼編寫以及項目管理不規范的問題,從項目管理和團隊協作的角度,鍛煉學生運用現代化專業工具解決復雜軟件工程問題的文檔管理、系統開發以及合作能力。
首先,規范化的文檔和代碼是解決復雜軟件工程問題的基本前提。本專業學生在撰寫論文開題報告時需要翻譯至少一篇外文文獻,部分學生由于缺乏外文文獻的檢索、閱讀、翻譯以及排版能力,導致所引用文獻與所選課題相關性較低、英文排版格式混亂以及翻譯不到位等問題。因此,指導學生利用學校的期刊數據庫、谷歌學術、百度學術等在線資源,根據關鍵字、摘要檢索到合適的外文文獻。在閱讀翻譯外文文獻的過程中,指導學生從專業角度去理解專有名詞的含義。在論文的撰寫和排版過程中,學會運用Gram?marly、EndNote、LaTex等語法檢查、文獻引用以及論文排版工具進行規范化寫作。在代碼編寫的過程中,提供標準化的示例代碼,向學生展示良好的代碼風格,不僅可以提高代碼的可讀性,還可以減少程序的潛在Bug。根據學生所使用的開發語言,推薦使用不同的集成開發環境,提高開發效率與質量。例如,學生A 使用C/C++進行系統開發,則推薦使用微軟的VisualStudio并結合Visual Assist插件來智能感知已經定義的變量和函數;學生B采用Python進行程序設計,則推薦使用PyCharm與Anaconda相結合的方式來進行環境部署和代碼編碼。
其次,項目管理是解決復雜軟件工程問題的重要能力。在畢業設計的過程中,需要涉及到對論文、代碼以及數據的管理。良好的項目管理可以提高安全性、開發效率以及共享性。在畢業設計過程中,偶爾會出現某個學生因U盤丟失、電腦壞損而無法還原已有成果的現象。因此,指導學生將畢業設計的階段性成果存儲在云端(如OneDrive、百度網盤、阿里云盤等),可以有效避免因還原丟失成果而浪費的精力。并且,一些高級的遠程倉庫工具如SVN、Coding、GitHub還附有版本管理的功能,可以記錄每一次提交到遠程倉庫的版本差異,方便在不同版本間進行切換。將畢業設計成果存儲在云端,可以在不同平臺訪問同一資源,提高在不同平臺上的共享能力。
最后,團隊協作是解決復雜工程問題的必備素質。團隊協作能力使學生學會與他人合作、共同解決多學科交叉問題,提高工作效率和團隊凝聚力。在解決復雜軟件工程問題時,項目共享是進行團隊協作的前提。復雜解決復雜軟件工程問題往往設計不同的操作系統、軟硬件平臺以及開發環境。因此,在進行項目共享時,項目跨平臺的兼容性是必須考慮的因素。指導學生在Visual Studio Code下編寫項目的跨平臺編譯方案如CMakeList、MakeFile文件,不僅有助于項目共享,更是移動軟件開發和嵌入式軟件開發的必備技能。同時,開展小組互評的機制,進一步培養團隊協作能力。小組成員之間相互分享畢業設計項目的遠程倉庫地址,將彼此的畢業設計成果下載到本地進行配置、編譯并運行,相互評價系統的優缺點,分析、討論并完善其中的不足。
通過這些措施,能夠培養學生運用現代化專業工具解決復雜軟件工程問題的文檔管理、系統開發和合作能力,提升他們在畢業設計中的綜合能力和實踐能力。
3 結論
本文圍繞《工程教育認證標準》,基于本校軟件工程專業的培養方案,從畢業設計中存在的實際問題出發,從深入企業,開展調研;課題預選,因材施教;項目管理,團隊協作等三個方面探究畢業設計指導實踐工作。通過以上指導實踐,旨在提高學生理解、分析并解決復雜工程問題的能力,為未來的職業發展奠定堅實基礎。