摘 要: 傳統(tǒng)教學(xué)法重理論輕實踐,不適合計算機編程類課程的教學(xué),為此將特征驅(qū)動開發(fā)(FDD)方法引入到ASP.NET程序設(shè)計課程的實訓(xùn)中,并根據(jù)實際情況加以調(diào)整,形成了一種較為實用的實踐課程教學(xué)法。該方法將實訓(xùn)分為五個階段,分別是:開發(fā)總體模型、構(gòu)造功能列表、根據(jù)功能制定計劃、根據(jù)功能進行設(shè)計、根據(jù)功能進行開發(fā)測試。實踐表明,該方法更能有效地提高學(xué)生的動手編程能力、團隊合作能力等。
關(guān)鍵詞: 特征驅(qū)動開發(fā); ASP.NET; 教學(xué)改革; 實訓(xùn)模式
中圖分類號:TP311.5 文獻標(biāo)志碼:A 文章編號:1006-8228(2013)03-54-02
0 引言
ASP.NET作為微軟面向下一代的企業(yè)級Web應(yīng)用系統(tǒng)開發(fā)平臺,被大多數(shù)高校的計算機專業(yè)選為專業(yè)必修課。但是,很長一段時間以來,ASP.NET課程的授課基本都是教師按照順序講授知識點,學(xué)生按部就班地學(xué)習(xí)知識點,而體驗不到所學(xué)的局部知識的真正用處。雖然在教學(xué)中也會給出一些小的案例或小項目,但是對于整個課程來說,這些小案例或項目之間是孤立無聯(lián)系的,導(dǎo)致學(xué)生掌握的知識也是零散且不系統(tǒng)的,缺乏對課程的整體把握。
針對ASP.NET課程實踐性強的特點,近幾年國內(nèi)一些軟件學(xué)院積極開展了工程教育改革探索和實踐,如將案例教學(xué)法、項目驅(qū)動教學(xué)法、任務(wù)驅(qū)動教學(xué)法等引入了ASP.NET的課程教學(xué)中[1]。從2010年開始,我們開始嘗試基于FDD敏捷開發(fā)思想的ASP.NET課程教學(xué)模式改革,已取得了階段性成果。
1 項目驅(qū)動式教學(xué)法簡介
特征驅(qū)動開發(fā)(FDD-Feature Driven Development)方法是敏捷軟件開發(fā)過程中的一種,是由Jeff de Luca、Eric Lefebvre、Peter Coad共同開發(fā)的[2]。FDD強調(diào)特性驅(qū)動和快速迭代,既能保證快速開發(fā),又能保證適當(dāng)文檔和質(zhì)量,非常適合中小型團隊的開發(fā)管理。它提出每個功能的開發(fā)時間不超過兩周,并為每個用例user case限定了粒度,具有良好的可執(zhí)行性,也可以對項目的開發(fā)進程進行精確、及時的監(jiān)控。FDD方法抓住了軟件開發(fā)中如何正確和及時地構(gòu)造軟件的核心問題,打破了傳統(tǒng)的將分析師與設(shè)計者和實現(xiàn)者隔離開來的壁壘,使分析師從抽象的工作中解脫出來,直接參與到開發(fā)人員和用戶所從事的系統(tǒng)構(gòu)造工作中。
2 FDD在ASP.NET實訓(xùn)中的實施過程
經(jīng)過幾年的教學(xué)摸索應(yīng)用,結(jié)合特征驅(qū)動開發(fā)的基本思想,并根據(jù)實際情況加以改進,我們設(shè)計了一種基于FDD的ASP.NET實訓(xùn)教學(xué)方法。該方法將實訓(xùn)分為五個階段,分別是:開發(fā)總體模型、構(gòu)造功能列表、根據(jù)功能制定計劃、根據(jù)功能進行設(shè)計、根據(jù)功能進行開發(fā)測試。
2.1 開發(fā)總體模型
首先要組建一個團隊,參與到FDD 方法過程的角色主要有三種:業(yè)務(wù)專家、首席架構(gòu)師和主程序員。在ASP.NET實訓(xùn)課程開始之前,首先讓學(xué)生自由組隊,每個團隊的人數(shù)限制在6-8人之間,并推薦一個具有一定技術(shù)和管理能力的學(xué)生作為首席架構(gòu)師。業(yè)務(wù)專家由教師擔(dān)任,對于班級人數(shù)比較多的情況,可考慮邀請助教、研究生等參與。他們作為客戶代表有對產(chǎn)品提出任何需求的權(quán)利。
組建團隊完成后,在開發(fā)總體模型階段的主要任務(wù)包括:
⑴ 組建建模團隊;
⑵ 業(yè)務(wù)分析;
⑶ 開發(fā)業(yè)務(wù)模型;
⑷ 內(nèi)部和外部評估。
2.2 構(gòu)造功能列表
本階段的基本目標(biāo)是確定所有用于支持需求的功能列表。主要任務(wù)包括:
⑴ 組建功能分解小組;
⑵ 建立功能列表。
2.3 根據(jù)功能制定計劃
本階段的基本目標(biāo)是產(chǎn)生一個開發(fā)計劃。項目經(jīng)理、開發(fā)經(jīng)理和主程序員根據(jù)功能的相關(guān)性、開發(fā)小組的工作負(fù)荷以及功能的復(fù)雜性,計劃實現(xiàn)功能的優(yōu)先級。
該階段的主要任務(wù)包括:
⑴ 組建計劃小組;
⑵ 確定開發(fā)優(yōu)先級;
⑶ 為主程序員分配功能集;
⑷ 為開發(fā)人員分配類。
2.4 根據(jù)功能進行設(shè)計
本階段的基本目標(biāo)是每一個功能集都產(chǎn)生一個功能的設(shè)計包。一定數(shù)量的功能通過分配給主程序員被列入開發(fā)時間表。主程序員從分配給他的任務(wù)中選出功能進行開發(fā)。
該階段的主要任務(wù)包括:
⑴ 成立功能小組;
⑵ 開發(fā)順序圖;
⑶ 精化對象模型;
⑷ 編寫類和方法的序言。
2.5 根據(jù)功能進行開發(fā)測試
該階段開發(fā)人員以特征為單位進行開發(fā)、單元測試,主程序員進行代碼審查,對通過審查的代碼進行構(gòu)建。
該階段的主要任務(wù)包括:
⑴ 實現(xiàn)類和方法;
⑵ 代碼檢查;
⑶ 單元測試;
⑷ 構(gòu)建。
3 教學(xué)效果
基于FDD的實訓(xùn)方法已在我們學(xué)院連續(xù)實施了三個學(xué)期,在ASP.NET課程的及格率、學(xué)生的評價等方面均有所提高。另外,因為軟件工程專業(yè)學(xué)生的畢業(yè)設(shè)計題目絕大多數(shù)也是完成某軟件系統(tǒng)的開發(fā),所以本課程成績高的學(xué)生,其畢業(yè)設(shè)計的成績一般也較高。教學(xué)效果的統(tǒng)計數(shù)據(jù)如表1所示。
4 結(jié)束語
傳統(tǒng)教學(xué)法已經(jīng)不能適應(yīng)ASP.NET課程實踐性強的特點,為此探討了FDD方法在ASP.NET課程實訓(xùn)中的應(yīng)用,提出了一種較為實用的實訓(xùn)教學(xué)方法。該方法將實訓(xùn)分為五個階段:開發(fā)總體模型、構(gòu)造功能列表、根據(jù)功能制定計劃、根據(jù)功能進行設(shè)計、根據(jù)功能進行開發(fā)測試。經(jīng)實踐檢驗,使用該方法后,學(xué)生的學(xué)習(xí)成績得到了提高,畢業(yè)設(shè)計成績也相應(yīng)提高。在取得效果的同時,我們也發(fā)現(xiàn)了一些現(xiàn)象,例如在開發(fā)小組內(nèi)部,有些學(xué)生自覺性較差,基本依靠同組的其他學(xué)生,如何調(diào)動并激勵這些學(xué)生的積極性,是我們以后要重點解決的問題。
參考文獻:
[1] 教育部軟件工程學(xué)科課程體系研究課題組.中國軟件工程學(xué)科教程[M].
清華大學(xué)出版社,2005.
[2] Stephen R. Palmer, John M. Felsing著,熊煥宇,王峰,彭設(shè)強譯.特征
驅(qū)動開發(fā)方法原理與實踐[M].機械工業(yè)出版社,2003.
[3] Schwaber K, Beedle M. Agile Software Development With Scrum
[M].Prentice Hall,2001.
[4] Kent Beck. Extreme Programming Explained:Embrace Change
Pearson[J].Addison-Wesley Professional,2003.
[5] Kniberg H著,李劍譯.硝煙中的Scrum和XP—我們?nèi)绾螌嵤㏒crum[M].
清華大學(xué)出版社,2011.