李桂萍 張市芳
摘要:軟件架構(gòu)設(shè)計在大規(guī)模軟件系統(tǒng)開發(fā)中承擔著保證軟件研發(fā)效率和軟件系統(tǒng)質(zhì)量的重要作用,所以《軟件體系結(jié)構(gòu)》成為越來越重要的課程。然而,由于內(nèi)容高度抽象、理論與實踐難以結(jié)合等原因使傳統(tǒng)的教學效果并不理想。本文基于構(gòu)建式聯(lián)盟教學理論,從課前導學、課中思考、課后反思三個階段出發(fā),開展了以“學生為主體”“教師為引導”、全面提升學生分析、應用和創(chuàng)造能力的生態(tài)課堂研究。改變了傳統(tǒng)教學效果不佳、理論脫離實踐的現(xiàn)狀,活躍了課堂氣氛、提高了學生理論理解和實踐應用的能力。
關(guān)鍵詞:軟件體系結(jié)構(gòu);構(gòu)建式聯(lián)盟教學;生態(tài)課堂
中圖分類號:G434? ? ? ? ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2021)25-0207-03
軟件體系結(jié)構(gòu)設(shè)計是處理復雜軟件系統(tǒng)的關(guān)鍵,高校軟件工程專業(yè)相繼開設(shè)《軟件體系結(jié)構(gòu)》這門課程為行業(yè)培養(yǎng)相關(guān)人才。然而該課程的教學面臨著內(nèi)容高度抽象、課程實踐與理論難以平衡、缺少成熟經(jīng)典的教材和教學案例等嚴重問題,本文從課堂授課內(nèi)容、授課形式、實踐環(huán)節(jié)、考核形式以及案例庫構(gòu)建幾方面對課程教學進行改革,基于構(gòu)建式聯(lián)盟教學理論努力打造“學生為主體”、“教師為引導”、全面提升學生分析、應用和創(chuàng)造能力的生態(tài)課堂。
1 《軟件體系結(jié)構(gòu)》課程現(xiàn)狀
1.1課程改革研究背景
急劇增長的信息化、智能化社會需求以及大數(shù)據(jù)、云計算時代的來臨,使相關(guān)軟件系統(tǒng)的構(gòu)建面臨著更為嚴峻的挑戰(zhàn)。因為,一方面業(yè)務需求的增加,會往系統(tǒng)中不停添加業(yè)務功能;另一方面,訪問量的增加,需不斷通過技術(shù)手段來加強系統(tǒng)非業(yè)務性功能。若事先不做良好設(shè)計,隨著時間的推進,整個系統(tǒng)就會野蠻生長逐漸碎片化,越來越無序,最終被推倒重來。軟件體系結(jié)構(gòu)正是處理軟件系統(tǒng)復雜化構(gòu)建問題的關(guān)鍵,它本質(zhì)就是通過合理的內(nèi)部編碼,保證系統(tǒng)高度有序,能不斷擴展,滿足業(yè)務和技術(shù)的變化。通過軟件體系結(jié)構(gòu)的設(shè)計,可消化業(yè)務和技術(shù)增長的復雜性帶來的混亂,使系統(tǒng)始終處于一個有序狀態(tài),能應對現(xiàn)有和將來的需求變化,保證軟件研發(fā)效率和軟件系統(tǒng)的質(zhì)量。目前,優(yōu)秀的軟件架構(gòu)師已成為我國軟件行業(yè)迫切需要的高端人才,為此,軟件工程專業(yè)也將《軟件體系結(jié)構(gòu)》列為核心課程之一。然而,該課程在實際教學中困難重重,傳統(tǒng)教學方式以及稀缺的課程資源都讓這門課程的學習效果大打折扣。
1.2 《軟件體系結(jié)構(gòu)》課程教學現(xiàn)狀
《軟件體系結(jié)構(gòu)》課程教學的核心問題是如何讓學生更好地理解軟件體系結(jié)構(gòu)設(shè)計在軟件研發(fā)生命周期中的作用[1],并具有將基于軟件體系結(jié)構(gòu)分析和設(shè)計系統(tǒng)的方法應用到實踐中去的能力。然而,該課程涵蓋的基本概念、原則和方法通常是對大量不同領(lǐng)域軟件研發(fā)的共性特征和經(jīng)驗的總結(jié)與升華,具有高度的抽象性和理論性。因此,當授課對象是剛接觸軟件項目研發(fā)、缺乏大規(guī)模軟件實際開發(fā)經(jīng)驗的本科生時,教學難度就會徒然加大。
《軟件體系結(jié)構(gòu)》課程教學的現(xiàn)狀和面臨的困難主要有:
l)高度抽象的理論知識軟件體系結(jié)構(gòu)設(shè)計著重于對軟件宏觀層面的探索,是對軟件系統(tǒng)的高度抽象[2]。如果單純按照目前教材講授概念、原理和方法,學生沒有任何感性認識,難以理解,會挫傷進一步學習的主動性和積極性。
2)課程理論與實踐不平衡該課程很難像程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)與算法類的課程,讓學生編寫示例程序來消化所學理論和方法。因為,在有限課時內(nèi),學生沒有機會也沒有足夠的能力去實現(xiàn)一個較大規(guī)模的軟件系統(tǒng),無法更好地理解體系結(jié)構(gòu)設(shè)計的重要理論和方法。
3)缺少成熟、經(jīng)典的教材及教學案例我國對大型軟件系統(tǒng)的開發(fā)起步較晚,認識較遲,在這方面的研究較落后,所以軟件體系結(jié)構(gòu)方面的經(jīng)典中文教材不多,且現(xiàn)有教材缺乏適合的大規(guī)模軟件系統(tǒng)的案例。因此,一直以來,傳統(tǒng)《軟件體系結(jié)構(gòu)》課程教學都以“教”為主,以“學”為輔,而這種教學方式讓課堂變得異常枯燥、讓學生也缺失了自主探究的機會,始終無法使學生對軟件架構(gòu)的分析與設(shè)計方法建立起正確的感性認識,也難以體會和理解軟件體系結(jié)構(gòu)在軟件開發(fā)中的重要地位。
上述問題說明要改善教學效果,《軟件體系結(jié)構(gòu)》課程教學必須加強教學實踐環(huán)節(jié),采用有效考核方法,防止課堂知識講授與課后實踐應用脫節(jié)。為此,有學者采用案例驅(qū)動的教學方法、基于能力本位的課程開發(fā)方法、采用“做中學”理念等對該問題進行了教學實踐和探討[3],一定程度改善了課程抽象程度高、教師教授過于書本化等實際問題。但這些方法都是課時在48以上的,不適用只有32理論課時的教學計劃;另一方面,現(xiàn)有方法實施起來難度仍很大,因為尚未構(gòu)建起共享的用于分析大型復雜軟件系統(tǒng)的案例庫。
鑒于軟件體系結(jié)構(gòu)的重要性以及該課程的特點和教學中存在的問題,本文主要探究如何高效地讓學生快速掌握粗粒度理論并將之與實踐很好結(jié)合的教學方法和設(shè)計過程。
2 《軟件體系結(jié)構(gòu)》課程教學改革的理論方法和思想
2.1構(gòu)建式聯(lián)盟教學法
構(gòu)建式聯(lián)盟教學法是通過教師深度思考實際問題創(chuàng)設(shè)學習活動,讓學生學有成效并達到自主構(gòu)建知識目的的一種教學方法。在這過程中,活動和評價任務以預期的學習成效為導向展開,使三者形成一致的教學情境[4]。因而,我們確定將構(gòu)建式聯(lián)盟教學法作為研究設(shè)計的方法依據(jù)。
2.2 生態(tài)課堂的設(shè)計思想
所謂生態(tài)課堂就是“生本”課堂、也是“情境”課堂、“體驗”課堂、“合作”課堂[5]。其中,“生本”課堂是以學生發(fā)展為本,通過最優(yōu)的現(xiàn)代課堂教學設(shè)計和有效的課堂教學活動,使每個學生的各種潛能都能得到有效的開發(fā),使每個學生都能獲得最有效的發(fā)展,實現(xiàn)教學與發(fā)展的真正統(tǒng)一;“情境”、“體驗”“合作”的課堂進一步通過任務驅(qū)動、情境創(chuàng)設(shè)、師生(生生)互動、自主構(gòu)建、合作探究、學以致用等教學策略,變被動學習為主動學習,將高度抽象的內(nèi)容具體化,最終實現(xiàn)工程認證中的“使學生具有分析和設(shè)計大規(guī)模復雜軟件系統(tǒng)的能力”這一目標。