冉瑞生 馮驥 張守貴
摘要:《軟件體系結構》是軟件工程專業高年級本科生的一門課程。在教學上,軟件體系結構的概念原理和方法較為抽象,理論性強,學生對軟件系統的高層設計較難領會等缺點。針對該課程的上述缺點,對該課程的教學過程進行改革,主要包括教學內容、教學方法和考核方式的改革。改革后的教學內容更適合本科生,教學方法可以提高學生的主動性,學生可以更好地掌握本課程的理論和方法。
關鍵詞: 軟件體系結構; 教學改革;教學方法;教學案例
中圖分類號:G420? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)16-0139-02
《軟件體系結構》是軟件工程專業高年級本科生的一門課程。該課程主要介紹軟件體系結構的基本理論和方法,使學生對軟件體系結構有一定的了解。通過學習,使得學生在軟件工程的基礎上,利用軟件體系結構的原理和方法進行軟件分析和設計。培養學生成為一名合格的軟件工程師和軟件分析師,并為其在該領域進一步深造打下基礎。但由于軟件體系結構是軟件系統的高層設計,其概念、原理和方法較為抽象,在教學過程中存在理論性強,傳統教學方法的課堂教學效果較差,學生將理論與實踐相結合困難等缺點。為此,我們對《軟件體系結構》的教學過程進行了改革。本文從教學內容的修訂、教學方法和考核方式的改進幾個方面討論了該課程的教學改革,從而對該課程的教學改革進行了探討。
1 《軟件體系結構》課程及教學現狀
1.1 《軟件體系結構》課程教學目標
該課程的教學目標為:通過學習,使學生初步掌握軟件體系結構的概念、組成和相關領域國內外研究現狀;明確軟件體系結構劃分標準、設計原則;學習軟件體系結構的構建模型、軟件體系結構的風格、特定領域的軟件體系結構、軟件產品線技術、軟件演化技術以及軟件體系結構評估等方面的知識,并掌握在軟件開發過程中分析、設計、應用軟件體系結構的技能。
通過該課程學習,學生的能力和素質體現為:初步具備軟件分析和軟件設計方面的能力,為以后成為一名合格的軟件工程師、軟件分析師,并為其在該領域進一步深造打下的基礎。
1.2 《軟件體系結構》課程的教學現狀
近幾年的教學中,《軟件體系結構》的教學過程存在以下幾個問題:
1)軟件體系結構是對軟件設計經驗的歸納總結和抽象而得到的,理論知識的抽象程度較高,知識覆蓋面較廣。《軟件體系結構》的教材普遍講原理、概念,學生理解困難。
2)現在的課堂教學多數是單向 “教” 的過程,而學生的“學”基本處于被動狀態。而對于《軟件體系結構》這種理論性強的課程,采用傳統教學方法的課堂沉悶,學生往往“走神”,教學效果較差。
3)由于在校生缺乏項目實踐經驗,理論與實踐難以結合,當用學到的理論知識解決實際問題時入手困難;同時由于在校本科生的興趣和注意力處于“代碼級”,他們認為軟件系統的高層設計與自身的“距離”較遠,所以對軟件體系結構的興趣和關注不夠。
人們為了提高《軟件體系結構》課程的教學質量,做了相關的教學改革研究。如基于真實項目案例的《軟件體系結構》課程建設[1];應用型本科軟件體系結構課程教學內容設計[2];充分利用“做中學”教學理念在工程實踐類課程教學中的方法優勢,提出了“做中學”理念指導下的軟件體系結構課堂講授內容和實驗教學環節的設計方法[3]。
本文針對《軟件體系結構》課程教學存在的問題,結合該課程的特點,從教學內容、教學方法和考核方式幾個方面開展了《軟件體系結構》課程的教學改革。
2 《軟件體系結構》課程教學改革實踐
2.1 教學內容修訂
目前,大多數《軟件體系結構》教材涵蓋的主要內容有:軟件體系結構概論、軟件體系結構建模、軟件體系結構風格、特定領域軟件體系結構、軟件產品線技術、軟件演化技術、軟件體系結構評估等。課程內容面向高年級本科生和研究生。我們最初將該課程設置為48學時,幾乎對所有的內容都進行了講解。
在近兩年的教學中,根據教材《軟件體系結構原理、方法與實踐》(第2版)[4]關于本科生教學內容的建議,將教學內容修改為:軟件體系結構概論、軟件體系結構建模、軟件體系結構風格,特定領域軟件體系結構(了解),刪除了不適于本科生的內容,并將學時調整為24個課時。重點講解的內容為軟件體系結構概念和軟件體系結構風格,其余內容了解即可。這一調整主要是使得教學內容更適合本科層次的學生。
2.2課程的教學方法改革
在《軟件體系結構》前幾年的教學中,課堂教學基本是單向的 “教” ,而學生的“學”基本處于被動狀態。而《軟件體系結構》課程理論性強,課程抽象,所以教學過程中課堂沉悶,學生感到枯燥乏味,缺乏學習的主動性。
《軟件體系結構》課程部分內容是理論與案例相結合的內容,特別是在“軟件體系結構風格”這一章,一般說來,教材先講解軟件體系結構風格理論,再講解風格的實例。基于此,我們對課程的教學方法進行了改革:理論部分由教師講授,讓學生以小組的形式協作消化和準備相關的案例,并制作PPT,在課堂上講解和分析案例,由教師和其他小組的同學進行提問和評分。這種方式主要在于學生需要收集和整理相關案例。幾年的教學過程,學生收集整理了大量的案例,如管道/過濾器風格有常見的編譯器、傳統的媒體播放器、類UNIX系統下的基于管道的進程間通信機制等。案例的主要來源有:1) 教材上的案例。教材上的案例規模小,有些案例分析得不夠透徹,教師就要求學生經過自己的思考和理解將案例進行擴展,將其分析得更加透徹;2) 在互聯網上查閱資料。根據所學的理論知識,要求學生自己帶著問題去互聯網上查閱相關的案例并進行歸納整理;3)從學生之前做過的課程設計、小項目中選擇相關的案例。
改進后的教學方法避免了單向的教師授課,課堂上教師和同學在討論和分析,增加了課堂的互動性,活躍了課堂氣氛;學生需要課下做準備,并在課堂講解、分析和答疑,提高了學習的主動性;學生的主動學習增強了對知識點的理解和掌握。
2.3 課程考核方式改革
傳統的考核方式為期末試卷考核。由于《軟件體系結構》課程偏理論性,試卷中一般有考查基本概念的題目,如名詞解釋、簡答題、填空題,這類題目需要學生死記硬背教材上的基本概念。而對于軟件工程這種工程性專業來說,傳統考核方式意義不大。
并根據《軟件體系結構》課程的特點,對該課程的考核方式改革為過程化考核,即強調平時的考核和實踐能力的考核。具體為:課堂表現(占10%) + 課堂上的案例分析考核(占50%) + 期末課程設計(占40%)。1)課堂表現主要考核學生在課堂上參與案例分析的提問、討論情況;2)案例分析考核是對學生案例分析的深度,對理論知識的理解度,PPT制作情況,以及答疑情況進行評分;3)期末考核以課程設計的形式進行。給學生布置10個左右的項目實例,要求學生選定一個具體的項目實例,結合所學的課程內容(主要是軟件體系結構的風格)進行分析,并以課程設計報告的形式提交。改革后的考核方式促進學生加強平時學習,期末的課程設計考核學生分析、設計能力,突出了實踐性和應用型,整個考核過程學生不需死記硬背,相比傳統方式更為合理。
3 結束語
《軟件體系結構》是關于軟件系統高層設計的課程,是軟件工程專業在學習了軟件工程的相關課程后的一門高階段課程。但由于軟件體系結構的教學內容較為抽象,傳統教學方法的教學效果不好,理論與實踐結合困難等缺點。本文針對《軟件體系結構》的教學問題,從教學內容、教學方法和考核方式幾個方面進行了教學改革。改革后的教學更適合本科層次的教學、提高了學生的學習主動性,活躍了課程氛圍,并有效提高了學生的實踐應用能力。
參考文獻:
[1] 孫耀, 陳圣國, 王智鋼, 張海濤, 張燕. 金陵科技學院學報(社會科學版)[J].2018,32(04):58-62.
[2] 李天科.應用型本科軟件體系結構課程教學內容設計[J].計算機教育,2018(6):120-123.
[3] 劉靖,周建濤.“做中學”理念在軟件體系結構課程教學中的應用實踐[J].計算機教育,2013(22):88-92,97.
[4] 張友生.軟件體系結構原理、方法與實踐(第2版)[M].清華大學出版社,2014.
【通聯編輯:光文玲】