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