基于UML的“JSP/Servlet Web應(yīng)用程序設(shè)計(jì)”教學(xué)案例
(作者未知) 2010/9/10
(接上頁)層、控制層。同時(shí)簡(jiǎn)單闡述MVC模式的處理過程:首先用戶在視圖提供的界面上發(fā)出請(qǐng)求,然后視圖把請(qǐng)求轉(zhuǎn)發(fā)給控制器,控制器調(diào)用相應(yīng)的模型來處理用戶請(qǐng)求,模型進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,并返回?cái)?shù)據(jù)。最后控制器調(diào)用相應(yīng)的視圖來顯示模型返回的數(shù)據(jù)。
(2)基于MVC模式,展示“登錄驗(yàn)證模塊”的運(yùn)行效果,講授案例解決方法,進(jìn)行引導(dǎo)教學(xué)。
首先,需向?qū)W生展示“登錄驗(yàn)證模塊”的運(yùn)行效果。如圖2所示:
之所以采用這個(gè)相對(duì)簡(jiǎn)單案例,是因?yàn)楹芏鄬W(xué)生都對(duì)登錄驗(yàn)證模塊有很強(qiáng)的感性認(rèn)識(shí),這樣,不需要花很多的時(shí)間來理解系統(tǒng)包含的業(yè)務(wù)知識(shí)。學(xué)生可著眼于使用UML進(jìn)行建模的過程,了解系統(tǒng)的開發(fā)過程,綜合利用所學(xué)的各門知識(shí)完成編碼設(shè)計(jì)。
3)利用UML軟件建模方法分析設(shè)計(jì)“登錄驗(yàn)證模塊”,設(shè)計(jì)其用例模型。
用例模型定義系統(tǒng)做什么,是用來獲取系統(tǒng)需求的有效手段。在這里需指導(dǎo)學(xué)生尋找用例模型中的“參與者”及“用例”,并確定參與者和用例之間的關(guān)系。使用圖3所示的用例圖來描述其關(guān)系。然而使用UML進(jìn)行系統(tǒng)建模,并非只是意味著畫出UML用例圖,用例文檔說明是同樣重要的,需向?qū)W生講明,同時(shí)根據(jù)用例文檔畫出驗(yàn)證用戶、修改密碼的活動(dòng)。
(4)指導(dǎo)學(xué)生融匯所學(xué)知識(shí),完成“登錄驗(yàn)證模塊”的數(shù)據(jù)庫設(shè)計(jì)、網(wǎng)站頁面設(shè)計(jì)框架。
在完成了用例模型的設(shè)計(jì)及活動(dòng)圖設(shè)計(jì)之后,學(xué)生應(yīng)已基本明了“登錄驗(yàn)證模塊”的需求,可以進(jìn)行系統(tǒng)設(shè)計(jì),首先完成的是數(shù)據(jù)庫設(shè)計(jì),結(jié)合大一所開設(shè)的數(shù)據(jù)庫課程,選擇合適的數(shù)據(jù)庫產(chǎn)品,設(shè)計(jì)出用戶表如下:
然后指導(dǎo)學(xué)生,通過網(wǎng)頁設(shè)計(jì)工具完成前臺(tái)JSP網(wǎng)頁的設(shè)計(jì),有需要時(shí)可輔之畫圖軟件及動(dòng)畫設(shè)計(jì)軟件。
(5)利用UML軟件建模方法分析設(shè)計(jì)“登錄驗(yàn)證模塊”,設(shè)計(jì)其類圖模型、順序圖模型。
在學(xué)生已明了“登錄驗(yàn)證模塊”的基本工作流,已完成前臺(tái)頁面及后臺(tái)數(shù)據(jù)庫設(shè)計(jì)之后,結(jié)合之前所講解的MVC模式,進(jìn)行類圖、順序圖模型設(shè)計(jì)。
首先設(shè)計(jì)登錄的正常事件流:參與者請(qǐng)求邊界類index.jsp顯示登錄頁面。然后輸入用戶名和密碼并將它們提交給系統(tǒng)。index.jsp請(qǐng)求LoginServlet.java程序控制對(duì)象來驗(yàn)證登錄的事件流。為了滿足這個(gè)請(qǐng)求,LoginServlet.java對(duì)象請(qǐng)求LoginDAO.java對(duì)象來尋找用戶名代表的User對(duì)象。一旦LoginDAO.java找到正確的User,就請(qǐng)求它來驗(yàn)證密碼。LoginServlet.java收到驗(yàn)證結(jié)果之后,如果這個(gè)對(duì)象收到了一個(gè)驗(yàn)證通過的結(jié)果,那它就顯示歡迎信息,這個(gè)工作流結(jié)束。
最后指導(dǎo)學(xué)生完成“密碼無效的可選事件流”順序圖,“未知用戶的可選事件流”順序圖,“登錄驗(yàn)證模塊”類圖的設(shè)計(jì)。
(6)指導(dǎo)學(xué)生根據(jù)建模設(shè)計(jì)進(jìn)行實(shí)際編碼。
在學(xué)生充分理解“登錄驗(yàn)證模塊”的類圖,順序圖模型的基礎(chǔ)上,結(jié)合Java的集成工具,進(jìn)行代碼設(shè)計(jì),在指導(dǎo)學(xué)生進(jìn)行代碼設(shè)計(jì)過程中,注意代碼規(guī)范及設(shè)計(jì)原則。設(shè)計(jì)出的MyEclipse中的基本框架如下圖7所示:
當(dāng)整個(gè)“用戶登錄”用例功能模塊完成后,可將“密碼修改”用例當(dāng)成作業(yè)布置給學(xué)生獨(dú)立完成,以加深學(xué)生的認(rèn)識(shí)及理解,提高動(dòng)手能力。
(7)基于“登錄驗(yàn)證模塊”引導(dǎo)學(xué)生分析比較B/S模式與桌面應(yīng)用模式開發(fā)的異同點(diǎn)。
最后可使用以下圖8示做總結(jié),并向?qū)W生提出思考性問題:
①當(dāng)開發(fā)Java桌面應(yīng)用系統(tǒng)時(shí)如何使用MVC模式?控制層如何在MVC模式中體現(xiàn)?
②如何將上面的Java Web項(xiàng)目修改最少的代碼,改編成為一個(gè)桌面應(yīng)用系統(tǒng)中的“登錄驗(yàn)證模塊”。
通過登錄驗(yàn)證模塊的完整實(shí)現(xiàn)將低年級(jí)所學(xué)習(xí)的各門不同的學(xué)科有效串聯(lián),避免割裂。但需注意一點(diǎn),傳統(tǒng)的教學(xué)模式下教師總是按部就班地組織教學(xué),學(xué)生也只是按部就班地接收。但在真實(shí)項(xiàng)目的開發(fā)中,實(shí)現(xiàn)同一功能卻有多種方法,故在教學(xué)過程中,要避免通過一味的講解而扼殺了學(xué)生主動(dòng)思考的能力,在整個(gè)項(xiàng)目講解過程中,以劃分好的功能模塊為基礎(chǔ)提出任務(wù),引入“啟發(fā)式”教學(xué)法,深入分析任務(wù),特別是對(duì)任務(wù)中涉及的相關(guān)知識(shí)進(jìn)行分析引入,讓學(xué)生能在掌握相關(guān)知識(shí)的基礎(chǔ)上完成任務(wù),但是不能拘泥于任務(wù)給出的功能,引導(dǎo)鼓勵(lì)學(xué)生通過分析、討論、比較進(jìn)行創(chuàng)新。
參考文獻(xiàn)
[1]張少龍.高職Java課程改革中“三個(gè)如何”問題的思考與實(shí)踐[J].計(jì)算機(jī)教育,2009(5).
[2]戴紅.“C程序設(shè)計(jì)”課程教學(xué)內(nèi)容的模塊化設(shè)計(jì)[J].計(jì)算機(jī)教育,2009(8).
[3]羅凌.基于項(xiàng)目驅(qū)動(dòng)的“ASP.NET程序設(shè)計(jì)(未完,下一頁)
|