岑琴
摘要:分析傳統(tǒng)軟件工程教學過程中出現(xiàn)的問題,提出在課堂教學中引入案例教學法的解決思路。以“圖書管理系統(tǒng)”作為教學案例,提出教學過程中需要遵循的兩個原則以及具體實施方案。實踐證明,案例教學法的應(yīng)用獲得不錯的效果,幫助學生更好地掌握軟件工程思想及設(shè)計方法,強調(diào)作為軟件工程師應(yīng)具備的技能,更好地適應(yīng)社會需求。
關(guān)鍵詞:軟件工程;案例教學;圖書管理系統(tǒng)
中圖分類號:G424 文獻標識碼:A 文章編號:1009-3044(2014)32-7657-02
軟件工程是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量軟件的學科,是計算機相關(guān)專業(yè)中的一門核心課程。它涉及到程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標準、設(shè)計模式等方面。因該課程理論高度高,需要一定的實踐基礎(chǔ),學生在學習時常感覺抽象、言之無物,課程學習的興趣不高,做具體項目時又無從下手;教師在教授該課程時又感覺很有難度,較難達到預期教學效果。
當今軟件項目的開發(fā)隨軟件產(chǎn)業(yè)的快速發(fā)展對其從業(yè)人員的軟件工程素養(yǎng)要求日益提高,要求軟件項目的管理者、開發(fā)人員及測試人員必須掌握軟件工程技術(shù)、方法和原理。為了解決教學效果跟行業(yè)發(fā)展現(xiàn)狀的矛盾,各高校也在積極進行教學改革,案例教學法的出現(xiàn)為解決這一難題提供了思路。
1 案例教學設(shè)計的基本原則
案例教學法(亦稱個案教學法)是一種由美國哈佛大學法學院教授Christopher Columbus Langdell所研擬出,當前管理學界、政府部門乃至于企業(yè)大學所經(jīng)常使用的教學方法。德國教育家W·克拉夫基認為,案例教學是指“讓學習者從真實的案例中學到一般性的、能觸類旁通的知識和能力;即能讓他們獲得結(jié)構(gòu)性的東西及規(guī)律性的關(guān)系等。通過掌握和運用這種一般性的知識、能力,就能多少理解并解決一些結(jié)構(gòu)類似的問題”[1]。
軟件工程案例教學的目的是幫助學生理解和掌握軟件開發(fā)過程中的方法、技術(shù)和原理,培養(yǎng)學生用工程思想去開發(fā)軟件的能力[2],讓學生具備更高的專業(yè)素養(yǎng),培養(yǎng)他們分析問題解決問題,提高實踐動手能力等綜合素質(zhì),適應(yīng)社會的發(fā)展需要。因而案例設(shè)計是實現(xiàn)課堂授課效果、提高學生綜合素質(zhì)的關(guān)鍵。
現(xiàn)如今,很多課程都試行了案例教學法,但并不是所有課程的改革都是成功的,主要存在如下問題:案例質(zhì)量不高、缺乏新意、創(chuàng)新性差、來源匱乏、超出學生理解能力等。因而,在設(shè)計教學案例時,一定要遵循從學生實際情況出發(fā),結(jié)合當前行業(yè)發(fā)展現(xiàn)狀,設(shè)計符合學生水平的案例內(nèi)容[3]。
1) 挑選的教學案例要有針對性和綜合性。根據(jù)系統(tǒng)開發(fā)的不同來設(shè)計一些常見的案例,通過講解案例在開發(fā)過程中各個步驟的具體應(yīng)用,通過一個完整的綜合性案例,使學生對軟件設(shè)計和開發(fā)有一個完整的概念,而不是只見樹木,不見森林的狀況,為學好這門課程打下初步基礎(chǔ)。
2) 好的案例應(yīng)是身邊發(fā)生的真實事件。通過對實際項目進行研討,為學生創(chuàng)造一個身臨其境的真實環(huán)境,最好是親身經(jīng)歷的事件,易于學習和理解,能提高學生的學習興趣,達到預期的教學目標。
3) 所用案例最好是授課老師親自參與開發(fā)的項目,而不是隨便抄襲、借用別人的案例。由于教師有開發(fā)經(jīng)驗,在教授基本理論時,對學生出現(xiàn)的各種問題有較強的預見性,并能對出現(xiàn)的問題給予相應(yīng)的指導和合理的點評和總結(jié),啟發(fā)學生的創(chuàng)新能力。在教學過程中鼓勵學生多溝通,強調(diào)工程實踐能力的培養(yǎng)。
2 案例教學的應(yīng)用
2.1 案例設(shè)計
軟件工程課程的特點是既有系統(tǒng)的理論知識,又有將理論應(yīng)用于實踐的方法和技術(shù),因此在設(shè)計案例時,根據(jù)軟件開發(fā)的不同階段可設(shè)計一些與現(xiàn)實問題聯(lián)系緊密的案例[4]。在講授軟件工程課程時,結(jié)合從事計算機專業(yè)軟件工程教學和科研的實踐經(jīng)驗,從軟件工程課程的特點和教學中存在的問題出發(fā),設(shè)計了一個師生都熟悉的軟件工程案例教學方案—圖書管理系統(tǒng)。
軟件工程課程是面向本科高年級學生開設(shè)的,這部分學生有較強的溝通能力和理解能力,可以組隊進行圖書管理事務(wù)的調(diào)研,讓學生直接參與學院圖書館的具體管理,如何處理借書、還書、查詢、續(xù)借以及逾期等事務(wù),只有充分了解了業(yè)務(wù)流程,才能進行下一步的分析與設(shè)計。而且一個完整案例的內(nèi)容具有內(nèi)在聯(lián)系性,就可以將多個知識、技術(shù)與方法融為一體,有助于提高學生綜合運用知識的能力。
2.2 教學原則
好的教學案例更需要好的教學方法[5]。軟件工程案例教學過程中需要遵循以下兩個原則:
1) 明確以理解軟件工程思想精髓的教學目標
在教學過程中以“讓學生掌握軟件開發(fā)的方法,理解軟件工程思想的精髓”為教學原則,讓學生在理解軟件開發(fā)過程中的基本概念、基本知識、基本思想的同時,著重培養(yǎng)學生運用所學的知識去解決實際問題能力。教師要清楚軟件工程課程的目的不是讓學生單單學會某一項目的分析、設(shè)計方法,而是要培養(yǎng)舉一反三的能力,以后不管遇到什么樣的課題,都能運用所學知識進行分析、設(shè)計與實現(xiàn),即 “授人以漁”,培養(yǎng)學生獨立思考和解決問題的能力。
2) 堅持“精講多練”的教學原則
學生是課堂的主體,精講的對象就是這些主體,所以肯定要了解學生的學習基礎(chǔ),根據(jù)學生的興趣愛好、基礎(chǔ)確定哪些內(nèi)容需要講,是詳講還是略講,哪些知識是可以讓學生自己去理解把握的內(nèi)容,哪些知識需要通過上機操作學生才能進一步理解、消化?!熬v”是為了幫助學生掌握課程知識點,并提高練的效率,所以要求教師能全面、系統(tǒng)地把握教學的內(nèi)容,區(qū)分重點和難點,做到講解簡練、深刻,啟發(fā)學生的軟件工程思維?!岸嗑殹笔怯嬎銠C課程的重要環(huán)節(jié),是將課堂上的理論知識轉(zhuǎn)化為內(nèi)在知識的一種手段。通過實踐,鞏固知識、引導學生把知識運用于實際,真正理解軟件工程思想。精講多練要求既重視講的作用,又保證練的需要,把講和練的作用結(jié)合起來,發(fā)揮師生雙方面的積極性。就講和練的關(guān)系說,精講既為了給多練騰出時間,更為了給多練提供指導。“講”,要避免填鴨式、滿堂灌、凌空說教、煩瑣講解,但并不是單純追求講得越少越好;“練”,要在精講指導下,培養(yǎng)學生分析問題、解決問題和學習新知識的能力,從而充分地開發(fā)和利用學生的智慧潛力,促使學生動機由外在轉(zhuǎn)向內(nèi)在,從根本上調(diào)動學生學習的積極性、主動性。endprint
2.3 案例教學的實施
軟件工程案例教學的實施主要從以下兩個方面著手。
1) 結(jié)合實際項目的理論教學改革
在理論授課過程中,以學生經(jīng)常接觸的“圖書管理系統(tǒng)”作為教學案例,而且曾開發(fā)過該類系統(tǒng),對軟件開發(fā)的各個環(huán)節(jié)非常清楚,通過系統(tǒng)循序漸進地講授傳統(tǒng)的軟件開發(fā)方法和目前流行的面向?qū)ο蟮能浖_發(fā)方法,各知識點通過項目的逐步完成來介紹,著重把握各知識點在項目中的運用,并輔以開發(fā)方法的介紹,對各知識點的介紹以一種自然、順暢的方式呈現(xiàn),并不會造成知識的斷層從而沒有整體的概念。由此來幫助學生學會運用軟件工程思想,培養(yǎng)學生綜合能力。結(jié)合具體項目,讓學生形象且深刻體會傳統(tǒng)方法學與面向?qū)ο蠓椒▽W的區(qū)別、優(yōu)劣,使枯燥乏味的理論知識有實踐依據(jù),學生不會覺得空泛、枯燥,激發(fā)學生學習興趣。
軟件需求無疑是當前軟件工程中的關(guān)鍵問題,沒有需求就沒有分析。以借閱圖書為例,引出需求分析與建模的方法。先介紹傳統(tǒng)分析方法,如結(jié)構(gòu)化分析方法的業(yè)務(wù)流程圖的符號及意義,然后引導學生畫出各層數(shù)據(jù)流程,對于許多學生,畫數(shù)據(jù)流程一直是處于一知半解的狀態(tài),這樣就很好地解決了這個難點。當學生掌握了這個方法后,再引入面向?qū)ο蠓椒?,采用用例模型來展示需求。?jīng)過兩者比較、分析,讓學生體會傳統(tǒng)方法和面向?qū)ο蠓椒ǖ牟町?,更好地理解兩者的特點。
透析了需求后,再介紹系統(tǒng)設(shè)計、實現(xiàn)、測試及維護的方法,將傳統(tǒng)的流程圖、N-S圖、PAD圖等知識點與面向?qū)ο蟮念悎D、活動圖、時序圖、構(gòu)建圖等信息對照學習、應(yīng)用,使學生更深入理解兩種方法的精髓,系統(tǒng)地了解和掌握軟件開發(fā)的基本原理及技術(shù),有利于學生成為企業(yè)真正需求的軟件設(shè)計師。
2) 以培養(yǎng)軟件工程師為目的的實踐教學
軟件工程是一門具有較強實踐性的課程,針對傳統(tǒng)填鴨式教學過程中的問題,在加強隨堂授課的同時,進一步加強綜合性實踐,培養(yǎng)學生的動手能力。課程教學不可能將項目的方方面面都涉及到,實踐教學恰好可以深化學生對軟件工程各階段知識點的理解,讓學生在實踐過程中增強學習自信心,激發(fā)學習動力,培養(yǎng)團隊合作能力。課程教授全程圍繞“圖書管理系統(tǒng)”,學生以團隊為單位(一般建議4人),自主設(shè)計,人人參與,充當不同的角色(如項目管理員、程序員、項目測試師等),每個人的作品都將以個人、小組形式進行計分,最后給出一個綜合性的實驗成績計入期末成績,這種方式極大地激發(fā)了學生的學習興趣,保證了項目的正常進行。每個階段每個小組都推舉一名同學進行演示、答辯,然后教師進行點評和總結(jié),針對出現(xiàn)的問題,學生再進行演練和提高。通過完整的項目設(shè)計,每個組員都有自己的任務(wù),不會出現(xiàn)扯皮、不干活的狀態(tài),每人都會努力做好自己的分內(nèi)工作,以免拖累整個小組成績,培養(yǎng)一個軟件工程使該有的職業(yè)素養(yǎng);組員間也會積極溝通,這不僅快速地掌握設(shè)計和實現(xiàn)一個項目的基本方法,而且培養(yǎng)了作為一名軟件工程師應(yīng)該具備的溝通能力,為以后的職業(yè)生涯打下一個良好的基礎(chǔ)。經(jīng)過一個學期的學習與實踐,學生能較好地掌握軟件工程思想及設(shè)計方法,初步具備該專業(yè)需要的職業(yè)技能,更好地適應(yīng)社會需要。
3 結(jié)論
將案例教學引入到軟件工程教學中,通過“圖書管理系統(tǒng)”完整的案例使學生初步掌握軟件工程思想及設(shè)計方法,激發(fā)學生的學習興趣與動力,有助于學生理解并掌握工程項目的實現(xiàn)過程,這對提高學生的工程理念、職業(yè)技能等各方面素質(zhì)的提高都有很大的幫助。本校以計算機專業(yè)為具體實踐對象,并追蹤學生的畢業(yè)設(shè)計情況。與往屆相比,經(jīng)過案例教學法訓練的學生,其畢業(yè)論文的質(zhì)量有較大幅度提高。
參考文獻:
[1] 李曉蕙.大學本科案例教學實踐反思[J]. 航海教育研究, 2008(4):80-82.
[2] 路陽,董宏麗.軟件工程案例教學淺議[J]. 長江大學學報, 2010,7(2):386-387.
[3] 丁輝.工科專業(yè)案例教學研究[J]. 教育探索,2009(1):52-53.
[4] 巫華芳.軟件工程教學案例設(shè)計初探[J]. 教育與職業(yè), 2007(27):139-140.
[5] 魯紅英,肖思和.案例教學法在“大學計算機基礎(chǔ)”教學的應(yīng)用研究[J]. 中國電力教育,2013(7):94-95,110.endprint