前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件工程課程案例庫建設方法研究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:筆者針對我校軟件工程課程群中的教學問題,通過研究教學案例的選取和設計,建立規范的軟件開發全過程案例庫,以適應多層次多類型教學任務;在教學過程中融合多種教學模式,加強理論教學和實踐教學的耦合度,保證軟件工程實踐規范化,培養學生工程化理念和團隊協作意識,提高學生探索問題、分析問題和解決問題的綜合能力;同時建立基于框架的可擴展實踐平臺,構建“做中學”的環境,提高學員學習興趣和實踐動手能力。
關鍵詞:軟件工程;案例庫;教學模式;可擴展實踐平臺
我校軟件工程課程群包括“軟件工程”“軟件系統分析與設計”“高級軟件工程”“面向對象設計方法”“軟件測試與質量控制”等多門課程,面向本科生、碩士研究生、博士研究生和任職培訓等多個層次,課程門數多、內容交錯、銜接緊密,培訓要求差別較大。為使軟件工程系列課程更好地服務于提升學生工程實踐能力和協作創新能力的培養目標,我們積極開展實踐平臺和案例庫建設,進行教學方法改革等。通過設計不同粒度、不同類別的案例,構建軟件開發全過程案例庫,以適應多層次多類型教學任務;在教學過程中融合基于案例的情景體驗教學、基于項目牽引的工程實踐教學、基于角色扮演和團隊協作的項目研討式教學等多種教學模式,使得每個學員都能參與到項目開發過程中,保證了軟件工程實踐的規范化;同時建立基于框架的可擴展實踐平臺,學生自主設計開發軟件程序,提高了學生的學習興趣和實踐動手能力。
一、對實際工程項目進行提煉,構建軟件開發全過程案例庫
為了將枯燥、抽象的教學內容形象化、實例化,案例教學對于保證軟件工程課程授課效果至關重要。案例教學與傳統的講授式教學存在較大不同,傳統的講授式教學主要是教員向學生傳授知識,溝通的渠道是單向的,而案例教學不僅有教員與學生之間的溝通,還有學生之間的溝通,溝通的渠道是多向的。同時,講授教學側重理論,并通過演繹推理來傳授知識,案例教學則側重啟發式教學過程,引導學生主動參與到課堂教學中,更注重實踐與理論的結合。因此,探索軟件工程類課程的案例式教學方法,總結、提煉、歸納、設計相關的教學案例,構建一個貫穿始終、設計合理、資源豐富的軟件開發全過程案例庫十分必要。
(一)案例的選取和設計
在案例教學中案例的選取和設計是案例教學的關鍵。好的教學案例應該來源于實際工程項目,同時在維度、粒度和內容上精心設計,既要相互銜接,體現生命周期全過程的要求,又要大小適中,適合單個教學模塊的教學需求。從實際工程項目中精心選取、提煉、設計開發涵蓋軟件分析、設計、測試、項目管理等全生命周期的教學案例庫,可為軟件工程系列課程的案例教學提供有效的支撐條件,對課堂教學效果的提升起到極大的促進作用。
案例的設計應針對軟件工程課程群各模塊知識點的所處階段、應用場景和授課目標的差異,既要有覆蓋具體知識點的基本案例,又要有體現全生命周期工程化要求的系統案例和綜合應用案例。案例內容包括軟件過程中的工程案例、管理案例,貫穿全軟件生命周期各階段。
案例的選取應以全生命周期軟件項目為主,從實際工程項目中挑選一批具有代表性的、能突出授課要求的素材,在此基礎上進行加工提煉和補充開發,最終構建滿足教學要求的系列案例。如從自主研制的“軟件過程管理平臺”中選取典型模塊作為測試對象,針對不同測試類型的教學實驗需求,對軟件代碼進行有針對性的變異和缺陷注入,編寫對應的測試需求、測試計劃、測試設計和測試報告,形成功能測試、性能測試、單元測試等測試案例。
軟件工程課程要強調軟件設計和軟件測試的重要性,對軟件設計和軟件測試方法進行講解時,除了要有設計合適的案例,還可以通過當前主流工具(如軟件設計的RationalRose建模工具、單元測試的JUINT工具、功能測試的QTP工具等)的演示,使學員加強對軟件設計和軟件測試過程的可操作性的理解,并將其運用于實踐項目中。
(二)案例庫規范化設計
軟件工程課程群的多門課程需要多樣化的案例,適用于不同的場景,映射出不同的知識點。為了規范這些案例,需提取其公共要素,定義案例庫規范化設計的基本元素。
案例庫規范化設計基本元素中的“案例表現形式”可將案例設置為文檔、代碼框架、原型系統等。如在本科生的軟件系統分析與設計課程中,案例是為學生搭建的一個OpenFrame框架,即一個半成品的代碼框架,學生可從半成品框架中學習相應開發技術,然后自己完善半成品的代碼框架,將學習與實踐過程融入案例中。
案例庫規范化設計基本元素中的“案例類型”可分為工程類案例、管理類案例、支持類案例等。工程類案例包括不同項目不同階段的工程類開發案例,如客戶需求規格說明書、軟件需求規格說明書、概要設計說明書、詳細設計說明書、軟件代碼、軟件測試計劃和測試報告。管理類案例包括項目策劃、項目監控、風險管理、需求管理等。支持類案例包括配置管理、質量保證、測量分析等。根據案例的規模及適用情況,可將案例分為:基本案例、模塊案例、系統案例?;景咐采w一個知識點,簡單、清晰地通過一個實例展現知識點的具體應用,適合于基礎理論知識傳授階段;模塊案例覆蓋多個相關聯的知識點,通過知識點的綜合應用將知識串起來,適合綜合理論知識的應用階段;系統案例覆蓋的是一個獨立的理論體系,通過完整具體的實例將理論應用于實際操作,適合實踐教學階段。
例如,在“軟件測試”中,通過判定三角形的例子來讓學生理解等價類劃分法,這是一個基本案例,穿插在知識點講授過程中。在三角形實例中補充邊界值法、錯誤猜測法等測試用例,形成黑盒測試案例,這就是一個模塊案例。而系統案例內容多、設計比較復雜,例如功能測試案例的設計,要包含測試計劃、測試策略、測試設計的方法、測試用例的生成、測試用例的執行、自動化腳本的設計、測試運行結果分析以及測試報告等內容。
二、融合多種教學形式,緊密銜接理論和實踐教學
傳統的課堂教學教員在課堂上講授軟件工程方法、技術等理論知識,但由于這些理論較抽象難懂,課堂教學效果往往不理想。傳統的實踐教學主要是采用分組模式進行項目開發,但由于沒有過程監督控制,通常是由一個能力稍微突出的學員完成所有過程,缺乏討論、協作,最后往往把精力放在代碼實現中,提交一套漏洞百出的代碼。針對軟件工程課程的特點,筆者結合本校人才培養目標和先進教學理念,對傳統教學方法和手段進行改革,在教學過程中融合、應用基于案例的情景體驗教學、基于項目牽引的工程實踐教學、基于角色扮演和團隊協作的研討式教學等多種教學模式,加強了理論教學和實踐教學的耦合度,培養學生工程化理念和團隊協作意識,提高了學生探索問題、分析問題和解決問題的綜合能力。
(一)基于案例的情景體驗教學模式
案例教學法從實際案例出發,分析其中存在的問題,探索問題產生的根源和解決問題的過程與方法,用案例將理論和實踐聯系在一起,并逐步上升到理論,用理論來概括、歸納、指導一類問題的解決方法。同時,以鮮活生動的實例吸引學員,提高學員學習的興趣,使他們從案例中吸取成功經驗和失敗教訓,加深對理論的理解。在實踐教學中,我們以“做中學”為指導,以實際案例項目的生命周期為主線,通過搭建的實踐平臺和設計的實踐項目,使學員在解決具體問題的過程中加深對理論知識的理解、技術方法的靈活運用,提高自身的實戰素質能力。基于案例的情景體驗教學通過借助來源于實際工程的典型案例,將學生置身于特定的工程項目情景之中,給予他們恰當的引導,為他們提供了一個廣闊的思維空間和貼近實戰的學習環境。
(二)基于項目牽引的工程實踐教學模式
基于項目牽引的工程實踐教學,將工程項目與軟件工程知識體系有機融合,以工程項目為牽引,讓學生在學習理論知識的同時,同步開展生命周期相應階段的各項任務實踐,實現了創新實踐與工程認知導引相結合的教學模式。首次上課要求學員分組,各組自主選擇感興趣的項目,后續根據授課進度按階段完成該項目的整個開發過程。為了提高學生的實踐興趣和做足需求分析,選取項目時,應盡量選擇貼近學生生活、需求場景熟悉的項目,如公差勤務系統、圖書館座位管理系統等。如果是從零開始的項目,需要多方面多手段進行軟件需求分析,并重點做好軟件體系結構設計。另外,選做的項目也可以是已有軟件,因為大部分軟件開發工作是在老版本的軟件基礎上進行改進的,已有軟件可以是網上開源軟件或往屆學生留下的作業,要引導學生分析其功能上的缺陷后對其進行改進。通過項目牽引,可使學生在動手實踐過程中深刻理解軟件工程基本理論知識。
(三)基于角色扮演和團隊協作的項目研討式教學模式
學生以團隊協作方式進行項目開發,通過扮演團隊中客戶、軟件需求人員、軟件設計人員、編碼人員、軟件測試人員等不同角色,完成特定任務,并在項目實施過程中及時對項目開發進程和工作產品進行研討和評審,真正體驗一種有序、可控和協作的軟件開發過程。描述了軟件過程中角色職能及軟件開發各階段的工作產品,并將項目開發活動和項目管理過程映射到課程各知識點,使學員在動態角色參與的項目演練過程中加強對理論知識的理解。
三、針對實踐能力培養需求,構建基于框架的可擴展實踐平臺
軟件工程學科課程理論與實踐聯系緊密,實踐教學的有效實施對提高課程整體教學效果具有重要意義。然而,大部分學生系統設計能力較弱,加之課堂教學時間有限,課程內容比較抽象,為了幫助學生更好地掌握所學知識,有效提高其工程實踐能力,在現實教學中急需加強學生動手實踐環節的時間投入和條件建設。
傳統實踐教學通常要求學生全程自主完成程序開發并提交相應實踐報告。這種“從零開始”的實踐教學模式受到學生編程能力、實踐學時等因素的制約,難以取得良好教學效果。同時,學生缺乏大型項目的工程實踐經驗,如果僅以小規模程序為對象開展實踐教學,也會嚴重制約其對軟件工程思想的理解和掌握。為此,我們構建了基于OpenFrame框架的開放式教學實踐平臺,該平臺采用當今主流的面向對象技術和框架進行開發,既實現了跟系統結構緊密相關的核心公共模塊,又支持學生根據個人興趣,自主、靈活添加符合接口規范的功能應用模塊,從而完成整體系統的開發與設計,有效支持學生根據小組任務分工快速開發上層應用功能模塊,協同完成整體系統的設計、開發與集成。該開放式教學實踐平臺將教師課堂授課與學生情景體驗有機結合,使得抽象內容形象化、具體化,同時既能讓學生了解到框架技術、敏捷軟件開發等面向對象新技術,又能培養學生基于公共體系結構進行團隊化工程開發的能力。
通過搭建滿足教學需求的實踐平臺,設計合理有效的實驗項目,構建“做中學”的環境,使學員利用有限的學習時間,在實踐過程中快速加深對知識的理解,提高自身的素質能力,不斷積累實戰經驗,培養專業自信,提高學習興趣和實踐動手能力。我們鼓勵學員在實踐中發現問題、分析問題并解決問題,注重學員創新意識和綜合素質的培養,將被動的學習轉化為主動的參與、實踐,引導學員更深刻地體會和理解軟件工程全生命周期各階段的任務、技術和方法。
四、基于項目過程的考核評價方式
考核評價是教學過程中必不可少的環節,針對軟件工程課程考核存在著實踐考核不足、學習效果測試不及時、考核評價機制不完善等問題,可采用多元考核和評價方式,弱化期末考試成績,加強過程考核,著重考核項目開發過程中學員思考解決問題的能力??己税ㄆ谀┛荚嚭蛯嵺`項目兩部分,期末考試成績占30%,采用開卷筆試方式,實踐項目成績占70%,采用階段評審方式對各小組階段產出的工作產品進行評審,通過學員互評和教師評價相結合的方法確定團隊成績(40%)和個人成績(30%)。學員分組進行講解、答辯、成果演示,學員和教師分別對各組進行整體評價,獲得團隊成績,個人成績由組長根據組員在項目開發中的表現以及對項目的貢獻大小獲得。
五、結語
通過梳理軟件工程課程群理論知識點,構建軟件開發全過程案例庫,并在案例庫基礎上,對實踐教學方法進行研究,融合、應用基于案例的情景體驗教學、基于項目牽引的工程實踐教學、基于角色扮演和團隊協作的研討式教學等多種教學模式,加強了理論教學和實踐教學的耦合度,并構建了基于框架的可擴展實踐平臺,通過項目牽引和角色扮演使學員將學到的理論直接應用于實際項目開發,培養了學員的工程化理念和團隊協作意識,提高了學員探索問題、分析問題和解決問題的綜合能力。
參考文獻:
[1]鄒紅,王健,蘇丹.以能力培養為導向的軟件工程專業核心課程群建設研究與實踐[J].高教學刊,2018(12).
[2]張愛玲,周世生.新工科背景下軟件工程人才培養的研究與實踐[J].計算機教育,2018(6).
[3]伍春香,劉斌,李小紅.基于能力培養的軟件工程教學實踐[J].計算機教育,2017(8).
[4]李玲.軟件工程課程教學模式探討[J].計算機時代,2017(5).
作者:侯雪梅 李志博 于磊 王陽 單位:戰略支援部隊信息工程大學