系统化方法在JAVAEE教学中的运用

2012-04-29 07:25:07高志升谢春芝
电脑知识与技术 2012年30期

高志升 谢春芝

摘要:针对普通本科院校软件工程专业学生在学习JAVA EE课程中存在的只注重语法、具体技术细节,不注重方法的学习,不能从总体上掌握软件开发的思想,不具备运用系统化的思想分析、解决问题的能力的问题。我们通过对自顶向下系统化的方法的理解与分析,并将其运用到JAVA EE课程教学中,提出了“自顶向下,由总体到局部,由抽象到具体”的JAVA EE教学模式,通过精心设计教学过程和教学内容,使学生从总体上把握JAVA EE系统开发中的具体内容。通过教学实践,大部分学生掌握了JAVA EE系统开发的思想,并能够灵活运用所学知识解决实际问题,取得了良好的学习效果。

关键词:系统化方法;软件开发思想;JAVA EE软件开发

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)28-7244-04

1 JAVA EE课程教学及现状

JAVA EE是当前非常流行的一种企业级应用软件开发框架,为开发具有跨平台性、可扩展性的、分布式和易于系统集成的软件系统提供强大的支持,已经在金融、证劵、电信、政府等多个行业得到广泛的应用,例如业务开通系统、电子政务系统等[1]。面对巨大的市场需求,大多数软件工程专业都已将JAVA EE程序设计课程作为一门核心课程。

我院从2008年以来将JAVA EE程序设计课程作为软件工程专业的一门专业必修课。在学习这门课程之前学生已经学习了C/C++程序设计,JAVA程序设计,数据结构,软件工程,数据库等课程。JAVA EE是一门涉及知识面广、实践性要求强的一门课程,不同于.NET一栈式思想,JAVA EE得到了众多开源社区,商业公司的支持和发展,涉及的知识点和技术标准众多。主要有JAVA EE的体系结构,JAVA EE的十三种核心技术,框架技术的应用等。我们结合我院学生的特点以及与著名软件公司从事JAVA软件开发的一线软件工程师讨论后将JAVA EE程序设计课程教学内容定为:按照标准JAVA EE 6 平台标准进行教学,内容主要包括JAVA EE的体系结构,MVC设计模式,SERVLET,JSP,JAVABEAN,数据库编程,EJB编程等,注重基础知识,重点培养学生的编程能力。

过去教学过程中主要存在的问题有:

(1)教师以考试和习题为驱动,让学生记住语法规则,学生只注重语法规则的学习,没有重视对编程能力的培养。造成学生对知识的灵活运用能力较差,不具有举一反三的能力

(2)实践课程只注重对课本上一些简单实验的实现,只能起到语法验证正确性的作用,没有系统性和连贯性。

(3)教师很少向学生灌输全面系统的思想,教师在教学过程中只注重演示书上的代码例子,讲解代码的语法。没有系统化地讲解清楚相关的原理,前后相关的体系结构和程序设计的思想过程。

针对以上问题,近年来我们在JAVA EE教学过程采用“自顶向下,由总体到局部,由抽象到具体”的思想设计教学内容和教学过程。将系统化方法的思想应用到教学过程。

2 系统化方法指导JAVA EE教学的意义

系统化方法是指用系统的观点来认识和处理问题的各种方法的总称,它是一般科学方法论中的重要内容[2]。系统论的思想由贝塔朗菲等人提出并完善,其改变了人类的思维方式,反映了现代科学发展的趋势,在各行各业都得到了深入而广泛的应用。温伯格于1975年在《系统化思维导论》一书中给出了系统化思维方法的定义:“这种思维先于专门的学科知识的存在而存在—有时绕过专门的学科知识,有时又把专门的学科知识综合起来。我们把这种思维和教育方法称为一般系统论的方法。”[3] 《系统化思维导论》一书的灵感来源他40年的软件设计和管理生涯,因此系统化的思想指导软件开发,指导软件开发人才的培养是合适的。运用系统化的思想于JAVA EE教学具有重要的意义:

(1)促使学生掌握系统化的学习方法。通过系统化观点组织JAVA EE教学内容、教学过程。在教学过程中培养学生在软件开发过程中必须具备的系统化分析,系统化设计的思维能力。

