首页 > 范文大全 > 正文

基于Web开发的软件工程课程实践教学互动平台

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于Web开发的软件工程课程实践教学互动平台范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 将软件工程课件放到网上让学生通过计算机来学习,可以使学生更好地理解软件工程这门课程的真谛,以此培养学生开发计

>> 基于实践教学平台的软件工程课程教学改革研究 基于软件工程的web开发与应用 基于软件工程的Web开发技术 基于web的教学软件平台开发 基于CDIO的软件工程课程教学实践 基于Moodle平台构建《软件工程》网络课程的设计与实践 基于软件开发团队的软件工程教学实践研究 基于数字化课程网络平台的软件工程专业双语教学模式研究 基于软件工程思想的WEB应用系统开发简介 基于软件工程的Web开发技术及其应用研究 软件工程专业Web类课程实验教学 软件工程方向基于课程群的实践课教学改革 基于CMMI项目导向的高职软件工程课程教学实践 软件工程实践课程教学模式的优化 基于软件开发平台的软件设计课程实践教学模式探讨 基于平台化实践教学体系的软件工程应用型人才培养模式 应用课题实践与项目开发训练特色课程中的软件工程实验教学 “软件工程”网络课程与IBM-Jazz平台整合的研究和实践 “软件工程”网络课程与IBM―Jazz平台整合的研究及其实践 基于工具软件和案例开发的软件工程教学方法 常见问题解答 当前所在位置:,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

1.2 JavaScript技术

Javascript是一种由Netscape的LiveScript发展而来的面向对象的客户端脚本语言,主要目的是为了解决服务器端语言所遗留的速度问题,为客户提供更流畅的浏览效果。

1.3 XML技术

XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立。虽然XML比二进制数据要占用更多的空间,但XML极其简单,易于掌握和使用。XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身;而HTML是用来定义数据的,重在数据的显示模式。

1.4 Struts2框架

Struts 2是一个成熟的支持MVC模式的Web应用程序开发工具,利用它开发MVC模式的Web应用时可以大大降低开发难度,加快开发速度[4]。同时,Struts也是一个可重用、易扩展、成熟的软件开发框架。它的优点主要体现在两个方面:TagLib和页面导航。TagLib是Struts的标签库,其目的是简化JSP表现层代码,提高表现层的开发效率;页面导航是Struts的核心思想,它使得Web应用系统的脉络更加清晰(通过一个配置文件,即可把握整个系统各部分之间的联系),这正是MVC模式的体现形式。Struts 2的体系结构如图1所示。

图1 Struts 2的体系结构图

1.5 JQuery技术

JQuery[5]是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库(压缩后只有21k),它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。JQuery使用户能更方便地处理HTML documents、events,实现动画效果,并且方便地为网站提供AJAX交互。JQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。JQuery能够使用户的html页保持代码与html内容分离。

1.6 Mybatis框架

MyBatis是支持普通SQL查询、存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

2 软件工程课程实践教学互动平台的设计

2.1 系统结构设计

MySQL教学互动平台基本可分为案例学习模块,FAQ模块,角色扮演模块,上传资料模块,师生交互模块和登录、退出等七大块功能。上传资料模块可以进行资料上传;角色扮演模块可以让学生扮作各种身份,如工程师、架构师等;网上评审模块学生以所扮演的身份对他人的实践进行评审;案例学习的六块功能是对案例进行的操作;添加问题与添加回复分别是实现提问与回答的功能;师生交流能让学生和教师在平台上进行交流,与提问、回答类似。

2.2 系统架构设计

2.2.1 系统总体架构设计

本系统采用MVC模式,分为模型(Model)层、视图(View)层和控制(Controller)层。三层体系将业务规则、数据访问等工作放在中间层处理,客户端不直接与数据库交互,而是通过控制层与中间层建立连接,再由中间层与数据库交互。以下就是MVC的三层结构:

⑴ 模型层

模型表示企业数据和业务规则。被模型返回的数据是中立的,就是说模型与数据格式无关,这样的模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。具体包括PO(persistant object,持久对象),DAO(存放方法的接口与实现该接口的实现类)。

