胡文藝+闞璦珂+王華軍
摘 要 針對軟件工程課程的特點和教學研究現狀,提出以課堂理論教學為引導、案例分析為基礎、項目實踐為關鍵的創新TAP教學模式。實踐證明,TAP教學模式符合軟件工程課程的特點,有益于提高學生學習的積極性、主動性和軟件工程能力,對于軟件工程人才職業技能的培養具有一定的指導意義。
關鍵詞 軟件工程;TAP;教學模式;項目實踐
中圖分類號 G714 文獻標識碼 A 文章編號 1008-3219(2014)05-0051-03
軟件工程學是一門指導計算機軟件開發和維護的工程學科[1],是計算機科學與技術專業的主干核心課程,在專業知識結構中占有重要地位。采用“理論教學為引導、案例分析為基礎、項目實踐為關鍵”(簡稱TAP)的教學模式,使學生能更好地了解軟件項目開發和維護的一般過程,扎實掌握軟件工程的基本原理、方法和過程,真正做到學以致用。
一、軟件工程課程特點及教學要求
(一)課程特點
一是綜合性強。軟件工程課程教學要達到良好的教學效果,其前提是要學好計算機應用基礎、操作系統原理、離散數學、數值分析、數據結構及算法設計、數據庫原理和一門高級程序設計語言等前導基礎課程。學生只有掌握了軟件工程的基本概念和基本原理,才能綜合運用理論和方法開發出符合用戶需求的、高質量的軟件。
二是內容更新快。軟件工程是一門發展極為迅速的學科,從1968年軟件工程早期定義提出后,近五十年來,不斷有大量新理論、新方法、新技術出現,相關知識點的更新速度遠遠超過了教材的更新速度。軟件工程的授課內容應隨著需求、應用的變化以及新技術的出現而變化[2]。
三是實踐性強。該課程的最終目標是要學生把所學的知識運用到實際項目的開發實踐中,并且只有在實際項目中才能培養學生學以致用的能力,并使其領悟軟件工程的真正精髓。
(二)教學要求
軟件工程適用的教學模式由課程的專業性質、理論體系和應用領域決定。首先,在當前計算機行業發展的大環境下,對軟件工程人才的培養,既不等同于培養軟件開發高級階段的系統分析師,也不是培養剛入門的初級程序員。其次,該課程作為計算機系統結構、算法與數據結構、高級程序設計等的后續課程,是學生在掌握基本的程序開發技能后,進行畢業設計和以后具體軟件項目設計和實施。就課堂訓練而言,要教會學生如何在軟件項目運行管理中避免失控、在軟件進度的跟蹤過程中防止偏離既定設計目標、在面臨計劃的突變時能協同開發團隊順利地調整階段目標等,而不僅限于讓學生掌握一般工具。基于以上教學要求,創建“理論教學+案例分析+項目實踐”的教學模式便成為現實所需。
二、TAP教學模式內涵及運行
在軟件工程課程的教授過程中,本文提出的TAP教學模式是指以課堂理論教學為引導(T:Teaching)案例分析為基礎(A:Case Analysis)、項目實踐為關鍵(P:Practical Training),具體見圖1。
(一)課堂理論教學為引導
軟件工程課程課堂講授內容主要包括:軟件工程概述、可行性研究、需求分析、概要設計、詳細設計、實現、測試、維護和軟件管理等。在講授過程中,本著以學生為中心的原則,采用啟發式講授、引導式提問和互動式討論的方法,深入淺出地對課程進行講解,使學生更容易掌握基礎知識,理解重要概念,了解軟件開發模型和過程。作為一門實踐性很強的課程,軟件工程課程的講解還應包括在具體案例分析和實踐之后的重點、疑難點、盲點的分析和總結,并根據具體情況進行提問式和討論式的講解,以便學生能更系統、更全面、更感性地掌握該課程的知識。
(二)案例分析為基礎
軟件工程的理論和方法是從大量的軟件開發案例中總結出來的,可借助真實的、經典的和學生使用較多的軟件作為開發案例,從而激發學生內在的學習動力,使學生有效地理解和掌握理論知識,快速地與實際應用接軌。在教學過程中通過基于Android系統的手機游戲開發等案例的分析,使得學生對軟件工程生命周期各個階段的工作有一個深刻直觀的理解。
一是可行性研究和需求分析階段。通過案例分析,引導學生從可行性研究的經濟、技術、操作和社會及法律等方面進行分析,假設學生自己作為用戶,引導其思考會有哪些需求,如何進行需求分析,怎樣生成報告等。
二是實施階段。第一,結合案例的特點和開發策略,了解軟件過程中噴泉開發模型,并討論若用瀑布模型、原型化方法、增量模型和螺旋模型等進行開發,其過程有何異同。第二,重點分析該軟件的架構設計、詳細設計及設計模式。第三,通過課堂提問和討論理解軟件可維護性的重要性,及在課堂進行該軟件的黑盒測試,對軟件測試形成直接的感性的認識。
三是項目管理階段。通過該軟件的案例分析,充分認識項目管理在成本、人員、進度、質量、風險等各項活動中的重要性。
(三)項目實踐為關鍵
1.企業實踐
以校企合作為契機,充分利用學校和企業的資源,優勢互補,促進理論教學與實踐相結合。本專業已經與多家軟件有限公司建立校企合作關系,邀請企業有經驗的工程師走進課堂,分享業界的開發技術和實踐經驗。學生參與企業的真實項目,使用當前主流技術和敏捷開發方法,也能激發學生的學習積極性和實踐探索興趣。
2.課程同步實踐
在引導式教學和案例分析的基礎上同步開展課程實踐活動,使得軟件項目管理貫穿于課程同步實踐,從而全面做到理論與實踐的實時結合。以基于Android的手機游戲開發作為軟件工程課程同步實踐項目。
首先,可行性研究、需求調研和需求分析。學生組成3~5人的開發小組對基于Android的手機游戲進行調研和可行性的實際分析,編寫《可行性報告》和《需求分析報告》。
其次,軟件設計,主要包括概要設計和詳細設計。本實踐項目的概要設計中的系統結構設計采用客戶/服務器模式,在該階段通過引導學生了解內聚和耦合的概念,并指導學生進行模塊劃分。在詳細設計中,各小組成員根據模塊的分工,確定各自負責的模塊。在游戲類的詳細設計中,界面設計占有至關重要的作用,學生也需對軟、硬件接口、模塊接口進行邏輯結構和物理結構設計。
第三,實現和測試。程序實現是大多數學生的難點,也是項目實踐的關鍵點。基于Android的手機游戲采用的技術方案為Android +Java+SQL Server。在實踐過程中,需對Java相關知識進行復習,適當的時候幫助學生進行代碼的編寫和調試。測試階段由不同的開發小組人員進行交叉測試,分別進行白盒和黑盒測試。在時間足夠充分的情況下,由開發小組人員編寫測試代碼,進行白盒測試。通過這兩種測試方式,找出游戲中存在的錯誤,并寫出相應的《測試報告》。
第四,軟件維護。各小組把完成的手機游戲軟件安裝到本小組人員的手機上,一旦發現問題進行及時維護。通過使用自己編寫的軟件,讓學生體會軟件健壯性和維護的重要性。
三、教學效果
(一)學生評教
近三年來,采用TAP教學模式對軟件工程本科課程教學改革進行探索,效果顯著。《軟件工程》課程被評為校級精品課程,學生的學習成績和學生給教師的評教分值逐年上升,見表1。
(二)社會評價
軟件工程課程重點培養學生在計算機軟件項目中分析和解決問題的能力,注重軟件工程學方法和思想的引導,注重計算機軟件與應用領域知識面深度和廣度的拓展,著力培養學生的自主學習和實際動手能力。在企業實踐中,以項目實戰為導向,增強了學生學習的自信心和主動性,取得了良好的反饋。用人單位普遍反映畢業生的軟件工程能力比較突出,畢業生到了新的“實戰環境”后,其適應能力、創新能力、可塑性等方面都表現優異,得到用人單位的廣泛好評。
(成都理工大學2013-2016年高等教育人才培養質量和教學改革項目《<軟件工程>課程教學模式改革》,編號:13JGY68,主持人:胡文藝)
參考文獻:
[1]張海藩.軟件工程導論(第五版)[M].北京:清華大學出版社,2008:5.
[2]Jazayeri M.The Education of a Software Engineer[C]. Proceedings of the 19th International Conference on Automated Software Engineering(ASE04).Washington DC:IEEE Computer Society,2004:xviii- xxvii.
第三,實現和測試。程序實現是大多數學生的難點,也是項目實踐的關鍵點。基于Android的手機游戲采用的技術方案為Android +Java+SQL Server。在實踐過程中,需對Java相關知識進行復習,適當的時候幫助學生進行代碼的編寫和調試。測試階段由不同的開發小組人員進行交叉測試,分別進行白盒和黑盒測試。在時間足夠充分的情況下,由開發小組人員編寫測試代碼,進行白盒測試。通過這兩種測試方式,找出游戲中存在的錯誤,并寫出相應的《測試報告》。
第四,軟件維護。各小組把完成的手機游戲軟件安裝到本小組人員的手機上,一旦發現問題進行及時維護。通過使用自己編寫的軟件,讓學生體會軟件健壯性和維護的重要性。
三、教學效果
(一)學生評教
近三年來,采用TAP教學模式對軟件工程本科課程教學改革進行探索,效果顯著。《軟件工程》課程被評為校級精品課程,學生的學習成績和學生給教師的評教分值逐年上升,見表1。
(二)社會評價
軟件工程課程重點培養學生在計算機軟件項目中分析和解決問題的能力,注重軟件工程學方法和思想的引導,注重計算機軟件與應用領域知識面深度和廣度的拓展,著力培養學生的自主學習和實際動手能力。在企業實踐中,以項目實戰為導向,增強了學生學習的自信心和主動性,取得了良好的反饋。用人單位普遍反映畢業生的軟件工程能力比較突出,畢業生到了新的“實戰環境”后,其適應能力、創新能力、可塑性等方面都表現優異,得到用人單位的廣泛好評。
(成都理工大學2013-2016年高等教育人才培養質量和教學改革項目《<軟件工程>課程教學模式改革》,編號:13JGY68,主持人:胡文藝)
參考文獻:
[1]張海藩.軟件工程導論(第五版)[M].北京:清華大學出版社,2008:5.
[2]Jazayeri M.The Education of a Software Engineer[C]. Proceedings of the 19th International Conference on Automated Software Engineering(ASE04).Washington DC:IEEE Computer Society,2004:xviii- xxvii.
第三,實現和測試。程序實現是大多數學生的難點,也是項目實踐的關鍵點。基于Android的手機游戲采用的技術方案為Android +Java+SQL Server。在實踐過程中,需對Java相關知識進行復習,適當的時候幫助學生進行代碼的編寫和調試。測試階段由不同的開發小組人員進行交叉測試,分別進行白盒和黑盒測試。在時間足夠充分的情況下,由開發小組人員編寫測試代碼,進行白盒測試。通過這兩種測試方式,找出游戲中存在的錯誤,并寫出相應的《測試報告》。
第四,軟件維護。各小組把完成的手機游戲軟件安裝到本小組人員的手機上,一旦發現問題進行及時維護。通過使用自己編寫的軟件,讓學生體會軟件健壯性和維護的重要性。
三、教學效果
(一)學生評教
近三年來,采用TAP教學模式對軟件工程本科課程教學改革進行探索,效果顯著。《軟件工程》課程被評為校級精品課程,學生的學習成績和學生給教師的評教分值逐年上升,見表1。
(二)社會評價
軟件工程課程重點培養學生在計算機軟件項目中分析和解決問題的能力,注重軟件工程學方法和思想的引導,注重計算機軟件與應用領域知識面深度和廣度的拓展,著力培養學生的自主學習和實際動手能力。在企業實踐中,以項目實戰為導向,增強了學生學習的自信心和主動性,取得了良好的反饋。用人單位普遍反映畢業生的軟件工程能力比較突出,畢業生到了新的“實戰環境”后,其適應能力、創新能力、可塑性等方面都表現優異,得到用人單位的廣泛好評。
(成都理工大學2013-2016年高等教育人才培養質量和教學改革項目《<軟件工程>課程教學模式改革》,編號:13JGY68,主持人:胡文藝)
參考文獻:
[1]張海藩.軟件工程導論(第五版)[M].北京:清華大學出版社,2008:5.
[2]Jazayeri M.The Education of a Software Engineer[C]. Proceedings of the 19th International Conference on Automated Software Engineering(ASE04).Washington DC:IEEE Computer Society,2004:xviii- xxvii.