摘 要 隨著產業的發展,軟件的規模更加龐大,變得更復雜,軟件工程日益顯得重要。在教學中也面臨越來越多的問題,軟件工程是一門理論和實踐要求都非常高的課程,課程的掌握程度影響學生的軟件開發能力,在教學中要注重培養學生的軟件開發能力。讓學生具備扎實的理論知識和熟練軟件開發設計技術,但在實際教學中,理論講授太多,實踐教學環節不足,教學內容抽象、難度大、學生難以理解,覺得課程枯燥乏味,教學效果不理想,因此需要對教學方式方法進行改革,以提高學生的綜合能力。
關鍵詞 軟件工程;教學改進;實踐
一、引言
提起軟件,在當今社會人們并不陌生,正是由于軟件的發展,使計算機應用逐步滲透到社會生活的各個角落,使各行各業都發生很大的變化。這同時也促進人們對軟件的品種、數量、功能和質量等提出了越來越高的要求。然而,軟件的規模越大、越復雜,人們的軟件開發能力越顯得力不從心。于是,人們開始重視軟件開發過程、方法、工具和環境的研究,軟件工程應運而生。
軟件工程是計算機軟件專業一門綜合管理課程。它涉及計算機科學、工程學、管理學以及經濟學等多門學科,是一門根據人們的軟件開發經驗總結出來的理論課程。本課程的教學目的和任務是通過學習使學生掌握軟件工程的基本概念、基本原理、實用的開發方法和技術,了解軟件工程各領域的發展動向,掌握如何用工程化的方法開發軟件項目,知道在開發過程中應遵循的流程、準則、標準和規范。作為一門實踐性和綜合性很強的課程,對培養學生的軟件素質,提高學生的軟件開發能力具有重要的意義。
二、課程特點
1.課程綜合性強
軟件工程與其他計算機課程,如程序設計語言、數據結構、編譯原理、數據庫以及操作系統等課程都是相互作用和影響的。在一定程度上說,軟件工程討論的是在實際開發當中綜合運用這些課程中講過的理論和方法,將這些課程的理論和方法放在一個統一的目標下,這個目標就是在有限的時間及預算條件下,開發出高質量的令用戶滿意的軟件。
2.課程內容不斷更新
軟件工程課程的教學培養目標應該以市場需求為導向,使課程培養的學生真正能夠在軟件行業中發揮作用。因此,在授課時,我們不能拘泥于教材內容的限制。在講解基本原理、基本概念和基本方法的同時,介紹一些新方法、新技術。這樣,有助于開拓學生的視野和培養創新意識與開發能力,使他們走向社會后不至落伍。
3.課程的實踐性強
軟件工程是一門實踐性很強的課程,它是各種開發經驗的總結與提煉。在學習過程中不但應注重概念、原理、方法和技術的掌握,更應注重方法、技術的實際應用。學習軟件工程必須投身于軟件開發的實踐,才能真正領悟軟件工程的精髓。
三、軟件工程教學中存在的問題
軟件工程是一門理論性較強的課程,在日常教學過程中存在以下問題:
(1)學生對軟件工程的抽象理論容易感到枯燥乏味軟件工程涉及眾多專業領域,它是一門多學科交叉學科,課程內容具有抽象化、系統化、理論性強等特點。不像程序設計課程能隨時動手設計實現程序,激發學生學習的興趣和熱情。學生在接受抽象理論的時候,容易感到內容空洞、枯燥乏味,學習時就缺少主動性,難對這門課程產生興趣。
(2)實踐環節不理想。目前可供該課程選用的合適的實驗項目少,實驗效果與教學要求差距較大,學生不能把理論知識有效地運用到實踐活動中。
(3)不能較好地因人施教。學生的基礎水平參差不齊,個體差異較大,現行的教學模式很難滿足全體學生的要求。
由于學生沒有真正掌握基礎理論及運用理論的技能和方法,學習過程中又沒有參加實際軟件項目的機會,不能將軟件工程的理論充分運用到設計實踐中去,給畢業設計,以及畢業后參加工作帶來很多麻煩。
實際教學當中,這門課的教學效果往往不是很理想,教師覺得這門課教起來較困難,學生學習中多數也覺得枯燥無味,很難達到較好的教學效果或獲得較強的實踐能力等預期目的。如何改善?結合軟件工程的課程特點,可以從以下幾個方面來改進《軟件工程》的教學質量。
四、軟件工程教學改進的內容和方法
1.教學過程引入實際案例
軟件工程課程涉及面很廣,如果不結合實際工程項目進行教學,很難把教學內容教授給學生。因此,在教學過程中引入案例,將復雜抽象的概念用具體生動的實例進行詮釋,能夠收到事半功倍的效果。例如,在授課時、可結合一個“學生信息管理系統”實例,給學生介紹具體的開發過程和方法。
2.組織課堂討論,形成教學互動
我國有句名言:“授人以魚,不如授人以漁”。學生是教學活動的核心,教師要利用合適的方法調動學生的積極心理和參與意識,改變傳統的教師高高在上的教學方式,讓學生參與教學過程,有機會發表自己的看法。
比如在講授需求分析這章內容時,可結合“學生信息管理系統”這個案例,要求學生按照軟件工程教學的思想和方法認真做好需求分析。在實施過程中,首先由學生獨立思考,給出解決方案。然后在課堂上,組織學生進行討論,分析各自解決方案的優劣,并進行綜合。最后由老師進行總結和評價,指出該案例所涉及的理論知識及其應用方法,就學生提出的問題進行解答。這樣通過組織學生討論,可使學生進一步理解和掌握課程內容的方法和步驟,使抽象的知識變得看得見,用得著,大大激發了學生學習的興趣和自信。
3.加強實踐環節
從本質上看,軟件工程的實踐性和綜合性是其他相關課程難以比擬的。因此,必須結合設計項目和實際應用加以施教,才能取得良好的教學效果。那么,在把握教學進度的同時,必須及早安排好課程設計,讓學生同步開展課程設計。這樣,理論課講完了,課程設計也基本結束,學生們能從理論和實踐的結合上,加深對軟件工程知識難點、重點的理解,進一步深刻理解軟件過程和系統消化理論知識,訓練項目設計的思路,鍛煉實際開發能力,培養嚴格規范的項目開發方法和步驟,體驗文檔編寫整理、階段性評審總結以及軟件測試等各個方面的工作流程,直接培養了學生從事實際開發的能力。
4.以“項目小組”形式完成軟件開發過程管理
為了培養學生的團隊精神和求知欲,我們采用“項目小組”的開發形式,每個小組5-6人自由組合,分工合作,學生們不再是旁觀者,而是分別擔任客戶、項目經理、系統分析員、程序員、測試員和評審人員的角色,要求運用軟件工程中面向對象技術、方法和按照軟件過程規范分階段實施,學生所做課題貫穿整個學期的學習過程,每個課題都來自實際需求,每個小組課題不允許重復,這種方法在提高學生的興趣和和學習主動性,以及發揮學生的專長和創造力等方面,收到了很大的成效。
五、總結
通過一輪的教學改革,軟件工程課程的教學效果有了比較明顯的改善,學生對軟件工程的原理及概念都有了比較深刻的理解。同時學生的實踐動手能力、團隊協作的能力、解決問題的能力以及文檔的編寫的水平都有了比較明顯的提高。目前看來,新的教學模式取得了比較好的效果,但是其實施過程還需要在實際的教學過程中不斷的修正和完善。
參考文獻:
[1]張海藩.軟件工程導論第四版,清華大學出版社.
[2]陳明.軟件工程學教程,科學出版社.
[3]尹鋒.軟件工程課程教學改革初探.長沙大學學報,2004(12):79.
[4]宋瑋軟件工程教學的思考.廣東工業大學學報(社會科學版),2005(9):109.
作者簡介:朱 婕(1986-),女,本科,武昌職業學院信息工程學院,助教,研究方向:計算機軟件技術。