姚敦紅
(懷化學院 計算機科學與工程學院,湖南 懷化 418008)
面向對象的分析與設計課程是計算機科學與技術本科專業的一門重要的發展能力方向課程,是一門綜合性、實用性和應用性很強的課程。課程在傳統軟件工程的基礎上,重點介紹軟件項目的啟動和計劃、需求獲取和結構化、基于UML的系統靜態和動態分析、系統設計、測試和維護等面向對象的分析與設計的概念、原則、技術和方法,使學生能采用面向對象的思想進行系統的建模和開發。該課程是專業基礎科學理論與軟件工程實踐之間的橋梁,主要培養學生應用專業基礎知識進行軟件項目分析與設計等的實踐能力。學生通過課程的學習,能在已有的計算機基礎、程序設計、計算機網絡、數據庫原理等知識的基礎上,系統地掌握軟件項目面向對象的分析和設計方法,具備針對不同領域下的信息系統進行分析、設計與實現的能力。
隨著用人單位對軟件開發從業人員的要求逐年提高,軟件項目分析與設計能力已成為從事軟件開發人員的必備技能。為進一步推進計算機科學與技術專業的教學改革,面向對象的分析與設計課程成為計算機科學與技術專業(尤其是應用軟件開發方向)發展能力模塊的必修課,但由于軟件項目的無形、復雜、不可控等特點,教學中存在內容抽象、涉及面廣、學生缺乏興趣等問題,面向對象的分析與設計難度相當大,造成課程教學難度高,常規教學方式難以保證教學效果。筆者提出的案例引導多項目實施的教學模式,以學生各自所選的軟件項目分析與設計為主線,以軟件項目案例的講解為切入點,將理論知識與設計實踐相結合,提高學生的軟件項目分析設計能力和課程的教學效果。
面向對象的分析與設計課程的知識體系與內容可劃分為3個模塊、15個知識領域,如圖1所示。