(2)增强学生的学习兴趣。让学生一开始就看到事物的全貌和整体,通过讲解各个知识点的核心原理,让学生理解事物的本质。只有学生掌握了原理,才能排除对JAVA EE中繁杂的语法规则、众多的技术手段的恐惧,才能培养其将所学知识进行举一反三的能力。学生一旦脱离书本也能做出程序,就会极大的增强他们的信心,从而增强学习的兴趣。

3 JAVA EE系统化教学内容组织及过程

近年来我们通过系统化的思想,在JAVA EE教学过程中提出“自顶向下,由总体到局部,由抽象到具体”的系统化方法教学模式。并利用该方法精心组织教学内容和教学过程。下面主要介绍我们在几个主要知识点和重要问题上的教学措施。

3.1 框架与非框架

学生通过互联网和图书可以了解到一些JAVA EE软件开发框架,例如:Struts,Spring以及Hibernate等。我们在选择教学内容上又是基于重视基础的想法,从而没有将这些框架选进教学内容。因此在讲解JAVA EE体系结构的时候将什么是框架、框架的原理、框架的作用以及框架的缺点等内容介绍给同学。在讲授过程中结合如图1的图示讲授框架之间的对比和在JAVA EE程序设计中的作用。并鼓励JAVA基础好的同学首先简单应用这些框架。

通过讲解可以排除学生心中为什么不学主流框架的疑惑,让学生明白坚实基础的重要性。

3.2 MVC设计模式

MVC设计模式是所有面向对象程序设计语言都因该遵循的规范。MVC思想是将一个应用划分为三个基本部分:Model(模型)、View(视图)、Controller(控制器),它们以最少的耦合协同工作,从而提高应用的可扩展性、可重用性和可维护性[4]。我们在教学过程中结合图2,详细向学生详细阐述MVC的原理,机制和优缺点。

在我们教学内容中,控制器采用Servlet实现,视图采用JSP实现,具体业务逻辑采用原始Java类、JavaBean或EJB实现。整个MVC实现过程如下:

(1)所有的HTTP请求都将映射到一个Servlet上。

(2)Servlet根据URL选择合适的Controller来处理请求,获得返回的Model和View。

(3)Servlet将Model绑定到Request中,然后交给View渲染。

(4)view将渲染后的页面返回给用户,完成请求处理。

完成MVC原理的讲解后,使学生明白Servlet、JSP、JavaBean、EJB和原始Java类等组件在整个JAVA EE应用体系中的作用。同时完成理论的讲解后,向学生演示几个MVC模式的简单例子的实现过程。并要求完成对应的实验题目。

3.3 Web框架

Web页面的设计不是JAVA EE课程教学的重点内容,在我们的教学内容设计中这部分主要要求学生自学。但是一个美观、专业的页面可以增强学生学习的积极性,提高学生学习的成就感,从而增强学习的兴趣。我们采用的方法是首先用一定时间讲明HTML,CSS和JAVASCRIPT的作用,阐述清楚“结构”和“表现”相分离的原则和优势,让学生从总体上明白相关知识和原理。阐明现代Web设计中RIA(Rich Internet Application,富集网络应用程序)技术的重要性,让学生明白JAVASCRIPT在其中扮演的重要作用。组织学生自学相关知识点后,模仿制定的网站完成一个自己的Web框架,并要求以后所有的实验都在这个框架下完成。教学中我们发现通过这个过程的要求和训练,学生都能在后序的JAVA EE课程设计,毕业设计中使用Web框架完成相应得项目开发。

3.4 Servlet原理与应用

在学习Servlet具体语法细节和应用之前,我们首先让学生系统地,总体地掌握以下三个方面的重要内容:

(1)组件和容器的思想:教学过程中我们发现,大部分学生没有很好地掌握面向对象的思想,习惯性地采用面向过程的思想思考程序设计中的问题。多次被学生问到诸如“Servlet的程序入口在那里?”等问题。所以对组件和容器思想的掌握和理解是学习JAVA EE开发多层次体系结构的企业应用程序的关键。在这一部分我们结合Servlet的工作原理向学生讲解明白组件和容器思想的重要作用,工作原理。容器是组件的运行环境,为组件提供命名服务、数据库连接、持久化、事务支持、安全服务等基础功能。组件通过调用容器提供的标准服务来与外界交互。

