軟件工程課程教學方法初步探索
本文關鍵詞:軟件工程課程教學方法初步探索,由筆耕文化傳播整理發(fā)布。
當前所在位置:中國論文網 > 科技論文發(fā)表 > 軟件工程課程教學方法初步探索
軟件工程課程教學方法初步探索
發(fā)布日期: 2012-07-08 發(fā)布:
2012年第14期目錄 本期共收錄文章20篇
摘要:軟件工程是一門注重實踐的學科。針對在軟件工程教學中出現(xiàn)的一些問題,首先介紹了軟件工程課程教學的目的和教學內容,然后初步探索了這些問題的解決方法,即在理論教學中適當融入案例教學、重視軟件工程實驗教學、作業(yè)應形式多樣且注重聯(lián)系實際。通過實際教學過程中對這些方法的應用,學生反饋的情況,以及最終學習的效果來看,以上提到的方法確實改善了軟件工程課程的教學狀況。
中國論文網
關鍵詞:軟件工程;教學方法;案例教學;學導式教學;考核模式
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2012)14-3328-02
Preliminary Exploration of Teaching Methods of Software Engineering
XIAO Su
(School of Computer Science and Technology, Huaibei Normal University, Huaibei 235000, China)
Abstract:Software engineering is a practice-oriented discipline. The purpose and content of the Software Engineering teaching are firstly introduced. For some problems in the teaching of software Engineering, the solutions of those problems are preliminarily studied. Those so lutions are the integration of the case teaching into theoretical teaching, paying much more attention on the experimental teaching of soft ware engineering, and the practical homework in various forms. By application of the solutions in real teaching procedure, the teaching situ ation of software engineering is truly improved according the students’feedback and the ,.
Key words:software engineering; teaching methods; case-based teaching; learn-guiding teaching; assessment mode
什么是軟件工程(Software Engineering)?至今很難有一個統(tǒng)一的定義,概括說來,軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科[1]。上個世紀六十年代,在軟件開發(fā)和維護過程中出現(xiàn)了一系列的問題,這些問題統(tǒng)稱為軟件危機。為了解決軟件危機,既要有技術上的措施又要有管理上的措施,因此軟件工程應運而生。經過近半個世紀的發(fā)展,軟件工程已經發(fā)展成為一門獨立的學科。我國軟件工程技術的研究始于上個世紀八十年代,目前,全國有上百所院校的計算機及相關專業(yè)開設了軟件工程這門課,并將其作為專業(yè)基礎/主干課程。
1軟件工程教學目的及內容
軟件工程是計算機應用、計算機軟件與理論等相關專業(yè)的一門重要的專業(yè)必修課。是一門理論性和實踐性很強的綜合性課程。軟件工程涵蓋了軟件開發(fā)的基本概念、基本原理和主要方法,它將軟件的生命周期劃分為若干階段,重點講述了每個階段的開發(fā)的過程、步驟、方法和技術。學習軟件工程的目的是讓學生了解軟件項目開發(fā)的一般過程,掌握軟件開發(fā)的主流方法,了解軟件開發(fā)過程中應遵循的原則、標準、規(guī)范和流程,培養(yǎng)學生具備軟件開發(fā)、測試與維護能力,為今后從事軟件項目的開發(fā)、軟件項目的管理和軟件維護打下良好的理論與實踐基礎。
我院軟件工程課主要講述以下內容:①軟件工程學概述。介紹軟件危機的概念、表現(xiàn)、原因及消除軟件危機的途徑,軟件工程的概念、基本原理和軟件工程方法學,軟件生命周期的劃分,軟件開發(fā)模型;②可行性研究。介紹軟件問題的定義,可行性研究的任務和過程,常用的可行性分析工具:系統(tǒng)流程圖、數(shù)據(jù)流圖、數(shù)據(jù)字典等,成本/效益分析,可行性分析報告的編寫;③需求分析。介紹需求分析的基本概念、任務,需求獲取方法、需求分析過程、需求分析的結果及其描述,需求分析常用工具:實體-聯(lián)系圖、狀態(tài)轉換圖、層次方框圖、Warnier圖、IPO圖等,如何驗證軟件需求的有效性;④形式化的說明技術。介紹有窮狀態(tài)機、Petri網和Z語言;⑤總體設計。介紹總體設計的過程和原理,軟件設計的概念、原理和啟發(fā)性規(guī)則,常用的軟件結構描述工具:層次圖、HIPO圖和結構圖,面向數(shù)據(jù)流的設計方法;⑥詳細設計。介紹結構程序設計,人機界面設計,過程設計工具,面向數(shù)據(jù)結構的設計方法,程序復雜度的度量;⑦實現(xiàn)。介紹編碼和測試,期中測試分為單元測試、集成測試和確認測試,常用的黑盒測試技術、白盒測試技術;⑧維護。介紹維護的定義、特點和過程,軟件的可維護性,預防性維護,軟件再工程;⑨面向對象方法學引論,介紹面向對象方法的基本概念和面向對象建模;⑩面向對象分析。介紹面向對象分析的基本過程,需求陳述,建立對象模型、動態(tài)模型和功能模型;11面向對象設計。介紹面向對象設計準則,啟發(fā)規(guī)則,軟件重用,如何設計問題域子系統(tǒng)、人機交互子系統(tǒng)、數(shù)據(jù)管理子系統(tǒng);12面向對象實現(xiàn)。介紹程序設計語言,程序設計風格,測試策略和用例;13軟件項目管理。介紹軟件規(guī)模和工作量估算,進度計劃的安排,人員的組織,質量保證方法,軟件配置管理,能力成熟度模型。
針對軟件工程教學存在的重視教師“教”,不重視學生的“學”;重視理論教學,不重視實踐教學和案例教學;作業(yè)形式單一,注重書面作業(yè)和對基礎知識的考試。提出了以下改進方法。
2.1在理論教學中適當融入案例教學
軟件工程這門課的特點是:它所涵蓋的所有理論、原理、方法和技術等全部來自工程實踐。如果脫離了實際的軟件開發(fā)案例,而單純地講解理論知識,未免會使學生感到枯燥、乏味,難以對軟件工程有深入的了解。又鑒于所采用教科書上的軟件工程案例較少,因此我引入了案例教學法(case-based teaching),在理論教學的每個環(huán)節(jié)引入相關案例,將理論與實踐相融合。案例教學法的歷史可以追溯到古希臘時代,,但我國對該方法推廣地較晚。哈佛商學院將案例教學法定義為:一種教師與學生直接參與共同對工商管理案例或疑難問題進行討論的教學方法[3]?梢娫摻虒W方法在經濟學、管理學等學科領域應用較廣。針對軟件工程課程特點,選擇案例時把握了以下原則:①案例要具有很強的現(xiàn)實性。即不可編造案例,最好是實際軟件工程項目;②案例要具有時效性。因計算機學科發(fā)展較快,案例要跟上學科發(fā)展的步伐,最好是近幾年出現(xiàn)的案例;③案例要與所闡述的理論密切相關。所列舉的軟件工程案例應該能夠在一定程度上支撐書上的理論;④案例的背景要清晰;⑤案例討論的主體是學生。學生在教師的指導下,參與進來、深入案例、體驗案例角色;⑥討論的過程是動態(tài)的。在教學過程中存在著老師個體與學生個體的交往,教師個體與學生群體、學生個體與學生個體、學生群體與學生群體交往,也就是師生互動、生生互動[4];⑦討論的結果應多元化。我采用了如下步驟將理論教學與案例教學相結合:理論講解→引入相關案例→討論案例→總結討論結果。其中,案例討論主要采用分組討論的方式,每個小組就案例反映的問題提出自己的看法。理論的講解在于傳授知識,而融入案例的討論則可將知識轉化為能力,案例教學的引入正起到了這一作用。雖然案例的討論會壓縮理論學時,但教學結果表明,它確實提高了學生學習的興趣,鼓勵了學生的獨立思考。大多數(shù)同學對軟件工程理論知識的興趣不升反降,能積極地投入到軟件工程案例的討論,基于理論的掌握提出自己的看法。過去的教學方式是老師講,同學聽,缺少互動,教師也缺乏對學生知識掌握情況的了解。通過案例的討論,可以更全面了解學生對理論知識掌握和運用情況。
2.2重視軟件工程實驗教學
軟件工程是強調實踐的學科,但由于客觀條件所限,我院學生在學習該課程時動手機會較少。我承擔軟件工程的教學任務后,主動申請增加一定的學時用于實驗教學。由于軟件開發(fā)是分階段進行的,編碼僅僅是期中一個環(huán)節(jié)(約占20%),主要工作集中在(可行性和需求)分析、(總體和詳細)設計、測試和項目管理,并且軟件工程不是教會學生如何編碼。因此,實驗的重點內容是相關的軟件工具介紹,且利用這些工具完成軟件工程各階段的工作任務。實驗的具體的內容可見表1,整個實驗共計20學時。實驗教學過程中采用了學導式教學方法,該方法提倡學生自學和教師的指導相結合,其本質特征是:教學重心由“教”轉移到“學”,約67%的時間由學生進行的自學、解疑和演練[5], [6]。因此,上課前我為學生提供相關的資料,并要求學生認真閱讀、理解和分析這些資料,完成實驗報告上的相關內容。實驗時,我會用10分鐘左右了解學生對此次實驗的準備情況。根據(jù)學生的實驗準備,用20分鐘左右的時間對本次實驗的內容進行解釋,設定好實驗的框架,提供相關的閱讀資料和例子以供學生參考。其余時間由學生自由支配,自主完成實驗,實驗過程可以上網查閱資料、相互討論,亦可舉手提問。通過實驗報告的批改和學生的反饋的情況來看,大多數(shù)學生對實驗比較感興趣,愿意自己動手獨立完成?梢詫⑵綍r所學應用于實踐,通過實踐有對所學的理論知識及案例有了更深入的了解。
表1軟件工程實驗內容
2.3作業(yè)形式多樣,注重聯(lián)系實際
作業(yè)的目的在于鞏固和消化課堂所學理論知識,作為一門實踐性很強的課程,書后作業(yè)的形式較單一,對于“鞏固”和“消化”顯得力不從心。因此,我在布置作業(yè)時不局限于教科書上的題目,更多是尋找一些書外的與軟件工程知識契合更緊密的題目。并將作業(yè)做了分類,如表2所示。針對不同的章節(jié),或同一章節(jié)不同的內容布置不同類型的作業(yè)。每個章節(jié)開始時,會布置一些鞏固型作業(yè);上課時會布置思考型作業(yè);每次下課前會安排下次課要進行的口頭型作業(yè);每一章或幾章的教學完成時,會安排綜合型的作業(yè)。例如:在講授軟件的可行性分析時,首先讓學生記住一些基本概念。然后啟發(fā)他們思考可行性分析的任務,口頭描述可行性分析的過程。最后針對實際的問題定義,綜合運用文字和圖形工具,將可行性分析過程描述出來。雖然,學生的作業(yè)可能比以前要繁重些,也更具挑戰(zhàn)性,但是學生能更好地鞏固知識,更深入了解軟件工程的過程,更全面地掌握軟件工程的知識。
3結論
為了應對教學方式的變化,軟件工程的考核模式與成績評定也做了改變:總成績中15%是平時成績,包括了作業(yè)成績(5%)、課堂表現(xiàn)(5%)和出勤率(5%);15%是實驗成績;70%是期末考試成績。通過對教學方法的初步探索,并將其應用實際教學,確實取得了一定的成績。以我所教的2009級計算機科學與技術專業(yè)的成績?yōu)槔c未采用新教學方法的2008級相比,期末考試的平均成績、優(yōu)秀率、及格率和出勤率均等有不同程度的提高,學生的學習積極性也得到了提高。
參考文獻:
[1]張海藩.軟件工程導論(第5版)[M].北京:清華大學出版社, 2008.
[2] PFLEEGER S L, ATLEE J M. Software Engineering: Theory and Practice [M]. London: Prentice Hall Press, 2009.
[3]王青梅,趙革.國內外案例教學法研究綜述[J].寧波大學學報(教育科學版), 2009, 31(3): 7-11.
[4]鄭金洲.案例教學:教師專業(yè)發(fā)展的新途徑[J].教育理論與實踐, 2002, 22(7): 36-41.
[5]張大生,劉學浩.再談學導式教學法[J].中國教育學刊, 2009, 30(8): 63-65.
[6]劉玉.實用學導式教學法的實踐與認識[J].教育探索, 2003, 22(12): 15-16. 轉載請注明來源。:
本文關鍵詞:軟件工程課程教學方法初步探索,由筆耕文化傳播整理發(fā)布。
本文編號:65416
本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/65416.html