Java EE教学探索:以敏捷开发和极限编程为指导

时间:2022-08-03 11:12:12

Java EE教学探索:以敏捷开发和极限编程为指导

摘要:java ee课程是高校计算机相关专业的一门核心专业课程,由于涉及知识面广、内容多、技术难度大,在具体教学过程中效果往往不佳。本文引用敏捷开发和极限编程的理念和最佳实践,指导和改进JAVA EE课程的教学实施过程,使学生通过整个教学活动,能够牢固掌握JAVA EE体系的相关知识、框架和工具的使用,并贴近企业主流开发场景,全面提升学生的专业素质。

1、引言

Java EE是软件开发中的一种企业级应用开发的通用技术路线,因此JAVA EE课程是高校计算机相关专业的核心专业课程。开设JAVA EE课程的主要目的是在已有JAVA 语言基础之上,学习有关JAVA EE的核心技术如Servlet和JSP,成熟、流行的开源框架如Struts 2, Hibernate和Spring等。JAVA EE课程内容的设计一般都基于目前软件企业应用开发采用的主流J2EE技术框架和关键技术,通过系统全面的讲解和反复的实践,使学生具备未来轻松上手不同类型项目的技术基础,然后再完成J2EE项目应用开发课程设计,使学生具备应用JAVA EE技术体系开发企业级应用的能力。

但是,由于JAVA EE课程涉及的知识面宽,技术难度大,而且相关技术需要通过项目开发才能掌握得比较牢固。因此,JAVA EE课程教学在具体实施过程中对于教师和学生的要求都非常高,普通的教学模式和方法都不能满足这一要求。

基于项目和案例进行JAVA EE课程的教学方式,已经成为目前JAVA EE课程教学的主流,这种方式能够培养学生快速汲取开发经验,化理论知识为实际项目经验的能力,而不仅仅局限于纸上谈兵;同时基于项目和案例开展JAVA EE的教学活动,能够紧密把握企业开发技术需求的脉搏和趋势,课程内容包含目前企业客户开发的主要关键技术,与企业需求无缝接轨。

本文在以上基础之上更进一步,以敏捷开发和极限编程的相关原则和最佳实践为指导,对JAVA EE课程的教学实施过程进行了一定的改进,使之更加符合这门课程的特点,提升教学质量。实践证明,以敏捷开发和极限编程为指导,并辅之以项目载体开展JAVA EE课程教学,使学生理解JAVA EE 技术相关知识和掌握框架、工具使用方法的同时,能显著提高学生学习积极性,培养学生分析、解决问题的能力,从而有效缩短就业时学生与企业之间的距离。

2、相关背景及研究现状

敏捷开发(Agile Development, AD)是一种以人为核心、迭代、循序渐进的开发方法,是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。以期通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。敏捷软件开发包括4条宣言和12个原则,用于指导敏捷开发[1]。

极限编程(Extreme Programming, XP)[2]是一种轻量级的软件开发方法论,XP从实践中来,是对实践的总结,也是经过实践检验的,其主要特征是要适应环境变化和需求变化,充分发挥开发人员的主动精神。XP承诺降低软件项目风险,改善业务变化的反应能力,提高开发期间的生产力,为软件开发过程增加乐趣,相信这些足以吸引每个人的眼球。XP引入了四个变量:成本、时间、质量和范围,制定了四个准则:沟通、简单、反馈和勇气和十二条相关原则。

“敏捷开发”是软件开发的一种理念。而极限程序设计(XP),Scrum,精悍开发(Lean Development)等方法是敏捷型开发方法,是敏捷开发理念的具体实施途径,这些方法都有自己特定的思路、社群和领军人物。当然,一个社群如果要宣称自己是敏捷论者,它必须要遵循一些相同的原则。每个社群也从其他社群中借鉴相互的思想与技术。也有许多人士在不同的社群间来来往往,因此把不同的思想传来播去。所有这些都让敏捷社会成为一个复杂而动态的生态系统。

对于JAVA EE课程教学的相关研究和探索随着高校开设JAVA EE相关课程的普及快速展开。这其中包括对JAVA EE课程教学模式及计划的探讨[3-6],就JAVA EE技术体系的特点,在教学过程中引入项目为载体进行的教学改革[7, 8],引入CDIO(构思conceive, 设计Design, 实现Implement, 运行Operate)模式进行JAVA EE的教学[9],瀑布迭代型的JAVA EE 课程教学体系[10]等。

3、以AD和XP为指导的JAVA EE 教学实践过程

3.1 具体措施

敏捷宣言和极限编程的核心原则用于指导JAVA EE课程的教学实施过程,具体措施包括以下一些。

1.在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。因此,JAVA EE课程中,以项目为承载体展开教学过程,对学生进行分组,每组负责一个项目的若干部分,并利用上机实验的机会让学生进行合作。

