前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程專業實踐教學研究范文,希望能給你帶來靈感和參考,敬請閱讀。
0引言隨著現代社會的進步和各種移動終端設備的使用,當前市場對大數據處理和移動技術支持方面的人才提出了新的要求。一些大型軟件企業正在實施大數據處理的軟件項目及對相應軟件產品移動需求的支持,如淘寶、百度等。高校軟件工程專業作為與軟件行業關系最為密切的專業,為使本專業畢業生具備更好的大數據處理和移動開發能力,更適應軟件行業的需求,應該以新的行業需求為導向,開展有針對性的相關軟件開發實踐。目前,軟件工程專業實踐教學主要以工程化項目進行驅動。文獻[1]提出以項目實踐為中心的軟件工程課程教學大綱的制定以及項目實踐教學方法、教學內容和要求,全面提高計算機專業學生的工程化能力。文獻[2]提出理論與項目實踐結合的案例教學方法,即通過設計適合學生的項目課題,讓學生在項目中應用所學的理論和技術,從而更牢固地掌握知識。文獻[3]提出以開發工程項目為主線開展軟件工程專業課程設計實踐教學的方法。文獻[4]提出統一實踐課程的課程群建設思路,根據具體案例詳細闡述整合實踐課程的實施方案。這些項目實施方法在一定程度上增強了學生的動手實踐能力,在培養學生的開發能力上取得了一定的效果,但仍然存在一些問題,如項目的設置比較簡單、項目要求與企業需求有較大差距、項目開發過程缺乏有效的過程管理等。這些問題的存在使得軟件工程專業學生的專業素質和能力不能完全滿足軟件行業的現實需求。
1教學中的問題
1.1項目的設置不夠深入,同質化現象嚴重
不同教學階段設置的配套項目要求大致相似,即按照軟件工程的7層瀑布模型開發管理信息系統。系統主要的功能是用戶將數據插入數據庫、簡單處理數據、顯示數據至界面,這些功能要求具有較強的同質性。
1.2項目的規模和難度較小,與企業項目有較大差距
以往教學用項目一般要求學生開發如注冊、登錄等簡單模塊,涉及的功能規模較小,體現不出軟件工程化的特征,特別是軟件功能幾乎不涉及大量數據有效存儲和處理的問題,項目難度較小,與現實需求脫節。隨著大數據時代的到來,軟件系統需要處理的數據量越來越大,如果項目不體現大數據量、數據的有效存儲及復雜處理過程,則項目不能反映市場特點;而且,如果軟件項目的實施不支持移動技術,那么也無法適應日益增長的移動用戶群體需求。
1.3項目的開發以個人為主,缺少團隊開發的環節
以往教學過程中的項目開發大多由學生個體獨立完成,極少由學生團隊完成。當前的工程化軟件一般規模較大,必須組建開發團隊來完成。團隊開發項目會使項目開發的本質發生改變,這不僅指團隊有多個成員,更重要的是團隊成員的分工以及成員之間的溝通與協同能力,涉及人員配置、共同策劃、協作完成、進度控制等項目管理中各個環節,這是進行大型軟件項目開發必需的技能和經驗。
2企業項目驅動教學改革措施
項目的實踐必須本著循序漸進的原則,按照教學大綱的要求進行專業基礎知識的教學和實踐,而在重要實踐環節引入企業項目,引導學生按照企業的要求進行軟件項目的開發實踐,從而培養出滿足企業崗位需求的合格人才。教師通過市場調查及與合作企業的交流,掌握企業項目的需求,可選擇具有海量數據存儲、處理、移動開發等功能的企業項目作為實踐項目。當項目確定后,為每個項目形成需求文檔,方便隨時啟動項目。
2.1項目設置逐步深入,消除同質化
項目實踐從本科一年級或二年級開始起步,這個階段的學生只掌握了基礎知識,項目實踐更注重于程序邏輯的編寫。項目規模相對較小,但強調程序邏輯。本階段可以設置一些邏輯性、趣味性強的游戲程序開發項目,以激發學生的學習興趣,促進學生掌握項目開發必需的基礎知識,如基于Android系統的手機游戲開發。在本科二年級第2學期到三年級第1學期的項目實踐中期,學生已經具備一定的軟件開發能力,能夠從事數據庫的設計和操作、Web項目開發,可以進行相對大型項目的項目開發。本階段可以設置網絡流量分析系統的開發項目,該系統用于監控交換機、路由器、IP網絡在指定時間內的Netflow數據流,通過統計分析這些流量數據可以查看不同應用軟件的流量信息,如QQ、電子郵件、FTP應用占用網絡帶寬的情況等。系統運行的過程中需要不停采集設備、網絡的流量數據報,因此需要存儲和處理海量數據。該項目的實踐對鍛煉學生的處理海量數據存儲、檢索等技能有積極作用。在本科三年級第2學期到四年級第1學期的項目實踐后期,學生已經具備一定的大數據量問題處理能力并學會企業開發技術,此時配置數據量大、復雜的實際企業項目,可以進一步提高學生的開發能力和積累項目經驗,為畢業和就業奠定基礎。本階段設置的實踐項目為網絡輿情分析系統。該系統通過主動采集主要網絡媒體(如新浪、鳳凰、搜狐等)信息,獲取當前網絡輿論情報并將關注的輿論熱點通過曲線圖、餅圖、熱點地圖等統計圖表加以顯示,使用戶能夠直觀地掌握所關注的網絡輿情。該系統可以應用于政府部門,也可以應用于商業領域,如汽車廠商可以通過本系統了解自己產品的問題(如大眾汽車斷軸、DSG問題所引發的網絡輿情熱點)并采取相應的解決方案。上述3個階段項目側重點不同,項目難度逐層深入,有利于逐步提升學生的實踐能力,縮小學生能力與企業用人需求之間的差距。
2.2以企業項目要求實施項目
1)起步階段項目。實踐項目開發需要軟件開發人員具有良好的面向對象分析、編程的能力,能夠熟練掌握集合的使用,了解圖形界面編程,掌握多線程程序設計和文件操作,特別是具有一定的基于Android的移動開發經驗。本階段項目是基于Android的手機游戲開發,項目所需的知識體系如下:①面向對象編程,對游戲中所有對象進行分析、抽象,形成抽象類、接口、具體類以及類與類之間的關系;②集合與常用算法,對象的存儲涉及集合以及相關算法,如遍歷、排序、查找等;③圖形界面編程,游戲對象需要以圖形界面編程來展示;④多線程編程,不同的游戲對象有不同的行為,需要利用多線程處理;⑤文件操作,游戲對象需要加載文件中的信息形成游戲場景等;⑥移動開發,將游戲遷移至Android平臺,使游戲軟件能夠為手機用戶所使用。游戲開發能夠提升學生開發軟件的興趣,有利于學生系統、深入地掌握軟件開發必要的知識,為后續的學習和開發打下良好的基礎,特別是通過將游戲移植到Android平臺可以初步掌握移動開發的基本知識,為后續的移動開發打下必要的基礎。
2)中級階段項目。實踐項目開發需要具備良好的JSP/Servlet、數據庫設計與實現、數據處理以及相關行業開發經驗。網絡流量分析系統是一個網絡管理行業的工具軟件,需要對行業需求有所了解,重要的是軟件開發人員需要學會抓取和解析Netflow協議報文、存儲并處理海量數據,因此項目具有較大的難度。該項目的知識點主要包括以下方面:①Web開發技術,掌握JSP/Servlet開發技術,能夠進行Web應用編程;②數據庫技術,掌握主流的數據庫產品如Oracle、MySQL等,熟練進行系統分析和數據庫設計,熟練使用編程語言進行數據庫的訪問;③Netflow協議,理解Netflow協議,掌握協議中每個字段的意義;④數據抓取與解析,學會使用模擬設備發Netflow數據報的方法并通過編程抓取數據報,根據Netflow協議格式解析數據報,將每個字段的內容插入數據庫;⑤海量數據處理,系統時刻抓取設備和IP組的數據報,因此需要存儲的數據量非常龐大,考慮到系統對查詢的要求較高,因而海量的數據需要按時間規則自動建立表格,每條流量數據根據其時間戳確定要插入的表格;⑥數據處理,將信息按設備、IP組進行統計處理并以圖形加以顯示,使用戶能夠直觀地掌握網絡流量情況。項目的實施涉及數據報的抓取、解析以及海量數據存儲與處理等問題,項目難度接近企業真實項目,有利于迅速提高學生的實踐能力。
3)高級階段項目。該階段項目為網絡輿情分析系統,以大數據、移動開發為出發點而設計,是真實的企業項目,貼合企業需求。項目的主要技術點有以下方面:①行業項目需求分析,分析項目的功能、運行環境、適用行業等;②數據來源,項目所涉及的數據主要來自網絡,如新浪、搜狐、鳳凰等主流媒體網站,項目需要從這些網站上抓取輿論數據,進行輿情分析;③數據抓取技術,需要利用網絡蜘蛛等工具進行網絡數據抓取并使用內存數據庫提高數據插入的效率;④數據存儲,主流媒體的海量數據用一個數據表難以有效地存儲和檢索,因此需要按時間段來分表存放,這樣才能夠為數據表格建立索引,方便用戶進行高效查詢;⑤數據分析,對海量數據進行檢索和分析,形成對用戶有用的統計信息;⑥權限管理,通過系統授予/撤銷權限等操作限制用戶的行為;⑦移動支持,系統能夠支持輿情關注人員在任意時刻、任何地點通過Android平臺進行訪問。
2.3以團隊為基礎實施項目的開發
隨著軟件規模的增加,軟件的復雜性也隨之增加,因此工程化軟件開發方式是以團隊開發為基礎。團隊開發涉及項目功能分割、團隊成員協作、人員調配、進度控制等具體要求,是一種過程比較復雜、難度較大的開發方式,因此學生需要進行適當的培訓和訓練才能成功地實施大型項目。團隊開發訓練包括如下幾個部分:①團隊的組建,團隊成員之間要相互了解、相互信任,能夠為完成同一目標而通力協作;②團隊協作,多個成員共同完成一個軟件項目需要使用合適的源代碼管理服務器,團隊成員通過客戶機共享服務器中的資源進行開發,由于多人同時修改源代碼,可能造成不同成員的修改發生沖突,團隊開發人員要制訂和熟練掌握團隊開發規則,如遵循修改的操作順序、應用多配置文件等,以避免編程過程發生沖突;③任務分割,團隊成員在項目負責人的領導下進行充分的交流,將項目劃分為多個可同時進行的子任務,團隊各成員負責若干部分進行并行開發;④進度控制與人員調配,項目成員每天提交進度報告給項目負責人,項目負責人根據報告掌握項目進度并根據項目進度情況進行適當的人員調配,使項目能夠順利進行。網絡流量分析系統和網絡輿情分析系統,項目規模較大、難度較高,需要進行團隊開發。其中,網絡流量分析系統工作量相對稍小,可以組建3人的團隊進行開發;而網絡輿情分析系統復雜程度較高,需要進行Web版本的開發和Android版本的開發,需要組建至少5人以上的開發團隊。通過團隊方式開發企業項目可以提高學生的項目領導能力和項目管理能力,進一步提高學生的專業素質。
3結語
為了保證項目的質量,不同階段的項目側重點不同,降低了項目的同質性,而且項目的需求規模較大,滿足了行業軟件的需求,特別是海量數據處理和移動開發的引入縮小了與企業項目之間的差距;同時,通過團隊開發訓練,學生具備了項目領導、項目管理、團隊開發的基本能力,掌握了企業需要的團隊開發技能,所具備的專業素質更符合企業的崗位需求,增強了就業能力。
作者:鄧澤林 單位:長沙理工大學