前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的圖書管理可行性分析報告主題范文,僅供參考,歡迎閱讀并收藏。
關鍵詞: 軟件工程; 任務驅動教學法; 案例教學法; 項目驅動教學法
中圖分類號:TP311.5 文獻標志碼:A 文章編號:1006-8228(2017)05-50-04
Discussion on teaching model of software engineering course
Li Ling
(Computer Science and Control Engineering Institute, North University of China, Taiyuan, Shanxi 030051, China)
Abstract: Software engineering is a major course in computer specialty, which plays an important role in improving student's abilities of software development, teamwork, communication, innovation and self-learning. Aiming at the problem that the course teaching is emphasis on the technology more than the management, this paper expounds the educational objectives and the teaching contents based off the educational objectives. In order to improve students' interest in learning, the framework for the implementation of task-driven teaching method and case teaching method is put forward, and the application of project-driven teaching method in practice teaching is expounded.
Key words: software engineering; task-driven teaching method; case teaching method; project- driven teaching method
0 引言
軟件工程課程是一門研究用工程化方法構建和維護有效、實用、高質量軟件的學科,是計算機專業人員必修的一門主干課程。它以數據結構、面向對象程序設計、數據庫原理及應用、操作系統等課程為先驅,糅合了工程化軟件開發思想,旨在讓學生通過本門課程的學習,理解軟件工程的基本原理、軟件項目開發各階段的任務,掌握傳統的結構化設計方法和面向對象的開發方法,建立以工程化思想管理軟件開發維護進程。對提高學生的軟件開發能力、解決問題和創新能力以及項目管理、團隊合作能力具有重要意義。
軟件工程一直是高年級專業課程中教學難度較大的一門課程。從對學生就業單位的問卷調查和訪談結果來看,教學效果未達到理想狀態。究其原因,有四個方面。
第一,本課程理論性強,如何引發學生興趣是重中之重。單純引入案例教學,沒有良好的組織過程,學生仍未能有“身臨其境”感覺,無法達到教學效果[1]。
第二,本課程是一門綜合性課程,起于理論,必須將理論應用于實踐中,理論實踐相結合,學生對知識點才會有深刻體會。目前教學仍有重理論輕實踐特點,理論與實踐有所脫節。
第三,實踐過程的組織耗時耗力,評價體系不完善。軟件工程的實踐環節涉及到數據結構、程序語言、開發環境、數據庫等多方面知識,因此實踐的開展,易受到先驅課程沒有學好或沒有拓展、遺忘等影響。需對學生知識狀況進行摸底評估。對于實踐過程耗時長,要考慮如何引導學生高效工作;如何評估劃分不同學生知識結構的層次;針對學生良莠不齊情況合理管理及高效引導實踐進程。而目前對實踐過程的評價,除了印象分,仍是以最終結果評價為主,有失公正性,對學生的團隊協作能力培養也是桎梏。
第四,本課程知識體系一直存在重技術輕管理的誤區。現工程教育認證標準在各大高校逐漸推展開。工程教育認證,明確將項目管理能力、承擔團隊成員以及負責人的角色能力、溝通能力等寫入了畢業要求。加大學生軟件工程管理能力教育力度,培養符合工程化認證標準的人才,是需要我們反復思考加實踐來推進的。本文從軟件工程課程培養目標、教學內容體系、課程教育方法三方面出發,淺談對軟件工程課程教改的一些思路。
1 件工程課程培養目標
本課程旨在培養學生軟件工程理論知識、職業技術能力、職業素養三方面的能力。理論知識方面,要求學生掌握傳統的結構化開發和面向對象開發中各階段的任務、任務完成的步驟,以及相關模型建立的方法。職業技術能力方面,要求學生基本掌握使用Microsoft Project進行軟件項目管理,使用visual Source safe進行版本控制、使用 Rational Rose和Viso進行軟件系統建模,使用JTest進行輔助測試、使用loadrunner進行壓力測試。職業素養方面,通過組織學生進行團隊項目開發,培養學生項目管理能力,談判、溝通、寫作能力及團隊合作能力。
2 軟件工程課程教學內容
工程教育認證基本思想是,以社會需求為導向,革新教學模式[2]。因此,我們應該根據社會需求,合理確定知識結構。基于社會需求及課程培養目標,本課程內容分為理論和實踐兩部分。
理論部分主要內容如表1所示。
實踐部分旨在引導學生將理論應用于實踐中,加深對理論的理解,并鍛煉學生的軟件需求分析、設計、開發能力。針對面向過程軟件工程,設計了《期末成績統計軟件》模擬案例。針對面向對象軟件工程,設計了《小型圖書管理系統》模擬案例。整個項目實施過程,以學生分組形式進行,培養學生的軟件開發、談判、溝通、寫作能力,團隊合作能力,全面提升學生的職業素養。
3 軟件工程課程教學方法
軟件工程是一門工程化的課程,理論性、實踐性并重。如果教師采用傳統“填鴨式”教學方法,以平鋪直敘的方式對課本內容進行PPT講解,極易讓學生失去學習興趣,降低教學質量。教師要想讓學生充分了解并掌握本課程知識,必須具體問題具體分析,不同的教學內容采用不同的教學模式。例如針對軟件工程課程各類知識結構特點,采用任務驅動教學法、案例教學法、項目驅動教學法、自學等多種方式混合的綜合教學方法,以此激發學生的好奇心和解決問題的好勝心,調動學生積極性,提升課程教學效果。
3.1 課堂教學方法
3.1.1 任務驅動教學法
任務驅動教學法是建立在建構主義學習理論基礎上的,有別于傳統教學的新型教學方法[3]。建構主義是一種關于知識和學習的理論,強調學習者的主動性,認為學習是學習者基于原有的知識經驗生成意義、建構理解的過程,而這一過程常常是在社會文化互動中完成的。建構主義的提出有著深刻的思想淵源,它具有迥異于傳統的學習理論和教學思想,對教學設計具有重要指導價值。
任務驅動教學法是“以任務為主線、教師為主導、學生為主體”的教學方法。通過巧妙設計,將教學知識點融入到一個個具體任務中,引導學生通過學習新知識新技能來完成任務,達到新知識的理解掌握,并提升學生分析問題解決問題的能力。在此,簡述本人在面向對象軟件工程需求分析階段教學中,對任務驅動教學法的運用和一些教學體會。具體過程如下。
⑴ 描述問題。教師首先提出一個實際項目-小型圖書管理系統。對項目問題定義進行簡要闡述。
⑵ 提出需求分析任務。將教師本人作為客戶,要求學生獲取小型圖書系統需求。
⑶ 執行任務。學生根據自生經驗,通過各種方法獲取需求,并將需求表述。獲取需求過程中,學生用到的通常的是與教師面對面溝通方法,溝通方法單一且因為溝通歧義,會導致獲取需求與實際需求矛盾,或只為實際需求的一部分。教師就此引導學生,學習情境分析、問卷、試用客戶老系統、簡易應用規格說明技術、快速原型等多種獲取需求方法。獲取需求過程中,要對需求結果進行表述。學生通常會用文字以段落方式長篇大論。這種方式邏輯不嚴謹,且容易產生誤解。教師引導學生學習使用用例圖及用例文檔的表述方式,并讓學生對用例圖方式與段落式表述方式比較,達到對用例圖的理解、認可及掌握。
3.1.2 案例教學法
案例教學法是基于一定的教學目標,以包含疑難問題的實際情境的描述即“案例”為載體,教師扮演設計者和激勵者的角色,鼓勵學生積極參與討論,運用所學的理論知識去識別、分析、解決問題,使學生達到對所學理論知識的深入理解及掌握,并提升學生解決問題的創新能力。在此簡述本人在面向過程軟件工程總體設計方面對案例教學法的運用和一些教學體會。具體過程如下。
⑴ 學習軟件設計原理、模塊內聚、耦合、啟發式規則。
⑵ 基于《小型考務處理系統》數據流圖,使用面向數據流的設計方法映射出結構圖,將該結構圖作為案例提供給學生。要求學生根據軟件設計原理、技術等相關知識對結構圖進行結構優化。
⑶ 個體準備。每位學生獨立思考,準備優化材料,包含理論來源和結構圖處理方式。
⑷ 分組討論。按3-4人一組對學生分組,并進行組內討論,給出結構圖優化的統一意見。
⑸ 按組發表意見。每組推選一個代表,敘述本組對結構圖的逐步優化方案及理論來源。
⑹ 總結階段。留出一定的時間讓學生自己進行思考和總結。隨后,教師根據每小組總結的結果,同學生一起進行匯總歸納,并依據教師自身的優化經驗對結論進行點評補充。
3.1.3 自學
大學生要具備一定的自學能力。軟件工程課程要求學生掌握Microsoft Project、visual Source safe、Rational Rose、Viso多個軟件的使用。教師可在課堂上對這些軟件的學習做適當引導,并布置學習任務及作業,及時檢查并糾正錯誤。
3.2 實踐
軟件工程課程的實踐環節,可采用項目驅動教學法組織實施。項目驅動教學法是一種以教師為主導、學生為主體、項目為媒介,通過實踐方式完成項目,以提升學生綜合能力和職業素質為目標的系統教學方法。
項目驅動教學法用于軟件工程課程的實踐環節。主要實施過程如下。
⑴ 學生分組。每個項目小組,設組長1名,組員3-4名。為避免學生自由組隊強強聯合造成的“馬太效應”,教師發動班干部輔助完成分組工作,M量做到強弱聯合組隊。
⑵ 項目布置。教師具有實際意義的多個項目問題描述。通過分配或自主選題方式提供給各項目小組。每個項目在一個班級中最多重復三次,以防小組間抄襲。公布內容抄襲處罰辦法,達到警示作用。
⑶ 項目實施。項目小組選用合理過程模型。將教師作為模擬客戶,嚴格按照軟件工程思想完成項目。完成項目過程中,著重從如下幾方面進行監控。
第一,在項目實施的各個階段,必須提交相應文檔。具體包含《關于系統規模和目標的報告書》、《軟件項目開發可行性分析報告》、《需求規格說明書》、《系統設計說明書》、《測試計劃》、《用戶使用手冊》。文檔要求符合軟件文檔規范。
第二,必須運用Microsoft Project、visual Source safe、Rational Rose、JTest、loadrunner 等作為軟件工程支撐環境,輔助進行軟件開發。
第三,堅持階段性的考核。
傳統實踐環節考核,通常是項目完成后,以小組答辯形式進行的終極考核方式[4]。這種考核方式,無法在實踐過程早期及中期,發現學生項目進展的重大問題并及時糾正。尤其對某些自我約束能力較差的學生,也可能出現實踐前期自由散漫工作進度緩慢,后期又無法按時完成的情況。
猿紙錐渦鑰己朔絞較緣糜任必要。考核成員由教師和項目組長擔任。考核成績由各階段考核成績、最終項目答辯成績按比例計算。各階段考核中,將小組項目的組織過程、小組成員的參與情況、成員對項目本階段的貢獻等多個方面,都作為考核指標。通過階段性考核方式,既督促、鼓勵了學生的積極參與態度和團體合作精神,又能夠及早讓項目小組認識到本組工作不足并抓緊改進,最重要的是階段性考核方式較終極考核方式更公正客觀。
4 總結
根據本科工程教育認證標準,現今社會對計算機相關專業人才的能力要求越來越全面。計算機專業人員要具有軟件開發能力、團隊合作能力、創新能力、自學能力等多方面綜合能力。根據多年的教學經驗,本文從培養目標、教學內容、教學方法三方面闡述了進行軟件工程課程教學改革的一些經驗。分別論述了任務驅動教學法、案例教學法、項目驅動教學法等幾種方法在課堂教學和實踐教學中的實施過程。這些措施激發了學生創新意識,調動學習積極性,對提升學生綜合能力切實可行,達到了課程培養目標要求。工程教育認證的基本準則是持續改進,我們將在軟件工程課程現有教學方法的基礎上,合理運用各種教學輔助工具,對新的更合理的教學方法進行長期的不斷的探索。
參考文獻(References):
[1] 王辰尹,衣楊.面向應用型IT人才培養的軟件工程教改關鍵問題研究[J].計算機教育,2014.8:27-31
[2] 賈玉祥,陳爭艷.面向工程教育的軟件工程案例分析與實踐課程[J].現代計算機(專業版),2015.27:9-12