张晓刚
摘要:JavaEE是目前最流行的企业级Web开发标准,也是一个极为复杂的技术体系。如何有效地提升JavaEE课程实践的教学效果一直是我们思考的问题。文章借鉴工程教育的先进理念并结合JavaEE技术特点,提出项目进阶驱动的实践教学模式,详细介绍教学设计及实施办法,为高校JavaEE课程实践教学改革探索提供有益的借鉴。
关键词:JavaEE;课程实践;教学模式;改革
0.引言
作为分布式多层级企业应用系统开发的事实标准,JavaEE是目前最流行的Web应用开发技术体系。JavaEE及其开发环境是为暨南大学计算机系各专业高年级学生开设的一门实践性综合性很强的选修课程。课程要求学生在理解JavaEE体系结构及相关知识的基础上,重点掌握JavaServlet、JSP、JDBC、EJB、JSF JavaEE企业应用开发的JPA框架等主流技术,为即将步人工作岗位的大学毕业生打下坚实的技能基础。
本课程采用理论教学与实验教学相结合的教学方式,其中实验教学通过9个学时的实践环节完成。实验内容主要依据理论教学的章节设置,虽然最后安排了JavaEE综合应用开发的内容,但存在着相互联系不够紧密、实验整体性不强的缺点。现有的实践教学模式无法充分调动学生的学习积极性和主动性,课程的实践教学效果并不理想。如何在有限的学时内通过实践教学模式改革提升学生的JavaEE应用开发能力,是笔者所要思考和解决的问题。
1.基于工程项目的教学模式
目前,国内许多高校的计算机专业都引入了基于CDIO模式的课程教学改革,提出了相应的课程改革实践方案。CDIO工程教育模式是近年来国际工程教育改革的先进成果,CDIO代表构思(conceive)、设计(design)、实施(implement)和运行(operate)。CDIO教育模式是以工程项目为载体组织教学,让学生通过工程项目来学习知识,能够充分发掘学生的创造潜能,提高其解决实际问题的能力。与此同时,教师在构思设计课程项目的过程中,也会对所授课程有更深层次的理解,从而促进教学效果的提升。
JavaEE是一门综合性强、实践性高的技术类课程,在校大学生往往缺乏实际软件项目的锻炼,难以理解JavaEE相关技术的实现原理,更无法灵活应用该技术。CDIO教育模式正好契合了JavaEE课程的牦点,非常适合JavaEE课程的实践教学。
1.1确定项目
基于项目的JavaEE课程实践首先需要确定一个综合设计型题目。选课学生以小组形式完成项目任务,组长充当项目经理角色,组内成员在组长的协调下共同完成项目。
该课程提供了一个课程设计项目库,每个小组可以自行从中挑选感兴趣的项目,也可以另外确定开发项目。另立项目需要经过调研确定系统的主要功能及实现方式,并形成项目立项报告。报告提交给课程教师审核,审核通过即可成为小组的开发项目。课程设计项目库通过不断添加以往的典型开发项目得以扩展。
1.2设计系统
项目小组在确定了项目题目后,就要制订项目开发计划,进行组员任务分工,然后使用面向对象方法及工具完成软件系统的需求分析和设计。基于CDIO的综合项目开发以系统观念为指导,努力营造真实的职业环境。在这个阶段,学生需要提交需求分析报告、概要设计、详细设计以及开发测试计划。
JavaEE课程以网上书店系统作为项目开发示范案例,让案例驱动模式和小组团队协作方式贯穿整个项目开发教学实践。在该阶段中,学生应该以“确定系统功能,划分功能模块以及完成详细设计”为系统设计主线,充分理解和掌握JavaEE相关技术和开发工具,提高协作精神、系统组织及开发能力。
1.3实现系统
该阶段的主要任务是根据前面的系统设计进行系统实现,学生需要提交软件说明书、源代码及系统测试报告。JavaEE的项目实践采用NetBeans或MyEclipse作为系统开发环境,使用MySQL或Oracle作为数据库服务器。在开发过程中,项目划分为若干个独立模块并按照小组任务分工计划分配给小组成员,之后再将独立模块集成为完整的项目,程序代码需要使用软件版本控制工具CVS进行控制。小组每个成员需要以文档的形式上报工作计划及工作总结,组长负责监督各个成员的任务完成情况并掌握整个项目的进度,教师主要负责答疑和指导工作。
1.4系统运行及评价
系统运行及评价主要通过运行开发完成的系统对项目任务进行整体评估。在这个阶段,每个小组都要对完成的项目进行答辩,指导教师对每个小组及其成员的表现进行点评,最后基于课程实践评分标准为每个学生评分。
JavaEE课程实践环节的考核标准见表1,主要从平时成绩和项目成绩两个方面进行考核,在项目考核中又细分为团队设计和个人开发两个方面。这样的多元化考核评价体系可以对项目小组及成员做出公正的评价,也将有力地促进学生职业素质、职业态度和职业习惯的养成。
2.项目开发的进阶驱动设计
根据JavaEE课程大纲及其技术规范,可以将JavaEE开发技术划分为JavaEE开发环境配置、Servlet和JDBC技术、JSP与自定义标签技术以及JSF+EJB+JPA框架开发技术。因此,在基于项目的课程实践教学模式下对项目开发过程进行进阶驱动设计。
2.1项目案例选取
根据JavaEE课程实践对项目案例需求的分析,在对比了多个典型的工程项目及其特点之后,我们选取了网上书店系统作为项目案例。这个系统是对当前主要网上书店系统(如当当网、卓越网)的简化,并保留了其公共核心功能,主要包括:
(1)对于普通用户,主要是书籍分类浏览、搜索书籍及用户注册。
(2)对于登录用户,主要是查找书籍、网上购书及订单查询。
(3)对于系统管理员,主要是用户管理、书籍管理及订单管理。
学生对这样的案例功能非常熟悉并且容易理解,系统功能相对集中且实现规模小,方便采用不同技术重新实现,有利于采用进阶驱动方式展开项目开发的实践教学。
2.2项目开发的进阶驱动过程
基于JavaEE的技术规范及其特点,我们把项目开发的过程设计为进阶式,即分别通过不同的JavaEE开发技术进行项目的多版本实现。JavaEE项目开发的整个过程可以被划分为4个递进式的阶段。图l给出了项目开发的进阶驱动过程。
1)项目准备阶段。
通过使用现有流行的网上书店(如当当网和卓越网)理解项目案例的系统功能模块构成及其主要处理流程,并且掌握NetBeans或MyEclipse的JavaEE开发环境的配置方法,为项目开发做好准备。
2)Servlet开发阶段。
在完成确定项目的系统设计之后,可以参照网上书店项目案例的Servlet实现版本进行系统的第一个版本实现。这个版本是一个两层的结构,上层主要使用Servlet技术进行用户接口及业务逻辑的实现,下层则通过JDBC技术进行应用的数据访问。
3)JSP+自定义标签开发阶段。
这个开发阶段主要使用开发效率更高的JSP+自定义标签进行系统的第二个版本实现。该版本进化为三层的结构,同样参照案例的实现版本对第一个版本进行改进,包括:分离用户接口层与业务逻辑层,使用JSP+自定义标签实现用户接口并通过JavaBean封装业务操作,下层则通过JDBC实现数据访问。
4)JSF+EJB+JPA框架开发阶段。
最后的框架开发阶段是系统的最终版本实现,主要通过JavaEE流行的框架技术进行系统三层结构的高效实现。在第二个实现版本上做如下改进:使用JSF框架实现用户接口,然后通过EJB封装业务操作,最后使用JPA框架进行应用抽象实体的表示与存取访问。
3.项日开发的教学实施
进阶式驱动的项目开发过程是一个由简到难、循序渐进的过程。项目系统在进阶式开发过程中经历从最初雏形版本到最后成熟版本的进化。JavaEE课程的实践过程也就是完成工程项目的进阶式驱动开发过程。
那么,在有限的学时及教学条件下,如何高效地完成进阶驱动项目开发的教学实践并取得良好的教学效果呢?关于JavaEE课程实践的教学实施需要做以下几点说明。
3.1教学组织原则
在JavaEE课程实践的进阶式项目开发教学实施过程中,教学组织应该遵循以下原则:
(1)理论讲授围绕着实践项目展开。课程以提高学生的JavaEE开发能力为根本目标,课程的理论讲授要为JavaEE实践项目服务,围绕着进阶项目进行JavaEE开发技术及原理的讲解。
(2)“项目进阶引导、任务分解驱动”的教学方式。通过项目进阶开发,全面培养学生开发JavaEE应用的综合能力。学生主要通过课余时间完成开发任务,再通过课堂上的问题解答及项目讨论,强化该阶段所需的技术知识、开发技能及团队协作能力。
(3)课程实践环节的教学过程,主要通过案例项目进阶开发的工作流程安排实践教学内容,并按照案例项目的开发任务展示、问题分析及解决、系统操作演示、任务实施及评价等4个步骤进行教学展示。
3.2学时安排及教学方式
按照教学大纲,暨南大学JavaEE课程实践环节共计9个学时。在有限的学时里,如何有效地实施进阶驱动的项目开发呢?具体的学时安排及教学方式如表2所示。
3.3平台支持
为了更好地支持JavaEE课程的实践教学改革,我们采用目前最流行的网络教学平台Blackboard作为JavaEE课程实践的支撑平台。小组划分及题目确定、系统设计与实现、系统评价与考核等实践过程都可以纳入Blackboard平台的管理中。通过该平台,教师可以更科学地组织和管理进阶驱动项目开发,项目考核及评价的效率也大大提升;学生可以更加合理和高效地进行小组分工协作,而项目开发的效率也会更高。
4.结语
两个本科教学周期的JavaEE课程实践改革表明,项目进阶驱动的实践教学模式可以有效地激发学生的学习兴趣,教学效果改善明显。学生对课程实践改革反馈良好,对课程的评分大幅提高。新的实践教学模式在教师与学生之间营造出一种创新氛围,极大地鼓舞了学生的自主学习热情,强化了他们的创新意识和团队协作精神,明显提高了他们的创新能力和综合素质。通过对同一个项目系统运用不同的JavaEE技术进行反复开发和修正,帮助他们树立起不断创新和深入探索的理念以及不断追求卓越的意识。