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