(2)Servlet的生命周期:通过Servlet工作过程的分析讲解,让学生明白Servlet的原理,避免学生知其然而不知其所以然。只有掌握了Servlet的工作原理,明白了客户端、容器、Servlet实例之间交互的过程和底层机制,学生才能克服神秘感,才能真正掌握Servlet,并灵活应用。Servlet整个过程如图3所示。

客户机将请求发送到容器,容器通过配置文件实例化相应的Servlet,并为Servlet进程创建线程。容器将封装请求发送到Servlet。Servlet创建响应信息并发送给容器,容器将响应发回客户机。

(3)Servlet编程接口:传统的教学方法通过实例讲解Servlet API的使用方法。造成的问题是学生对Servlet的上下文不清晰,只能使用实例中出现的API,不具备根据具体问题使用没有出现的API。所以我们在教学中通过图4和相关内容将Servlet的编程接口及相关关系为学生阐述清楚。

3.5 JSP原理与应用

详细学习了Servlet后,学习JSP的核心内容就是JSP和Servlet的异同。通过和Servlet的对比教学使学生全面理解并掌握JSP编程。容器接收到客户端的请求后,首先判断JSP文件是否修改或第一次创建,如果是则容器会调用JSP解释器将JSP文件转换为Servlet。反之则将请求传递给对应的Servlet。也即是说,JSP在容器内就是通过Servlet实现的。在教学过程中通过对比容器生成的JSP对应Servlet代码和JSP代码的映射关系,使学生明白JSP的核心底层工作原理。

3.6 EJB原理

EJB教学是本课程的难点内容,我们在教学过程主要通过对EJB和容器关系、原理讲解,EJB和Javabean在工作原理上的本质区别的讲解,各种EJB的生命周期的讲解,EJB的优点和缺点的讲解以及通过EJB构建分布式应用的程序的完整过程的演示,让学生掌握EJB编程。

3.7 数据库编程

数据库编程是JAVA EE的重点内容,教学过程中,我们发现学生总是对具体语法细节进行死记硬背,对于实验中到底使用哪一种DBMS的问题纠缠不清。所以我们在教学中,深入地讲解JDBC接口和JDBC驱动的关系和相关原理,应用程序、应用服务器和DBMS三者之间的关系以及交互过程,JDBC驱动程序的4种类型(JDBC-ODBC桥,本地API,JDBC网络纯JAVA驱动程序和本地协议纯JAVA驱动程序)的分析比较。最后通过具体实例向学生对比演示连接、访问、操作ORACLE、SQL SERVER、MYSQL等多种DBMS的异同。使学生从原理上、总体上把握数据库编程的系统化思想。

4 教学效果

通过“自顶向下,由总体到局部,由抽象到具体”的教学方法的应用,增强了学生的自信心,排除了对软件项目开发的恐惧感。对我院109名学生作了统计表明经过JAVA和JAVA EE课程学习,绝大数学生在后续的毕业设计中选择JAVA EE。同时大多数学生选择JAVA作为自己的就业方向。

5 结论

针对我院学生在学习JAVA EE中存在的问题,我们运用系统化方法提出了“自顶向下,由总体到局部,由抽象到具体”的教学模式,通过系统化的方法设计教学内容,力争使学生掌握JAVA EE的核心技术原理,培养学生的系统化思想,提高学生在项目开发过程中的分析问题解决问题的能力。实践表明,我们的方法起到了一定的效果。实践中我们还注意到在JAVA教学之前的前期课程中学生对程序设计思想和面向对象的理解对JAVA EE的教学是十分重要的。基础差的学生可能会感觉总体的思想和原理过于抽象难懂。这是我们今后教学中要重视的问题。

参考文献:

[1] 谢景明,孙庚.项目驱动的进阶式J2EE课程教学设计探讨[J].计算机教育,2009,22:59-30.

[2] 李朝霞,付禾芳.基于系统化思维培养的计算机基础实践教学[J].计算机现代化,2010,08:56-58.

[3] 马宁,白燕.系统化程序设计思维培养模式初探[J].计算机教育,2005,3::25-28.

[4] 何成万,李健,焦素廷.基于MVC模式的科研成果管理系统开发[J].武汉工程大学学报,2009(31):79-81.