摘 要:針對(duì)軟件體系結(jié)構(gòu)課程的特點(diǎn)及教學(xué)中存在的問題,提出了以項(xiàng)目設(shè)計(jì)為導(dǎo)向、以工程能力培養(yǎng)為目標(biāo)的教學(xué)模式。實(shí)踐證明,該模式有利于調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,能幫助學(xué)生在有限的學(xué)時(shí)內(nèi)較快地掌握該門課程,有利于培養(yǎng)學(xué)生的工程實(shí)踐能力和團(tuán)隊(duì)協(xié)作能力。
關(guān)鍵詞:項(xiàng)目導(dǎo)向;軟件體系結(jié)構(gòu);合作學(xué)習(xí);工程實(shí)踐能力
中圖分類號(hào):G432
文獻(xiàn)標(biāo)識(shí)碼:A
一、傳統(tǒng)教學(xué)方法存在的問題
軟件體系結(jié)構(gòu)(也稱軟件架構(gòu))是從軟件設(shè)計(jì)抽象出來的一門學(xué)科,目前已經(jīng)成為軟件工程的一個(gè)重要研究領(lǐng)域,在現(xiàn)代軟件行業(yè)中處于重要地位。作為一門在軟件工程知識(shí)體系中提綱挈領(lǐng)的核心課程,軟件體系結(jié)構(gòu)課程教學(xué)質(zhì)量對(duì)軟件工程專業(yè)學(xué)科學(xué)生的培養(yǎng)質(zhì)量起著極其重要的作用。目前,我國各高校的計(jì)算機(jī)應(yīng)用、軟件工程等專業(yè)的本科生,以及計(jì)算機(jī)軟件與理論的研究生教學(xué)中已普遍開設(shè)了軟件體系結(jié)構(gòu)課程,為軟件架構(gòu)師的培養(yǎng)提供了條件。然而,由于課程本身存在著覆蓋面廣泛、抽象程度高等特點(diǎn),對(duì)剛剛接觸軟件工程的學(xué)生來說,傳統(tǒng)的教學(xué)方法不可避免地存在一些問題。
1.課程教材缺陷,不利于學(xué)生自主學(xué)習(xí)
作為一門新興學(xué)科,軟件體系結(jié)構(gòu)本身依然處于不斷發(fā)展之中,同時(shí)由于學(xué)科本身的特點(diǎn),其所牽涉的知識(shí)面比較廣泛,難以找到一本適合各個(gè)層面的教材,現(xiàn)有教材往往存在可用性差、更新緩慢、信息量不足等問題,不能成為學(xué)生自主學(xué)習(xí)、進(jìn)行探索和發(fā)現(xiàn)的認(rèn)知工具。
2.傳統(tǒng)教學(xué)方式簡(jiǎn)單,學(xué)生學(xué)習(xí)主動(dòng)性不高
課堂教學(xué)以教師的理論教學(xué)為主,主要講授軟件體系結(jié)構(gòu)的基本概念和基本原理,以及軟件體系結(jié)構(gòu)的動(dòng)態(tài)性和適應(yīng)性的理念,簡(jiǎn)單分析軟件體系結(jié)構(gòu)原理的具體應(yīng)用,只起到軟件體系結(jié)構(gòu)導(dǎo)論的作用,缺乏互動(dòng)性。由于該課程的抽象程度高,理論性較強(qiáng)且涵蓋面廣泛,對(duì)剛剛接觸軟件工程的學(xué)生來說,在理解各種概念方面存在一定的難度,學(xué)生普遍覺得太抽象,難以跟實(shí)際的東西產(chǎn)生聯(lián)系,因此傳統(tǒng)的教學(xué)方法不能產(chǎn)生良好的教學(xué)效果。
二、基于項(xiàng)目驅(qū)動(dòng)模式下的軟件體系結(jié)構(gòu)課程教學(xué)改革
1.軟件體系結(jié)構(gòu)的課程特點(diǎn)
(1)軟件體系結(jié)構(gòu)是根據(jù)人們的軟件設(shè)計(jì)經(jīng)驗(yàn)總結(jié)出來的理論與實(shí)踐相結(jié)合的課程,其設(shè)計(jì)原則、技術(shù)、方法較為抽象,主題是針對(duì)復(fù)雜軟件系統(tǒng)的高層結(jié)構(gòu),組織元素之間的相互關(guān)系的描述,以及圍繞這種描述開展的各項(xiàng)活動(dòng)(如設(shè)計(jì)、評(píng)估、實(shí)現(xiàn)、管理、測(cè)試等),其關(guān)注的是系統(tǒng)大粒度(宏觀)的總體結(jié)構(gòu)(例如分層、子系統(tǒng)的劃分等)。軟件體系結(jié)構(gòu)的設(shè)計(jì)原則、技術(shù)、方法通常是以前軟件系統(tǒng)設(shè)計(jì)過程中的經(jīng)驗(yàn)總結(jié),其目的是為了在給定的時(shí)間、經(jīng)費(fèi)等約束條件下快速而高效地設(shè)計(jì)出高質(zhì)量的軟件,它們位于所有具體項(xiàng)目之上,針對(duì)全體軟件項(xiàng)目,因而具有一定的抽象性。
(2)從軟件設(shè)計(jì)的角度而言,并不存在完美的體系結(jié)構(gòu),只有滿足某個(gè)特定項(xiàng)目需求的體系結(jié)構(gòu)。在實(shí)際的軟件系統(tǒng)設(shè)計(jì)過程中,軟件體系結(jié)構(gòu)的設(shè)計(jì)要考慮功能需求、質(zhì)量需求及其他的商業(yè)因素,并且一些質(zhì)量屬性之間經(jīng)常是相互沖突的,必須對(duì)各種要素進(jìn)行折中與權(quán)衡,而具體怎樣權(quán)衡和折中,則必須結(jié)合具體項(xiàng)目,根據(jù)項(xiàng)目的實(shí)際情況去把握,并沒有標(biāo)準(zhǔn)的模式。
2.基于項(xiàng)目驅(qū)動(dòng)模式下的軟件體系結(jié)構(gòu)課程教學(xué)改革思路
從以上所述軟件體系結(jié)構(gòu)課程特點(diǎn),我們可以看到,作為一門實(shí)踐與抽象并重的學(xué)科,在學(xué)生缺乏項(xiàng)目經(jīng)驗(yàn)、實(shí)踐安排不足的現(xiàn)實(shí)下,要想加深學(xué)生對(duì)軟件體系結(jié)構(gòu)分析與設(shè)計(jì)的方法和過程的感性認(rèn)識(shí),糾正學(xué)生對(duì)軟件體系結(jié)構(gòu)的錯(cuò)誤和模糊認(rèn)識(shí),從而進(jìn)一步深入理解軟件體系結(jié)構(gòu)的理論和方法,傳統(tǒng)的教學(xué)模式已經(jīng)很難達(dá)到目的。而項(xiàng)目驅(qū)動(dòng)教學(xué)模式可以讓學(xué)生更牢固地掌握所學(xué)的知識(shí)點(diǎn);從項(xiàng)目中分析各類軟件系統(tǒng)架構(gòu)設(shè)計(jì)風(fēng)格的優(yōu)缺點(diǎn),可以讓學(xué)生嘗試提出相應(yīng)的改進(jìn)方案;將軟件體系結(jié)構(gòu)設(shè)計(jì)教學(xué)與實(shí)際軟件項(xiàng)目相結(jié)合,通過實(shí)踐練習(xí)加強(qiáng)學(xué)生對(duì)軟件體系結(jié)構(gòu)概念和設(shè)計(jì)思想的理解,使他們有身臨其境的感覺,從而獲得滿意的教學(xué)效果。具體來說,可以歸納為以下幾點(diǎn):
(1)理論與實(shí)踐相結(jié)合。以項(xiàng)目—原理—解析為主線,以項(xiàng)目為前導(dǎo),引導(dǎo)學(xué)生參與與思考,通過參與實(shí)際項(xiàng)目的探討激發(fā)他們的好奇心和求知欲,充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性、主動(dòng)性,著力培養(yǎng)學(xué)生的個(gè)性和創(chuàng)造力。同時(shí)教師將相關(guān)原理和概念在項(xiàng)目分析時(shí)自然帶出,通過理論與實(shí)際項(xiàng)目的結(jié)合,提高學(xué)生對(duì)知識(shí)點(diǎn)的理解,彌補(bǔ)傳統(tǒng)教學(xué)中的不足,從而達(dá)到理論知識(shí)和實(shí)踐能力同步提高的教學(xué)目的。
(2)分組互學(xué)互助,培養(yǎng)團(tuán)隊(duì)協(xié)作與溝通能力?,F(xiàn)代軟件開發(fā)已經(jīng)不是早期的個(gè)人開發(fā)模式,因此,培養(yǎng)學(xué)生的團(tuán)隊(duì)合作與協(xié)調(diào)能力是非常必要的。在實(shí)際教學(xué)過程中,我們將所有學(xué)生分為若干組,每組由一名組長和若干名組員構(gòu)成,無論是課堂的小組討論,還是項(xiàng)目實(shí)訓(xùn),均以小組為單位完成。在組長的統(tǒng)籌安排下,組員之間分工協(xié)作,互學(xué)互助。教師給定一些軟件體系結(jié)構(gòu)的設(shè)計(jì)風(fēng)格或模式,每個(gè)組選擇一個(gè)題目要求以不同的體系結(jié)構(gòu)風(fēng)格或模式去完成,并在項(xiàng)目開發(fā)的不同階段組織專門的研討會(huì),以組為單位讓學(xué)生講述他搜集的資料和相關(guān)的實(shí)例,重點(diǎn)講述他對(duì)實(shí)例的理解和看法,以培養(yǎng)學(xué)生發(fā)現(xiàn)問題、分析問題、解決問題的能力。
(3)建立完善的資源庫、相應(yīng)的習(xí)題庫和全真項(xiàng)目庫。必要的實(shí)戰(zhàn)演練是加深學(xué)生對(duì)軟件體系結(jié)構(gòu)分析與設(shè)計(jì)方法和過程的感性認(rèn)識(shí),糾正學(xué)生對(duì)軟件體系結(jié)構(gòu)的錯(cuò)誤和模糊認(rèn)識(shí),從而進(jìn)一步深入理解軟件體系結(jié)構(gòu)的理論和方法的必要輔助手段,而這些必須以完善的資源項(xiàng)目庫為基礎(chǔ)。同時(shí)也要建立相應(yīng)的教學(xué)課程網(wǎng)站,包括教案習(xí)題庫、試題庫和實(shí)際項(xiàng)目等,將最新的教學(xué)資源研究成果和進(jìn)展展示給學(xué)生,以利于學(xué)生自主學(xué)習(xí)。通過這種“教師引導(dǎo)學(xué)生,學(xué)生自主合作學(xué)習(xí)”的方式,能充分調(diào)動(dòng)學(xué)生學(xué)習(xí)的積極性、主動(dòng)性,從而達(dá)到滿意的教學(xué)效果。
(4)改革舊有考核方式,提高工程能力所占比例。在課程的考核上,降低一般理論考試在總評(píng)中所占的比重,注重工程能力的考核。工程能力的考核主要通過貫穿課程始終的實(shí)訓(xùn)項(xiàng)目進(jìn)行,考核采取項(xiàng)目答辯的形式:在課程結(jié)束后,每個(gè)小組根據(jù)實(shí)訓(xùn)項(xiàng)目的完成情況進(jìn)行匯報(bào)演講,組長首先給出總結(jié)報(bào)告與系統(tǒng)演示,然后由每個(gè)組員對(duì)自己在項(xiàng)目中所完成的工作進(jìn)行講解,教師根據(jù)匯報(bào)內(nèi)容提問并由學(xué)生作答,最后評(píng)定學(xué)生成績(jī)。另外,每個(gè)小組還需提供相應(yīng)的技術(shù)資料,包括軟件需求規(guī)格說明書、系統(tǒng)用例圖、軟件體系結(jié)構(gòu)風(fēng)格選擇與說明、軟件體系結(jié)構(gòu)設(shè)計(jì)報(bào)告、軟件體系結(jié)構(gòu)分析與評(píng)估報(bào)告、系統(tǒng)構(gòu)建與實(shí)現(xiàn)過程說明、軟件使用說明書、系統(tǒng)源碼、答辯PPT等。通過平衡理論考試與實(shí)踐操作的比重來改善傳統(tǒng)教學(xué)考核重理論、輕實(shí)踐的弊端,從而起到促進(jìn)學(xué)生理論實(shí)踐均衡發(fā)展的作用。
本文對(duì)項(xiàng)目驅(qū)動(dòng)模式下的軟件體系結(jié)構(gòu)課程教學(xué)進(jìn)行了探究。實(shí)踐表明,該模式能較好地激發(fā)學(xué)生的學(xué)習(xí)熱情,調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,幫助學(xué)生在有限的學(xué)時(shí)內(nèi)較好、較快地掌握該門課程,并對(duì)培養(yǎng)和提高學(xué)生實(shí)際的工程實(shí)踐能力和團(tuán)隊(duì)協(xié)作能力起到了很好的促進(jìn)作用。
參考文獻(xiàn):
[1]張友生.軟件體系結(jié)構(gòu)[M].清華大學(xué)出版社,2004.
[2]萬建成,盧雷.軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用[M].北京:科學(xué)出版社,2002.
[3]陳長清.軟件體系結(jié)構(gòu)課程教學(xué)探討[J].計(jì)算機(jī)教育,2008(22):134-135.
編輯 張珍珍