您现在正在浏览:首页 > 职教文章 > 职教论文 > 基于UML的“JSP/Servlet Web应用程序设计”教学案例

基于UML的“JSP/Servlet Web应用程序设计”教学案例

日期: 2010-6-19 3:36:11 浏览: 19 来源: 学海网收集整理 作者: 佚名

摘要:本文针对“JSP/Servlet Web应用程序设计”课程中传统教学法存在的弊端,通过“用户登录验证模块”的教学案例设计讲解如何采用UML软件建模来整合课程内容、重构课程体系。使学生能够将眼光不仅仅拘泥在程序设计的代码细节上,同时也理解软件工程思想,融会贯通所学知识为己所用。
   关键词:UML软件建模;MVC模式;JSP/Servlet Web应用程序设计;教学案例;登录验证模块
   1 “JSP/Servlet Web应用程序设计”课程教学现状
   针对于当前软件人才的需求现状,目前高职院校的软件专业开始主要培养面向“软件蓝领”岗位的高技能应用型人才,开始注重“面向应用,突出能力”,开设了各种关于Java的应用课程,试图提高计算机软件专业高职生的行业竞争力。我院也针对市场需求对软件开发专业课程体系进行不断完善,逐渐形成了一个直接面向软件企业Java开发岗位的系列课程。如Java初级程序设计、Java高级程序设计、JSP/Servlet Web应用程序设、Web应用程序编码—Struts、软件开发项目实训等。
   但如何将这一系列课程有效地进行组织,使培养的学生能够更好地适应企业Java软件开发岗位的能力需求,是Java课程群要解决的主要问题。以“JSP/Servlet Web应用程序设计”为例,它是Java课程体系中承上启下的核心课程,它的教学效果直接影响到后续课程的教学。然而,目前该课程的教学存在着以下几点不足,严重影响学生能力的培养。
   (1)从课程体系来看,由于高职院校的学制较短,软件开发专业通常在低年级学过一门程序语言之后,尚未熟练理解运用,而直接接触Web 应用程序编码,很多语法和机制难以理解,继而影响学习效果。
   (2)从教学方式来看,仍采用的是传统的教学方法,在分析基于Java体系的Web应用程序的知识结构时,采用循序渐进地讲授一门课程的知识点,学生按部就班地学习知识点的方式,而这种教学方法过于强调语法,学生往往在学了一堆语法知识点后对如何开发实际项目还是很茫然。
   (3)从市面教材来看,它们有一个共性:纯粹的语法,没有软件工程思想的体现或是纯粹案例项目,却没有知识点的体现。
   除此之外,开设此门课程的时间一般在第二学年上学期或下学期,此时学生已完成了“Java程序设计”“网页设计”“数据库程序设计”“计算机网络”等基础课程的学习,但每门课程之间相互独立、割裂。在这种教学体系下,学生虽然也可照着教材,或教师指导完成一些小实例或小项目,但是作为整个课程来说,这些实例或小项目是孤立的、彼此没有联系的,课程之间更没有任何联系,对于学生而言无法理解每门课程在整个课程体系中的地位和作用,学生掌握的知识也是零散的,不系统的,缺乏对课程体系的整体把握,影响教学效果。
   2 基于UML的“JSP/Servlet Web应用程序设计”的教学思路
   针对当前教学过程中存在的现状,讲解“JSP/Servlet Web应用程序设计”课程不能再以课件为中心,照“屏”宣科。而需尽量保证知识推理过程需板书,老师边写边讲,使学生与教师思想同步。关键知识点上需要使用案例,且所有代码都在真实的开发环境上开发,通过教师的引导,在师生交互过程中完成编码工作。
   除去关键知识点的讲解,针对学生情况,打破原有的知识分块模式,遵循先够用后升华的原则,通过选择一个常见的网站项目,将具有代表性的任务贯穿在整个教学过程中,例如日常实际上网中经常使用的功能,如保存cookie、防止用户非法登录、验证码、网上投票,网络购物等。各个知识点沿着项目主线展开,根据项目的每个模块整理出相关的知识点要素,重新组建各个知识环,环环相扣,避免了知识点零散,脱离实际应用的弊病。学生容易理解,易于掌握,同时也清楚明白整个网站构建所需的架构及其他知识。整个形成一套由点到面、循序渐进的教学体系。同时针对每个功能模块的设计,采用UML来进行这一系列的建模,使学生能够将眼光不仅仅拘泥在程序设计的代码细节上,也能理解软件工程思想,融会贯通所学知识为己所用。
   3 基于UML的“JSP/Servlet Web应用程序设计”的教学案例设计
   下面以Java Web网站项目中“用户登录验证模块”为例,剖析基于UML软件建模教学模式的教学过程实施。
   (1)设计案例,讲解前序基本知识——MVC的设计模式。
   首先,需讲明MVC设计模式的基本概念,即Model View Controller,把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分为三层:模型层、视图层、控制层。同时简单阐述MVC模式的处理过程:首先用户在视图提供的界面上发出请求,然后视图把请求转发给控制器,控制器调用相应的模型来处理用户请求,模型进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图来显示模型返回的数据。
   (2)基于MVC模式,展示“登录验证模块”的运行效果,讲授案例解决方法,进行引导教学。
   首先,需向学生展示“登录验证模块”的运行效果。如图2所示:
   之所以采用这个相对简单案例,是因为很多学生都对登录验证模块有很强的感性认识,这样,不需要花很多的时间来理解系统包含的业务知识。学生可着眼于使用UML进行建模的过程,了解系统的开发过程,综合利用所学的各门知识完成编码设计。
   3)利用UML软件建模方法分析设计“登录验证模块”,设计其用例模型。
   用例模型定义系统做什么,是用来获取系统需求的有效手段。在这里需指导学生寻找用例模型中的“参与者”及“用例”,并确定参与者和用例之间的关系。使用图3所示的用例图来描述其关系。然而使用UML进行系统建模,并非只是意味着画出UML用例图,用例文档说明是同样重要的,需向学生讲明,同时根据用例文档画出验证用户、修改密码的活动。
   (4)指导学生融汇所学知识,完成“登录验证模块”的数据库设计、网站页面设计框架。
   在完成了用例模型的设计及活动图设计之后,学生应已基本明了“登录验证模块”的需求,可以进行系统设计,首先完成的是数据库设计,结合大一所开设的数据库课程,选择合适的数据库产品,设计出用户表如下:
   然后指导学生,通过网页设计工具完成前台JSP网页的设计,有需要时可辅之画图软件及动画设计软件。
   (5)利用UML软件建模方法分析设计“登录验证模块”,设计其类图模型、顺序图模型。
   在学生已明了“登录验证模块”的基本工作流,已完成前台页面及后台数据库设计之后,结合之前所讲解的MVC模式,进行类图、顺序图模型设计。
   首先设计登录的正常事件流:参与者请求边界类index.jsp显示登录页面。然后输入用户名和密码并将它们提交给系统。index.jsp请求LoginServlet.java程序控制对象来验证登录的事件流。为了满足这个请求,LoginServlet.java对象请求LoginDAO.java对象来寻找用户名代表的User对象。一旦LoginDAO.java找到正确的User,就请求它来验证密码。LoginServlet.java收到验证结果之后,如果这个对象收到了一个验证通过的结果,那它就显示欢迎信息,这个工作流结束。
   最后指导学生完成“密码无效的可选事件流”顺序图,“未知用户的可选事件流”顺序图,“登录验证模块”类图的设计。
   (6)指导学生根据建模设计进行实际编码。
   在学生充分理解“登录验证模块”的类图,顺序图模型的基础上,结合Java的集成工具,进行代码设计,在指导学生进行代码设计过程中,注意代码规范及设计原则。设计出的MyEclipse中的基本框架如下图7所示:
   当整个“用户登录”用例功能模块完成后,可将“密码修改”用例当成作业布置给学生独立完成,以加深学生的认识及理解,提高动手能力。
   (7)基于“登录验证模块”引导学生分析比较B/S模式与桌面应用模式开发的异同点。
   最后可使用以下图8示做总结,并向学生提出思考性问题:
   ①当开发Java桌面应用系统时如何使用MVC模式?控制层如何在MVC模式中体现?
   ②如何将上面的Java Web项目修改最少的代码,改编成为一个桌面应用系统中的“登录验证模块”。
   通过登录验证模块的完整实现将低年级所学习的各门不同的学科有效串联,避免割裂。但需注意一点,传统的教学模式下教师总是按部就班地组织教学,学生也只是按部就班地接收。但在真实项目的开发中,实现同一功能却有多种方法,故在教学过程中,要避免通过一味的讲解而扼杀了学生主动思考的能力,在整个项目讲解过程中,以划分好的功能模块为基础提出任务,引入“启发式”教学法,深入分析任务,特别是对任务中涉及的相关知识进行分析引入,让学生能在掌握相关知识的基础上完成任务,但是不能拘泥于任务给出的功能,引导鼓励学生通过分析、讨论、比较进行创新。
   参考文献
   [1]张少龙.高职Java课程改革中“三个如何”问题的思考与实践[J].计算机教育,2009(5).
   [2]戴红.“C程序设计”课程教学内容的模块化设计[J].计算机教育,2009(8).
   [3]罗凌.基于项目驱动的“ASP.NET程序设计”课程创新教学法研究[J].计算机教育,2009(13).

返回顶部