軟件工程的重要性已經逐漸被大多數軟件開發企業所承認.成功的軟件項目除了技術、工具等因素之外,更多的依賴于一個好的軟件工程方法和過程.好的軟件工程方法和過程,帶來的是更低的風險、可控的管理和較低的開發成本.
正是基于大家對軟件工程重要性的清醒認識,如今大量的軟件開發企業在招聘時強調考察應聘人員對軟件工程的了解和掌握程度.于是各大軟件學院也紛紛加大了對軟件工程這門課程的重視,以適應企業新的需求,培養出符合企業要求,深受企業歡迎的合格軟件人才.
然而在傳統的軟件工程教學中,強調按部就班的理論教學,而伴隨著以程序設計為引導的編程實踐活動通常是以學生個體為單位進行的,學生并沒有真正的機會去理解和融會貫通這些從事軟件開發工作所必需的方法和技巧.
而且在這樣的情況下,學生不僅無法了解團隊合作的原則和技巧,所經歷的實踐活動和他們將要在企業里經歷的也是大相徑庭.
1 實踐驅動 激活教學.
當前比較流行的軟件工程教學方法,是在授課之后以小組的形式進行驗證式或考查式的軟件開發,目的是讓學生對軟件工程過程有一個親身體會.但是最終的結果往往是,一組學生把任務完成了,得到的僅僅只是一個可執行程序和一堆源代碼,并沒有真正實踐軟件工程的過程.也就是說,在實踐活動中,仍然是基于任務的思維方式而不是基于過程的.學生沒有在獲取知識后加以實踐運用,導致對知識掌握不牢,所以有些學生反映軟件工程這門課學完就忘了,并沒有對今后的軟件開發活動造成實際的影響.
針對這種情況,采取“實踐驅動”的方法,將實踐嵌入到教學中,把實踐活動提升到與課堂教學同等的地位,用實踐活動驅動課堂教學,邊練邊學,邊學邊教,讓實踐活動和課堂教學同步進行,貫穿軟件工程實踐領域,包括制定計劃、需求分析、軟件設計、程序編寫、軟件測試等整個生存周期.
為了提高教學效果,將實踐活動提前到授課之前開始,而不是授課之后的簡單驗證或者考查,力圖讓學生在思考中進行實踐,帶著問題聽課,充分激發學生學習的主觀能動性,同時讓學生在聽完課后有豁然開朗的欣喜感.總而言之,就是讓學生練而有惑,學以解惑.
在課程剛開始的時候,把學生酌情分成若干人為一小組\\(通常以 6 到 8 人一組\\),提供一定數量的課題做為選擇,課題不應該太復雜,畢竟是軟件工程課而不是編程課.每個小組根據自己的喜好選擇一個課題.第一堂課,通常會向學生講授軟件工程概論,軟件生存周期的六個步驟.課后,可以要求學生開始自己的課程實踐.這時候學生雖然知道軟件生存周期的第一個步驟是制定計劃,卻又不知道從何下手,如何制定計劃以及計劃的內容.這種情況下大多數學生會對教材的相應章節進行學習,并在課堂上積極提問.于是將課堂教學的效果最大化,最大程度地聚焦了學生的注意力.
學生先在實踐中遇到疑難,然后在課堂上提出疑難,最后在實踐中解決疑難,這樣才能保證學生牢固掌握所學到的知識,并能在今后的學習生活中加以運用.
2 針對企業,模擬實戰.
僅僅強調以課程實踐驅動課堂教學,還遠遠不夠.
比如就曾有學生說:“到底為什么要做需求分析呢,我在項目中并沒有覺察到需求分析的作用”.也有學生覺得制定計劃很沒有必要,可有可無,相應的文檔也處理得很簡單.
相對于軟件設計和程序編寫來說,其他步驟都受到了一定程度的忽視.這又間接使軟件工程課變成了一門加強版的編程課.
然而在企業的現實應用中,情況并非如此.制定軟件項目計劃,做好需求分析,恰恰是決定一個項目成敗的至關重要的因素.軟件工程課講授的知識應該是面向企業,面向實戰的,不是紙上練兵,也不應該是閉門造車,應該讓上過這門課的學生都知道,實際企業中的軟件工程是什么樣子的,他們以后參與的可能是一個什么樣的過程,而不是上完這門課以后只是會用 Rational Rose 畫幾張用例圖、活動圖.
針對這種情況,采取“模擬實戰”的方法,在每個軟件生存周期的階段,老師將模擬不同的角色來推動課程實踐向實戰靠攏.在制定計劃階段,老師將擔任“上司”的角色,對風險分析,開發計劃都要進行評閱,如果此階段進行得不成功的話,老師可以對此課題喊停,該小組將不得不另選一個課題重新進行課程實踐.在需求分析階段,老師將搖身一變為“用戶”,各小組需要制定相應的調查綱要,對用戶的需求進行調查了解.同時仍然擁有“上司”的身份,各小組需要向上提交一份可行性研究報告,以決定該課題是否繼續.在軟件設計階段,老師將以“用戶”的身份對需求隨時進行調整,讓學生充分理解迭代的過程,這時候過程不規范的小組將深受其苦.在其后的編程和測試階段,老師都將以“上司”的身份參與實踐,使實踐過程受控.
每個小組都需設一名組長,并將小組的集體討論貫穿整個課程實踐,同時進行討論紀錄,附在文檔之后.這樣能使小組所有成員對開發過程有一個清晰一致的認識,從而實現整體能力的提高,獲得更佳的效果.這對強調團隊精神的軟件開發尤為重要.
參考文獻:
[1] 熊川武.學習策略論[M].江西教育出版社,1997
[2] 尹俊華,等.教育技術學導論[M].北京:高等教育出版社