2.敏捷宣言认为人和交互胜过过程和工具。以此原则为指导,在JAVA EE课程实施过程中,要求学生分组成员和分组之间加强交流沟通,对于教学过程中生产的文档,要求学生着重记录交流过程,而不是交流产生的结果。

3.敏捷宣言认为可以工作的软件胜过面面俱到的文档,可以工作的软件是进度主要的度量标准。以此原则为指导,对教学过程要求撰写的文档可适当弱化,而是要求将项目程序代码保存到统一版本库,并保持版本库中的代码是可部署和运行的,在考核时要注重考查学生所写的代码的功能,而不是形式不的开发文档。

4.敏捷宣言认为客户合作胜过合同谈判,意义在于业务人员应该参与到项目开发整体过程中,达到整个项目开发团队能够把握项目开发的方向。而对于JAVA EE课程来说,也就意味着在选择课程所涉及到的项目原型时,应该尽量贴近学生的实际情况,例如选择教务管理系统、教学管理系统、图书管理系统等学生经常接触和使用的应用系统。

5.极限编程的推荐实践方式认为对于项目开发应该尽早测试、经常测试、自动测试。在课程的实施过程中,要求学生对于测试计划、测试用例及测试驱动开发(Test Driven Development, TDD)都有所了解,并朝这方面努力,从而弥补现有人才培养方案中对于软件测试不够重要的缺陷。

6.极限编程推荐增量设计、开发和频繁重构。这也是JAVA EE课程教学过程中应该采纳的做法。对于一个指定的项目,要贯穿整体教学过程,以不同的教学内容为驱动,指导学生以增量的方式来完善项目开发;对于系统架构和代码结构等方面,可通过重构来优化。

同时基于团队的角色学习环境,学生在教师的带领之下,对一个项目进行设计并划分模块,独立负责不同模块的开发,并且在教师的指导下,充分体验不同模块之间的沟通和集成问题,使学生能够贴近企业项目开发的实际情境,体会到实际项目身临其境的感觉。

3.2实施中的相关支撑工具

以上具体的措施,都有成熟的支撑工具可选用,使整体教学过程实现信息化管理。以下分别介绍。

软件项目管理工具Pivotal Tracker 是由公认的敏捷软件开发老大--Pivotal Labs开发的基于故事、简单、有效、敏捷的软件项目管理工具,适用于各类型的项目,并通过敏捷项目管理的理念让项目能够有条不紊的进行,让项目的开发效率大大提高。

测试管理工具 Mercury Quality Center提供了基于 Web 的、可在广泛的应用环境下自动执行软件质量测试和管理的功能,使 IT 团队能够在开发流程完成前就参与应用程序测试。这样将缩短时间表,同时确保最高水平的质量。

Mercury Quality Center界面

版本库管理工具SVN是用于实现对代码、文件等的修改、删除、增加等操作进行记录,并且可以追溯每一个修改细节的一个通用工具,它基于CS架构,需要服务器和客户端软件,其中SVN服务器可以使用VisualSVN,独立客户端可使用ToitorseSVN,而IDE集成客户端可使用Subclipse。

4、总结

本文就JAVA EE的课程教学展开讨论,结合课程特点和实际情况,引入敏捷开发和极限编程的理论和最佳实践,指导和改进JAVA EE课程的教学实施过程,实践证明,上述方式取得了很好的教学效果,很受学生欢迎。下一步,可考虑将该方式向其它实践性较强的课程、课程设计推广。

参考文献:

[1]Martin, R.C.与M. Martin,邓辉,孙鸣译.敏捷软件开发:原则、模式与实践.2010: 人民邮电出版社.

[2]Beck, K.与C. Andres, 雷剑文,李应樵,陈振冲译.解析极限编程—拥抱变化.2011: 机械工业出版社.

[3]陈观林与翁文勇,《J2EE架构与应用开发》课程的教学改革与实践.计算机时代,2008(4): 第71-72页.

[4]陈家瑞,《J2EE应用开发》课程教学改革探讨.福建电脑,2009.25(1): 第211,187页.

[5]阎浩,J2EE课程教学方法的探索与实践.成功(教育版),2010(8): 第197页.

[6]郭磊与郑霞,示范性软件职业技术学院Java EE课程教学模式的探索与实践.福建电脑,2010.26(10): 第50-51页.

[7]邓松,余鹰与何火娇,在J2EE教学中实施任务驱动教学法的探索和实践.科技信息,2009(23): 第402-403页.

[8]谢景明与孙庚,项目驱动的进阶式J2EE课程教学设计探讨.计算机教育,2009(22): 第57-59,50页.

[9]汪雪元,张军与李祥,"J2EE程序设计"课程教学模式研究与应用.考试周刊,2009(42): 第390-391页.

[10]张虹与于静,浅谈J2EE方向课程体系的教学改革与实践.现代计算机:下半月版,2011(24): 第39-42页.

上一篇:浅议儿童视域下的语文课程观 下一篇:有感于课前板书