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