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