文章編號(hào):1672-5913(2011)17-0039-04 中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
摘 要:針對(duì)“軟件體系結(jié)構(gòu)”教學(xué)存在的實(shí)踐教學(xué)形式過于單一的問題,在分析能力本位課程開發(fā)方法的基礎(chǔ)上,提出基于能力本位的“軟件體系結(jié)構(gòu)”實(shí)踐教學(xué)環(huán)節(jié)開發(fā)方法。該方法結(jié)合本三院校實(shí)際,在“軟件體系結(jié)構(gòu)”實(shí)踐教學(xué)中取得較好效果。
關(guān)鍵詞:軟件體系結(jié)構(gòu);能力本位;本三;實(shí)踐教學(xué)
作者簡介:朱鵬程,男,講師,研究方向?yàn)檐浖軜?gòu);管致錦,男,教授,研究方向?yàn)榭赡嬗?jì)算。
軟件體系結(jié)構(gòu)(又稱軟件架構(gòu))是植根于軟件工程發(fā)展起來的一門新興學(xué)科[1-2]。專門和廣泛研究軟件體系結(jié)構(gòu)始于20世紀(jì)90代,目前,軟件體系結(jié)構(gòu)已經(jīng)成為軟件工程研究和實(shí)踐的主要領(lǐng)域,成為眾多軟件企業(yè)關(guān)注的核心技術(shù)之一。現(xiàn)代社會(huì)對(duì)大規(guī)模復(fù)雜軟件有極高的需求,但目前國內(nèi)的軟件開發(fā)綜合能力并不能很好地滿足這個(gè)需求。一方面是由于軟件架構(gòu)方面的高端人才嚴(yán)重缺失;另一方面是絕大多數(shù)程序員缺少架構(gòu)、設(shè)計(jì)模式及開發(fā)規(guī)范等相關(guān)知識(shí),編寫的代碼隨意性很強(qiáng)。
作為人才培養(yǎng)的基地,高校應(yīng)該責(zé)無旁貸地承擔(dān)培養(yǎng)具備架構(gòu)相關(guān)知識(shí)軟件人才的任務(wù),“軟件體系結(jié)構(gòu)”便是以此為目的被各個(gè)高校所引入的。清華大學(xué)是國內(nèi)是最先開設(shè)該課程的學(xué)校,在該課程上積累的成功教學(xué)經(jīng)驗(yàn)以及編寫的諸多經(jīng)典教材為其他高校開設(shè)該課程提供了基礎(chǔ)和借鑒。目前,越來越多本三層次院校的軟件專業(yè)也開始開設(shè)該課程,因此,本三層次學(xué)生如何學(xué)好本課程是我們要思考的問題。
1 “軟件體系結(jié)構(gòu)”教學(xué)面臨的問題
通過對(duì)某本三學(xué)院計(jì)算機(jī)及軟件專業(yè)學(xué)生的問卷調(diào)查,我們發(fā)現(xiàn)該課程教學(xué)效果不佳,主要原因如下。
原因一,課程內(nèi)容抽象,軟件體系結(jié)構(gòu)是從較高層次把握和理解復(fù)雜軟件的整體結(jié)構(gòu),考慮元素和元素之間的關(guān)系,整門課程中充斥著各種原理、概念和理念,理論性和抽象性很強(qiáng),而本三層次學(xué)生由于數(shù)學(xué)基礎(chǔ)略顯薄弱,抽象思維相對(duì)較差,所以,學(xué)習(xí)該課程有困難。
原因二,由于大多數(shù)學(xué)生在學(xué)習(xí)該課程之前無軟件開發(fā)經(jīng)驗(yàn),所以不能充分認(rèn)識(shí)該課程的重要性,認(rèn)為該課程遠(yuǎn)遠(yuǎn)沒有程序設(shè)計(jì)類和工具類的課程有價(jià)值。
原因三,實(shí)踐教學(xué)形式單一,實(shí)踐教學(xué)環(huán)節(jié)不夠完整。實(shí)踐是本三層次學(xué)生較喜歡的一種學(xué)習(xí)方式,但該課程往往只單設(shè)幾節(jié)課內(nèi)實(shí)驗(yàn)課,而對(duì)于復(fù)雜軟件開發(fā)經(jīng)驗(yàn)為零的學(xué)生而言,幾節(jié)實(shí)驗(yàn)課肯定不能加深其對(duì)軟件體系結(jié)構(gòu)的理解。
清華大學(xué)覃征教授對(duì)前兩個(gè)原因作了精辟的分析,并提出“動(dòng)機(jī)-專題-案例”的教學(xué)主導(dǎo)思想[3],以此為借鑒并結(jié)合院校專業(yè)實(shí)際情況,我們應(yīng)該能很好地解決這兩個(gè)問題。但是,該課程實(shí)踐環(huán)節(jié)應(yīng)該如何設(shè)置,尤其是針對(duì)本三層次學(xué)生如何設(shè)置,目前還沒有太多可供借鑒的成功案例。
2 以能力為本位,設(shè)計(jì)課程實(shí)踐教學(xué)環(huán)節(jié)
能力本位教育[4-7]產(chǎn)生于二次大戰(zhàn)后,以美國、加拿大為代表,其核心是從職業(yè)崗位的需要出發(fā),確定能力目標(biāo)。學(xué)校聘請(qǐng)行業(yè)中一批具有代表性的專家組成專業(yè)委員會(huì),按照崗位群的需要,層層分解,確定從事行業(yè)所應(yīng)具備的能力,明確培養(yǎng)目標(biāo)。然后,再由學(xué)校組織相關(guān)教學(xué)人員,以這些能力為目標(biāo),設(shè)置課程、組織教學(xué)內(nèi)容,最后考核是否達(dá)到這些能力要求。能力本位課程開發(fā)流程如圖1所示。
圖1 能力本位課程開發(fā)流程
2.1 課程面向崗位
能力本位課程設(shè)計(jì)的起點(diǎn)是職業(yè)崗位,所以,我們首先必須弄清楚本課程面向哪些崗位。部分人認(rèn)為“軟件體系結(jié)構(gòu)”,顧名思義,面向的肯定就是軟件架構(gòu)師崗位了,這種認(rèn)識(shí)較為片面,因?yàn)榫捅救龑哟味?,極少有學(xué)生一畢業(yè)就能走上架構(gòu)師這樣的崗位,絕大多數(shù)學(xué)生直到其職業(yè)生涯晚期依然不能走上這樣的崗位,按這樣的觀點(diǎn),這門課程在本三就沒有開設(shè)的必要性了。本三層次的“軟件體系結(jié)構(gòu)”課程目的應(yīng)該是培養(yǎng)具備軟件架構(gòu)知識(shí)的軟件從業(yè)人員,其中包含架構(gòu)師,但以程序員為主?;谶@個(gè)起點(diǎn),我們才有可能設(shè)計(jì)出本三層次學(xué)生能勝任且較喜歡的實(shí)踐環(huán)節(jié)。
2.2 崗位能力剖析
人們經(jīng)常會(huì)在雜志或論壇上看到架構(gòu)師抱怨:設(shè)計(jì)出的好架構(gòu),卻得不到徹底的貫徹。除了成本、領(lǐng)導(dǎo)決策等因素以外,軟件實(shí)現(xiàn)人員的技術(shù)水準(zhǔn)較低,缺少熟悉架構(gòu)知識(shí)的程序員也是導(dǎo)致這種情況出現(xiàn)的根源之一。通過對(duì)本地軟件公司的走訪并結(jié)合網(wǎng)絡(luò)調(diào)研[8],我們認(rèn)為,熟悉架構(gòu)師知識(shí)的軟件從業(yè)人員應(yīng)該具備以下能力。
1) 良好的溝通能力,能清晰地表達(dá)自己心中所想,并能正確理解別人的意圖。軟件是一個(gè)高度復(fù)雜的邏輯產(chǎn)品,是在需求基礎(chǔ)上由設(shè)計(jì)人員、開發(fā)人員、
測(cè)試人員等相關(guān)人員分工合作而獲得的腦力勞動(dòng)成果。因此,溝通顯得尤為重要,無論是和客戶溝通,還是團(tuán)隊(duì)內(nèi)部的溝通,必須能正確理解別人并讓別人正確理解自己,否則任何一環(huán)的溝通不暢甚至是誤解,都會(huì)給整個(gè)項(xiàng)目帶來巨大的風(fēng)險(xiǎn)。
2) 較好的抽象思維能力和建模能力。即能從模糊的用戶需求中分離出確定因素和不確定因素,然后選擇合適的工具和風(fēng)格構(gòu)建總體架構(gòu)模型以容納確定因素并擁抱未來可能的變化因素,并能通過圖形化的工具清晰描述該結(jié)構(gòu)。
3) 較好的軟件實(shí)現(xiàn)能力。即精通常用程序設(shè)計(jì)語言、數(shù)據(jù)庫系統(tǒng)及開發(fā)工具,熟悉常用的設(shè)計(jì)原則和設(shè)計(jì)模式,能將架構(gòu)描述的規(guī)范很好地付諸實(shí)踐。
4) 較好的創(chuàng)新能力。軟件開發(fā)中雖然有很多場(chǎng)景不斷重復(fù),但每次出現(xiàn)的細(xì)節(jié)都有所不同,在設(shè)計(jì)和開發(fā)時(shí),不僅要借鑒已有的成功經(jīng)驗(yàn),還要懂得靈活變通,因地制宜。
2.3 教學(xué)目標(biāo)和實(shí)踐內(nèi)容的確定
為了培養(yǎng)上述能力,我們結(jié)合課程理論教學(xué)大綱和學(xué)生特點(diǎn),甄選實(shí)踐內(nèi)容如下:軟件體系結(jié)構(gòu)風(fēng)格實(shí)踐、UML建模實(shí)踐、軟件體系結(jié)構(gòu)描述語言實(shí)踐、設(shè)計(jì)原則及設(shè)計(jì)模式實(shí)踐、完整軟件項(xiàng)目的綜合性實(shí)踐。教學(xué)目標(biāo)和實(shí)踐內(nèi)容的安排如表1所示。
表1 教學(xué)目標(biāo)和實(shí)踐內(nèi)容安排
2.4 教學(xué)實(shí)施和管理
教學(xué)實(shí)施是教學(xué)設(shè)計(jì)付諸實(shí)踐的過程,合理選擇實(shí)踐形式和實(shí)踐場(chǎng)地,并對(duì)實(shí)踐過程作實(shí)時(shí)監(jiān)控和管理有助于教學(xué)效果的提升。實(shí)踐形式及場(chǎng)地選擇等情況如表2所示。
本課程的實(shí)踐體系由課內(nèi)實(shí)驗(yàn)、校內(nèi)獨(dú)立實(shí)踐周和校外獨(dú)立實(shí)踐周組成。其中課內(nèi)實(shí)驗(yàn)主要和課程理論教學(xué)相輔相成,讓學(xué)生對(duì)課程涉及的概念、原理、工具等有較清晰地認(rèn)識(shí),并逐步培養(yǎng)相關(guān)能力;校內(nèi)獨(dú)立實(shí)踐周是對(duì)整門課程所學(xué)知識(shí)的一個(gè)總結(jié)和回顧,通過這個(gè)環(huán)節(jié)培養(yǎng)學(xué)生的綜合能力,并為校外實(shí)習(xí)打下基礎(chǔ);校外獨(dú)立實(shí)踐周,是在企業(yè)氛圍下進(jìn)行的課程實(shí)踐,能讓學(xué)生真正做到學(xué)以致用。本課程的每個(gè)實(shí)踐環(huán)節(jié)都由專人進(jìn)行監(jiān)督和管理,尤其是在校外實(shí)踐時(shí),除了校內(nèi)指導(dǎo)教師以外,還會(huì)給學(xué)生安排相關(guān)的企業(yè)導(dǎo)師,企業(yè)導(dǎo)師就企業(yè)環(huán)境、開發(fā)團(tuán)隊(duì)組織、相關(guān)技術(shù)對(duì)學(xué)生進(jìn)行指導(dǎo),并對(duì)學(xué)生完成相關(guān)任務(wù)的過程作監(jiān)督和評(píng)價(jià)。
表2 實(shí)踐形式及場(chǎng)地選擇等情況
另外,在教學(xué)實(shí)施過程中,我們還應(yīng)該靈活選擇實(shí)驗(yàn)案例,使案例具備典型性、時(shí)效性,貼近學(xué)生,并有一定的趣味性。比如在做設(shè)計(jì)模式實(shí)驗(yàn)時(shí),如果只是讓學(xué)生按照相關(guān)模式的概念去設(shè)計(jì)類圖,并編寫典型代碼,學(xué)生往往不感興趣,對(duì)此,我們可以通過一些有趣味性的引子,逐步將學(xué)生引入到模式的世界中去。比如在講工廠方法模式時(shí),可以將中國古代神話“女媧造人”的故事作為引子,女媧通過八卦爐構(gòu)建出黃種人、白種人、黑種人,其中各個(gè)人種是具體產(chǎn)品,而八卦爐是生產(chǎn)產(chǎn)品的工廠,然后讓學(xué)生為“女媧造人”這樣的場(chǎng)景構(gòu)建類圖并給出實(shí)現(xiàn)代碼,在這樣的情境下學(xué)生的參與積極性會(huì)比較高,對(duì)設(shè)計(jì)模式的理解也會(huì)更深入,甚至有的學(xué)生用“終身難忘”這樣的詞匯來形容這種案例。
2.5 教學(xué)評(píng)價(jià)
對(duì)教學(xué)效果的評(píng)價(jià)分為兩類:對(duì)學(xué)生學(xué)習(xí)效果的考核和教師教學(xué)活動(dòng)的評(píng)價(jià)。
首先,我們談一談對(duì)學(xué)生的考核,課程考核是教學(xué)過程中一個(gè)十分重要的環(huán)節(jié),是檢驗(yàn)教學(xué)效果、保證教學(xué)質(zhì)量的重要手段,其目的在于幫助和督促學(xué)生系統(tǒng)地復(fù)習(xí)和鞏固所學(xué)知識(shí)和技能,檢驗(yàn)其理解程度和靈活運(yùn)用的能力,調(diào)動(dòng)學(xué)生學(xué)習(xí)的主動(dòng)性和積極性,培養(yǎng)學(xué)生的創(chuàng)新思維。但以往的考核方式過于單一,只是以實(shí)驗(yàn)報(bào)告為依據(jù)給學(xué)生打分,這種方式過于注重最后的結(jié)果,而忽略學(xué)生在實(shí)踐過程中的參與程度,因此,部分學(xué)生在整個(gè)實(shí)踐過程中碌碌無為,只是在最后草草完成一份實(shí)驗(yàn)報(bào)告。為了改善這種狀況,我們除了將實(shí)驗(yàn)報(bào)告作為考核依據(jù)外,還引入成員互評(píng)、教師評(píng)價(jià)、企業(yè)導(dǎo)師意見等方式(如表2所示)。成員互評(píng),是由學(xué)生根據(jù)組內(nèi)其他成員在共同完成實(shí)踐任務(wù)時(shí)所表現(xiàn)出的作用而給出的評(píng)價(jià);教師評(píng)價(jià)是教師根據(jù)學(xué)生在實(shí)踐過程中的出勤率、解決問題的能力等方面給出的評(píng)價(jià);企業(yè)導(dǎo)師意見是企業(yè)導(dǎo)師根據(jù)學(xué)生融入企業(yè)開發(fā)的速度、給企業(yè)創(chuàng)造的價(jià)值等方面給出的評(píng)價(jià)。通過這幾種考核方式有機(jī)結(jié)合,得到學(xué)生實(shí)踐的總評(píng)價(jià)。比如企業(yè)實(shí)踐的最終評(píng)價(jià)構(gòu)成如下:成員互評(píng)20%,實(shí)驗(yàn)報(bào)告及作品40%,教師評(píng)價(jià)10%,企業(yè)導(dǎo)師意見30%。
其次,對(duì)教師教學(xué)活動(dòng)評(píng)價(jià)的主體為學(xué)生。經(jīng)過兩年的“軟件體系結(jié)構(gòu)”實(shí)踐教學(xué)改革,對(duì)07級(jí)和08級(jí)學(xué)生的問卷調(diào)查顯示學(xué)生在學(xué)習(xí)興趣、對(duì)課程的理解程度等方面都有了較大進(jìn)步,課程的平均成績也有較大提升。調(diào)查結(jié)果如表3所示。
表3 學(xué)生調(diào)查結(jié)果統(tǒng)計(jì)表
3 結(jié)語
能力本位課程以職業(yè)能力