白 磊,吴晓丹
(华北科技学院计算机学院,北京东燕郊 101601)
社会经济发展的多样化,对高等院校的办学思路、专业结构、管理方式和培养模式提出了新的要求。实践教学是应用型本科学校实施培养应用型人才的一个非常重要的环节,是建立应用型人才培养模式和深化教学改革所必须高度重视的教学环节。为了使学生在学习中获得更多的实用技术和创新技能,如何对当前教学模式进行改革,以增加实践环节的学习,成为目前应用型本科院校计算机专业教学的研究热点问题。
随着研究的深入,各种教学模式逐渐被提出并应用于实际教学且取得良好的效果,如项目驱动法、案例教学法、工作过程导向的教学方法等[1,2]。但这些教学方法均是针对某门课程教学或设计使用,没有考虑计算机专业的相关课程,以我院为例,目前我院计算机相关专业均开设JAVA程序设计、UML建模分析、JSP程序设计、数据库原理、J2EE等相关课程及课程设计,如果以案例教学或项目驱动教学法教学,需要针对每门课程设计一个项目案例,这样不仅繁琐而且更重要的是每个项目都不能突出重点。以数据库原理课程设计为例,为实现某指定项目,学生不仅需要对后台数据库进行设计,同时还需要实现前台页面展示,而且往往大部分的时间和精力会花费在前台页面实现上,用在数据设计优化方面的反而较少,这样造成本末倒置,达不到预期的效果。
本文设计提出一种面向教学的JAVA通用开发框架,通过使用该开发框架,一方面可以将程序设计相关课程自始至终链接到一起,学生均使用该开发框架进行开发,从而形成一套专业技能培养链;另一方面可以将各门课程和教学环节模块化,降低课程间的耦合度,即在进行程序设计相关课程的实践时,最大限度的减少对数据库等课程的依赖,在进行数据库相关课程实践时,最大限度的减少对前台页面实现课程的依赖,使其重点突出。
框架是一个应用软件系统的部分或整体的可复用的设计,具体表现为一组抽象类及其实例(对象)之间的相互作用方式。应用框架可抽取特定领域中的共性问题,并部分或者全部地加以实现。在进行应用软件开发的时候,利用框架只需要集中精力完成系统的业务逻辑设计,是对于一个软件系统的全部或部分的可复用设计[3]。
模型-视图-控制器(MVC)是一种软件设计模式,基于 J2EE的应用系统,多数都利用MVC模式来实现其体系结构[4]。MVC模式将交互式应用分成模型(Model)、视图(View)和控制器(Controller)三部分。模型包含业务功能和数据,视图向用户显示信息,控制器处理用户的输入并负责协调模型和视图。MVC将这些对象分离以提高灵活性和复用性。MVC结构图如下图所示:
图1 MVC组件关系和功能图
JAVA通用开发框架是基于J2EE设计规范,按照MVC(Model-View-Controller)的设计理念,使用了大量的设计模式和开发案例设计的开发框架[5]。该框架提供了一个一致的页面布局模型和统一的页面交互控制,还提供了一些常用的可复用的基础构件和页面构件,并在此基础上形成了一套有效的应用开发模式,实现了Web应用系统的基础功能。使用人员可直接在该框架的基础上进行应用开发,集中精力实现应用的业务逻辑,而不必在技巧性要求较高的、复杂的基础实现上浪费时间和精力。图2给出了通用开发框架总体的体系结构。
通用开发框架的体系结构中的各层作用描述如下:
表示层:表示层采用 JSP加自定义标签(Tags)的技术显示用户信息[6]。自定义标签隐藏了信息动态显示的具体细节,替代了在JSP文档中嵌入大段Java代码,使得JSP容易维护,同时,使得即使不懂Java编码的画面设计者,也可以方便的进行画面设计。同时,框架提供统一的Web界面布局和Web交互控制机制,页面的菜单模块、树形菜单、权限分配等功能可通过后台直接编辑,无需使用者自己编写。
控制层:控制器是系统的核心,它的作用是读取系统的配置信息,并从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端[7]。Controller功能由 MainServlet和ViewProcesser、RequestProcesser、ServiceProvider等类一起实现 Service to Worker设计模式。利用Service to Worker设计模式,框架控制模块将控制集中化,并提高了应用的模块化。它的具体工作流程如下:
图2 通用开发框架体系结构图
1)截获用户的Http请求;
2)把这个请求映射到一个定义好的业务操作上;
3)获取业务操作结果,提供给客户端;
4)决定下一步应该显示哪一个页面。
业务层:业务逻辑管理层是一个中间代理层,用来动态加载和管理业务逻辑。业务层的业务逻辑管理器调用逻辑管理功能模块来加载业务服务模块,处理用户的需求[8]。Business Logic Manager进行业务逻辑处理,动态加载各Session Bean,进行具体业务逻辑分发,并根据提交的请求调用Service的不同方法进行相应的业务处理,Service将处理结果封装在Model对象中,并将结果返回。
数据访问层:框架提供DAO设计模式对数据库和文件等数据源进行访问。DAO封装了访问数据库的具体细节,提供了通用接口供开发人员对数据库进行查询(select)、添加(add)、更新(update)、删除(delete)操作,同时还可以执行存储过程(Store Procedure)。通过DAO模式将低级别的数据访问逻辑与高级别的业务逻辑分离,从而完全向客户端隐藏了数据源实现细节,当低层数据源实现变化时,DAO向客户端提供的接口不会变化,所以该模式允许DAO调整到不同的存储模式,而不会影响其客户端或者业务组件。DAO充当了业务组件和数据源之间的适配器。
系统基础服务层:是通过对各种应用系统的分类、抽象,针对应用系统都需要解决的技术架构和公共通用业务组件模块等问题,提供系统级的抽象和服务。主要提供Web应用系统一些通用的基础功能,使得开发应用系统时,只需要实现应用的业务需求即可。而对一些基础的系统功能,则不需要进行开发或只需要进行简单的二次开发即可,并且这些基础功能也是一个在开发框架的基础上进行应用开发的极佳范例。基础应用功能和具体的业务应用相对独立,主要包括:用户验证登陆、系统功能管理、权限管理、异常管理、日志管理、会话管理、文件上传下载、分页显示、报表打印等功能。
JAVA通用开发框架可以应用到计算机专业程序设计相关的课程教学及课程设计环节,可以结合项目驱动、案例教学、工作过程导向等教学方法一起使用,具体体现在,在UML建模课程中可以利用框架设计项目,并针对该项目进行对象建模分析;在软件工程、软件测试等课程,可以利用框架设计具体项目,并针对该项目引导学生进行需求分析、总体设计、详细设计、代码测试等环节。在JAVA程序设计课程,可以按照框架的MVC模式搭建项目介绍JAVA语言的实现;在JSP程序设计课程中,可以根据项目主要介绍框架的表示层和控制层的交互过程,更深入一些可以介绍控制层的实现;在数据库原理课程,可以利用框架搭建项目,因为框架基本功能已经实现,且对实现细节进行封装,学生在前台页面设计和数据操作上不需要花费太多的时间,仅需要对后台数据库进行设计;在J2EE课程,可以根据项目介绍框架设计原理和实现过程。总之,使用JAVA通用框架,可以将计算机专业程序设计相关课程链接到一起,形成一套专业技能培养链,也可以将各门课程和教学环节模块化,降低课程间的耦合度,使其重点突出,减少教师和学生的投入。
近年来,项目驱动法、案例教学法、工作过程导向的教学方法等已经引起越来越多高等院校的关注,并应用到实践教学中,但这些教学方法均是针对某门课程教学或设计使用,没有考虑计算机专业的整体相关课程。本文提出一种面向教学的JAVA通用开发框架,通过使用该开发框架,一方面可以将程序设计相关课程链接到一起,另一方面可以将各门课程和教学环节模块化,使其重点突出。在实际教学过程中可以使用该框架技术并结合项目驱动教学法、案例教学法等方式进行。
[1] 赵丹丹,李锡祚.项目驱动教学模式在计算机类人才培养中的实践[J].实验技术与管理,2011,(7):244-247.
[2] 汤海蓉,李锡辉.基于项目驱动的JAVA程序设计教学改革[J].教育与职业,2012,(6):140-142.
[3] 刘勇.基于J2EE的通用开发框架的研究[J].华中师范大学学报(自然科学版),2008,(12):544-548.
[4] 许鑫,费翔林.基于MVC模式的应用软件开发框架研究[J].计算机工程与应用,2005,(10):102-104.
[5] DEEPAK Alur著,刘天北译.J2EE核心模式[M].北京:机械工业出版社,2005:207-231.
[6] 卡炟.开发参考JSTL网络标签与SSH类参考手册[M].北京:中国铁道出版社,2010:35-60
[7] 杨刚,顾宏斌.对基于J2EE的MVC模式视图部分改进[J].计算机技术与发展,2012,(3):103-106
[8] 许畅,杨燕.一种基于MVC模式的Portlet开发框架的设计与实现[J].计算机科学,2012,(7):119-122