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