本系统中,包括6个PO包与6个DAO包,分别为学生、问题、回答、项目、实践、个性思考。PO包中存放两个文件:一个是*.java的持久化对象类,即与表中字段名字相同的变量以及它们的get()、set()方法;另一个是*.xml的这些变量的映射文件,映射文件会加载持久化对象类。DAO中存放*DAO.interface的接口与*DAOImpl.java的实现类,接口中写需要用到的方法,实现类则实现接口中的方法。

⑵ 视图层

视图是用户看到并与之交互的、由HTML元素组成的界面,通俗地说,就是能在浏览器上看到的,本系统中用到的是JSP文件。由于功能的需要,本系统设计的页面相对来说不多,主要包括登陆界面和主界面。其中有一个公共页面即导航栏,需要包含在各个页面中,让它在每个页面中存在,以方便点击链接。

⑶ 控制层

控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西,不做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

本系统中,控制层为struts.xml与action包里的action类,根据不同的功能写不同的action方法,有些为了方便起见,比如,一个链接要实现多个功能,那么会将多个功能写在一个action方法中,但是一般而言,为了看得明白,一个action方法对应一个功能。

2.2.2 系统总体流程

本系统中,通过使用Struts 2,提供了良好的MVC模式,所有的用户请求都由Struts 2的Action负责拦截,进入相应的Action类中的方法,在该方法内实例化DAO接口中某个实现类,实现类中通过session工厂加载Mybatis配置文件,然后再用之前实例化的那个对象调用实现类对应的方法,再调用相应的增、删、改、查语句,进入数据库进行操作,最后通过Action返回给页面。

2.3 数据库设计

2.3.1 E-R图设计

通过分析本系统所涉及到的主体主要为学生信息、教师信息、问题信息、案例信息,分析这些实体之间的关系和联系,得出系统的简易E-R图,如图2所示。

[回答][老师] [提问][问题][学生] [操作][名字][密码][案例][需求][技术][步骤][名字][密码][主题][内容] [m][n][m][n] [l][n]

图2 E-R图

图2中的矩形表示实体,椭圆表示该实体所具有的属性,如一个问题信息应具有主题、内容等属性,菱形表示实体之间的关系,而用夹着数字的实线表示它们之间的对应关系。

2.3.2 数据库物理结构

对上面的E-R进行详细的分析,尤其是对每个实体的属性进行合理的设置,得到简单的表结构,然后对各个表之间的依赖关系进行分析。

表里面的字段代表E-R图里面的属性,表中的带实线的箭头代表表之间的依赖。

2.3.3 数据库表结构

⑴ 学生表字段名包括:studentid、studentname、studentpsw、studentbirth、college和major,相应的字段描述为:学生id、姓名、密码、生日、学院和专业。其中主键为studentid。

⑵ 问题表字段名包括:questionid、qtitle、qcontent、qdate和studentname,相应的字段描述为:问题id、标题、内容、提问日期和提问者。其中主键为questiontid。

⑶ 案例表字段名包括:projectid、xuqiufenxi、process、head、introduction、goal和technical,相应的字段描述为:案例id、需求分析、开发步骤、标题、引言、系统目标和设计技术。其中主键为projecttid。

⑷ 需求分析表字段名包括:xuqiufenxiid、projectid、xstep1和xdetail1,相应的字段描述为:需求id、案例id、步骤一和详细一。其中主键为xuqiufenxiid。

3 软件工程课程实践教学互动平台的实现

3.1 系统框架搭建

⑴ 搭建struts框架

创建一个Web Project之后在Web.xml中会自动生成Struts2的配置信息。

在scr目录下,会生成Struts.xml的配置文件,定义拦截器,拦截器就好像一个过滤器,可以把不想要或不想显示的内容过滤掉,可以减轻代码冗余,提高重用率。设置内容如下:

Struts.xml会加载com.pub.InstanceInterceptor类中的intercept方法,该方法的作用是生成实现类对象、销毁实现类对象。

⑵ 设置数据库连接文件

创建datebase.properties国际资源化文件,加入如下代码:

driver=oracle.jdbc.OracleDriver url=jdbc:oracle:thin:@127.0.0.1:1521:orcl

username=rwb password=rwb

添加oracle的驱动与url以及自己数据库用户名和密码,连接到Oracle数据库。

⑶ 设置Mybatis框架

创建mybatisconfig.xml的配置文件,在文件中加入Mybatis的头元素,这样就可以进行Mybatis的配置了,代码如下:

"-////DTD Config 3.0//EN"

