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