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