"http:///dtd/mybatis-3-config.dtd">

之后添加配置信息,在properties中加载数据库连接文件;添加数据源,就是把database.properties的值传进来,driver,url,username,password分别对应database.properties中的数据;mappers用来加载po的映射文件,映射文件必须放入mappers中才能被系统读取。

⑷ 创建InstanceInterceptor类

在Src目录下创建一个包com.pub,创建一个InstanceInterceptor.java的类,进行拦截器的配置,该类的方法在加载struts.xml文件的时候会被执行。首先在开头创建一个接口的对象,如LoginDAO ldao。

该类中有三个方法:destory()方法用于销毁这个对象 ldao=null;init()方法用于实例化该对象ldao=LoginDAOImpl();intercept()方法用于设置request来进行传值,如request.setAttribute("ldao",ldao);第二个参数为之前实例化的对象,第一个参数用来调用第二个参数。

创建MybatisSQLSessionFactory类。

在com.pub包中创建MybatisSQLSessionFactory.java,该类用于加载Mybatisconfig.xml文件。

这样,两个框架跟数据库的配置都基本完成了。

3.2 功能实现

3.2.1 登陆模块

启动系统程序后,首先进入系统登录界面。

在登录平台的时候,系统会要求用户输入账号密码及身份作为验证信息,这是为了防止非法用户输入正常信息后便可以使用本系统,若用户输入有误,将提示错误信息。

3.2.2 导航栏

导航栏显示了整个系统具有的功能模块,并有各功能的链接。

3.2.3 各功能模块

⑴ 添加案例:案例添加共分为六个部分,分别为:标题、引言、系统目标、需求分析、开发步骤、涉及技术,分别填写其内容。重置键将清空所用内容,所以应谨慎使用。

⑵ 显示案例:显示系统中自带的案例,可以点击详情查看具体信息,通过foreach显示所有案例。

⑶ 查看案例:点击案例后面的“详细”,即可查看案例的详细内容。

⑷ 案例分解:在案例详细内容的界面中,点击“项目分解”,即可对案例进行分解,就能查看各部分内容。进入页面时所有内容都是隐藏的,点击“详细”才能看到该部分的详细内容,这样以便清楚观察每个步骤。详细内容后面点击“细节分析”可以查看作者对该步骤的细节分析。继续点击“实践”,则观察者可对该步骤进行实践。

⑸ 模拟实践:点击“实践”,会弹出一个小窗口,该窗口用JQuery实现,学生可对该步骤进行模拟实践。

⑹ FAQ:点击导航栏中的知识管理库-->FAQ,可进入FAQ库,里面罗列了所有的问题,在下面的文本框中,可以添加所需要的问题,实现方法跟案例的显示一样。点击“详细”,可进入查看问题的详细信息以及该问题对应的回答,下面的文本框可对该问题进行回答。

⑺ 资料库:资料库中存放着一些文件,学生可以对其进行下载。

4 结束语

本文设计实现了一个基于Web开发的软件工程课程实践教学互动平台。通过该平台学习,学生将能够较好地理解并掌握软件工程项目的开发理论和方法。通过参与完成一个具体的工程项目,将极大地激发学生的学习兴趣,提高学习的主动性,使得从事软件项目开发的专业能力得到增强。该系统将教学与实践很好地结合起来,并增加了互动交流的环节。学生通过软件开发实践实验真实的体会到软件开发的整个过程;通过贴近自己的命题激发学习兴趣,增强团队意识,提高交流及沟通能力;通过项目管理意识和内容的引入使学生真正感受到软件开发的复杂性和所需要的严谨思维和态度。

参考文献:

[1] 白小军,史璇,罗钧妟.基于Web的学校网络管理平台设计[J].教学与

管理(理论版),2007.

[2] 邢东山,沈钧毅,原野.基于Web使用挖掘技术的个性化教育网站构

筑[J].计算机应用与软件,2002.8.

[3] 张波,张福炎.基于JSP技术的Web应用程序的开发[J].计算机应用

研究,2001.18(5):99-101

[4] 刘斌,王最.Struts,Spring,Hibernate框架在OA开发中的应用[J].计

算机技术与发展,2010.20(1):151-154

[5] 李峰,刘彦隆.基于SSH框架与jQuery技术的JavaWeb开发应用[J].

科技情报开发与经济,2010.6:106-108