摘要:軟件工程是一門理論性、實踐性、工程性很強的課程,本文結合實際教學的體會,根據軟件工程教學的現狀,從教材的選擇||、課程內容、教學安排及教學實踐等方面分析了軟件工程教學中存在的問題,提出應強調案例教學,通過案例設計適合學生特點的課程。實驗項目,使學生真正理解軟件工程的基本理論,并在理解和實踐的基礎上掌握當前軟件工程的方法、技術和工具,以此提高學生學習本課程的積極性和主動性。
關鍵詞:軟件工程 教學改革 案例教學
《軟件工程》是計算機科學與技術及其相關專業的一門重要的專業必修課程,是將系統性的、規范化的、可定量的方法應用于軟件的開發、運行和維護 ,其重點在于軟件的分析與評價、規格說明、設計和演化,同時還涉及管理、質量、創新、標準、個人技能、團隊協作和專業實踐等。其先修課是《程序設計語言》、《數據結構》、《操作系統》、《數據庫原理與應用》等,這些課程著重培養學生從局部問題入手,解決問題的能力,而《軟件工程》則著眼于從全局角度出發分析和解決問題,理論要求高,同時也是本專業中實踐性非常強的一門課程。
一、軟件工程的發展
軟件工程的發展速度是驚人的。自1968年提出“軟件工程”這個詞以來,已經歷了40多年的時間70年代在取得大量研究成果的基礎上,形成了軟件工程的概念、框架、方法和手段,稱為軟件工程的“第一代”,我們稱之為傳統的軟件工程,是目前軟件工程教學中的主要內容。
20世紀80年代以來,面向對象的方法與技術受到廣泛的重視80年代中期到90年代,研究的重點轉移到面向對象的分析與設計,并演化成一種完整的軟件開發方法和系統的技術體系,成為軟件工程的“第二代”,即對象工程技術。在以往的軟件工程教學中,這一部分內容沒有太多的講解,且沒有相應的完整實驗要求和方法。
到了80年代中期,人們在研究和實踐中發現,為了提高軟件生產率和保證軟件的質量,關鍵在于軟件開發和維護中的管理和支持能力,并認識到最關鍵的是“軟件過程”,從而逐步形成軟件過程工程,并成為軟件工程的“第三代”。項目軟件過程改進與質量提高也是軟件工程學研究的重要內容,其中以軟件能力成熟度模型(CMM)為代表,目前的軟件工程教學因為課時關系很少講授這方面的內容。
二、存在的問題
由于軟件工程是一門綜合性的課程,包含的內容非常多:從軟件工程概述、軟件計劃、需求分析、概要設計、詳細設計、編碼、測試、軟件維護、面程、軟件重用技術、軟件配置管理、軟件工程向對象方法學引論、面向對象分析、面向對象設計、UML建模語言、系統工標準化和軟件文檔、軟件工程質量、軟件工程項目管理等等內容,并且隨著信息技術的不斷發展,軟件工程中也出現了不少新的技術和方法。但安排的教學學時一般都是48~64學時之間,在有限的學時中要教授這么多的內容, 導致目前國內高校對于該類課程的普遍做法是以教師課堂授課為主,學生被動地聽課,教學內容一般是重理論而輕實踐,即使配備課程實驗,學生也只是編寫一些規定的文檔,其開發方法和手段基本上與軟件工程的要求脫節。
三、解決方法
精心選擇教材,注重理論教學教材的選擇要密切關注社會的需求,教學活動應該以社會即需求為主導進行。巨大的社會需求也推動了計算機教材的繁榮,各大出版社或引進或組織教師編寫,各種計算機教材陸續走進了課堂因此,要選擇一本適合本院學生學習的深入淺出的教材至關重要,通過大量認真細致的比較,我們決定選用由張海藩編著,清華大學出版社出版的《軟件工程導論》(第五版)為教材,分別講述了用面向對象方法和結構化方法開分別講述了用面向對象方法和結構化方法開學很有幫助,也是上機實踐的好材料。在教學過程中,要注意引導學生重視系統地掌握軟件工程的基本概念、基本原理、基本方法,在向學生介紹概念的內涵時,既要注重科學性和嚴謹性,也要注重通俗性,通過生動的舉例幫助學生理解理論知識,利用課堂提問、課后布置作業和批改作業發現問題,及時糾正錯誤概念,逐漸強化理論知識,在時間上也互相協調、合理銜接,使學生從了解、理解到系統地掌握軟件工程的基本理論,為今后的實踐打下良好的理論基礎。
四、合理安排實驗,注重案例教學
根據軟件工程課程的特點,在安排實驗的環節上,要注意以軟件項目作為實踐環節的主線,隨著課程進展布置任務,從項目開發的準備工作、系統分析過程、系統設計過程、軟件測試到系統實施,結合所學習的理論知識,完成項目的開發。首先,應設置一些綜合實驗項目,通過問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、維護及技術文檔的編寫,結合所學習的理論知識,完成設計。軟件工程的理論和方法是從眾多軟件開發實踐中總結出來的,在整個教學過程中結合該案例,講授了每個知識點以及軟件開發各個階段的任務是如果完成的。此外,我們還收集和總結一些軟件開發案例,在講授完每個知識點后,將這些案例結合起來,貫穿于理論知識的講解中,使學生真正理解這些理論知識,建立軟件開發的系統化與工程化觀念和質量意識。
五、組織興趣小組,培養團隊精神
在軟件工程實踐的過程中,要求學生以開發團隊的方式協作開發一個具有一定規模的軟件系統,建立支持小組開發的軟件開發支持環境,一般每個小組5~6人,分別擔任項目經理、客戶、系統分析員、程序員和測試人員等角色,根據所選項目的需求,制定項目計劃,分工合作,在研究問題分析系統的過程中創造性地學到知識。最后,由組長講解所開發的項目。在這個過程中 ,讓每個成員都得到實際的鍛煉,并初步體會到一個軟件開發項目的全過程。
六、結語
《軟件工程》課程教學中的問題是客觀存在的,軟件工程的課程改革本身就是一項復雜的工程,要做的事情還有很多,將來會更好的利用網絡資源,設計出更符合教學的案例,同時建立自己的軟件工程網絡系統,提高教學能力。
參考文獻
[1]孫家廣,劉強,等.中國軟件工程學科教程[M].北京:清華大學出版社,2005.
[2]朱三元 ,錢樂秋,宿為民.軟件工程技術概論[M].北京:科學出版社,2002.
[3]鄭人杰,殷人昆,陶永雷.使用軟件工程[M].北京:清華大學出版社,1996.
(作者單位:1.青島科技大學;2.青島黃海學院)