文章編號:1672-5913(2008)18-0077-02
摘要:本文結(jié)合課題組多年從事系統(tǒng)分析與設(shè)計課程的實際教學(xué)和科研經(jīng)驗,從教學(xué)內(nèi)容與課程體系的改革、教學(xué)模式的創(chuàng)新、一體化實踐教學(xué)平臺的建設(shè)三個方面進(jìn)行探討與實踐。
關(guān)鍵詞:系統(tǒng)分析與設(shè)計;教學(xué)模式;一體化實踐教學(xué)
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
系統(tǒng)分析與設(shè)計是軟件工程專業(yè)的一門重要課程,旨在培養(yǎng)學(xué)生掌握軟件項目的開發(fā)方法,重點是軟件開發(fā)的分析階段和設(shè)計階段,覆蓋軟件工程技術(shù)、信息技術(shù)、建模技術(shù)、數(shù)據(jù)庫技術(shù)、分布式技術(shù)、人機(jī)交互技術(shù)、軟件測試技術(shù)等多個領(lǐng)域,是一門綜合性和實踐性很強(qiáng)的專業(yè)課程。在傳統(tǒng)的計算機(jī)學(xué)科教學(xué)中,強(qiáng)調(diào)數(shù)學(xué)基礎(chǔ)和按部就班的理論學(xué)習(xí),學(xué)生以個體為單位進(jìn)行編程實踐,這樣的教學(xué)模式顯然沒有充分教授學(xué)生從事軟件開發(fā)所必需的方法和技術(shù),不能適用于軟件工程專業(yè)?,F(xiàn)在比較流行的軟件工程教學(xué)方法強(qiáng)調(diào)在授課過程中伴隨小組項目實踐開發(fā),但普遍存在項目規(guī)模較小、用戶需求不明確、文檔編寫不規(guī)范等問題,因此,針對不同的課程,伴隨小組實踐開發(fā)的教學(xué)方法應(yīng)有不同的具體要求。
本文結(jié)合作者多年從事系統(tǒng)分析與設(shè)計課程的實際教學(xué)和科研經(jīng)驗,針對其綜合性和實踐性很強(qiáng)的特點,從教學(xué)內(nèi)容與課程體系的改革、教學(xué)模式的創(chuàng)新、一體化實踐教學(xué)平臺的建設(shè)三個方面進(jìn)行了探討與實踐。
1深化教學(xué)內(nèi)容與課程體系改革
軟件技術(shù)的日新月異促使系統(tǒng)分析與設(shè)計課程的教學(xué)內(nèi)容必須及時更新和不斷深化,但不管新的軟件技術(shù)如何層出不窮,在教學(xué)過程中,最重要的還是讓學(xué)生真正領(lǐng)會系統(tǒng)分析與設(shè)計的核心思想,即系統(tǒng)思想。只有了解底層的系統(tǒng)理論和概念,才能更好地調(diào)整技術(shù)以適應(yīng)不斷變化的問題和條件。當(dāng)然,如何將經(jīng)典的系統(tǒng)思想與新穎的軟件技術(shù)有機(jī)地結(jié)合起來,不斷地深化教學(xué)內(nèi)容與課程體系改革,是我們所要研究、解決的重點。為此,我們進(jìn)行了以下工作:
(1) 開展廣泛調(diào)查研究
我們課題組通過對軟件工程專業(yè)所開設(shè)課程的內(nèi)容與方法進(jìn)行廣泛的調(diào)查,并征集專業(yè)課教師、廣大學(xué)生對課程改革的建議,匯總所有的調(diào)查資料、整理研究,寫出了相關(guān)的調(diào)查報告,并獲得江蘇省重點教改項目一項、南京理工大學(xué)教改項目兩項。通過調(diào)研,我們將課程安排從原先的大二下學(xué)期調(diào)整到大三下學(xué)期,學(xué)生只有在具備建模、數(shù)據(jù)庫、分布式系統(tǒng)、人機(jī)交互、軟件測試等技術(shù)的基礎(chǔ)上,才能更好地實踐系統(tǒng)分析與設(shè)計的過程,才能更好地著重于分析問題和解決問題。
(2) 突出綜合性和實踐性
綜合性和實踐性是系統(tǒng)分析與設(shè)計課程的兩個主要特征。作為一門融合軟件工程技術(shù)、信息技術(shù)、建模技術(shù)、數(shù)
據(jù)庫技術(shù)、分布式技術(shù)、人機(jī)交互技術(shù)、軟件測試技術(shù)等多個領(lǐng)域的綜合性課程,其教學(xué)目的就是通過大中型軟件項目開發(fā)實踐,掌握軟件項目的開發(fā)方法,重點是系統(tǒng)分析階段和系統(tǒng)設(shè)計階段。因此,我們在調(diào)研的基礎(chǔ)上修訂了教學(xué)大綱,對課程體系和教學(xué)內(nèi)容進(jìn)行整合優(yōu)化、突出重點。首先集中于系統(tǒng)分析和設(shè)計的整體描述,包括系統(tǒng)開發(fā)環(huán)境和開發(fā)方法。然后介紹系統(tǒng)分析方法,包括需求獲取的調(diào)查研究技術(shù)、系統(tǒng)需求建模技術(shù)、需求的傳統(tǒng)建模方法、需求的面向?qū)ο蠼7椒ê拖到y(tǒng)方案建議。最后介紹系統(tǒng)設(shè)計方法,包括系統(tǒng)應(yīng)用架構(gòu)設(shè)計、數(shù)據(jù)庫設(shè)計、傳統(tǒng)和面向?qū)ο蟮膽?yīng)用軟件設(shè)計以及輸入、輸出和用戶界面設(shè)計。在教學(xué)中,將理論和實踐有機(jī)地結(jié)合起來,通過對大中型虛擬項目的開發(fā)實踐,讓學(xué)生歸納出應(yīng)該做什么以及如何做。我們以當(dāng)前流行的面向?qū)ο蠓治龊驮O(shè)計方法為主,兼顧傳統(tǒng)的結(jié)構(gòu)化分析和設(shè)計方法。盡管有人認(rèn)為傳統(tǒng)的結(jié)構(gòu)化方法已經(jīng)過時,但是我們認(rèn)為,結(jié)構(gòu)化方法是面向?qū)ο蠓椒ǖ幕A(chǔ),只有在精通結(jié)構(gòu)化方法的基礎(chǔ)上才能更好地理解和應(yīng)用面向?qū)ο蠓椒āT谏罨拍?、原理、技術(shù)等教學(xué)內(nèi)容的同時,我們也強(qiáng)調(diào)開發(fā)工具以及開發(fā)環(huán)境的重要性,在教學(xué)中引入一些先進(jìn)的軟件開發(fā)工具和開發(fā)環(huán)境,給學(xué)生創(chuàng)建一個良好的實踐開發(fā)平臺,提高實踐教學(xué)質(zhì)量和水平。
(3) 新教材的建設(shè)
目前,國內(nèi)關(guān)于系統(tǒng)分析與設(shè)計方面的書籍要么側(cè)重于理論方面的介紹,要么側(cè)重于實際應(yīng)用項目的開發(fā),而理論和實際并重適合充當(dāng)教材的書籍比較少,一般是關(guān)于某個具體系統(tǒng)的分析與設(shè)計,如管理信息系統(tǒng)、會計系統(tǒng)、物流系統(tǒng)等;而國外原版書或翻譯書籍對學(xué)生來說理解比較困難,采用的案例基本上都是商業(yè)案例,必須具備一定的商業(yè)知識才能很好地理解。針對這種情況,通過調(diào)研明確了教學(xué)內(nèi)容,在此基礎(chǔ)上課題組編寫了教材,并由清華大學(xué)出版社出版。新教材的顯著特征之一是采用學(xué)生熟悉的應(yīng)用案例,將理論和實踐有機(jī)地結(jié)合起來。
2創(chuàng)新教學(xué)模式
當(dāng)前主流的教學(xué)模式有兩種:一種是以教師為中心的“傳授-接受式”教學(xué)模式,另一種是以學(xué)生為中心的“探究-發(fā)現(xiàn)式”教學(xué)模式。前者的優(yōu)點是有利于教師主導(dǎo)作用的發(fā)揮,重視情感因素在學(xué)習(xí)過程中的作用,缺點是把學(xué)生置于被動接受地位,難以發(fā)揮主動性和創(chuàng)造性,不利于創(chuàng)新人才的成長;而后者則有利于創(chuàng)新思維和創(chuàng)新能力人才的培養(yǎng),但忽視教師主導(dǎo)作用的發(fā)揮,不利于系統(tǒng)知識的傳授,忽視情感因素在學(xué)習(xí)過程中的作用。在教學(xué)過程中,我們將兩種模式有機(jī)結(jié)合起來,提出“傳授-吸收-評估-提升”(IAEU)四階段互動式教學(xué)模式,圖1是采用統(tǒng)一建模語言(UML)中的用例建模技術(shù)對該教學(xué)模式進(jìn)行建模的用例圖。根據(jù)教學(xué)進(jìn)度,可以將教學(xué)內(nèi)容劃分為若干個教學(xué)模塊,模塊之間存在并列和繼承兩種關(guān)系,每個模塊均可以采用四階段互動式教學(xué)模式。
知識傳授階段是三個后續(xù)階段的基礎(chǔ),以教師為主導(dǎo),精講教學(xué)模塊的知識點,抓住重點和難點。除了采用多媒體教學(xué)手段,加大單位教學(xué)時間的授課信息量之外,我們給學(xué)生提供自行設(shè)計的開發(fā)模板,如項目計劃、用例描述、系統(tǒng)方案建議等模板,將抽象理論變成具體化的可視文檔,讓學(xué)生明白如何表示軟件開發(fā)成果。為了提供簡化復(fù)雜的繪圖工作,我們給學(xué)生提供先進(jìn)的軟件開發(fā)工具,如支持對象建模的Poseidon、starUML等,支持?jǐn)?shù)據(jù)建模和過程建模的PowerDesigner等。當(dāng)然,教師在講授知識的過程中要積極主動地獲取學(xué)生的反饋信息,并根據(jù)實際情況及時做出相應(yīng)調(diào)整,提高授課效率。在教學(xué)過程中我們發(fā)現(xiàn),學(xué)生在先前開設(shè)的面向?qū)ο蠼?、?shù)據(jù)庫系統(tǒng)、人機(jī)交互、分布式系統(tǒng)等課程中已經(jīng)掌握了大量的知識點,因此講課內(nèi)容主要集中在軟件開發(fā)流程、需求獲取技術(shù)、可行性分析技術(shù)等部分,重點培養(yǎng)學(xué)生分析問題和解決問題的能力。
吸收擴(kuò)展階段以學(xué)生為主,每個教學(xué)模塊的知識傳授階段結(jié)束之后,通常安排案例討論會,引導(dǎo)學(xué)生進(jìn)行深入討論、各抒已見,讓它們身臨其境,扮演不同的角色,暢所欲言地發(fā)展自己的見解。在討論過程中,我們有時有意讓小組之間展開激烈的爭論,增加學(xué)生對系統(tǒng)分析與設(shè)計的感性認(rèn)識和興趣,提高他們的分析問題和解決問題的能力。而教師僅僅充當(dāng)指導(dǎo)角色,給出提示性意見,隨時鼓勵學(xué)生,而實際情況證明老師對學(xué)生的關(guān)注與學(xué)生對課程的關(guān)注成正比。除了課堂的案例討論之外,我們給學(xué)生提供大量有價值的參考書目清單和電子文獻(xiàn),學(xué)生在教師的指引下利用課外時間對某些感興趣的專題進(jìn)行資料查閱和分析,在掌握基本知識的基礎(chǔ)上主動學(xué)習(xí),從而拓寬和加深對知識的理解。在課程初期,由4-6名學(xué)生組成一個虛擬項目團(tuán)隊,運(yùn)用每個教學(xué)模塊中學(xué)到的知識,分工協(xié)同,按照教師提供的開發(fā)模板,完成相應(yīng)的文檔。在解決問題的過程中,學(xué)生的創(chuàng)造能力、綜合能力、應(yīng)用能力和交流合作等大量非智力因素均得到了充分的發(fā)展。教師和學(xué)生、學(xué)生和學(xué)生一起討論協(xié)商解決問題,課內(nèi)和課外有機(jī)融合成為整體,使得學(xué)習(xí)變得更加有意義。
評估確認(rèn)階段對于實踐性強(qiáng)的課程尤其重要,以教師為主,對學(xué)生完成的專題報告和虛擬項目報告及時地給予恰當(dāng)?shù)脑u價。在課程初期,幫助學(xué)生建立虛擬項目,針對具體的領(lǐng)域和實際任務(wù),幫助項目小組制定工作進(jìn)度。學(xué)生在整個課程學(xué)習(xí)階段,要完成以下15個開發(fā)成果:問題初始描述、問題分析魚骨圖、項目范圍描述、調(diào)查表、事件表、用例圖、用例描述、事物表、實體關(guān)系圖、數(shù)據(jù)流圖、活動圖、系統(tǒng)順序圖、問題域類圖、設(shè)計順序圖和設(shè)計類圖。對于學(xué)生完成的報告,要認(rèn)真仔細(xì)地對待,找出其中的問題,并給出建設(shè)性的意見。評估確認(rèn)階段的主要目的是鼓勵學(xué)生將其學(xué)到的知識和方法付諸實施,鼓勵創(chuàng)新,培養(yǎng)發(fā)現(xiàn)問題和獨立解決問題的能力。學(xué)生根據(jù)教師的評估確認(rèn)的結(jié)果認(rèn)真進(jìn)行改進(jìn),這樣可以促進(jìn)學(xué)生的主動性再學(xué)習(xí)。
考核提升階段以學(xué)生為主,考核不僅是為了考評學(xué)生學(xué)習(xí)情況,更重要的是鼓勵和督促學(xué)生學(xué)習(xí)的主動性,為此需要改革傳統(tǒng)的“一張試卷定成績”的考核方式。由于系統(tǒng)分析與設(shè)計課程以實踐為主,因此不適宜使用試卷來衡量學(xué)生的能力,而是綜合課堂表現(xiàn)(占20%)、書面專題報告(占15%)、虛擬項目實踐(占50%)和項目演講(占15%)四個方面來評定成績。值得一提的是,項目演講這個環(huán)節(jié)最受歡迎,給學(xué)生提供了一個展示自我的機(jī)會,并鍛煉了口頭表達(dá)能力。這種綜合考核方式使得學(xué)生非常重視案例討論、通過專題報告和虛擬項目實踐等形式積極主動地擴(kuò)展、運(yùn)用和創(chuàng)新知識,從而提高了綜合能力。
3建立一體化實踐教學(xué)平臺
軟件工程專業(yè)主要培養(yǎng)高層次工程型軟件人才,必須具備系統(tǒng)開發(fā)和解決實際工程問題的能力,具備良好的交流組織協(xié)調(diào)能力以及主動獲取知識和創(chuàng)新的能力,這些能力的培養(yǎng)都離不開一體化的實踐教學(xué)平臺。因此,作為綜合性和實踐性極強(qiáng)的專業(yè)課程,系統(tǒng)分析與設(shè)計課程的教學(xué)必須融入一體化實踐教學(xué)平臺中,具體工作表現(xiàn)在以下兩個方面:
(1) 加強(qiáng)師資隊伍一體化建設(shè)
課題組的教師不僅要求擁有較高的理論水平,精通系統(tǒng)分析與設(shè)計的新方法、新技術(shù),而且更重要的必須具有從事軟件項目開發(fā)的工程實踐背景,有豐富的實際項目開發(fā)經(jīng)驗,所以課題組的教師不斷積累教學(xué)素材,參加IT知名企業(yè)的專業(yè)培訓(xùn),到大企業(yè)參加大型軟件開發(fā)項目,積累實際項目開發(fā)經(jīng)驗。這幾年,課題組和軟件企業(yè)密切合作,組織開發(fā)軟件項目,并和德國的波恩大學(xué)合作,在暑假期間積極開展極限編程(XP)交流活動,緊跟國際先進(jìn)開發(fā)方法,大大鍛煉和提高了教師的軟件開發(fā)水平。另外,課題組將知名軟件企業(yè)中具有教學(xué)能力的科技人員聘請到課堂來,開設(shè)專題講座,建立了一支“專職+企業(yè)”的教師隊伍。此外,軟件工程專業(yè)的教師組成實踐指導(dǎo)小組,定期開展教學(xué)沙龍,一起交流溝通。
(2) 加強(qiáng)實踐基地一體化建設(shè)
為了提高學(xué)生的工程實踐能力、分析和解決問題能力,需要加強(qiáng)實踐基地的一體化建設(shè),通過一體化實踐平臺,讓學(xué)生了解并實際看到自己的分析和設(shè)計過程,而實踐基地一體化的建設(shè)工作主要體現(xiàn)在業(yè)務(wù)需求庫建設(shè)和軟件開發(fā)平臺建設(shè)兩個方面。業(yè)務(wù)需求庫的建設(shè)是所有軟件工程專業(yè)課程實踐的難點,目前我們通過三種途徑來解決,一是依賴學(xué)校的豐富資源,學(xué)校各單位每天要處理很多業(yè)務(wù),通過使用系統(tǒng)分析與設(shè)計的各種調(diào)查研究技術(shù)獲取現(xiàn)有的業(yè)務(wù)需求,將這些業(yè)務(wù)需求建設(shè)為標(biāo)準(zhǔn)文檔庫,包括校辦公自動化系統(tǒng)、教學(xué)管理系統(tǒng)、住房管理系統(tǒng)、圖書管理系統(tǒng)等;二是參與教師的橫向課題項目,獲取實際項目的業(yè)務(wù)需求;三是發(fā)揮學(xué)生的主觀能動性,通過調(diào)研親朋好友從事的業(yè)務(wù)工作獲取實際項目的業(yè)務(wù)需求。先進(jìn)科學(xué)的軟件開發(fā)平臺通過建設(shè)專用實驗室來獲取,目前學(xué)校已經(jīng)投資幾十萬元建設(shè)軟件工程一體化實踐平臺,讓學(xué)生更好地進(jìn)行系統(tǒng)分析與設(shè)計的實踐工作。
總之,實踐是工程型軟件人才培養(yǎng)的重要環(huán)節(jié),師資隊
伍一體化的建設(shè)、實踐基地一體化的建設(shè)是培養(yǎng)高級工程型軟件人才的兩個重要保證。系統(tǒng)分析與設(shè)計課程需要加強(qiáng)一體化實踐教學(xué)平臺的建設(shè)工作,努力培養(yǎng)高級系統(tǒng)分析師和高級系統(tǒng)設(shè)計師。
4結(jié)束語
系統(tǒng)分析與設(shè)計課程改革提高了學(xué)生分析和解決實際問題的能力、團(tuán)隊協(xié)作和溝通交流的能力,調(diào)動了學(xué)習(xí)新方法和新技術(shù)的積極性,在培養(yǎng)學(xué)生的創(chuàng)新精神、創(chuàng)新能力、實踐應(yīng)用能力等方面取得了明顯的效果。四屆學(xué)生對課程的評教分?jǐn)?shù)由最初的84.79%上升到92.08%,學(xué)生一致認(rèn)為該課程對后期的軟件課程設(shè)計和畢業(yè)設(shè)計兩個實踐環(huán)節(jié)起著非常重要的作用。同時,我們深知,要達(dá)到“讓每一位學(xué)生都成為優(yōu)秀的系統(tǒng)分析員,成為軟件開發(fā)的精英”的要求,仍然需要課題組全體教師長期艱苦的努力。