對軟件工程課程自底向上教學模式的探試索

學識都 人氣:2.75W

摘要:根據軟件工程課程特點和教學研究現狀, 提出了一種自底向上的授課模式。該模式在教學內容安 排上以詳細設計一概要設計一需求分析爲序, 其間貫穿完整案例。案例教學採用學生辯論方式進行授課。考覈方式實行理論考覈百分制與實踐五分等級制相舍的方式進行。實踐證明這是一條行之有效的軟件工程課程教學模式。

對軟件工程課程自底向上教學模式的探試索

關鍵詞:軟件工程; 自底向上教學模式; 案例; 辯論

一、軟件工程課程特點

軟件工程是高等學校計算機專業一門重要的專業課程, 它是指導計算機軟件開發和維護的學科, 包含着指導人們更好地開發軟件的方法和原則。軟件工程課程內容豐富、知識關係複雜, 理論性和實踐性都很強。理論知識是從長期的工程實踐中總結、提煉出來的原則和經驗, 對實際軟件開發具有重要的指導意義。但是, 理論抽象、枯燥, 概念、原則繁多, 不容易學, 學生興趣不濃。實踐性知識是軟件工程教學的關鍵, 但是其規模龐大, 操作複雜, 學生難以入手, 難以掌握重點與精華, 可操作性差。

軟件工程是一門教學難度較大的課程。主要原因有:

第一, 軟件工程作爲一門指導計算機軟件開發與維護的工程學科, 研究的範圍很廣。

第二, 軟件工程是一門邊緣學科, 涉及的領域很多, 內容十分豐富。

第三 , 軟件工程是一個年輕的領域, 尚未形成成熟的教學模式, 教材也少有提供較爲成熟的設計、訓練和實踐內容。

二、軟件工程課程教學現狀

軟件工程的傳統教學模式是採用以軟件生命週期爲序的單一的課堂講授方式。該模式重理論、輕實踐, 主要是以教師講授爲主, 學生是知識的被動接受者。學過之後學生熟悉了不少概念和術語, 但動手能力差。由於缺乏足夠的軟件工程實踐, 學生對軟件工程原則和方法的理解只能侷限於表面, 難於深人體會和把握軟件工程知識的精髓和本質, 更不知道如何運用軟件工程的技術和方法來開發、維護軟件。由於該課程是一門集方法性、思想性、標準和規範性於一身的學科, 理論抽象, 實踐可操作性差, 學生很難主動融人課程的教學中去,導致學生覺 得枯燥乏味,學習沒有積極性。另一方面,該課程傳統的考覈方式是一卷制的原理、概念等知識的考覈,導致學生考前突擊,死記硬背,應付考試。

針對軟件工程傳統教學模式的弊端,高校教師對該門課程的教學從教學思想、教學途徑、教學方法、學習過程等方面進行了研究,認爲課堂教學採用任務驅動與案例教學法較爲合適。任務驅動,主要就是教師根據教學主題設計特定的軟件設計任務,學生在完成任務的過程中學會並掌握軟件開發與管理的一些基本技能、基本原理和基本知識的一種教學方法。案例教學,就是利用案例作爲教學媒介的一種教學方法,通過案例分析使學生掌握理論。

 三、自底向上教學模式

作者通過多年的軟件工程課程教學,探索出了一種自底向上的教學模式。其主要思想如下:

1、授課順序

目前,軟件工程課程在授課內容的順序安排上,一般均以軟件的生命週期爲主線,平鋪直敘。該授課順序對於從未接觸過實際項目的學生來說,過於枯燥、生疏,跳躍性大,學生接受起來較困難。筆者採用以“詳細設計一概要設計一需求分析” 爲序的授課模式進行授課。該種授課模式既符合由簡單到複雜的認識規律,又符合IT人員工作職位晉級順序(程序員一設計師一分析師),且課程從程序設計逐步向上層講起,學生易接受,過渡平滑,無生疏感。

2、授課內容與授課形式

總體上說,這種授課形式主要是用倒敘的方式貫穿完整案例(包含警戒案例),以啓發、討論、辯論的形式,講授軟件工程的原理、方法及過程。

在詳細設計階段,首先,以程序警戒案例(是指不完全符合軟件工程編碼規範的)引入,讓學生討論該程序段是否爲一段好的代碼。同時,啓發學生從程序的易懂性等方面考慮。‘如果學生存在着不同的觀點,則採用辯論方式。然後對學生討論的.內容加以歸納、總結和補充,這樣就自然而然地將有關編碼風格方面的知識點也介紹了。

其次,以小組爲單位,下發不同的樣本程序流程圖(學生在程序設計語言課程中已經學過),要求學生用一門自己熟悉的語言書寫符合編碼規範的代碼,交換各組的編碼,討論存在的問題,然後講解其它的詳細設計工具,如N—s圖等。

第三,仍以小組爲單位,討論如何爲自己的編碼(已調試成功)設計測試用例,掌握測試方面的知識點(此部分着重講解單元測試)。

在概要設計階段,還原詳細設計樣本的軟件結構圖,先由教師講解模塊的概念,再由學生討論模塊劃分的原理,最後教師總結、補充模塊劃分的原理、模塊的獨立性及其他概要設計的常用工具,並講授組裝測試的理論。

在需求分析階段,還原概要設計的數據流圖和E—R圖等,講解事務分析和變換分析的原理,進行系統的確認測試及其理論的講解。

最後,對整個系統增加若干個小功能,以小組爲單位對原系統進行完善性維護(要求以生命週期爲主線)作爲大作業,同時講解其他維護類型。

3、考覈方式

由於軟件工程課程的理論性強,一些原理、方法、規範要求學生牢固掌握。對於這部分內容,以閉卷的方式考覈,採用百分制。而對於一些實踐性的內容、課堂討論的表現及最後的完善性維護的大作業,作爲平時成績,以五級制記分。兩部分在期末總成績中各佔50%。

自底向上教學模式是以軟件生命週期的逆序爲授課順序,使學生不覺生疏,易接受,又符合IT從業人員的工作進程。自底向上貫穿完整案例,且在案例教學中穿插警戒案例,不僅傳授給學生什麼是對的,而且傳授什麼是錯的,爲學生積累實踐經驗走了捷徑;在教學過程中的討論、辯論及其在期末成績中佔有一定的比例,激發了學生的學習熱情與樂趣,促進了學生主動學習、勤于思考。最後的完善性維護大作業,使學生實踐了軟件開發的全過程,增強了該課程的實踐性。實踐證明,該模式無論在理論還是實踐教學中均取得了較好的效果。

參考文獻: