朱冬玲
摘 要:校本項(xiàng)目以當(dāng)?shù)刂苓吷鐓^(qū)或?qū)W校為背景,項(xiàng)目的結(jié)果能應(yīng)用于學(xué)生的學(xué)習(xí)和生活,作為教學(xué)的項(xiàng)目載體有著獨(dú)到優(yōu)勢(shì)。介紹MVC框架開(kāi)發(fā)技術(shù)課程采用的多個(gè)小型校本項(xiàng)目和一個(gè)校本貫穿項(xiàng)目——廣州城市職業(yè)學(xué)院學(xué)生緩考網(wǎng)上申請(qǐng)與審批系統(tǒng)的開(kāi)發(fā)過(guò)程,詳述校本貫穿項(xiàng)目的設(shè)計(jì)思路要點(diǎn)、項(xiàng)目目標(biāo)設(shè)計(jì)、開(kāi)發(fā)模型選擇、項(xiàng)目單元設(shè)計(jì)及項(xiàng)目教學(xué)實(shí)施情況。
關(guān)鍵詞:MVC框架;項(xiàng)目教學(xué)法;校本項(xiàng)目
文章編號(hào):1672-5913(2017)07-0089-03
中圖分類號(hào):G642
0 引 言
項(xiàng)目教學(xué)法以建構(gòu)主義和情景學(xué)習(xí)理論為理論基礎(chǔ),是以完成項(xiàng)目、職業(yè)體驗(yàn)和解決問(wèn)題為主的教學(xué)方法[1],在高職軟件開(kāi)發(fā)類課程中被廣泛采用。MVC框架開(kāi)發(fā)技術(shù)課程是軟件技術(shù)專業(yè)的專業(yè)核心課程,也是Java平臺(tái)系列課程中的一門。廣州城市職業(yè)學(xué)院采用“2+1”人才培養(yǎng)模式(2年校內(nèi)課程+1年頂崗實(shí)習(xí))后,為壓縮校內(nèi)課程總學(xué)時(shí),把JSP程序設(shè)計(jì)課程和J2EE應(yīng)用開(kāi)發(fā)(輕量級(jí)架構(gòu))課程整合成MVC框架開(kāi)發(fā)技術(shù)課程。因此,該課程的課程內(nèi)容包括兩部分:一是Java Web編程的技術(shù)基礎(chǔ);二是一個(gè)有代表性的MVC開(kāi)發(fā)框架。目前,我們?cè)谡n程后半部分講授Struts 2框架。
1 校本項(xiàng)目的設(shè)計(jì)思路
1.1 校本教學(xué)資源
校本教學(xué)資源體現(xiàn)了學(xué)校的辦學(xué)理念、教育哲學(xué)、教學(xué)經(jīng)驗(yàn)和實(shí)際環(huán)境[2],能較好地服務(wù)于學(xué)生、教師和學(xué)校的發(fā)展需要。近年來(lái),很多高職院校十分重視校本教學(xué)資源的建設(shè),但是關(guān)注點(diǎn)主要集中在粒度較大的教學(xué)資源,如校本課程、校本教材等,而一些粒度較小的教學(xué)資源,如校本項(xiàng)目、校本案例、校本題庫(kù)等,則還未得到足夠重視。
在很多軟件開(kāi)發(fā)類課程中,不同院校和課本采用的項(xiàng)目類似,如成績(jī)管理系統(tǒng)、留言板系統(tǒng)、網(wǎng)上商店等屢見(jiàn)不鮮。這些常見(jiàn)項(xiàng)目集中體現(xiàn)了典型的軟件技術(shù),不失為教學(xué)的上佳范例;但是又使得學(xué)生有網(wǎng)上抄襲的可乘之機(jī),不利于培養(yǎng)學(xué)生的創(chuàng)新思維,項(xiàng)目的開(kāi)發(fā)過(guò)程和結(jié)果也并不適合作為學(xué)生學(xué)業(yè)評(píng)價(jià)的依據(jù)。校本項(xiàng)目具有自己的鮮明特色,結(jié)合學(xué)生的生活實(shí)際和能力水平,以培養(yǎng)學(xué)生的學(xué)習(xí)能力、實(shí)踐能力、創(chuàng)新能力和職業(yè)素養(yǎng)為目的。
1.2 校本項(xiàng)目設(shè)計(jì)要點(diǎn)
項(xiàng)目的選擇與設(shè)計(jì)是項(xiàng)目教學(xué)法成功與否的關(guān)鍵。MVC框架開(kāi)發(fā)技術(shù)課程采用多個(gè)校本項(xiàng)目,包括多個(gè)小型項(xiàng)目和一個(gè)貫穿項(xiàng)目。貫穿項(xiàng)目是指貫穿整個(gè)課程或課程較多部分的綜合項(xiàng)目,在培養(yǎng)學(xué)生職業(yè)崗位綜合能力方面有顯著優(yōu)勢(shì)。
課程前半部分采用小型項(xiàng)目與貫穿項(xiàng)目相結(jié)合的方式進(jìn)行教學(xué)。小型校本項(xiàng)目有學(xué)生休閑活動(dòng)調(diào)查、專業(yè)班級(jí)人數(shù)查詢、最受歡迎課程投票、班級(jí)通知網(wǎng)站等,這些項(xiàng)目比較簡(jiǎn)單,可由學(xué)生獨(dú)立完成,旨在使學(xué)生能在較短時(shí)間內(nèi)掌握J(rèn)SP基本語(yǔ)法、內(nèi)置對(duì)象、JavaBean、Servlet等Java Web編程的技術(shù)基礎(chǔ),為進(jìn)一步學(xué)習(xí)MVC框架做好準(zhǔn)備。貫穿項(xiàng)目從第5周開(kāi)始引入并貫穿至學(xué)期末,由學(xué)生組成開(kāi)發(fā)小組進(jìn)行開(kāi)發(fā),每組5~6人。
課程后半部分用貫穿項(xiàng)目組織教學(xué)。貫穿項(xiàng)目應(yīng)該具有實(shí)用性、典型性、覆蓋性、綜合性、趣味性、挑戰(zhàn)性和可行性[3]。作為Java平臺(tái)課程鏈的末端課程,校本貫穿項(xiàng)目的設(shè)計(jì)還考慮了以下幾點(diǎn)。
(1)為學(xué)生自主進(jìn)行軟件需求分析和系統(tǒng)設(shè)計(jì)預(yù)留空間。課程前半部分的小型項(xiàng)目都由教師給出明確的軟件需求和系統(tǒng)設(shè)計(jì),學(xué)生只需要編程實(shí)現(xiàn)指定功能。進(jìn)行真實(shí)項(xiàng)目開(kāi)發(fā)時(shí),需要通過(guò)需求分析來(lái)確定軟件需求,系統(tǒng)設(shè)計(jì)也有很大的靈活性,因此,為了縮短學(xué)與做的距離,貫穿項(xiàng)目只明確系統(tǒng)的基本功能,而在系統(tǒng)運(yùn)作流程、功能需求、數(shù)據(jù)需求、系統(tǒng)設(shè)計(jì)等多個(gè)方面給學(xué)生預(yù)留自由發(fā)揮的空間。
(2)鼓勵(lì)學(xué)生綜合運(yùn)用多門課程的技術(shù)。MVC框架開(kāi)發(fā)技術(shù)課程只涉及Web后端編程技術(shù),而一個(gè)Web應(yīng)用系統(tǒng)的開(kāi)發(fā),即使不考慮軟件工程的規(guī)范和要求,也必然涉及數(shù)據(jù)庫(kù)技術(shù)、Web前端技術(shù)甚至圖形圖像處理技術(shù)。為了培養(yǎng)學(xué)生的職業(yè)崗位綜合能力,我們?cè)诜謹(jǐn)?shù)評(píng)定上為采用Web前端技術(shù)設(shè)置獎(jiǎng)勵(lì)分?jǐn)?shù),以鼓勵(lì)學(xué)生綜合運(yùn)用多門課程的技術(shù)。
(3)為學(xué)生的探究性自主學(xué)習(xí)預(yù)留拓展空間。我們?cè)谛1矩灤╉?xiàng)目具備基本功能的基礎(chǔ)上,還設(shè)計(jì)了一些擴(kuò)充功能,供學(xué)有余力的開(kāi)發(fā)小組選擇實(shí)現(xiàn),讓優(yōu)秀學(xué)生在探究性自主學(xué)習(xí)中培養(yǎng)創(chuàng)新能力。
2 校本貫穿項(xiàng)目的設(shè)計(jì)
2.1 項(xiàng)目目標(biāo)設(shè)計(jì)
廣州城市職業(yè)學(xué)院學(xué)生緩考網(wǎng)上申請(qǐng)與審批系統(tǒng)的基本功能包括以下幾方面。
(1)申請(qǐng)人網(wǎng)上提交緩考申請(qǐng)。緩考申請(qǐng)的數(shù)據(jù)內(nèi)容與數(shù)據(jù)形式由各開(kāi)發(fā)小組自行分析確定。
(2)系領(lǐng)導(dǎo)網(wǎng)上瀏覽并審批緩考申請(qǐng)。系領(lǐng)導(dǎo)登錄系統(tǒng)必須作身份校驗(yàn),身份校驗(yàn)和審批的實(shí)現(xiàn)方式由各開(kāi)發(fā)小組自行分析確定。
(3)教師與學(xué)生網(wǎng)上瀏覽和查詢緩考申請(qǐng)。瀏覽與查詢時(shí)信息的組織方式由各開(kāi)發(fā)小組自行決定。
有能力的開(kāi)發(fā)小組可以考慮實(shí)現(xiàn)下述擴(kuò)充功能。
(1)教務(wù)處領(lǐng)導(dǎo)網(wǎng)上瀏覽與審批功能,即把一級(jí)審批改為與實(shí)際情況完全相符的兩級(jí)審批。審批的實(shí)現(xiàn)方式由各開(kāi)發(fā)小組自行分析確定。
(2)證明材料的上傳和下載功能。申請(qǐng)人可以把證明材料作為文件上傳,通常是圖片文件,領(lǐng)導(dǎo)審批時(shí)可以下載并查看證明材料。
(3)郵件通知功能。申請(qǐng)人提交申請(qǐng)時(shí)須填寫郵箱地址,領(lǐng)導(dǎo)審批后,系統(tǒng)會(huì)自動(dòng)發(fā)送郵件通知申請(qǐng)人。
(4)用戶管理功能。可以僅增加領(lǐng)導(dǎo)用戶的管理功能,也可以增加領(lǐng)導(dǎo)用戶、學(xué)生用戶、教師用戶和管理員用戶的管理功能。
2.2 開(kāi)發(fā)模型選擇
校本貫穿項(xiàng)目包含的工作任務(wù)較多,如果在開(kāi)發(fā)中采用瀑布模型,則在項(xiàng)目接近最后階段才能得到可運(yùn)行的系統(tǒng),這樣不僅會(huì)打擊學(xué)生學(xué)習(xí)的積極性,還可能因累積的程序邏輯錯(cuò)誤數(shù)量超出學(xué)生的程序調(diào)試能力而導(dǎo)致項(xiàng)目失敗。
為了激發(fā)和保持學(xué)生的學(xué)習(xí)興趣,也為了便于學(xué)生調(diào)試程序代碼,我們?cè)谛1矩灤╉?xiàng)目開(kāi)發(fā)中采用了螺旋模型,即在開(kāi)發(fā)過(guò)程中有多個(gè)不同的軟件版本,最初的版本是可運(yùn)行的完整系統(tǒng),每次迭代后又都會(huì)得到一個(gè)功能更強(qiáng)的軟件版本。
2.3 項(xiàng)目單元設(shè)計(jì)
把整個(gè)項(xiàng)目劃分為8個(gè)項(xiàng)目單元,且第4—8單元是主體單元,各單元設(shè)計(jì)如下。
1)軟件需求分析。
新的支撐知識(shí):無(wú)。
項(xiàng)目單元結(jié)果:系統(tǒng)用例圖及用例文檔。
2)數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)施。
新的支撐知識(shí):①M(fèi)ySQL5.6的安裝與使用;②MySQL腳本文件的編寫。
項(xiàng)目單元結(jié)果:①數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書(shū);②創(chuàng)建數(shù)據(jù)庫(kù)和表的MySQL腳本文件。
3)系統(tǒng)概要設(shè)計(jì)。
新的支撐知識(shí):DAO設(shè)計(jì)模式。
項(xiàng)目單元結(jié)果:①類圖;②構(gòu)件圖。
4)用JSP編寫緩考網(wǎng)上申請(qǐng)與審批系統(tǒng)。
新的支撐知識(shí):①JavaBean;②JDBC編程。
工作步驟:①在Eclipse中創(chuàng)建動(dòng)態(tài)Web項(xiàng)目,設(shè)置好數(shù)據(jù)庫(kù)連接池;②編寫數(shù)據(jù)庫(kù)連接類;③編寫各VO類;④編寫各DAO接口;⑤編寫各DAO實(shí)現(xiàn)類;⑥編寫工廠類;⑦創(chuàng)建各JSP頁(yè)面。
項(xiàng)目單元結(jié)果:校本貫穿項(xiàng)目版本1。
5)用Struts 2框架改寫緩考網(wǎng)上申請(qǐng)與審批系統(tǒng)。
新的支撐知識(shí):①M(fèi)VC設(shè)計(jì)模式;②Struts 2類庫(kù);③Struts 2核心控制器;④Struts 2的動(dòng)作(Action)類;⑤Struts 2的配置文件;⑥把請(qǐng)求參數(shù)綁定到Action屬性的幾種方法;⑦ActionContext類。
工作步驟:①?gòu)?fù)制項(xiàng)目并加入Struts 2包;②創(chuàng)建各Action類;③創(chuàng)建struts.xml配置文件;④在web.xml中配置好核心控制器;⑤逐一修改各個(gè)JSP文件,在JSP文件中使用Action類。
項(xiàng)目單元結(jié)果:校本貫穿項(xiàng)目版本2。
6)用Struts 2標(biāo)簽改寫緩考網(wǎng)上申請(qǐng)與審批系統(tǒng)。
新的支撐知識(shí):①OGNL表達(dá)式;②Struts 2的常用標(biāo)簽;③模板與主題。
工作步驟:①?gòu)?fù)制項(xiàng)目;②逐一修改各個(gè)JSP文件,在JSP文件中使用Struts 2標(biāo)簽。
項(xiàng)目單元結(jié)果:校本貫穿項(xiàng)目版本3。
7)用攔截器實(shí)現(xiàn)身份認(rèn)證。
新的支撐知識(shí):①攔截器的作用;②自定義攔截器;③攔截器的配置與使用。
工作步驟:①?gòu)?fù)制項(xiàng)目;②創(chuàng)建攔截器類;③在struts.xml中配置攔截器。
項(xiàng)目單元結(jié)果:校本貫穿項(xiàng)目版本4。
8)增加輸入驗(yàn)證功能。
新的支撐知識(shí):①驗(yàn)證配置文件;②常用的內(nèi)置驗(yàn)證器;③手工驗(yàn)證。
工作步驟:①?gòu)?fù)制項(xiàng)目;②創(chuàng)建驗(yàn)證配置文件;③修改相關(guān)的JSP文件,在JSP文件中輸出驗(yàn)證出錯(cuò)信息;④必要的情況下增加手工驗(yàn)證。
項(xiàng)目單元結(jié)果:校本貫穿項(xiàng)目版本5。
3 校本貫穿項(xiàng)目的實(shí)施
校本貫穿項(xiàng)目在實(shí)施中有兩個(gè)特點(diǎn)。
1)課程采用貫穿項(xiàng)目雙線并行。
從課程第5周開(kāi)始,學(xué)生在課程學(xué)習(xí)中同步開(kāi)發(fā)兩個(gè)貫穿項(xiàng)目。一個(gè)是課本上作為貫穿案例的留言板系統(tǒng)[4],另一個(gè)則是校本貫穿項(xiàng)目。留言板系統(tǒng)在教材中就有絕大部分的程序代碼,可作為學(xué)習(xí)案例使用,由學(xué)生獨(dú)立開(kāi)發(fā),開(kāi)發(fā)結(jié)果不作為學(xué)業(yè)成績(jī)的依據(jù);貫穿項(xiàng)目沒(méi)有現(xiàn)成的標(biāo)準(zhǔn)答案,有很大的自由發(fā)揮空間,項(xiàng)目開(kāi)發(fā)過(guò)程和結(jié)果是學(xué)生學(xué)業(yè)成績(jī)的主要依據(jù)。
2)在項(xiàng)目開(kāi)發(fā)過(guò)程中設(shè)置若干個(gè)關(guān)鍵檢查點(diǎn)。
學(xué)生是項(xiàng)目開(kāi)發(fā)的主體,教師主要起指導(dǎo)和咨詢作用。由于學(xué)生缺少項(xiàng)目開(kāi)發(fā)經(jīng)驗(yàn),在開(kāi)發(fā)過(guò)程中容易出現(xiàn)偏差,需要教師指導(dǎo)糾偏,尤其是及時(shí)糾正項(xiàng)目開(kāi)發(fā)前期出現(xiàn)的錯(cuò)誤,因此,我們?cè)O(shè)置了4個(gè)關(guān)鍵檢查點(diǎn),分別安排在項(xiàng)目單元1結(jié)束時(shí)、項(xiàng)目單元2結(jié)束時(shí)、項(xiàng)目單元3結(jié)束時(shí)以及項(xiàng)目單元4完成JSP界面設(shè)計(jì)時(shí)這4個(gè)時(shí)間點(diǎn)上,教師在關(guān)鍵檢查點(diǎn)逐組檢查把關(guān),及時(shí)對(duì)學(xué)生項(xiàng)目開(kāi)發(fā)進(jìn)行中出現(xiàn)的問(wèn)題進(jìn)行指導(dǎo)糾偏。其他時(shí)間點(diǎn)上,教師主要充當(dāng)咨詢者的角色,回答學(xué)生的疑難問(wèn)題。我們發(fā)現(xiàn),學(xué)生容易出現(xiàn)的錯(cuò)誤主要有以下幾個(gè)。
(1)做需求分析時(shí),數(shù)據(jù)需求和功能需求不匹配,對(duì)數(shù)據(jù)需求考慮得不夠充分,使得數(shù)據(jù)內(nèi)容過(guò)少而不足以支撐軟件功能。針對(duì)這種情況,教師須首先要求學(xué)生認(rèn)真編寫用例文檔,在用例文檔中列出用例界面的全部界面元素,然后要求學(xué)生分析輸出界面元素的數(shù)據(jù)來(lái)源,并提醒他們數(shù)據(jù)不會(huì)是無(wú)源之水。
(2)數(shù)據(jù)庫(kù)表的設(shè)計(jì)不合理。指出存在的問(wèn)題后,教師須要求學(xué)生自行復(fù)習(xí)數(shù)據(jù)庫(kù)課程的知識(shí),重新進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。
(3)系統(tǒng)界面設(shè)計(jì)不合理。在教務(wù)處網(wǎng)站下載的緩考申請(qǐng)表中,“學(xué)生所在系意見(jiàn)”和“教務(wù)處意見(jiàn)”這兩欄須由領(lǐng)導(dǎo)填寫具體內(nèi)容。學(xué)生由于缺乏開(kāi)發(fā)經(jīng)驗(yàn),在進(jìn)行界面設(shè)計(jì)時(shí)依葫蘆畫瓢,用文本框控件呈現(xiàn)讓領(lǐng)導(dǎo)審批的兩欄內(nèi)容,這將導(dǎo)致難于準(zhǔn)確獲取審批信息。這種錯(cuò)誤的普遍程度令人意外,教師應(yīng)在全班提醒各開(kāi)發(fā)小組,對(duì)于只有同意、不同意等幾個(gè)離散狀態(tài)的數(shù)據(jù)輸入,應(yīng)該使用單選按鈕組、下拉列表或多個(gè)提交按鈕。
大多數(shù)開(kāi)發(fā)小組都對(duì)校本貫穿項(xiàng)目表現(xiàn)出較大的興趣。項(xiàng)目小組長(zhǎng)根據(jù)各小組成員的特長(zhǎng),安排他們做圖像處理、Web前端編程、Web后端編程、文檔編寫等工作,成員之間既有分工,又有合作。課程結(jié)束時(shí),項(xiàng)目完成情況良好,所有開(kāi)發(fā)小組都實(shí)現(xiàn)了系統(tǒng)的基本功能且都在項(xiàng)目中采用了Web前端技術(shù),而實(shí)現(xiàn)兩級(jí)審批或證明材料上傳下載的小組各占一半左右,還有一組實(shí)現(xiàn)了用戶管理功能,但是沒(méi)有小組實(shí)現(xiàn)郵件通知功能。
4 結(jié) 語(yǔ)
廣州城市職業(yè)學(xué)院2014級(jí)軟件技術(shù)專業(yè)的教學(xué)實(shí)踐表明,校本項(xiàng)目源于學(xué)生的學(xué)習(xí)和生活環(huán)境,充分考慮到學(xué)生的實(shí)際技術(shù)水平,能激發(fā)學(xué)生的學(xué)習(xí)興趣,明顯提升他們的編程水平,豐富其軟件開(kāi)發(fā)經(jīng)驗(yàn)的同時(shí)培養(yǎng)創(chuàng)新能力,并為學(xué)業(yè)評(píng)價(jià)提供較好的依據(jù),從而提高課程的整體教學(xué)質(zhì)量。
參考文獻(xiàn):
[1] 陳旭輝, 張榮勝. 項(xiàng)目教學(xué)的項(xiàng)目開(kāi)發(fā)、教學(xué)設(shè)計(jì)及其應(yīng)用[J]. 中國(guó)職業(yè)技術(shù)教育, 2009(8): 59-61.
[2] 熊健民, 郭興紅. 職業(yè)教育校本教材建設(shè)研究[J]. 長(zhǎng)江大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版), 2010(1): 67-71.
[3] 戴士弘. 職業(yè)教育課程教學(xué)改革[M]. 北京: 清華大學(xué)出版社, 2007: 40.
[4] 李文超, 趙新慧, 石元博. Web應(yīng)用程序開(kāi)發(fā)技術(shù): JSP+Struts 2[M]. 北京: 清華大學(xué)出版社, 2013: 69-71.
(編輯:宋文婷)