張曉剛



摘要:JavaEE是目前最流行的企業(yè)級Web開發(fā)標(biāo)準(zhǔn),也是一個極為復(fù)雜的技術(shù)體系。如何有效地提升JavaEE課程實踐的教學(xué)效果一直是我們思考的問題。文章借鑒工程教育的先進理念并結(jié)合JavaEE技術(shù)特點,提出項目進階驅(qū)動的實踐教學(xué)模式,詳細介紹教學(xué)設(shè)計及實施辦法,為高校JavaEE課程實踐教學(xué)改革探索提供有益的借鑒。
關(guān)鍵詞:JavaEE;課程實踐;教學(xué)模式;改革
0.引言
作為分布式多層級企業(yè)應(yīng)用系統(tǒng)開發(fā)的事實標(biāo)準(zhǔn),JavaEE是目前最流行的Web應(yīng)用開發(fā)技術(shù)體系。JavaEE及其開發(fā)環(huán)境是為暨南大學(xué)計算機系各專業(yè)高年級學(xué)生開設(shè)的一門實踐性綜合性很強的選修課程。課程要求學(xué)生在理解JavaEE體系結(jié)構(gòu)及相關(guān)知識的基礎(chǔ)上,重點掌握JavaServlet、JSP、JDBC、EJB、JSF JavaEE企業(yè)應(yīng)用開發(fā)的JPA框架等主流技術(shù),為即將步人工作崗位的大學(xué)畢業(yè)生打下堅實的技能基礎(chǔ)。
本課程采用理論教學(xué)與實驗教學(xué)相結(jié)合的教學(xué)方式,其中實驗教學(xué)通過9個學(xué)時的實踐環(huán)節(jié)完成。實驗內(nèi)容主要依據(jù)理論教學(xué)的章節(jié)設(shè)置,雖然最后安排了JavaEE綜合應(yīng)用開發(fā)的內(nèi)容,但存在著相互聯(lián)系不夠緊密、實驗整體性不強的缺點。現(xiàn)有的實踐教學(xué)模式無法充分調(diào)動學(xué)生的學(xué)習(xí)積極性和主動性,課程的實踐教學(xué)效果并不理想。如何在有限的學(xué)時內(nèi)通過實踐教學(xué)模式改革提升學(xué)生的JavaEE應(yīng)用開發(fā)能力,是筆者所要思考和解決的問題。
1.基于工程項目的教學(xué)模式
目前,國內(nèi)許多高校的計算機專業(yè)都引入了基于CDIO模式的課程教學(xué)改革,提出了相應(yīng)的課程改革實踐方案。CDIO工程教育模式是近年來國際工程教育改革的先進成果,CDIO代表構(gòu)思(conceive)、設(shè)計(design)、實施(implement)和運行(operate)。CDIO教育模式是以工程項目為載體組織教學(xué),讓學(xué)生通過工程項目來學(xué)習(xí)知識,能夠充分發(fā)掘?qū)W生的創(chuàng)造潛能,提高其解決實際問題的能力。與此同時,教師在構(gòu)思設(shè)計課程項目的過程中,也會對所授課程有更深層次的理解,從而促進教學(xué)效果的提升。
JavaEE是一門綜合性強、實踐性高的技術(shù)類課程,在校大學(xué)生往往缺乏實際軟件項目的鍛煉,難以理解JavaEE相關(guān)技術(shù)的實現(xiàn)原理,更無法靈活應(yīng)用該技術(shù)。CDIO教育模式正好契合了JavaEE課程的牦點,非常適合JavaEE課程的實踐教學(xué)。
1.1確定項目
基于項目的JavaEE課程實踐首先需要確定一個綜合設(shè)計型題目。選課學(xué)生以小組形式完成項目任務(wù),組長充當(dāng)項目經(jīng)理角色,組內(nèi)成員在組長的協(xié)調(diào)下共同完成項目。
該課程提供了一個課程設(shè)計項目庫,每個小組可以自行從中挑選感興趣的項目,也可以另外確定開發(fā)項目。另立項目需要經(jīng)過調(diào)研確定系統(tǒng)的主要功能及實現(xiàn)方式,并形成項目立項報告。報告提交給課程教師審核,審核通過即可成為小組的開發(fā)項目。課程設(shè)計項目庫通過不斷添加以往的典型開發(fā)項目得以擴展。
1.2設(shè)計系統(tǒng)
項目小組在確定了項目題目后,就要制訂項目開發(fā)計劃,進行組員任務(wù)分工,然后使用面向?qū)ο蠓椒肮ぞ咄瓿绍浖到y(tǒng)的需求分析和設(shè)計。基于CDIO的綜合項目開發(fā)以系統(tǒng)觀念為指導(dǎo),努力營造真實的職業(yè)環(huán)境。在這個階段,學(xué)生需要提交需求分析報告、概要設(shè)計、詳細設(shè)計以及開發(fā)測試計劃。
JavaEE課程以網(wǎng)上書店系統(tǒng)作為項目開發(fā)示范案例,讓案例驅(qū)動模式和小組團隊協(xié)作方式貫穿整個項目開發(fā)教學(xué)實踐。在該階段中,學(xué)生應(yīng)該以“確定系統(tǒng)功能,劃分功能模塊以及完成詳細設(shè)計”為系統(tǒng)設(shè)計主線,充分理解和掌握JavaEE相關(guān)技術(shù)和開發(fā)工具,提高協(xié)作精神、系統(tǒng)組織及開發(fā)能力。
1.3實現(xiàn)系統(tǒng)
該階段的主要任務(wù)是根據(jù)前面的系統(tǒng)設(shè)計進行系統(tǒng)實現(xiàn),學(xué)生需要提交軟件說明書、源代碼及系統(tǒng)測試報告。JavaEE的項目實踐采用NetBeans或MyEclipse作為系統(tǒng)開發(fā)環(huán)境,使用MySQL或Oracle作為數(shù)據(jù)庫服務(wù)器。在開發(fā)過程中,項目劃分為若干個獨立模塊并按照小組任務(wù)分工計劃分配給小組成員,之后再將獨立模塊集成為完整的項目,程序代碼需要使用軟件版本控制工具CVS進行控制。小組每個成員需要以文檔的形式上報工作計劃及工作總結(jié),組長負責(zé)監(jiān)督各個成員的任務(wù)完成情況并掌握整個項目的進度,教師主要負責(zé)答疑和指導(dǎo)工作。
1.4系統(tǒng)運行及評價
系統(tǒng)運行及評價主要通過運行開發(fā)完成的系統(tǒng)對項目任務(wù)進行整體評估。在這個階段,每個小組都要對完成的項目進行答辯,指導(dǎo)教師對每個小組及其成員的表現(xiàn)進行點評,最后基于課程實踐評分標(biāo)準(zhǔn)為每個學(xué)生評分。
JavaEE課程實踐環(huán)節(jié)的考核標(biāo)準(zhǔn)見表1,主要從平時成績和項目成績兩個方面進行考核,在項目考核中又細分為團隊設(shè)計和個人開發(fā)兩個方面。這樣的多元化考核評價體系可以對項目小組及成員做出公正的評價,也將有力地促進學(xué)生職業(yè)素質(zhì)、職業(yè)態(tài)度和職業(yè)習(xí)慣的養(yǎng)成。
2.項目開發(fā)的進階驅(qū)動設(shè)計
根據(jù)JavaEE課程大綱及其技術(shù)規(guī)范,可以將JavaEE開發(fā)技術(shù)劃分為JavaEE開發(fā)環(huán)境配置、Servlet和JDBC技術(shù)、JSP與自定義標(biāo)簽技術(shù)以及JSF+EJB+JPA框架開發(fā)技術(shù)。因此,在基于項目的課程實踐教學(xué)模式下對項目開發(fā)過程進行進階驅(qū)動設(shè)計。
2.1項目案例選取
根據(jù)JavaEE課程實踐對項目案例需求的分析,在對比了多個典型的工程項目及其特點之后,我們選取了網(wǎng)上書店系統(tǒng)作為項目案例。這個系統(tǒng)是對當(dāng)前主要網(wǎng)上書店系統(tǒng)(如當(dāng)當(dāng)網(wǎng)、卓越網(wǎng))的簡化,并保留了其公共核心功能,主要包括:
(1)對于普通用戶,主要是書籍分類瀏覽、搜索書籍及用戶注冊。
(2)對于登錄用戶,主要是查找書籍、網(wǎng)上購書及訂單查詢。
(3)對于系統(tǒng)管理員,主要是用戶管理、書籍管理及訂單管理。
學(xué)生對這樣的案例功能非常熟悉并且容易理解,系統(tǒng)功能相對集中且實現(xiàn)規(guī)模小,方便采用不同技術(shù)重新實現(xiàn),有利于采用進階驅(qū)動方式展開項目開發(fā)的實踐教學(xué)。
2.2項目開發(fā)的進階驅(qū)動過程
基于JavaEE的技術(shù)規(guī)范及其特點,我們把項目開發(fā)的過程設(shè)計為進階式,即分別通過不同的JavaEE開發(fā)技術(shù)進行項目的多版本實現(xiàn)。JavaEE項目開發(fā)的整個過程可以被劃分為4個遞進式的階段。圖l給出了項目開發(fā)的進階驅(qū)動過程。
1)項目準(zhǔn)備階段。
通過使用現(xiàn)有流行的網(wǎng)上書店(如當(dāng)當(dāng)網(wǎng)和卓越網(wǎng))理解項目案例的系統(tǒng)功能模塊構(gòu)成及其主要處理流程,并且掌握NetBeans或MyEclipse的JavaEE開發(fā)環(huán)境的配置方法,為項目開發(fā)做好準(zhǔn)備。
2)Servlet開發(fā)階段。
在完成確定項目的系統(tǒng)設(shè)計之后,可以參照網(wǎng)上書店項目案例的Servlet實現(xiàn)版本進行系統(tǒng)的第一個版本實現(xiàn)。這個版本是一個兩層的結(jié)構(gòu),上層主要使用Servlet技術(shù)進行用戶接口及業(yè)務(wù)邏輯的實現(xiàn),下層則通過JDBC技術(shù)進行應(yīng)用的數(shù)據(jù)訪問。
3)JSP+自定義標(biāo)簽開發(fā)階段。
這個開發(fā)階段主要使用開發(fā)效率更高的JSP+自定義標(biāo)簽進行系統(tǒng)的第二個版本實現(xiàn)。該版本進化為三層的結(jié)構(gòu),同樣參照案例的實現(xiàn)版本對第一個版本進行改進,包括:分離用戶接口層與業(yè)務(wù)邏輯層,使用JSP+自定義標(biāo)簽實現(xiàn)用戶接口并通過JavaBean封裝業(yè)務(wù)操作,下層則通過JDBC實現(xiàn)數(shù)據(jù)訪問。
4)JSF+EJB+JPA框架開發(fā)階段。
最后的框架開發(fā)階段是系統(tǒng)的最終版本實現(xiàn),主要通過JavaEE流行的框架技術(shù)進行系統(tǒng)三層結(jié)構(gòu)的高效實現(xiàn)。在第二個實現(xiàn)版本上做如下改進:使用JSF框架實現(xiàn)用戶接口,然后通過EJB封裝業(yè)務(wù)操作,最后使用JPA框架進行應(yīng)用抽象實體的表示與存取訪問。
3.項日開發(fā)的教學(xué)實施
進階式驅(qū)動的項目開發(fā)過程是一個由簡到難、循序漸進的過程。項目系統(tǒng)在進階式開發(fā)過程中經(jīng)歷從最初雛形版本到最后成熟版本的進化。JavaEE課程的實踐過程也就是完成工程項目的進階式驅(qū)動開發(fā)過程。
那么,在有限的學(xué)時及教學(xué)條件下,如何高效地完成進階驅(qū)動項目開發(fā)的教學(xué)實踐并取得良好的教學(xué)效果呢?關(guān)于JavaEE課程實踐的教學(xué)實施需要做以下幾點說明。
3.1教學(xué)組織原則
在JavaEE課程實踐的進階式項目開發(fā)教學(xué)實施過程中,教學(xué)組織應(yīng)該遵循以下原則:
(1)理論講授圍繞著實踐項目展開。課程以提高學(xué)生的JavaEE開發(fā)能力為根本目標(biāo),課程的理論講授要為JavaEE實踐項目服務(wù),圍繞著進階項目進行JavaEE開發(fā)技術(shù)及原理的講解。
(2)“項目進階引導(dǎo)、任務(wù)分解驅(qū)動”的教學(xué)方式。通過項目進階開發(fā),全面培養(yǎng)學(xué)生開發(fā)JavaEE應(yīng)用的綜合能力。學(xué)生主要通過課余時間完成開發(fā)任務(wù),再通過課堂上的問題解答及項目討論,強化該階段所需的技術(shù)知識、開發(fā)技能及團隊協(xié)作能力。
(3)課程實踐環(huán)節(jié)的教學(xué)過程,主要通過案例項目進階開發(fā)的工作流程安排實踐教學(xué)內(nèi)容,并按照案例項目的開發(fā)任務(wù)展示、問題分析及解決、系統(tǒng)操作演示、任務(wù)實施及評價等4個步驟進行教學(xué)展示。
3.2學(xué)時安排及教學(xué)方式
按照教學(xué)大綱,暨南大學(xué)JavaEE課程實踐環(huán)節(jié)共計9個學(xué)時。在有限的學(xué)時里,如何有效地實施進階驅(qū)動的項目開發(fā)呢?具體的學(xué)時安排及教學(xué)方式如表2所示。
3.3平臺支持
為了更好地支持JavaEE課程的實踐教學(xué)改革,我們采用目前最流行的網(wǎng)絡(luò)教學(xué)平臺Blackboard作為JavaEE課程實踐的支撐平臺。小組劃分及題目確定、系統(tǒng)設(shè)計與實現(xiàn)、系統(tǒng)評價與考核等實踐過程都可以納入Blackboard平臺的管理中。通過該平臺,教師可以更科學(xué)地組織和管理進階驅(qū)動項目開發(fā),項目考核及評價的效率也大大提升;學(xué)生可以更加合理和高效地進行小組分工協(xié)作,而項目開發(fā)的效率也會更高。
4.結(jié)語
兩個本科教學(xué)周期的JavaEE課程實踐改革表明,項目進階驅(qū)動的實踐教學(xué)模式可以有效地激發(fā)學(xué)生的學(xué)習(xí)興趣,教學(xué)效果改善明顯。學(xué)生對課程實踐改革反饋良好,對課程的評分大幅提高。新的實踐教學(xué)模式在教師與學(xué)生之間營造出一種創(chuàng)新氛圍,極大地鼓舞了學(xué)生的自主學(xué)習(xí)熱情,強化了他們的創(chuàng)新意識和團隊協(xié)作精神,明顯提高了他們的創(chuàng)新能力和綜合素質(zhì)。通過對同一個項目系統(tǒng)運用不同的JavaEE技術(shù)進行反復(fù)開發(fā)和修正,幫助他們樹立起不斷創(chuàng)新和深入探索的理念以及不斷追求卓越的意識。