- 重慶工商大學計算機特色專業建設和實踐:智能類專業人才培養
- 朱超平 楊永斌 嚴胡勇
- 2851字
- 2021-09-03 17:29:08
新工科背景下軟件工程課程實踐教學探索
摘要:在新工科背景下,企業對人才需求的變革促使高校教師的教學模式、教學手段亟須升級,從而為培養高素質人才助力。本文闡述了重慶工商大學計算機科學與信息工程學院在利用開源軟件和逆向工程輔助軟件工程實踐教學方面的一些探索,介紹了相關開源軟件系統的選擇標準及逆向工程教學的實施過程與評價方式,并進一步介紹了擬開展的案例研究組織形式。
關鍵詞:新工科 軟件工程 逆向工程 開源軟件
當前世界范圍內以信息技術為引領的新一輪科技革命和產業變革方興未艾,對工程科技人才需求日益旺盛,對工科人才的素養也提出了新的要求。高等學校是培養工科人才的主要機構,因此也對我國高等教育中的工程教育提出了新要求,新工科的理念應運而生。新工科的“新”涵蓋了五個方面,即工程教育的新理念、學科專業的新結構、人才培養的新模式、教育教學的新質量、分類發展的新體系?,F階段,在教育部出臺的《教育部高等教育司關于開展新工科研究與實踐的通知》的引導下,全國各地各層次高校紛紛進行了新工科教育理論的研究,還對新工科的教學模式、實驗實踐與課程改革進行了有益探索,并相繼推出“復旦共識”“天大行動”“北京指南”等,極大地深化了工程教育改革,推進了新工科的建設與發展。
當前軟件工程類課程教學存在諸多問題,包括:第一,培養目標內涵不清晰,缺少以規范、精確的方式對培養目標和培養要求進行詳細清晰地定義。第二,課程體系與專業素質培養不協調,忽視軟件產業發展對先進技術應用與工程經驗學習的需要,實踐課程體系缺乏以解決實際問題為背景的知識綜合應用與工程能力訓練。第三,教學模式和培養途徑與工程實際能力培養不適應,忽視工程環境中以問題求解為導向的主動學習,缺少啟發式教學和基于實際工程項目的案例教學。
因此,在新工科建設背景下,主動對接地方經濟發展和企業創新需求,對軟件工程類課程教學模式進行研究,以明確如何結合新工科建設需求,調整教學目標;如何結合技術發展趨勢,更新教學內容;如何結合學生興趣,優化教學方法和策略;如何結合學習效果與公平性,改進考核與評價機制顯得非常必要。
本文探討了開源軟件和逆向工程方法在軟件工程課程中的應用。通過該教學方式,學生可以獲得包含大量源代碼的產品開發經驗。由于許多開源項目不提供設計文檔,學生可以進行逆向工程活動來了解這些工具的結構,培養工程實踐和創新能力。
一、利用開源軟件和逆向工程改進軟件工程教學的動機
軟件工程教學中的一個主要挑戰是如何幫助學生理解他們為自己編寫的小程序與他們工作時將要處理的大型軟件產品之間的差異。開源軟件運動為軟件工程教學提供了非?,F實的資源。已有研究介紹了在軟件設計和測試課程中如何使用開源軟件,學生團隊在該課程中檢查、報告和修改或擴展開源軟件系統,以執行逆向工程、維護和重構活動。已有研究結果表明,該方法使學生接觸到現實的軟件系統,并為學生處理由其他人編寫的大量代碼積累經驗。
二、利用開源軟件和逆向工程進行軟件工程教學探索
(一)開源系統的選擇標準
選擇合適的開源軟件以使學生通過逆向工程技術增強軟件工程知識非常重要。在開源軟件的選擇方面,一方面要規模適當,能模擬現實系統的復雜度使學生在學習中感到一定的挫折;另一方面要達到深化學生對軟件工程方法,尤其是現在主流的面向對象分析和設計方面知識的認識,并復習以前的學習課程。綜合以上要求,我們設定了開源軟件選擇的標準如下:
(1)具有社會相關性。
(2)系統不復雜,對學生理解軟件不困難。
(3)程序代碼和數據庫與規范一致,體現了軟件開發的現實性。
(4)包含程序的安裝說明,沒有分析或設計文檔,以避免學生復制。
(二)實踐過程及評價手段設計
為了使教學實踐過程更具可操作性,我們制定了實施過程,具體實施時間分配及評價方式如表1所示。學生按照既定的時間表提交報告。
表1 實施進度計劃表

