摘要:本文分析了軟件工程教學中存在的問題,介紹了案例教學法和問題式教學模式在軟件工程教學改革中的運用,提出了基礎實驗與綜合實踐相結合的層次化實踐教學方式,培養學生通過軟件工程實踐體驗軟件項目開發的過程掌握相關的理論、方法和技能。
關鍵詞:軟件工程教學;案例教學法;問題式教學模式;層次化實踐教學
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2014)02-0042-03
軟件工程是計算機科學與技術專業開設的一門核心課程,學生掌握軟件開發過程和主流的軟件開發方法是軟件工程課程教學的基本目標。受教學資源、既定培養方案、學生個人條件等諸多因素的影響,軟件工程課程教學中還存在一系列問題。我們根據軟件工程課程特點,在近幾年的教學實踐中,對軟件工程課程的教學內容、教學方法、實踐教學方式等進行了逐步調整和改進,解決了軟件工程課程教學中存在的部分問題。
一、軟件工程教學中的問題
軟件工程是一門伴隨著軟件危機的出現而發展起來的、集工程性和應用實踐性為一體的課程。由于軟件規模不斷擴大、軟件環境更迭頻繁、軟件危機的表現形式多樣,致使軟件開發的新方法、新技術層出不窮,軟件工程課程的內容處于一種不斷改進和發展的狀態。但目前軟件工程教材內容相對滯后,且多以軟件開發理論和設計原則的形式呈現,軟件開發案例等應用性內容偏少。在教學過程中,受教材內容影響,教師習慣從軟件開發理論、軟件設計原則出發安排教學內容,忽視軟件開發案例在教學中的支撐作用,教學內容與實際應用脫節。軟件開發過程包括軟件體系結構設計、數據庫系統設計、應用程序設計、軟件系統實施等多個環節,所以軟件工程教學內容還涉及除軟件工程之外的其他多門軟件類課程。受教學資源和課程計劃學時等因素的制約,軟件工程的教學內容往往缺乏相關軟件類課程之間的實質性聯系,且實踐教學內容和時間相對不足。加之學生少有軟件項目開發的機會和經歷,致使學生感覺軟件工程課程內容難以理解、不夠實用,缺乏整體感和系統性。針對上述問題,我們將新的教學內容注入軟件工程課程;通過案例教學強化軟件工程課程的實用性特色;以層次化方式組織實踐教學,使學生在軟件開發基本技能、綜合分析問題能力、軟件系統開發經歷、團隊協作意識培養等方面得到系統訓練。
二、軟件工程教學的改革思路
1.調整教學內容、注入教學案例。在教學內容方面,對較陳舊的教材內容進行精簡,并增加與現代軟件開發方法和技術緊密相關的教學內容。針對軟件工程教材內容普遍重視理論、實用案例不足的狀況,將案例教學法[1]引入課堂教學中,通過案例分析對抽象內容進行詮釋,幫助學生理解軟件開發理論和原則。
2.貫通學科知識、突出綜合特色。軟件工程課程內容覆蓋面較寬,與數據庫系統原理、程序設計語言、算法設計與分析等軟件類課程內容交織,為了實現相關課程之間內容的貫通、拓展學生的學科知識、提高學生綜合分析和解決問題的能力,將專題學習(Project-Based Learning)[2]、任務學習(Task-Based Learning)[3]和基于問題的學習(Problem-Based Learning)[4]等教學方法不同程度的引入課程教學中,突出軟件工程課程的綜合性、實踐性特色。
3.拓展實踐環節、培養工程能力。軟件工程實踐教學直接影響學生的軟件開發能力,學生軟件開發能力的提高是一個循序漸進的過程。在常規的軟件工程課程培養方案中,主要安排了基礎實驗內容,對學生的工程化意識和綜合實踐能力的培養重視不夠。采取分層次、分步驟安排實踐教學內容,由基礎實驗逐步過渡到綜合實踐的教學方式,可以將軟件工程學科概念和學生的軟件項目研發能力逐步整合在一起,使學生在軟件工程實踐過程中逐步掌握學科知識、提高軟件項目的分析設計和實施能力。
三、軟件工程教學改革的實踐
1.課堂教學中的案例教學。案例教學可以強化軟件工程理論與實際應用問題的結合。通過典型案例分析,可以對抽象的軟件工程原理和準則進行直觀詮釋,幫助學生理解課程內容。
教學案例通常不是孤立的個案,一組精心設計的教學案例可以幫助學生理解基礎知識、掌握基本技能、提高運用知識的能力。以軟件需求建模為例,在講述軟件系統行為模型的描述工具狀態轉換圖時,使用幾個不同的教學案例,由淺入深地分析狀態轉換圖的作用、使用規則以及如何描述系統的行為三個方面的問題。首先,以學生比較熟悉的操作系統中的一個進程為例,通過狀態轉換圖形象的描述了進程的就緒、運行、等待和完成四個狀態及其轉換關系,著重說明狀態轉換圖的作用。第二個案例是機票預訂系統的行為模型創建,介紹狀態轉換圖的畫法規則。機票預訂系統行為涵蓋機票查詢、機票預訂、訂單支付等幾個分支,比較完整地展現了狀態轉換圖中的圖符及使用規則。實際的軟件項目通常比較復雜,軟件需求建模要考慮多種條件、各種異常狀態,所以將復印機控制程序作為第三個案例,其狀態轉換圖包括復印機正常工作流程、中斷處理流程(比如復印過程中復印紙用完等情況)、硬件故障處理流程等幾種系統行為。
2.問題式教學模式的運用。軟件開發過程是一個綜合性的系統工程。軟件工程課程內容與多門先修的軟件課程密切相關,軟件開發項目是一個多學科貫通的綜合實踐問題。對于軟件工程課程,從教學內容到教學形式都應該倡導調動學生的主動學習情緒,即學生能夠基于自己的思考和實踐解決問題。我們在軟件工程教學改革實踐中,提出了一種主動式、知識探究型的教學模式——問題式教學模式。問題式教學活動中,教師依據課程內容和學生的知識結構、設計具備一定挑戰空間的非良構問題;將學生組織成學習團隊;學生通過分析、解決緊密聯系實際的非良構問題來探究問題背后隱含的概念和原理、拓展學科知識、提高實踐能力、培養團隊協作意識。[5]問題式教學方法注重教學內容的實用性,在一定程度上激發了學生的學習主動性、強化了學生的軟件開發實踐能力。endprint
3.實踐教學環節的調整。從學生運用軟件工程基礎知識的能力、系統化的個人職業技能訓練、軟件項目的開發能力和團隊協作意識四個層面出發,將軟件工程實踐教學劃分為基礎實驗和綜合實踐兩個層次。
基礎實驗培養學生對軟件生命周期組成階段的理解,重點訓練學生對需求分析、軟件設計和軟件測試階段相應開發技能和工具的掌握。基礎實驗的內容偏重于設計型,實驗形式又具有驗證型的特征。基礎實驗是課堂教學中案例教學法的延伸和應用,教師在課堂上通過教學案例闡述如何運用軟件工程理論、技能和工具;學生在實驗過程中,模擬解決與教學案例類似的軟件問題,以實踐的方式體會和鞏固軟件工程知識。基礎實驗強調對每個學生進行軟件工程基本技能的完整訓練,學生通過實驗獲得軟件開發過程的認知、掌握軟件工程的理論和方法,提高個人的軟件項目能力。
軟件工程綜合實踐側重對學生軟件項目開發能力和團隊協作意識的培養,是一個系統化的工程實踐活動,實踐內容涵蓋軟件項目開發的完整過程。學生可以通過綜合實踐環節獲得較真實的軟件項目開發經驗。
在綜合實踐環節,教師要為學生提供兼具普適性和創新性特色的綜合實踐題目。普適性意味著實踐題目要具備明確的可操作性,學生能夠通過綜合實踐活動體驗軟件項目開發的基本規范、經歷軟件開發的完整過程、鞏固軟件工程理論知識和技能。所以綜合實踐題目應該與現實中的實際需求密切相關,這類需求明確具體,學生的感性認識深刻。考慮到學生組織成不同的軟件開發團隊、每個團隊要完成各自獨立的軟件項目開發工作,實踐題目還應該具備在知識需求上基本相同、但應用背景不同的特點,使學生容易借鑒類似的軟件開發案例、從中汲取直觀具體的軟件設計和實現經驗。題目的創新性特色體現在軟件開發技能方面引導學生溫故知新、舉一反三;即對滿足普適性要求的實踐題目,進行適當的需求擴展和功能延伸,要適當保持問題的非良構性、保留一定的不確定性和疑點,留給學生思考空間。在綜合實踐題目的創新性層面上,學生需要在問題的牽引下去適當學習專業以外的知識、搜集提煉信息、補充項目本身缺失的條件,最終制定可行的軟件項目實現方案并解決軟件實施問題。綜合實踐題目的創新性特點,可以在一定程度上激發學生的創造性思維潛力、擴展學生的專業視野。
軟件工程綜合實踐環節是學生對軟件開發過程的模擬體驗,現代軟件開發工作多以團隊協作方式進行。所以對學生而言,需要組建軟件項目開發團隊并進行成員角色分配。組建項目團隊時要考慮學生的認知優勢、學習習慣、學習興趣、動手能力、邏輯思維能力,性格特點等因素,引導學生按照既發揮個人特長、又優勢互補的原則進行團隊組建和工作分工。
四、結語
將精心設計的典型教學案例注入軟件工程教學內容中,可以有效改善軟件工程教材內容偏重軟件開發理論和軟件設計原則、弱化軟件開發實踐的狀況。知識探究型為主要特點的問題式教學模式可以激發學生的學習主動性、拓展學生的學科知識、提高學生綜合分析和解決問題的能力。基礎實驗與綜合實踐相結合的層次化實踐教學方式,將學生的軟件工程基本技能和軟件項目研發能力整合在一起,使學生在軟件項目的分析設計和實施能力的訓練、團隊協作意識的培養方面獲得完整體驗。
參考文獻:
[1]Hay·P,Katsikitis·M.The expert in problem-based and case-based learning:necessary or not?[J].Medical Education,2001,35(1):25-30.
[2]Robert Michael Capraro,Scott?W.Slough.Project-Based Learning:An Integrated Science,Technology,Engineering,and Mathematics(STEM)Approach[M].Sense Publishers,2009.
[3]B·R,Simone Grin Verlag.New Media and Task-Based Teaching/Task-Based Learning:Web Quests[M].Grin Verlag,2010
[4]Boud·D& Feletti,G.I.(eds.).The Challenge of Problem-Based Learning,2nd Ed[M].London:Kogan Page Ltd.,1997.
[5]盧瑩,林蔭.問題式教學模式研究[J].計算機教育,2011,(14):98-101.
基金項目:常州大學教育教學研究基金項目(項目編號:GJY11020019)
作者簡介:盧瑩(1962-),女,河南焦作,碩士,研究方向:軟件工程與數據庫技術。endprint