圖1 課程知識體系結構
基礎知識模塊與軟件開發過程模塊為理論部分,分析與建模模塊為理論與實踐相結合模塊。在常規教學模式中,課程分為理論課時與實踐課時,各24課時,三大知識模塊均是先在教室中講解理論,然后將對應實踐項目安排到實訓室進行,雖然也采用案例式教學,但是仍存在3個問題:①學生對課程的重要性認識不足,對無形的課程內容學習不感興趣;②課程知識點多,其知識體系涉及15個知識領域,但課程在教學計劃中的學時數有限,知識點講解得不夠深入,學生難以理解課程的核心思想;③課程內容較多,常規教學模式普遍存在重理論輕實踐、理論教學與實踐教學得不到有機結合等問題,學生動手實踐能力得不到鍛煉,課程的應用性特性難以體現。
案例教學法[1]在20世紀20年代由美國哈佛大學工商管理學院首創。哈佛大學經過幾十年的長期探索和實踐,已經建立了具有一定規模的完整的案例教學管理系統。在校學習期間的學生,都要通過案例教學管理系統分析和研究大量的案例,這是哈佛大學畢業生水平高、能力強、潛力大,深受社會歡迎的重要因素之一[2]。傳統的灌輸式教學方法被案例教學法改變,采用啟發式的案例教學法,利用典型案例啟發學生獨立思考,有利于培養學生分析問題、解決問題的實際能力[3]。
項目驅動式教學法是在20世紀80年代由德國職業教育大力推行的一種“行為引導式的教學形式”[4]。在教學過程中,學生可以個人或小組的形式自選項目,教師將課程基本知識和項目相結合進行教學設計,學生在教師指導下根據教學內容將所選項目進一步分解為多個子項目模塊。這樣以項目驅動為引導,可以使學生及時將所學知識付諸實踐,化被動學習為主動學習,并在項目實踐過程中不斷發現問題、分析問題并解決問題,提高團隊合作精神和知識的應用能力[5]。
為解決傳統教學模式存在的問題,可以將案例教學法和項目驅動式教學法相結合,形成“案例引導多項目實施”的教學模式。該模式將課程全部安排在實訓室進行,實訓中貫穿理論知識,加強實踐能力培養,以某一管理系統項目案例的分析與設計實施教學,以學生自己所選項目實踐驗證理論知識,圍繞案例和項目展開知識點講解,提高學生興趣,培養學生分析、解決問題的能力。
課程總課時為48學時,將課程15個知識領域與項目分析和設計對應起來,教師采用案例貫穿知識講解,每次講解時間約為對應課時1/4左右,然后由學生各自采用所選項目同步進行各個知識領域的應用實踐,在實踐中強化所學知識。這樣既可避免學生在學習過程中感到枯燥無味,又能將理論教學與實踐教學有機結合,使學生得到實際鍛煉,提高動手能力,掌握所學知識。具體實施過程設計見表1。
在表1中,將課程15個知識領域劃分為三大模塊,教師講解時采用某管理系統的案例分析貫穿整個知識領域,學生同步完成各自所選項目的實例建模。這樣的教學模式深受學生歡迎,能有效提高教學效果。
(1)在保持課程內容體系完整性、服務于專業的原則下,結合計算機科學與技術專業需要,教師需建立內容豐富的教學案例和實訓項目。
(2)教學內容需新穎、充實,信息量大,且注重理論、實踐、課程設計相結合,能追蹤國內外行業和課程發展前沿、最新成果。
(3)堅持科研與教學互動,以科研提升教學,以教學促進科研,以產學研一體化教學模式,及時將科研成果用于教學上,豐富教學內容,擴大學生知識面。
(4)堅持鼓勵和指導學生參加軟件作品設計大賽等各類學科行業大賽,以提高學生創新意識與創新能力,增強其綜合素質和社會競爭力。
課程考核注重過程性考核,使成績能真實反映學生對實際項目的分析與設計能力,因此,課程的考核設計包含11個考核點,每個考核點根據其在項目分析與設計中的重要性,設置不同的比重,最后成績為各考核點得分乘以分值比重之和,表2為某學生的課程過程性考核得分。

表1 教學實施過程設計
在表2中,考核得分分為優秀、良好、中等、及格和不及格5個等級,每個等級對應1個分值區間,如在用例分析與設計考核點上,某學生達到優秀等級,但又不是最優秀,可以在該項考核點的優秀等級分值[90—100]內給出一個成績,如95分。表2中最后一列為某學生的每個考核點得分乘以該考核點所對應的分值比重后的分值,這些分值之和為83.5,也就是該生課程的最終考核分數。這種考核方式能夠充分體現過程性,真實反映學生對所學知識的應用能力。
上述教學實施過程與考核方式設計,在近4屆的課程教學實踐中,均取得了明顯成效,主要表現在4個方面:①采用案例教學引導學生自選項目同步進行分析與設計,使得學生在教學中高度集中注意力,充分理解與掌握相關知識點;②理論與實踐緊密結合的教學實施過程,充分調動了學生的積極性,使得學生主動投入項目實踐中,通過觀摩教師對軟件項目案例的面向對象分析與設計,又將其及時轉化到自選項目中加以實施,既獲得了知識,又發展了能力,提高了教學效果滿意度;③注重過程性考核,考核分數真實體現學生所選項目的面向對象分析與設計質量和能力,檢測效果好;④學生在大四第2學期的畢業設計中,項目的分析與設計質量明顯比以往的學生要高,就業后,用人單位對畢業生軟件項目分析與設計能力的滿意度也明顯提高。
在面向對象的分析與設計課程教學中,采用案例引導多項目實施的教學模式,能在不降低理論教學強度的前提下,強化實踐教學,以軟件項目的面向對象的分析與設計為主線串聯教學內容,同時通過案例使抽象的理論知識形象化,啟發學生獨立思考,培養學生分析問題、解決問題的實際能力,在教學實踐中獲得了良好的教學效果。

表2 某學生課程過程性考核得分