注:T為團隊合作,I為個人工作。
另外,為了使每個學生都能參與到實踐中,并在團隊之間實現經驗的傳遞,我們要求每個學生準備一份20分鐘的口頭陳述,在項目實踐的最后一天,從每個團隊中隨機抽取一名學生進行陳述。演示文稿將不單獨計分,但應用“一票否決”。如果評估失敗,學生的項目實踐將被視為未獲通過。
三、案例研究實施計劃
采用逆向工程與開源軟件進行軟件工程教學已在重慶工商大學的軟件工程課程中實施多年,為了進一步檢驗其教學效果,我們準備展開案例研究以檢驗該方法的效果。
(一)選擇開源軟件
基于本文前面所描述的開源軟件選擇標準,我們排除了已有研究中使用的開源程序,并對開源軟件庫,如Sourceforge和Oschina進行了進一步搜索。最后,我們擬采用以下開源軟件包:
(1)OpenCustomer(www.opencuster.org):基于Web的客戶關系管理(CRM)應用程序。
(2)Shopizer(www.shopizer.com):一個完整的Java購物車和電子商務內容管理軟件。
(3)ELIPS(sourceforge.net/projects/elips):一個基于Web的缺陷跟蹤程序。
(4)jforum(www.jforum.net):一個BBS聊天軟件系統。
(二)培訓設計
為了幫助學生理解我們期望他們做什么,我們計劃采用已有研究提供的一個小的項目開發示例作為培訓材料對參加案例研究的學生進行培訓。該項目開發示例基于COFFEEMAKER,該系統采用Java語言和JSP Web開發技術進行實現,后臺數據庫使用MySQL數據庫。COFFEEMAKER項目除了提供源程序外,還提供了詳細的需求和設計規范,如用例圖、類圖等。我們根據逆向工程的實施程序,向學生展示COFFEEMAKER系統的功能,闡述其項目的需求分析和設計文檔,使學生初步了解實施階段和交付階段的成果。
(三)調查問卷設計
我們計劃在學生完成該案例研究后,進行匿名問卷調查。該問卷調查旨在了解學生對逆向工程在課程實踐中的應用的整體看法和感受以及他們對逆向工程在面向對象分析與設計實踐過程中教學效果的看法。問卷包括封閉式問題和開放式問題兩部分,封閉式問題采用李克特五點量表形式要求學生回答,即“1”表示非常不同意;“2”表示不同意;“3”表示中立;“4”表示同意;“5”表示非常同意,具體如表2所示。開放式問題部分允許學生以自由形式寫出他們的答案。
表2 問卷封閉式調查部分

四、結語
在新工科背景下,企業對人才需求的變革促使高校教師的教學模式、教學手段亟須升級,從而為培養高素質人才助力。本文闡述了重慶工商大學計算機科學與信息工程學院在利用開源軟件和逆向工程輔助軟件工程實踐教學的方面的一些探索,介紹了相關開源軟件系統的選擇標準及逆向工程教學的實施過程與評價方式,并進一步介紹了擬開展的案例研究組織形式。在未來,我們將在軟件工程課程教學環節組織學生進行實證研究,檢驗教學效果。
參考文獻:
[1] 毛新軍,尹剛,等.新工科背景下的軟件工程課程實踐教學建設:思考與探索[J].計算機教育,2018(7): 5-8.
[2] 謝雅,王京文,等.新工科背景下軟件工程專業人才培養實踐——軟件工程課程教學改革[J].信息技術與信息化,2018(4): 35-38.
[3] CARRINGTON D, KIM S K. Teaching Software Design with Open Source Software [C]. 33rd ASEE/IEEE Frontiers in Education Conference,2003.
[4] NANDIGAM J, GUDIVADA V N, HAMOU-LHADJ A. Learning Software Engineering Principles Using Open Source Software [C] // 38th Annual Frontiers in Education Conference,2008.
[5] COSTA-SORIA C, LLAVADOR M, DEL CARMEN PENADES M. An Approach for Teaching Software Engineering through Reverse Engineering [C] //2009 EAEEIE Annual Conference,2009.
[6] CHIKOFSKY E J, CROSS II J H. Reverse Engineering and Design Recovery: a Taxonomy [J]. IEEE Software,1990(1): 13-17.
[7] ALI M R. Why Teach Reverse Engineering? [J]. ACM SIGSOFT Software Engineering Notes,2005(4): 1-4.
[8] MENEELY A, WILLIAMS L, GEHRINGER E F. ROSE: a Repository of Education-friendly Open-source Projects [C] //ACM SIGCSE Bulletin,2008.