實驗教學是對理論的實際應用的過程,理論是基礎,實驗是應用。通過實驗教學,學生在理論學習中學到的知識點能夠得到更好的理解和掌握,對理論學習起到了一個很好的推動作用。在一定的實驗教學安排下,學生根據教師所給出的實驗項目自由選擇,將所學的軟件開發過程、方法和工具,以及淺顯的管理學知識應用到整個項目開發中,從而更好地理解了軟件工程的理念,熟悉和掌握了軟件工程相關技術,同時也提高了學生的實踐動手能力。實驗課程與理論教學是相輔相成的。它們彼此之間相互影響、相互支持、相互促進。
一、《軟件工程》實驗教學存在的問題
針對學院相關專業,根據《軟件工程》課程的特點和培養計劃的制定等條件,課程安排理論學時較多,約占總學時的78%,實驗學時很少,約占12%,并且實驗課的內容是為學生提供現成的系統,要求學生利用CASE工具,按照老師提供的系統進行建模,編寫軟件開發各階段的文檔。由于學生沒有參與過系統的開發,要熟悉別人開發的系統有一定的困難,導致學生對此不感興趣。教師不可能每個開發階段安排相應的實驗,因此在實驗課程有限的時間內,要編寫相對完整的軟件開發各階段相關文檔也是不可能完成的,這樣學生不能夠真正地理解教學內容,學生的實踐能力也沒有真正地得到鍛煉。隨著軟件行業的快速發展,軟件技術和內容不斷擴充,不斷更新,《軟件工程》教學面臨著計算機學科發展規范所提出的更高的質量要求,同時也面臨著大眾化高等教育背景所帶來的客觀問題,如何開展軟件工程的實驗教學,如何保證軟件工程實驗環節的良好效果一直是個問題。因此《軟件工程》課程的實驗教學環節的創新與設計至關重要,直接影響到此門課的授課效果和學習效果。
二、《軟件工程》實驗教學改革與實踐
基于《軟件工程》課程應用型的特點和傳統《軟件工程》實驗教學中存在的若干問題,我們必須積極探索《軟件工程》實驗課程的教學改革,通過改革和創新使《軟件工程》實驗教學真正發揮其重要的作用,確實提高學生的實際開發能力,使學生盡早地投入到開發角色中去。因為實驗課程是由學生、教師和實驗室共同參與完成的,學生主要完成相應的實驗內容目,實驗內容設定的優劣直接影響到實驗教學質量和效果;教師是學生完成實驗的直接指導者,教師實踐水平的高低也直接影響到學生的實踐能力;實驗室提供實驗教學的環境支持,合理和最大限度地利用實驗室的資源也是對提高實驗教學質量的一種幫助。所以我們主要從實驗內容設計、教師實踐水平和開放性實驗室這三個方面對《軟件工程》實驗教學做了改革與創新的嘗試。
1.實驗內容設計。我們拋棄了傳統的實驗內容,不給學生提供已經完成的系統,而是使用了新的實驗教學模式,讓學生以小組為單位,采用面向結構的軟件開發方法和面向對象的軟件開發方法相結合完成對系統的開發。系統題目采取教師命題的方式,教師提供3個系統題目供學生自由選擇,如圖書管理系統等。題目來源均結合本學校實際情況,就地取材,有利于學生的調查研究,因此具備一定的應用價值和進一步擴充完善的能力,而且難易度適中,功能約占畢業設計題目要求的50%,具有可操作性、可驗證性和可實現性。學生選好題目后,教師統計每個系統對應的學生人數,并將學生分成若干個項目組,每組5~6人,仿照軟件公司進行職責分配,每個項目組有一名學生擔任項目經理,負責本組學生的工作分配和項目的檢查工作:可將組員設定為系統分析員、系統設計員、程序員和測試人員。隨著課程進展,按照軟件生存周期的各個階段(問題定義、可行性研究、需求分析、概要設計、詳細設計、軟件測試)布置任務,每組學生分工合作,項目經理負責組織和管理每個組員,每個組員負責項目中的一個任務,每個組員均獨立完成任務,組員之間合作共同完成該組所負責項目。教師的主要任務是組織和管理所有項目組,同時進行答疑和檢查,答疑在每次實驗時或課后進行,檢查在每次實驗結束時或課后進行。這樣的實驗模式,培養了學生的團隊合作精神和獨立分析解決問題的能力。
2.提高教師實踐水平。《軟件工程》這樣一門綜合性的學科,更需要教師有很強的實踐水平。但往往教師的理論知識很豐富,卻缺乏一定的實踐經驗。如果教師的實踐經驗不足,那么在實踐教學中會使理論和實際脫節,從而影響教學質量。為了能夠培養出更適應社會需要的應用型人才,必須首先從教師的專業素質抓起。學院會定期組織相關教師到北京或大連的軟件公司進行培訓,培訓內容主要是參與開發公司的實際項目。通過在軟件公司的經歷,教師積累了實踐經驗,也使其掌握的理論知識更好地運用于實踐中,在實踐教學中能夠更加專業地指導學生,并將在軟件公司遇到的實際問題和學到的寶貴經驗與學生分享,增加了學生的實際經驗,為學生將來更好地就業打下了良好的基礎。
3.開放性實驗室的建設。《軟件工程》課程實驗學時很少,要想在有限的時間內完成實驗教學內容是不可能的,更多的是需要學生在課后完成的實驗內容。但由于學生課后的時間比較自由,不利于組織和管理,為了保證實驗內容的連續性,應集中安排學生上機實驗。根據學院實驗室具備的條件,我們特向學院要求為《軟件工程》課程安排固定的時間開放實驗室,以便于學生集中進行實驗,方便學生對項目的開發和討論,對資料的查閱等。同時要求實驗室教師盡可能地參與其中,幫助學生及時解決困難。
三、《軟件工程》實驗教學改革效果
《軟件工程》實驗教學改革已在學院軟件工程和網絡工程兩個專業的學生中進行了實施,教學效果有了明顯改善。一方面,學生綜合運用所學理論知識解決實際問題的能力得到了提升,學生的實踐能力、獨立分析問題和解決問題的能力也得以提高,其團隊合作精神得到了加強,因此,加強了學生“工程”化的思想,提高了其就業等方面的競爭力,使其更加適合在現代軟件企業中發展。另一方面,通過《軟件工程》實驗課的鍛煉,學生為大四學期的畢業設計環節奠定了基礎,學生撰寫畢業論文的質量有了明顯提高。客觀地說,作為經驗較少的大三學生,要在一學期的時間里開發出各方面都達到真正實用要求的系統是比較困難的。實驗教學的意義不是讓學生花大量時間做出多完整、多完美的軟件,更重要的意義是讓學生經歷軟件開發的完整的過程,體驗各階段方法和工具的應用,同時學生的專業技術能力、管理能力、溝通能力等多方面的能力都得到了鍛煉,為學生將來進入社會成為一個全面發展的綜合型人才奠定了較好的基礎。
六、結語
從《軟件工程》實驗教學改革的效果看,我們取得了一定的成績,同時也得到了學院老師和學生的肯定和好評。《軟件工程》實驗作為綜合性的實驗,如果條件允許的話,可建立校企合作,與產學研結合,將《軟件工程》實驗或部分實驗安排在企業中,讓學生真正地深入企業,了解軟件產品的生產過程,并在實際操作中進一步加深對課堂知識的理解。
作者:張美娜 遲呈英 單位:遼寧科技大學 軟件學院