
【摘要】為了適應目前我國軟件工程產業教育國際化、產業化的發展要求,改進軟件工程專業課程的教學質量與教學效果。本文針對當前軟件學院教學中存在的問題提出對《軟件工程》的產學研及課程評價進行了重大的改革與創新。該課程實踐教學改革不但能提高學生的積極性、創造性,同時對學生掌握軟件工程的理論知識有益,且為學習其他專業知識打下堅實的基礎。
【關鍵詞】軟件工程 "產學研 "實踐教學改革
【中圖分類號】G64 【文獻標識碼】A 【文章編號】2095-3089(2014)09-0237-02
為實現畢業生和就業市場的對接,強化對學生科技創新能力、可持續發展能力及應用型實踐能力的培養,經過認真調研和系統論證,積極吸納行業人才標準,南陽理工學院謀劃制訂了應用型本科培養方案,修編了千門課程教學大綱,深入實施實踐性教學,加大“訂單式”培養模式改革力度,深化校企合作,最大限度降低用人單位對畢業生“二次培訓” 的投入成本,使畢業生能順利通過試用磨合期,成為企業的骨干力量。南陽理工學院軟件學院也積極響應學校號召,制定相關標準,努力提高學生的實踐能力、創新能力。
軟件行業已經成為推動國民經濟和社會發展的基礎性、戰略性和先導性產業,為推進工業和信息化融合、轉變經濟發展方式、保障國家信息安全提供了重要支撐[1]。因此提高軟件開發設計人員具備的軟件設計、項目維護、項目管理的能力尤為突出。軟件工程是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言、數據庫、軟件開發工具、系統平臺、標準、設計模式等方面。在現代社會中,軟件應用于多個方面。[2]《軟件工程》課程被各國大學信息類相關專業設置為一門核心專業課程。當前《軟件工程》課程中存在的一系列棘手問題,直接影響教學質量與教學效果提升。比如在教學內容上表現為重理論而輕實踐,從而不能有效培養學生的軟件開發能力;授課中使用的教學案例缺乏完整性和實用性,從而不能幫助學生全面理解軟件開發的全過程[2]。因此,我們迫切需要對教學體系進行革新,形成一體化培養方案:基礎教學、實踐教學、工程實踐。本文將從理論教學、實踐教學以及課程教學評價三個方面進行探索。
1.《軟件工程》課程理論體系教學探索
以IEEE(電氣和電子工程師協會)發布的軟件工程知識體系為基礎,結合軟件開發基礎知識、軟件領域的先進技術和軟件開發方面的工程實踐等構建該門課程的知識體系。一般的《軟件工程》課程知識體系如圖1所示。
圖1 軟件工程知識體系
《軟件工程》課程知識體系分為開發過程和支持過程兩個部分。開發過程部分的軟件設計、需求分析為理論教學,根據教學目的和教學要求,采用案例及問題驅動等教學方法,講解軟件工程的理論基礎知識,包括軟件生命周期各個階段、軟件質量和軟件項目管理等核心內容,通過案例的分析,促進學生的獨立思考,提高其對理論知識的理解和掌握。支持過程部分是以當前流行的統一開發過程、面向對象分析與設計和UML語言為核心,融入實際案例,Visio、Project、Sybase powerdesigner、Star UML 、Rational Rose2003、Loadrunner等軟件工程設計工具和運行環境,使學生們掌握當前優秀而常見的軟件工程技術。實踐部分要求學生分組聯合完成一個實踐的軟件工程系統,比如常見的校園自動化辦公系統,高校的辦公系統一般涉及公文管理、督查管理、電子公文審批、公共信息查閱及收集,內部請示報告管理、會議管理、領導活動管理、個人待辦事宜、日程安排、通訊錄、快遞辦理、資源管理,以及其他有關機關行政事務處理等。把這些項目進行適當的分解,讓學生從實踐中獲得真知,運用軟件工程思想和現代開發工具與技術來解決軟件開發所遇到的問題,提高學生分析問題和解決具體問題的能力。一般來說,講授《軟件工程》的理論知識晦澀難懂,講課中若能穿插一些實踐案例對理論知識進行形象化的表述,不僅能讓學生心領神會,也能提高學生軟件開發更加系統化、工程化、質量化。同時也應該注意的是,教學案例的選擇應該是學生熟知的領域,且它的實用性能激發學生的求知欲。如在講授Web程序安全性問題時候,授課老師可以先設計一個表面看起來很好,但系統安全漏洞百出的程序演示給同學們。如SQL侵入案例,學生會對不需要輸入賬號密碼而輕松進入網管系統而震驚不已,這是授課老師再做理論分析會深深吸引學生。所以,在理論教學中,把抽象的知識形象化、具體化、案例化,采用啟發式、討論式、師生交互式等教學理論方法更能營造融洽的學習氣氛,激勵學生們去思考,去網絡上或圖書館查找資料,從而領略當下軟件工程設計領域的精華。
2.實踐教學內容創新模式
在實踐教學過程中,我們實施項目驅動教學法,實驗設計以項目開發為主題,模仿商用的軟件開發過程,若遇到問題,進行師生互動討論尋找解決方案,通過開發出來的“成品”來反饋教學評價,整個流程能使學生體會到一個完整的項目開發全過程。我們安排的實踐教學活動具體流程為:
(1)項目任務分解:第一次課 ,要求學生以平時成績均分的方式劃分項目小組,每組3-5人不等,每個學生可扮演項目中不同的角色,也可以互換角色。第一個項目一定要把握好軟件的規模和難易程度。要求按照商用軟件的開發流程,逐步完成項目開發的分析、設計、編程和測試,同時將Visio、Project、Sybase powerdesigner、Star UML 、Rational Rose2003、Loadrunner等常用軟件開發工具在部署過程中進行有效使用。
(2)團隊合作:學生根據自愿和能力互補的原則組成團,每組角色包括項目經理、系統分析員、架構設計師、軟件設計師、軟件開發和軟件測試工程師等,當然成員的角色可調換。
(3)計劃可行性評估 :教師通過審核項目實施的可行性,制定項目計劃。符合要求,方可進入下一步的實施階段。
(4)項目實施 :小組成員根據各自的任務查找資料,收集解決方法,定時討論交流,各個模塊間相互配合協調完成任務。該階段還學設計完成軟件項目的總體架構;對功能模塊進行編碼。整個項目實施過程由任課教師指導,項目經理控制其進度,該階段可培養學生多人之間的溝通能力和團隊協作精神。
(5)軟件測試: 測試是軟件開發過程中的一個重要組成部分,是貫穿整個軟件開發生命周期、對軟件產品(包括階段性產品)進行驗證和確認的活動過程,其目的是盡快盡早地發現在軟件產品中所存在的各種問題——與用戶需求、預先定義的不一致性。
(6)項目驗收階段:項目驗收是公司乃至每個項目成員都想要的結果。項目驗收是一系列細致工作完成到位的結果,而不是某一點的成功或某個人能力就可以促成的事情。一個項目的驗收,一般是由一系列驗收準備工作組成的。如果我們在最終驗收前,已經將很多階段的工作細化并得到認可執行,那么項目驗收也就是水到渠成的事情了。根據軟件開發流程的各個階段成果包括可行性分析報告、需求規格說明書、項目計劃書、總體設計報告、詳細設計說明書、軟件測試報告、項目開發總結報告等。最后項目組還要提交系統和所有文檔備案。
3.《軟件工程》教學評價體制改革
按照教育部本科評估相關要求,教學評價是課程教學的必要環節。所謂的教學評價,就是根據教學目的和教學原則,利用所有可行的評價方法及技術對教學過程及預期的一切效果給予價值上的判斷,以提供信息改進教學和對被評價對象作出某種資格證明。在本課程的教學實踐中,我們將該課程的成績構成分為:期末成績占60%,考勤占10%,實驗占30%,其中期末考試中的理論考核占50%,項目實踐成績占30%,考勤、平時作業、實訓練習等占20%。這樣的課程評價體系能夠調動學生們的學習積極性和協作精神,教學效果比較顯著。
4.結語
本文通過對《軟件工程》課程教學的理論和實踐進行了探究,以常規的軟件工程課程知識體系為基礎構建了整個課程體系的知識結構,在教學中體現理論與實踐并重的思想。理論教學部分著重于實際案例的選擇和剖析,理論教學部分貫穿精選案例具體實踐方法,達到了理論教學與實踐項目的完美結合。實踐教學以實際項目驅動為基礎的,它可以模擬企業及大型商用軟件的設計和開發過程,從而可以引導學生積極設計與論證,教師在這里不再是知識的灌輸者,而是學習的積極引導者,學生由被動“填鴨式”教育變成主動的探索式教育。實踐已經證明,通過本課程的改革與創新可以極大地提升學生的學習興趣,取得了比較好的教學效果。
參考文獻:
[1]薩默維爾.軟件工程 [M].9版 .北京 : 機械工業出版社, 2011:55-71.
[2]周璀,段光中,劉松平. 《軟件工程》課程教學改革的研究與探索[J]. 科技資訊,2012,30(3):146-147.
[3]詹秀菊,劉梢. 《面向對象程序設計》課程實驗教學改革的研究與探索[J]. 現代計算機 ,2013,08:40-43