謝景明 孫 庚
摘要:J2EE是一門綜合的企業(yè)級軟件開發(fā)技術(shù)課程。本文介紹了J2EE課程的目標(biāo)與定位,分析了J2EE課程的重點與難點,從課程結(jié)構(gòu)、項目案例、教學(xué)方式和評價體系四個方面探討了項目驅(qū)動的進(jìn)階式J2EE課程教學(xué)的設(shè)計方法,并討論了J2EE課程對軟件開發(fā)人員職業(yè)素質(zhì)的培養(yǎng)要點,為高職院校實施J2EE教學(xué)提供一種可行的參考做法。
關(guān)鍵詞:J2EE課程;教學(xué)設(shè)計;項目案例;職業(yè)素質(zhì)
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1J2EE課程的目標(biāo)與定位
J2EE是Sun公司主導(dǎo)提出的企業(yè)級應(yīng)用框架,為開發(fā)具有跨平臺性、可擴(kuò)展性、高穩(wěn)定性的軟件系統(tǒng)提供強大的支持,已在政府、金融、通信、電力等多個行業(yè)得到廣泛應(yīng)用,例如電子商務(wù)、電子政務(wù)系統(tǒng)。目前國內(nèi)對J2EE工程師需求量很大,IDC統(tǒng)計數(shù)據(jù)顯示J2EE人才占軟件開發(fā)人才需求的60%左右。當(dāng)前遇到的一個困局是:社會迫切需要大量的程序員,但一些高職院校所培養(yǎng)的學(xué)生卻難以適應(yīng)企業(yè)的要求,學(xué)生畢業(yè)后較少從事專業(yè)對口的軟件開發(fā)工作。
廣州番禺職業(yè)技術(shù)學(xué)院在計算機軟件技術(shù)專業(yè)開設(shè)了J2EE課程,目標(biāo)是提高學(xué)生的職業(yè)能力,培養(yǎng)高素質(zhì)的Java應(yīng)用型人才。通過課程的學(xué)習(xí),將學(xué)生積累的基礎(chǔ)知識轉(zhuǎn)化為實踐知識,為他們走向工作崗位后能盡快上手提供重要保障。
本課程的先修課程包括Java、Java Web開發(fā)技術(shù)(JSP、Servlet)、數(shù)據(jù)庫、軟件工程、計算機網(wǎng)絡(luò)等。內(nèi)容主要講述J2EE主流的開發(fā)方法,培養(yǎng)學(xué)生具備使用J2EE開發(fā)企業(yè)級系統(tǒng)的能力,具體要求如下:
(1) 能搭建J2EE開發(fā)平臺,熟練使用一種主流的開發(fā)工具、J2EE應(yīng)用服務(wù)器和數(shù)據(jù)庫;
(2) 能利用J2EE的核心技術(shù)開發(fā)四層體系結(jié)構(gòu)的軟件系統(tǒng);
(3) 能利用J2EE主流的框架Struts +Hibernate+Spring進(jìn)行系統(tǒng)開發(fā);
(4) 具有良好的團(tuán)隊協(xié)作能力,能按照軟件工程步驟完整完成一個J2EE軟件項目。
2J2EE課程的重點與難點分析
J2EE是一門涉及面廣、實踐性要求高的技術(shù)課程,在校學(xué)生往往缺乏實際軟件項目的鍛煉,容易對J2EE技術(shù)
的用途產(chǎn)生困惑,難以理解J2EE的復(fù)雜實現(xiàn)。市面上的書籍通常偏重于代碼技巧的實現(xiàn),缺少對實際項目的詳細(xì)講解。相對于數(shù)據(jù)結(jié)構(gòu)、計算機組成原理、操作系統(tǒng)等傳統(tǒng)基礎(chǔ)課程,J2EE是一門發(fā)展中的新技術(shù),真正深入開展J2EE教學(xué)的高職院校并不多,在教學(xué)內(nèi)容和教學(xué)方法等方面還需要積極進(jìn)行探索。
J2EE課程的重點與難點體現(xiàn)在需要綜合運用多種知識來實現(xiàn)系統(tǒng)的功能,具體分析如下:
(1)J2EE體系結(jié)構(gòu):典型的J2EE四層體系結(jié)構(gòu)是由客戶層、Web層、業(yè)務(wù)層和數(shù)據(jù)層自上而下組成,每一層要求運用不同的技術(shù),只有領(lǐng)會J2EE體系結(jié)構(gòu)的精髓才能更好地運用J2EE技術(shù)進(jìn)行軟件開發(fā);
(2)J2EE技術(shù)規(guī)范的理解以及應(yīng)用:J2EE包含了十三種核心技術(shù),分別為JNDI、JMS、JDBC、EJB、JTA、JavaMail、RMI、Java IDL/CORBA、JSP、Servlet、XML、JTS、JTF,每項技術(shù)又包含了很多新的概念以及API;
(3) 框架技術(shù)的運用:J2EE的框架種類多,MVC的思想是將部件分離為模型、視圖和控制器三部分,Struts、Spring是MVC的一種實現(xiàn)框架,而Hibernate是提供數(shù)據(jù)訪問的持久層框架,把他們結(jié)合起來將能夠建立更靈活的軟件系統(tǒng),但熟練運用這些技術(shù)需要反復(fù)的實踐;
(4) 工具的使用:學(xué)生需要掌握J(rèn)2EE IDE的開發(fā)使用方法、J2EE應(yīng)用服務(wù)器和數(shù)據(jù)庫的配置管理技能,而且還能夠綜合運用這些工具進(jìn)行代碼編寫、調(diào)試以及部署。
3項目驅(qū)動的進(jìn)階式J2EE課程教學(xué)設(shè)計
3.1進(jìn)階式課程結(jié)構(gòu)
根據(jù)J2EE技術(shù)規(guī)范和應(yīng)用經(jīng)驗,通過對J2EE知識點的內(nèi)在關(guān)系以及重點、難點進(jìn)行分析,提出了按入門、提高、深化到鞏固的四階段教學(xué)內(nèi)容實施計劃,課程單元的教學(xué)安排從能力目標(biāo)、工作任務(wù)、知識點、方法、實踐、
總結(jié)六個主要方面逐步深化展開(見圖1),其中工作任務(wù)是實現(xiàn)課程能力培養(yǎng)目標(biāo)的舉措,知識點是通過項目案例引出,進(jìn)而歸納出完成工作任務(wù)的一般方法,最后以具體任務(wù)的實踐以及總結(jié)來深化學(xué)生對技能的掌握。
從圖1可看出J2EE涉及的內(nèi)容很多,按照高職院校常規(guī)的課時安排,很難在一門課程內(nèi)對每一部分內(nèi)容都作詳細(xì)的講解,因此建議通過三門課程來共同完成J2EE的教學(xué),其中第一、二階段由一門課程完成,實現(xiàn)第1節(jié)所討論的J2EE課程能力1和2的培養(yǎng);第二、三階段分別由一門課程完成,相應(yīng)實現(xiàn)能力3和4的培養(yǎng)(見表1),具體在每個課程單元的教學(xué)活動中還需要做進(jìn)一步的細(xì)化。
3.2項目驅(qū)動的案例設(shè)計
J2EE技術(shù)較為抽象,若把案例貫穿于整個教學(xué)內(nèi)容的實施過程中,將有利于學(xué)生對知識點的理解與掌握,因此項目案例的設(shè)計是J2EE課程效果的關(guān)鍵。J2EE的項目類型很多,案例的選取應(yīng)具備以下幾個特征:
(1) 針對性:難度與高職學(xué)生能力相匹配,適合于教學(xué),具有易學(xué)性,能讓學(xué)生易于領(lǐng)會J2EE的開發(fā)思想;
(2) 典型性:包含大部分J2EE的重要技術(shù)和實際中常用的方法,能夠和教程的知識點緊密配合,案例能夠完整貫穿于整個教學(xué)過程;
(3) 綜合性:能夠體現(xiàn)軟件工程知識,有項目背景、用途、業(yè)務(wù)關(guān)系的詳細(xì)描述。
實際項目的業(yè)務(wù)關(guān)系通常較為復(fù)雜,不適宜直接照搬用于教學(xué),應(yīng)根據(jù)課堂特點進(jìn)行裁剪,根據(jù)各階段的能力培養(yǎng)目標(biāo)將一個大項目劃分為多個單獨可以直接執(zhí)行的子系統(tǒng)或者模塊。建議以學(xué)生熟悉的業(yè)務(wù)作為教學(xué)案例,例如圖書管理、網(wǎng)上購物等,通過由淺入深的引導(dǎo),逐步實施,讓學(xué)生在一個個任務(wù)的完成過程中逐漸掌握完整J2EE系統(tǒng)的實現(xiàn)方法。圖2是一個網(wǎng)上購物系統(tǒng)的教學(xué)案例設(shè)計示意,其中在第一階段側(cè)重于增強學(xué)生對J2EE技術(shù)的了解和認(rèn)識,在第二、三階段側(cè)重于使用不同的技術(shù)對比實現(xiàn)某些挑選出的相同模塊,在第四階段側(cè)重于從軟件開發(fā)過程的全局角度完整地實現(xiàn)網(wǎng)上購物系統(tǒng)。
一個案例由背景、功能演示、實現(xiàn)步驟、代碼解釋四部分組成,可為J2EE課程提供多個互為補充的不同類型案例。同時,對案例涉及到的先修課程或者講述過的內(nèi)容應(yīng)舉一反三,將知識點的傳授貫穿于整個教學(xué)活動過程中,使學(xué)生能夠溫故而知新。
3.3實踐為主的教學(xué)方式
相對于普通的計算機基礎(chǔ)課程,J2EE課程更偏向于應(yīng)用?,F(xiàn)有的J2EE工具較多,建議在教學(xué)中采用主流的開源工具:Eclipse+Tomcat+JBoss+MySQL。市面上的J2EE教材往往只是側(cè)重于某一方面,建議從幾本教材中選取相應(yīng)的內(nèi)容進(jìn)行教學(xué)。在內(nèi)容講解上,應(yīng)根據(jù)高職學(xué)生的特點,強調(diào)知識的可應(yīng)用性,把握住理論傳授的深度,不糾纏在概念細(xì)節(jié)方面。教學(xué)過程以實踐為主線、理論為輔,通過實踐來逐步領(lǐng)會理論知識,對此應(yīng)為實踐安排更多的課時。教學(xué)方法是綜合采用多種教學(xué)手段實施項目案例的講解和實踐指導(dǎo),下面對重點部分作討論:
項目案例應(yīng)先演示后再詳細(xì)講解,以便學(xué)生有直觀的印象和體會。知識點的傳授圍繞著“為什么引出該知識點,他解決了什么問題、有哪些主要特性、怎樣使用,與相似知識點有何差異”。為了將知識點講透,應(yīng)給出工作任務(wù)的多種解決方法,并對方法的優(yōu)缺點進(jìn)行對比說明,同時列舉典型的不當(dāng)或者錯誤代碼,以加深學(xué)生的認(rèn)識。
實踐指導(dǎo)環(huán)節(jié),應(yīng)耐心指導(dǎo)學(xué)生,及時解決學(xué)生上機實踐中出現(xiàn)的問題,鼓勵他們多動手、多思考,引導(dǎo)他們積極自我總結(jié)開發(fā)經(jīng)驗。同時需要對實踐內(nèi)容把好關(guān),為學(xué)生提供清晰的實現(xiàn)步驟和注意事項。先讓學(xué)生參加規(guī)模較小的練習(xí),到后面再逐步深入實現(xiàn)一個規(guī)模較大的完整系統(tǒng)。
3.4分側(cè)重點的評價方法
根據(jù)J2EE的進(jìn)階式課程結(jié)構(gòu),對每一階段的學(xué)習(xí)效果應(yīng)有相應(yīng)的評估標(biāo)準(zhǔn):
(1) 對于第一、二階段的教學(xué),建議采取平時作業(yè)占30%,考試成績占70%,考試由筆試和上機操作組成,強調(diào)對基礎(chǔ)知識,基本技能的考核;
(2) 對于第三階段的教學(xué),建議采取平時項目占70%,考試成績占30%,考試以上機操作為主,強調(diào)平時訓(xùn)練的重要性,側(cè)重對學(xué)生個人的綜合技能考核;
(3) 對于第四階段的教學(xué),建議采取平時項目占100%,考核學(xué)生團(tuán)隊合作共同完成一個完整項目的能力。以學(xué)生答辯的形式進(jìn)行,教師和其它學(xué)生團(tuán)隊一起對其進(jìn)行評價,以達(dá)到相互學(xué)習(xí)提高的目的。
4對職業(yè)素質(zhì)的綜合培養(yǎng)
為了取得更好的J2EE教學(xué)效果,讓學(xué)生真正掌握一項能夠服務(wù)社會的技能,順利走上軟件開發(fā)的職業(yè)道路,除了知識的傳授之外,在教學(xué)實施中還應(yīng)對學(xué)生進(jìn)行以下幾方面的職業(yè)素質(zhì)培養(yǎng):
(1) 培養(yǎng)學(xué)生的學(xué)習(xí)興趣:從學(xué)生實際情況出發(fā),充分調(diào)動他們的學(xué)習(xí)主動性,并消除他們的畏難心理,是課程教學(xué)成功實施的關(guān)鍵。針對學(xué)生沒有企業(yè)工作經(jīng)驗、對企業(yè)級的應(yīng)用開發(fā)感覺陌生、基礎(chǔ)薄弱的情況,應(yīng)采取從簡到難的步驟進(jìn)行傳授,多以形象的圖例從多個角度來啟發(fā)他們的想象力,開闊他們的思路和眼界;
(2) 培養(yǎng)學(xué)生的自學(xué)能力:引導(dǎo)學(xué)生借助書籍、互聯(lián)網(wǎng)等工具獨立解決學(xué)習(xí)中遇到的問題,教導(dǎo)他們養(yǎng)成良好的學(xué)習(xí)方法,扎實掌握實現(xiàn)一個軟件系統(tǒng)的要領(lǐng),以便于將來即使是使用其他工具語言來開發(fā)軟件,也能夠快速上手;
(3) 培養(yǎng)學(xué)生的耐心和細(xì)心:用J2EE開發(fā)系統(tǒng)的代碼
量往往較大,一個不經(jīng)意的錯誤可能需要花費幾天的時間才能夠調(diào)試出來,因此既要求學(xué)生具有編寫良好規(guī)范代碼的習(xí)慣,也需要他們有吃苦的精神,調(diào)試程序時,能夠沉得住氣,仔細(xì)查找錯誤;
(4) 培養(yǎng)學(xué)生的團(tuán)隊合作精神:模擬軟件公司的開發(fā)組織形式和項目管理方法,將學(xué)生分為若干個小組,每個成員在小組當(dāng)中充當(dāng)一定的角色,例如項目經(jīng)理、系統(tǒng)分析師、程序員等,讓學(xué)生在團(tuán)隊的合作中完成一個軟件系統(tǒng)的開發(fā)。鼓勵各個團(tuán)隊之間相互進(jìn)行競爭,以便讓學(xué)生在適當(dāng)?shù)膲毫Νh(huán)境下更好地得到成長。
5結(jié)束語
為了培養(yǎng)具有競爭力的程序員,滿足社會對計算機人
才的需求,應(yīng)增強學(xué)生對應(yīng)用型知識的掌握能力。J2EE是當(dāng)前主流的軟件開發(fā)技術(shù),對學(xué)習(xí)的要求較高,需綜合運用編程語言、數(shù)據(jù)庫、軟件工程、計算機網(wǎng)絡(luò)等多門知識,積極探索該項技術(shù)的教學(xué)方法迫切且非常有意義。本文下一步的工作是在教學(xué)中繼續(xù)深入探索基于工作任務(wù)的J2EE教學(xué)方法,使學(xué)生更好地掌握運用J2EE技術(shù)進(jìn)行企業(yè)級系統(tǒng)開發(fā)的相關(guān)知識和技能,從而達(dá)到以點帶面、觸類旁通的效果,為IT行業(yè)培養(yǎng)更多的技術(shù)應(yīng)用型合格人才。
參考文獻(xiàn):
[1] Sun Microsystems. The Java EE 5 Tutorial For Sun Java SystemApplication Server 9.1[EB/OL]. http://www.sun.com.
[2] 姜大源.當(dāng)代德國職業(yè)教育主流教學(xué)思想研究[M].北京:清華大學(xué)出版社,2007.
[3] 趙強.J2EE應(yīng)用開發(fā)(WebLogic+JBuilder)[M].2版. 北京:電子工業(yè)出版社,2006.