朱磊 徐傳運 張楊
摘要:針對系統(tǒng)分析與設(shè)計課程的特點和當前存在的主要問題,根據(jù)長期的教學(xué)實踐基礎(chǔ),提出案例引導(dǎo)教學(xué)法和五步實踐教學(xué)法,以案例作為課程的核心,采用“把理論融入案例、從案例中抽取理論”的雙向思維方式,通過“從實踐中來、到實踐去”的雙向過程,解決系統(tǒng)分析與設(shè)計課程在教學(xué)過程中面臨的難題。
關(guān)鍵詞:系統(tǒng)分析與設(shè)計;雙向驅(qū)動;案例教學(xué)法;實踐能力
0.引言
系統(tǒng)分析與設(shè)計課程是軟件工程的專業(yè)骨干課程,該課程面向已掌握計算機科學(xué)基礎(chǔ)知識、軟件開發(fā)基本技術(shù)的高年級學(xué)生,因此該課程通常開設(shè)在大三下學(xué)期或大四上學(xué)期。該課程是在學(xué)生已經(jīng)具備一定程序設(shè)計能力的基礎(chǔ)上,培養(yǎng)學(xué)生的軟件系統(tǒng)分析與設(shè)計能力,進一步培養(yǎng)學(xué)生的軟件開發(fā)綜合能力,同時培養(yǎng)比代碼編寫人員更高層次的系統(tǒng)分析與系統(tǒng)設(shè)計人員的專業(yè)核心課程。該課程在培養(yǎng)學(xué)生軟件工程應(yīng)用能力方面有著不可取代的地位。
系統(tǒng)分析與設(shè)計是一門承上啟下的課程,在程序設(shè)計基礎(chǔ)類課程、計算機科學(xué)基礎(chǔ)類課程、程序設(shè)計技術(shù)類課程的基礎(chǔ)上,講授軟件系統(tǒng)分析與設(shè)計的基礎(chǔ)理論、方法、技術(shù)、工具,為軟件工程開發(fā)高級類課程奠定基礎(chǔ)。該課程的主要先修專業(yè)課程有程序設(shè)計基礎(chǔ)、面向?qū)ο蟪绦蛟O(shè)計(Java)、數(shù)據(jù)結(jié)構(gòu)、計算機網(wǎng)絡(luò)、操作系統(tǒng)原理及應(yīng)用、程序設(shè)計方法學(xué)、數(shù)據(jù)庫原理及應(yīng)用、Web程序設(shè)計基礎(chǔ)、Windows程序設(shè)計基礎(chǔ)、Java EE架構(gòu)與程序設(shè)計/.Net架構(gòu)與程序設(shè)計、高級C#開發(fā)技術(shù)/移動開發(fā)技術(shù)等。后續(xù)或同步開設(shè)的課程有軟件質(zhì)量保證與測試、設(shè)計模式、軟件體系結(jié)構(gòu)、軟件項目管理與團隊協(xié)作、Web軟件應(yīng)用案例分析等。
1.課程特點與問題
系統(tǒng)分析與設(shè)計是一門理論性與實踐性都比較強的課程,同時又是一門抽象性較高的課程,學(xué)生在理解理論、將理論運用到實踐、解決具體問題方面感到困難。課程的主要特點有以下幾個方面。
(1)實踐性較強。該課程主要培養(yǎng)軟件工程專業(yè)(或相關(guān)專業(yè))學(xué)生的系統(tǒng)分析與設(shè)計能力,要求學(xué)生在學(xué)習(xí)完該課程后,具備對中小型系統(tǒng)進行需求收集、分析、規(guī)約、建模、系統(tǒng)架構(gòu)設(shè)計、數(shù)據(jù)庫設(shè)計和詳細設(shè)計的能力。
(2)理論性較高。雖然系統(tǒng)分析與設(shè)計課程實踐性較強,但是實踐必須在理論的指導(dǎo)下進行,要求學(xué)生系統(tǒng)掌握軟件系統(tǒng)需求、設(shè)計的相關(guān)概念以及規(guī)律、原則、模式等知識。
(3)理論不成熟。軟件工程經(jīng)過十多年的高速發(fā)展,雖然在理論知識方面有一定的積累,但總體來說,軟件工程的理論知識仍然不系統(tǒng)、不完備,其正確性、有效性仍然需要在實踐中驗證。在理論不成熟的領(lǐng)域,經(jīng)驗積累就顯得尤其重要,經(jīng)驗知識傳授的最佳方式應(yīng)該是“師帶徒”,但當前大學(xué)教育主要采用課堂授課方式,這是培養(yǎng)學(xué)生系統(tǒng)分析與設(shè)計能力面臨的難題。
(4)抽象性較強。系統(tǒng)分析與設(shè)計完全是基于概念基礎(chǔ)上的邏輯模型的建立與優(yōu)化,這些邏輯模型的建立過程是從無到有的抽象創(chuàng)造過程,是完全在邏輯空間中的演化。軟件系統(tǒng)邏輯模型的復(fù)雜度往往較高,這要求學(xué)生必須具有較強的抽象思維能力,而抽象思維能力培養(yǎng)又是一個長期且具有一定難度的過程。
(5)綜合能力培養(yǎng)。系統(tǒng)分析與設(shè)計要求學(xué)生具備較高的綜合能力,既包括理論知識、方法、技術(shù)、工具等工科方面的知識和技能,又包括交流、溝通、演講、辯論、寫作、創(chuàng)新等文科方面的能力。軟件工程專業(yè)的學(xué)生主要以理科生為主,文科方面的能力相對較差,而這些能力對需求的收集、確認、規(guī)約以及設(shè)計方案的講解、交流、說服顯得特別重要。這一特點常常被忽略,一些教師經(jīng)常誤認為學(xué)生學(xué)會面向?qū)ο?、面向過程的方法以及UML、數(shù)據(jù)流圖、ER圖,就學(xué)會了系統(tǒng)分析與設(shè)計。
在系統(tǒng)分析與設(shè)計課程的教學(xué)過程中經(jīng)常出現(xiàn)以下問題:理論與實踐脫節(jié),理論不能指導(dǎo)實踐,實踐不能驗證和提升理論;學(xué)生不能真正理解抽象的理論;學(xué)生不知道如何運用理論以及在何種場景中運用理論;學(xué)生掌握了工具的使用,但不知道怎么用工具解決系統(tǒng)分析與設(shè)計問題;學(xué)生學(xué)完課程后,仍然不能獨立地完成一個軟件系統(tǒng)的分析與設(shè)計。
2.案例引導(dǎo)教學(xué)法
系統(tǒng)分析與設(shè)計是一門理論性和實踐性都較強的課程,以致理論知識的理解與實際應(yīng)用之間存在鴻溝,經(jīng)常出現(xiàn)學(xué)生已經(jīng)掌握理論原理,但不能在合適的場景中靈活運用相關(guān)知識解決分析與設(shè)計問題的狀況。為了解決這個問題,該課程采用案例引導(dǎo)教學(xué)法,即在理論教學(xué)過程中不是直接講授理論知識,而是先給出實際的系統(tǒng)分析與設(shè)計案例,在案例中植入理論知識能夠解決的問題,在講解案例時提出問題,針對問題引出相關(guān)知識,然后再對理論知識進行講解。案例引導(dǎo)教學(xué)法能夠讓學(xué)生一開始就知道理論知識適用于何種場景以及解決何種問題,從而提高理論知識的運用能力。
案例引導(dǎo)教學(xué)法由“案例引導(dǎo)-理論講解-案例剖析-項目實踐-項目評講”五步構(gòu)成。案例引導(dǎo)教學(xué)法的第一步即在進行理論講解之前先講解案例,在案例中植入理論知識能夠解決的問題,講解案例時明確提出這些問題,然后針對這些問題引出相關(guān)的理論知識;第二步就是正式講解理論,系統(tǒng)講解理論中的概念、方法、原理、規(guī)則、約束,讓學(xué)生在理解理論知識的基礎(chǔ)上進行第三步——案例剖析;案例剖析需要學(xué)生結(jié)合理論深入地剖析案例,講解如何利用理論知識解決案例中的問題,并且把理論知識能解決的問題進行泛化,即講解理論知識能夠解決哪些問題、如何解決這些問題以及解決方法的優(yōu)缺點等。在第三步的基礎(chǔ)上,學(xué)生需要參與項目實踐,真正運用理論知識解決系統(tǒng)分析與設(shè)計方面的實際問題,最后由教師對學(xué)生的實踐過程和結(jié)果進行評價(關(guān)于實踐教學(xué)的方法參考下一節(jié)的“五步實踐教學(xué)法”)。
案例引導(dǎo)教學(xué)法實際上堅持的是“理論指導(dǎo)實踐、實踐驗證理論”的教學(xué)原則以及“思維培養(yǎng)、知識傳授、技術(shù)訓(xùn)練、工具指導(dǎo)、能力提升”相結(jié)合的教學(xué)理念。采用案例引導(dǎo)教學(xué)法給學(xué)生授課的教師必須是雙師型教師,有軟件項目開發(fā)背景,親自參與過軟件項目開發(fā)(該課程要求主講教師至少全程主持或參與過3個以上的軟件開發(fā)項目)。在教學(xué)過程中,要求教師在講授時將理論知識融入真實的案例,避免空洞的理論知識講解,不僅要講透理論知識的原理,還要講解理論知識的使用場景、使用方法以及實踐中可能存在的問題和解決思路。
3.五步實踐教學(xué)法
系統(tǒng)分析與設(shè)計實踐教學(xué)的特點是驗證性實驗較少,主要是分析性、設(shè)計性、綜合性的實驗;目標是訓(xùn)練學(xué)生使用軟件工程理論、方法、技術(shù)、工具,分析和解決軟件系統(tǒng)開發(fā)過程中出現(xiàn)問題的能力,因此實驗過程相比實驗結(jié)果更重要。該課程的實踐教學(xué)分為兩部分:與課程同步的分階段項目實驗和獨立的課程設(shè)計。與課程同步的分階段項目實驗主要分為4類實驗:軟件系統(tǒng)業(yè)務(wù)背景與需求理解、系統(tǒng)業(yè)務(wù)建模、系統(tǒng)需求分析與需求表示、系統(tǒng)設(shè)計與設(shè)計規(guī)約。這4類實驗基于同一個領(lǐng)域背景,針對開發(fā)同一個軟件系統(tǒng)過程中的各個子問題進行能力訓(xùn)練。該課程設(shè)計的目的是系統(tǒng)地訓(xùn)練學(xué)生綜合運用課程各個知識點進行軟件系統(tǒng)需求分析和系統(tǒng)設(shè)計,進一步提高運用知識解決問題的能力。
學(xué)生在完成實驗內(nèi)容過程中經(jīng)常出現(xiàn)的問題是無從下手,不知道系統(tǒng)分析應(yīng)該從何開始,過程如何展開,結(jié)果如何表示,設(shè)計方案如何形成、選擇和評價。我們針對此問題提出五步實踐教學(xué)法。在五步實踐教學(xué)法中,每一類實驗的教學(xué)過程包括教師講解實驗要求、教師示范、學(xué)生實驗、教師考核和評講。系統(tǒng)分析與設(shè)計課程特別強調(diào)教師在實驗過程中的示范和指導(dǎo)作用:在實驗開始之前,教師先以實驗的部分內(nèi)容作為示例,向?qū)W生示范實驗的具體過程和主要方法;在實驗過程中,教師對有問題的學(xué)生進行單獨指導(dǎo),如果存在共性問題,就進行集中講解。
實踐教學(xué)按照項目組的方式進行管理,將4~6名學(xué)生分為一組并設(shè)立小組長,學(xué)生以某種實際角色參與到項目中,小組長(作為項目經(jīng)理)直接向教師匯報項目進展(包括組員的完成情況),教師通過隨機抽取組員詢問的方式,考查小組長匯報情況的真實性。教師在項目進行過程中,根據(jù)學(xué)生的完成情況,對一些共性問題進行講解。實踐成果的考核主要分為3個部分:文檔質(zhì)量、答辯情況、過程參與積極性(成績主要由小組長分級評價給出)。
4.結(jié)語
采用案例引導(dǎo)教學(xué)法和五步實踐教學(xué)法后,教學(xué)質(zhì)量明顯提高,課堂教學(xué)氣氛更加活躍,學(xué)生能非常積極地參與到案例分析過程中,完成作業(yè)的積極性以及作業(yè)質(zhì)量有所提高。由于有了教師的具體指導(dǎo)和參考案例,學(xué)生更愿意完成并知道如何完成系統(tǒng)分析與設(shè)計作業(yè),該專業(yè)畢業(yè)設(shè)計論文質(zhì)量的總體提高可以反映出學(xué)生的系統(tǒng)分析與設(shè)計能力明顯提高。endprint