计算机时代2013年第12期
・
35
・
基于Web开发的软件工程课程实践教学互动平台
顾靓1,陈进原2,许锦才2,严盟2
(1.杭州电子科技大学,浙江杭州310018;2.浙江天正信息科技有限公司)
摘要:将软件工程课件放到网上让学生通过计算机来学习,可以使学生更好地理解软件工程这门课程的真谛,以此培
养学生开发计算机应用系统的实际能力。为此设计了一个软件工程课程实践教学互动平台,给出了其各功能的详细设
计。该平台结合了JaVa、HTML语言与S仉如2框架,提供了一种软件工程新的学习方法。案例提供者将案例传到网上,学生即可对其进行模拟实践,并对实践的分析结果进行记录,以便再次学习或者提供给他人学习。学生还可以在平台上互相交流,互相帮助。
关键词:Wcb;S廿uts2;Java;HTML;软件工程;模拟实践中图分类号:TP311.1
文献标志码:A
文章编号:1006—8228(2013)12—35一03
Implementationofsof.twareen酉neeringpracticeteachinginteractionplatl.ormbased
on
Web
Gu
Liall91,chell
Jinyu秆,xuJincai2,Y纽Mcn矿
(J.舶耐ouD池捌‰it】ers咖舶,lg勘u,zh驰ng
3JDDJ
8I饥iM;2.觋咖,lg丁砸概r蜘m口渤n%c^加锄co.,厶d)
Abstract:Itisnecessaryto
makea
refb姗of
theteachillg
ways
in
orderto
achieVethehigherefIiciency.nmingtllematerials
of
software
engineering
on
the
website
aIldlettillgsnldentsleanl
on
computerswm
makestIlden乜have
a
be仕er岫ders蛐g
ofthe
course
趾d
a
s仃0nger
s虹ll
of
developing也e
computer
applications.
In
也is
paper,
a
so脚are
enginee渤gpracticeteaching
interactionpla怕咖isd髂i驴ed,which
combinesmelanguageofJavaaIldHTMLwim
tlle触meworkofS仃uts2well.Whenc硒e
providers
subm“cases
to
thewebsites,students
caIlmakea
sinmlativepracticeoftlle
casesaIld
note
down
me
analysis
resultsof
pr∞tice.AUtheserecordsc锄bestlldied
agaill
asweU
as
be
o疗ered
forothe巧.Studentsc锄alsocomfmmicatewi也eachotller
on也ewcbsites.AllthefIlIlctionsoflhissystem
are
so
siInple柚ddevelopedill
d咖il
that
stIldents
c孤studyiteasily
Key帅rds:Web;s昀cs
2;Java;HT池;so疗ware
enginee血g;sinlulation
pmctice
O引言
沟通能力。通过项目管理意识和内容的引入,可以使学生真正软件工程是计算机专业一门重要的专业核心课程,对学生感受到软件开发的复杂性和所需要的严谨思维及态度。今后从事计算机软件相关工作岗位具有很强的实践性。该课1技术简介
程着眼于从全局角度出发分析和解决问题,对于培养学生的工1.1
JSP技术程能力、系统能力、实践创新能力、规范化工作能力、沟通能力、JsP(Java
senrer
Pages)是由sunMicmsystems公司倡导、
表达与文档能力、自我学习能力有着极其重要的意义。
许多公司参与一起建立的一种动态网页技术标准嘲。JsP技术
目前,国内高校对于该类课程的传统做法是以教师课堂授有点类似AsP技术,它是在传统的网页mMI,文件(;.htIIl,;.
课为主,学生被动地听课,教学内容一般是重理论而轻实践“1。htIIll)中插入Java程序段(sc邱tlet)和JsP标记(tag),从而形成即使配备课程实验,学生也只是编写一些规定的文档,其开发JsP文件(。二jsp)。用JsP开发的、Ⅳeb应用是跨平台的,既能在方式和手段基本上与软件工程的要求脱节。很多学生在学习
Linux下运行,也能在其他操作系统上运行。
该课程时,感到内容抽象枯燥,常常是似懂非懂,甚至觉得本课
1.2JaVaScr.pt技术
程没什么实用价值,不太喜欢学。因此必须对该课程进行改Javascript是一种由Netscape的Livescript发展而来的面向
革。采用案例教学和研究性教学模式,能突出实践环节,培养对象的客户端脚本语言,主要目的是为了解决服务器端语言所学生开发计算机应用系统的实际能力吲。本文设计了一个基于遗留的速度问题,为客户提供更流畅的浏览效果。
web开发的软件工程课程实践教学互动平台,将教学与实践很1.3
XML技术好地结合起来,并增加了互动交流的环节。学生将通过软件开xML(Extensible
M破upLaIlguage)即可扩展标记语言,
发实践实验真实地体会到软件开发的整个过程,通过贴近自己它与HTML一样,都是SQ咀。(St柚dardGeneralized
MarImp
的命题更能够激发兴趣,同时可以增强团队意识,提高交流及
LaJlguage,标准通用标记语言)。xIlll是hltemet环境中跨平台
收稿日期:2013—9—12
作者简介:顾靓(1989一),女,浙江省宁波市人,硕士研究生,主要研究方向:计算机软件与理论。
・
36
・
ComputerEraNo.122013
的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。Ⅺ咀。是一种简单的数据存储语言,使用一系列简单的标
记描述数据,而这些标记可以用方便的方式建立。虽然xML比二进制数据要占用更多的空间,但xML极其简单,易于掌握和使用。xML与HTML的设计区别是:xML是用来存储数据
块功能是对案例进行的操作;添加问题与添加回复分别是实现提问与回答的功能;师生交流能让学生和教师在平台上进行交
流,与提问、回答类似。2.2系统架构设计2.2.1系统总体架构设计
的,重在数据本身;而HTML是用来定义数据的,重在数据的显
示模式。
1.4
本系统采用Mvc模式,分为模型(Model)层、视图(View)层和控制(controller)层。三层体系将业务规则、数据访问等工作放在中间层处理,客户端不直接与数据库交互,而是通过控制层与中间层建立连接,再由中间层与数据库交互。以下就是
MVc的三层结构:
(1)模型层
模型表示企业数据和业务规则。被模型返回的数据是中立的,就是说模型与数据格式无关,这样的模型能为多个视图
S”uts2框架
s廿uts
2是一个成熟的支持MVc模式的web应用程序开
发工具,利用它开发Mvc模式的web应用时可以大大降低开
发难度,加快开发速度”1。同时,Stmts也是一个可重用、易扩展、成熟的软件开发框架。它的优点主要体现在两个方面:TagLib和页面导航。TagLib是stmts的标签库,其目的是简化
JsP表现层代码,提高表现层的开发效率;页面导航是stmts的核心思想,它使得web应用系统的脉络更加清晰(通过一个配
置文件,即可把握整个系统各部分之间的联系),这正是Mvc
提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。具体包括PO(persistantobject,持久对象),DAO(存放方法的接口与实现该接口的实
现类)。
模式的体现形式。s咖ts2的体系结构如图l所示。
本系统中,包括6个PO包与6个DA0包,分别为学生、问
题、回答、项目、实践、个性思考。PO包中存放两个文件:一个是*java的持久化对象类,即与表中字段名字相同的变量以及
它们的get()、set()方法;另一个是+.煳l的这些变量的映射文件,
映射文件会加载持久化对象类。DAo中存放mDAo.interface的接口与sDAOImpl二java的实现类,接口中写需要用到的方法,实
现类则实现接口中的方法。
图l
1.5
stnlfs
2的体系结构图
(2)视图层
视图是用户看到并与之交互的、由HTML元素组成的界
面,通俗地说,就是能在浏览器上看到的,本系统中用到的是JsP文件。由于功能的需要,本系统设计的页面相对来说不多,主要包括登陆界面和主界面。其中有一个公共页面即导航栏,需要包含在各个页面中,让它在每个页面中存在,以方便点击链接。
(3)控制层
JQuery技术
JQuery㈨是继prototype之后又一个优秀的Javascdpt框架。
它是轻量级的js库(压缩后只有21k),它兼容css3,还兼容各种浏览器(IE
6.o+,FF
1.5+,saf撕2.o+,0pera9.o+)。
JQuery使用户能更方便地处理HTMLdocuments、events,实现动画效果,并且方便地为网站提供AJAx交互。JQuery还有一
个比较大的优势是,它的文档说明很全,而且各种应用也说得
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击web页面中的超链接和发送mrML表单时,控制器本身不输出任何东西,不做任何处理。它只是接收请求
并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
本系统中,控制层为stmts.xml与action包里的action类,根据不同的功能写不同的action方法,有些为了方便起见,比如,
很详细,同时还有许多成熟的插件可供选择。JQuery能够使用户的html页保持代码与html内容分离。
1.6
Mybatis框架
MyBatis是支持普通sQL查询、存储过程和高级映射的优
秀持久层框架。MyBatis消除了几乎所有的JDBc代码和参数的手工设置以及结果集的检索。MyBatis使用简单的xML或注解用于配置和原始映射,将接口和Java的POJ0s(Plain
Java
0ld
一个链接要实现多个功能,那么会将多个功能写在一个action方法中,但是一般而言,为了看得明白,一个action方法对应一
个功能。
2.2.2系统总体流程
本系统中,通过使用stmts2,提供了良好的Mvc模式,所有的用户请求都由stnlts2的Action负责拦截,进入相应的Action类中的方法,在该方法内实例化DAo接口中某个实现类,实现类中通过session工厂加载Mybatis配置文件,然后再用之前实例化的那个对象调用实现类对应的方法,再调用相应的
0bjects,普通的Java对象)映射成数据库中的记录。
2软件工程课程实践教学互动平台的设计
2.1系统结构设计
MysQL教学互动平台基本可分为案例学习模块,FAQ模块,角色扮演模块,上传资料模块,师生交互模块和登录、退出
等七大块功能。上传资料模块可以进行资料上传;角色扮演模
块可以让学生扮作各种身份,如工程师、架构师等;网上评审模块学生以所扮演的身份对他人的实践进行评审;案例学习的六
增、删、改、查语句,进入数据库进行操作,最后通过Action返回
计算机时代2013年第12期
给页面。2.3数据库设计
2.3.1E—R图设计
<inter∞ptorname=”instance”
・
37
・
dass=“∞m.pub.InstanceIntercep的r。>
smlts.xⅡd会加载com.pub.IIIstarlceInterceptor类中的intercept方法,该方法的作用是生成实现类对象、销毁实现类对象。
(2)设置数据库连接文件
通过分析本系统所涉及到的主体主要为学生信息、教师信息、问题信息、案例信息,分析这些实体之间的关系和联系,得
出系统的简易E—R图.如图2所示。
老师
创建datebase.pmperties国际资源化文件,加入如下代码:
d帆}—0阳de捌bc.o刷eDnverun-jd吣。刷e=lhin:@127.00.1:1521:鲤!
usemame=凸地
password=凸地
遮
{m
卜俪
L/√鱼圭
添加oracle的驱动与un以及自己数据库甩户名和密码,连接到oracle数据库。
(3)设置Mybatis框架
创建mybatisconfig.xml的配置文件,在文件中加入Mybatis的头元素,这样就可以进行Mybatis的配置了,代码如下:
<!DOCTYPEcon啊guratiOnPUBLIC”-,,mybalis.org,,DTDCOn啊g3.0,,EN”
口虱
百
:内容
鑫
厂菘雕
2.3.2数据库物理结构赖关系进行分析。头代表表之间的依赖。2.3.3数据库表结构
◇
《
E—R图
”http:/,mybatis。org,dtd,mybatis-3一∞nng.dtd”>
之后添加配置信息,在properties中加载数据库连接文件;
图2
添加数据源,就是把database.pmperties的值传进来,埘ver,url,
图2中的矩形表示实体,椭圆表示该实体所具有的属性,如一个问题信息应具有主题、内容等属性,菱形表示实体之间的关系,而用夹着数字的实线表示它们之间的对应关系。
对上面的E—R进行详细的分析,尤其是对每个实体的属性进行合理的设置,得到简单的表结构,然后对各个表之间的依
usem锄e,password分别对应database.pmperties中的数据;
mappers用来加载po的映射文件,映射文件必须放入mappers
中才能被系统读取。
(4)创建lnstanceInterceDtor妻
在src目录下创建一个包com.pub,创建一个InstallceInte卜
ceptoLjava的类,进行拦截器的配置,该类的方法在加载stnlts.
xIIll文件的时候会被执行。首先在开头创建一个接口的对象,
如LoginDAo
ldao。
表里面的字段代表E—R图里面的属性,表中的带实线的箭
该类中有三个方法:destory()方法用于销毁这个对象
ldao=null;init()方法用于实例化该对象1dao=LogiIIDAoImpl();intercept()方法用于设置r。quest来进行传值,如request.setAttribute(”ldao”,ldao);第二个参数为之前实例化的对象,第一个参数用来调用第二个参数。
创建MybatissQLsessioIlFactory类。
在com.pub包中创建MybatisSQLsessionFactoryjava,该类
(1)学生表字段各包括:studentid、smdentll锄e、smdentpsw、smdentbinh、college和major,相应的字段描述为:学生m姓名、
密码、生日、学院和专业。其中主键为stIldentid。
(2)问题表字段名包括:questionid、qtitle、qcontent、qdate和
studentn啪e,相应的字段描述为:问题id、标题、内容、提问日期
和提问者。其中主键为questiontid。
(3)案例表字段名包括:projectid、xuqiufenxi、pmcess、head、in仃oduction、goal和tecIlIlical,相应的字段描述为:案例id、需求分析、开发步骤、标题、引言、系统目标和设计技术。其中主键为projecnid。
(4)需求分析表字段名包括:xuqiufenxiid、projectid、xstepl
和xdetaill,相应的字段描述为:需求id、案例id、步骤一和详细一。其中主键为xuqiufenxiid。
用于加载Mybanscon地.xml文件。
这样,两个框架跟数据库的配置都基本完成了。
3.2功能实现
3.2.1登陆模块
启动系统程序后,首先进入系统登录界面。
在登录平台的时候,系统会要求用户输入账号密码及身份作为验证信息,这是为了防止非法用户输入正常信息后便可以
使用本系统,若用户输入有误,将提示错误信息。3.2.2导航栏
3软件工程课程实践教学互动平台的实现
3.1系统框架搭建
(1)搭建stnJts框架
导航栏显示了整个系统具有的功能模块,并有各功能的
链接。
3.2.3各功能模块
创建一个webProject之后在web.xITll中会自动生成s劬ts2的配置信息。
在scr目录下,会生成stnlts.xfnl的配置文件,定义拦截器,
拦截器就好像一个过滤器,可以把不想要或不想显示的内容过滤掉,可以减轻代码冗余,提高重用率。设置内容如下:
(1)添加案例:案例添加共分为六个部分,分别为:标题、引言、系统目标、需求分析、开发步骤、涉及技术,分别填写其内容。重置键将清空所用内容,所以应谨慎使用。
(2)显示案例:显示系统中自带的案例,可以点击详情查看
(下转第41页)
计算机时代2013年第12期
改进后算法的求解时间主要消耗在两个方面,一是查找中
・4l
・
间点,二是在中间点的邻接点中找出从起点经过中间点到该邻接点的更小的权值和。查找中间点时,本文算法采用堆排序的思想找出最小权值的节点作为中间点,一趟堆排序的时间复杂度为o(109:n);找中问点的邻接点时,由于算法采用的是邻接多重表存储图,每个节点的所有邻接边都在同一个链表中,所以每次遍历次数是当前节点的邻接边的条数e;而这两个过程的外循环都遍历了所有节点,都是需要循环n次。所以改进算法最坏的时间复杂度为o(n+(109。n+e)),但是在实际地图中每个点的邻接边数e都很少,远小于图的节点数n,因此在求解实
际地图的最短路径问题时本文算法的时间复杂度可以认为是
o(n
现了改进的算法并在模拟地图上仿真实验,实验表明,改进算法能够快速找到起点到目的地的最短路径。
参考文献:
【1】王树曲,吴政学.改避的DⅡsktra最短赡往算法及其应用研究【J1.什算
机科学,2012.39(5):223—228
【2】章永龙.D”kstra最短路桎算法优化【J】.南昌工程学院学报,2006.
25(3):30一33
【3】王志和,凌云.DUl‘slra最短路往算法的优化及其实现【J】.t计算机信
息,2007.23(11):275—277
【4l王舞存,张晓彤,陈彬等.一种基于D”l‘s廿a算法的启发式最优路径搜
索算法【J】.北京科技太学学报,2007.29(3):346—349
f5】严蔚敏,吴伟民.数据结构(C语言版)fM】.清毕大学出版社,1997.16】张勤.DⅪkstra最短路往算法的C话言实现【J1.福州大学学报,2011_4:
24—27
log。n)。传统础ks廿a算法和本文算法的时间复杂度对比
表3算法的时间复杂度对比
如表3所示。
【7】程杰.大话盘据结构【M】.清华大学出版社,2011.
【8】司连法,王文静.快速DUkstra最短路往优化算法的实统【J】测绘通报,
2005.8:15—17
【9l张成花.GIS中一种改进的DUsktra算法及其实统IJ】.计算机应用与获
件,2011.28(5):275—277
4结束语
本文在分析了传统Dj_jks仃a算法的基础上,对Dj_jks仃a算法
【10】廖远.一对一最短路往算法研究及车载导航系统设计【D】.南昌大学,
2012.
的存储结构进行了分析,采用邻接多重表来构建无向图,优化了构建无向图和求解最短路径问题的时间复杂度。用c++实
【111郝春梅.一种改避的D”k曲国算法的分析及程序实现IJ】.计算机与统
代蝴011.1:36—38圜
(上接第37页)
具体信息,通过£0rc撒h显示所有案例。
(3)查看案例:点击案例后面的“详细”,即可查看案例的详
细内容。
教学互动平台。通过该平台学习,学生将能够较好地理解并掌握软件工程项目的开发理论和方法。通过参与完成一个具体的工程项目,将极大地激发学生的学习兴趣,提高学习的主动性,使得从事软件项目开发的专业能力得到增强。该系统将教学与实践很好地结合起来,并增加了互动交流的环节。学生通过软件开发实践实验真实的体会到软件开发的整个过程;通过贴近自己的命题激发学习兴趣,增强团队意识,提高交流及沟通能力;通过项目管理意识和内容的引入使学生真正感受到软
件开发的复杂性和所需要的严谨思维和态度。参考文献:
11】白小军,史璇,罗钧要.基于Web的学校网络管理平台设计【J】.教学与
管理(理论版),2007.
【2】邢东山,沈钧毅,原野.基于Web使用挖掘技术的个性化教育网站构
(4)案例分解:在案例详细内容的界面中,点击“项目分解”,即可对案例进行分解,就能查看各部分内容。进入页面时所有内容都是隐藏的,点击“详细”才能看到该部分的详细内容,这样以便清楚观察每个步骤。详细内容后面点击“细节分
析”可以查看作者对该步骤的细节分析。继续点击“实践”,则
观察者可对该步骤进行实践。
(5)模拟实践:点击“实践”,会弹出一个小窗口,该窗口用JQuery实现,学生可对该步骤进行模拟实践。
(6)FAQ:点击导航栏中的知识管理库一>FAQ,可进入FAQ库,里面罗列了所有的问题,在下面的文本框中,可以添加所需要的问题,实现方法跟案例的显示一样。点击“详细”,可进入查看问题的详细信息以及该问题对应的回答,下面的文本框可对该问题进行回答。
(7)资料库:资料库中存放着一些文件,学生可以对其进行
下载。
筑【J】计算机应用与授件,2002.8.
【3】张波,张福炎.基于JSP技术的Web应用程序的开发【J】.什算机应用
研究,2001.18(5):99—101
【4】刘斌,王最.StnJts,Spring,Hibemate框杂在oA开震中的应用【J】.计
算机技术与发展,2010.20(1):151—154
【5】李峰,刘彦隆.基于SSH框架与jQuery技术的JavaWeb开发应用【J】.
4结束语
本文设计实现了一个基于web开发的软件工程课程实践
科技情报开发与经济,2010・6:106—108
翻
计算机时代2013年第12期
・
35
・
基于Web开发的软件工程课程实践教学互动平台
顾靓1,陈进原2,许锦才2,严盟2
(1.杭州电子科技大学,浙江杭州310018;2.浙江天正信息科技有限公司)
摘要:将软件工程课件放到网上让学生通过计算机来学习,可以使学生更好地理解软件工程这门课程的真谛,以此培
养学生开发计算机应用系统的实际能力。为此设计了一个软件工程课程实践教学互动平台,给出了其各功能的详细设
计。该平台结合了JaVa、HTML语言与S仉如2框架,提供了一种软件工程新的学习方法。案例提供者将案例传到网上,学生即可对其进行模拟实践,并对实践的分析结果进行记录,以便再次学习或者提供给他人学习。学生还可以在平台上互相交流,互相帮助。
关键词:Wcb;S廿uts2;Java;HTML;软件工程;模拟实践中图分类号:TP311.1
文献标志码:A
文章编号:1006—8228(2013)12—35一03
Implementationofsof.twareen酉neeringpracticeteachinginteractionplatl.ormbased
on
Web
Gu
Liall91,chell
Jinyu秆,xuJincai2,Y纽Mcn矿
(J.舶耐ouD池捌‰it】ers咖舶,lg勘u,zh驰ng
3JDDJ
8I饥iM;2.觋咖,lg丁砸概r蜘m口渤n%c^加锄co.,厶d)
Abstract:Itisnecessaryto
makea
refb姗of
theteachillg
ways
in
orderto
achieVethehigherefIiciency.nmingtllematerials
of
software
engineering
on
the
website
aIldlettillgsnldentsleanl
on
computerswm
makestIlden乜have
a
be仕er岫ders蛐g
ofthe
course
趾d
a
s仃0nger
s虹ll
of
developing也e
computer
applications.
In
也is
paper,
a
so脚are
enginee渤gpracticeteaching
interactionpla怕咖isd髂i驴ed,which
combinesmelanguageofJavaaIldHTMLwim
tlle触meworkofS仃uts2well.Whenc硒e
providers
subm“cases
to
thewebsites,students
caIlmakea
sinmlativepracticeoftlle
casesaIld
note
down
me
analysis
resultsof
pr∞tice.AUtheserecordsc锄bestlldied
agaill
asweU
as
be
o疗ered
forothe巧.Studentsc锄alsocomfmmicatewi也eachotller
on也ewcbsites.AllthefIlIlctionsoflhissystem
are
so
siInple柚ddevelopedill
d咖il
that
stIldents
c孤studyiteasily
Key帅rds:Web;s昀cs
2;Java;HT池;so疗ware
enginee血g;sinlulation
pmctice
O引言
沟通能力。通过项目管理意识和内容的引入,可以使学生真正软件工程是计算机专业一门重要的专业核心课程,对学生感受到软件开发的复杂性和所需要的严谨思维及态度。今后从事计算机软件相关工作岗位具有很强的实践性。该课1技术简介
程着眼于从全局角度出发分析和解决问题,对于培养学生的工1.1
JSP技术程能力、系统能力、实践创新能力、规范化工作能力、沟通能力、JsP(Java
senrer
Pages)是由sunMicmsystems公司倡导、
表达与文档能力、自我学习能力有着极其重要的意义。
许多公司参与一起建立的一种动态网页技术标准嘲。JsP技术
目前,国内高校对于该类课程的传统做法是以教师课堂授有点类似AsP技术,它是在传统的网页mMI,文件(;.htIIl,;.
课为主,学生被动地听课,教学内容一般是重理论而轻实践“1。htIIll)中插入Java程序段(sc邱tlet)和JsP标记(tag),从而形成即使配备课程实验,学生也只是编写一些规定的文档,其开发JsP文件(。二jsp)。用JsP开发的、Ⅳeb应用是跨平台的,既能在方式和手段基本上与软件工程的要求脱节。很多学生在学习
Linux下运行,也能在其他操作系统上运行。
该课程时,感到内容抽象枯燥,常常是似懂非懂,甚至觉得本课
1.2JaVaScr.pt技术
程没什么实用价值,不太喜欢学。因此必须对该课程进行改Javascript是一种由Netscape的Livescript发展而来的面向
革。采用案例教学和研究性教学模式,能突出实践环节,培养对象的客户端脚本语言,主要目的是为了解决服务器端语言所学生开发计算机应用系统的实际能力吲。本文设计了一个基于遗留的速度问题,为客户提供更流畅的浏览效果。
web开发的软件工程课程实践教学互动平台,将教学与实践很1.3
XML技术好地结合起来,并增加了互动交流的环节。学生将通过软件开xML(Extensible
M破upLaIlguage)即可扩展标记语言,
发实践实验真实地体会到软件开发的整个过程,通过贴近自己它与HTML一样,都是SQ咀。(St柚dardGeneralized
MarImp
的命题更能够激发兴趣,同时可以增强团队意识,提高交流及
LaJlguage,标准通用标记语言)。xIlll是hltemet环境中跨平台
收稿日期:2013—9—12
作者简介:顾靓(1989一),女,浙江省宁波市人,硕士研究生,主要研究方向:计算机软件与理论。
・
36
・
ComputerEraNo.122013
的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。Ⅺ咀。是一种简单的数据存储语言,使用一系列简单的标
记描述数据,而这些标记可以用方便的方式建立。虽然xML比二进制数据要占用更多的空间,但xML极其简单,易于掌握和使用。xML与HTML的设计区别是:xML是用来存储数据
块功能是对案例进行的操作;添加问题与添加回复分别是实现提问与回答的功能;师生交流能让学生和教师在平台上进行交
流,与提问、回答类似。2.2系统架构设计2.2.1系统总体架构设计
的,重在数据本身;而HTML是用来定义数据的,重在数据的显
示模式。
1.4
本系统采用Mvc模式,分为模型(Model)层、视图(View)层和控制(controller)层。三层体系将业务规则、数据访问等工作放在中间层处理,客户端不直接与数据库交互,而是通过控制层与中间层建立连接,再由中间层与数据库交互。以下就是
MVc的三层结构:
(1)模型层
模型表示企业数据和业务规则。被模型返回的数据是中立的,就是说模型与数据格式无关,这样的模型能为多个视图
S”uts2框架
s廿uts
2是一个成熟的支持MVc模式的web应用程序开
发工具,利用它开发Mvc模式的web应用时可以大大降低开
发难度,加快开发速度”1。同时,Stmts也是一个可重用、易扩展、成熟的软件开发框架。它的优点主要体现在两个方面:TagLib和页面导航。TagLib是stmts的标签库,其目的是简化
JsP表现层代码,提高表现层的开发效率;页面导航是stmts的核心思想,它使得web应用系统的脉络更加清晰(通过一个配
置文件,即可把握整个系统各部分之间的联系),这正是Mvc
提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。具体包括PO(persistantobject,持久对象),DAO(存放方法的接口与实现该接口的实
现类)。
模式的体现形式。s咖ts2的体系结构如图l所示。
本系统中,包括6个PO包与6个DA0包,分别为学生、问
题、回答、项目、实践、个性思考。PO包中存放两个文件:一个是*java的持久化对象类,即与表中字段名字相同的变量以及
它们的get()、set()方法;另一个是+.煳l的这些变量的映射文件,
映射文件会加载持久化对象类。DAo中存放mDAo.interface的接口与sDAOImpl二java的实现类,接口中写需要用到的方法,实
现类则实现接口中的方法。
图l
1.5
stnlfs
2的体系结构图
(2)视图层
视图是用户看到并与之交互的、由HTML元素组成的界
面,通俗地说,就是能在浏览器上看到的,本系统中用到的是JsP文件。由于功能的需要,本系统设计的页面相对来说不多,主要包括登陆界面和主界面。其中有一个公共页面即导航栏,需要包含在各个页面中,让它在每个页面中存在,以方便点击链接。
(3)控制层
JQuery技术
JQuery㈨是继prototype之后又一个优秀的Javascdpt框架。
它是轻量级的js库(压缩后只有21k),它兼容css3,还兼容各种浏览器(IE
6.o+,FF
1.5+,saf撕2.o+,0pera9.o+)。
JQuery使用户能更方便地处理HTMLdocuments、events,实现动画效果,并且方便地为网站提供AJAx交互。JQuery还有一
个比较大的优势是,它的文档说明很全,而且各种应用也说得
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击web页面中的超链接和发送mrML表单时,控制器本身不输出任何东西,不做任何处理。它只是接收请求
并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
本系统中,控制层为stmts.xml与action包里的action类,根据不同的功能写不同的action方法,有些为了方便起见,比如,
很详细,同时还有许多成熟的插件可供选择。JQuery能够使用户的html页保持代码与html内容分离。
1.6
Mybatis框架
MyBatis是支持普通sQL查询、存储过程和高级映射的优
秀持久层框架。MyBatis消除了几乎所有的JDBc代码和参数的手工设置以及结果集的检索。MyBatis使用简单的xML或注解用于配置和原始映射,将接口和Java的POJ0s(Plain
Java
0ld
一个链接要实现多个功能,那么会将多个功能写在一个action方法中,但是一般而言,为了看得明白,一个action方法对应一
个功能。
2.2.2系统总体流程
本系统中,通过使用stmts2,提供了良好的Mvc模式,所有的用户请求都由stnlts2的Action负责拦截,进入相应的Action类中的方法,在该方法内实例化DAo接口中某个实现类,实现类中通过session工厂加载Mybatis配置文件,然后再用之前实例化的那个对象调用实现类对应的方法,再调用相应的
0bjects,普通的Java对象)映射成数据库中的记录。
2软件工程课程实践教学互动平台的设计
2.1系统结构设计
MysQL教学互动平台基本可分为案例学习模块,FAQ模块,角色扮演模块,上传资料模块,师生交互模块和登录、退出
等七大块功能。上传资料模块可以进行资料上传;角色扮演模
块可以让学生扮作各种身份,如工程师、架构师等;网上评审模块学生以所扮演的身份对他人的实践进行评审;案例学习的六
增、删、改、查语句,进入数据库进行操作,最后通过Action返回
计算机时代2013年第12期
给页面。2.3数据库设计
2.3.1E—R图设计
<inter∞ptorname=”instance”
・
37
・
dass=“∞m.pub.InstanceIntercep的r。>
smlts.xⅡd会加载com.pub.IIIstarlceInterceptor类中的intercept方法,该方法的作用是生成实现类对象、销毁实现类对象。
(2)设置数据库连接文件
通过分析本系统所涉及到的主体主要为学生信息、教师信息、问题信息、案例信息,分析这些实体之间的关系和联系,得
出系统的简易E—R图.如图2所示。
老师
创建datebase.pmperties国际资源化文件,加入如下代码:
d帆}—0阳de捌bc.o刷eDnverun-jd吣。刷e=lhin:@127.00.1:1521:鲤!
usemame=凸地
password=凸地
遮
{m
卜俪
L/√鱼圭
添加oracle的驱动与un以及自己数据库甩户名和密码,连接到oracle数据库。
(3)设置Mybatis框架
创建mybatisconfig.xml的配置文件,在文件中加入Mybatis的头元素,这样就可以进行Mybatis的配置了,代码如下:
<!DOCTYPEcon啊guratiOnPUBLIC”-,,mybalis.org,,DTDCOn啊g3.0,,EN”
口虱
百
:内容
鑫
厂菘雕
2.3.2数据库物理结构赖关系进行分析。头代表表之间的依赖。2.3.3数据库表结构
◇
《
E—R图
”http:/,mybatis。org,dtd,mybatis-3一∞nng.dtd”>
之后添加配置信息,在properties中加载数据库连接文件;
图2
添加数据源,就是把database.pmperties的值传进来,埘ver,url,
图2中的矩形表示实体,椭圆表示该实体所具有的属性,如一个问题信息应具有主题、内容等属性,菱形表示实体之间的关系,而用夹着数字的实线表示它们之间的对应关系。
对上面的E—R进行详细的分析,尤其是对每个实体的属性进行合理的设置,得到简单的表结构,然后对各个表之间的依
usem锄e,password分别对应database.pmperties中的数据;
mappers用来加载po的映射文件,映射文件必须放入mappers
中才能被系统读取。
(4)创建lnstanceInterceDtor妻
在src目录下创建一个包com.pub,创建一个InstallceInte卜
ceptoLjava的类,进行拦截器的配置,该类的方法在加载stnlts.
xIIll文件的时候会被执行。首先在开头创建一个接口的对象,
如LoginDAo
ldao。
表里面的字段代表E—R图里面的属性,表中的带实线的箭
该类中有三个方法:destory()方法用于销毁这个对象
ldao=null;init()方法用于实例化该对象1dao=LogiIIDAoImpl();intercept()方法用于设置r。quest来进行传值,如request.setAttribute(”ldao”,ldao);第二个参数为之前实例化的对象,第一个参数用来调用第二个参数。
创建MybatissQLsessioIlFactory类。
在com.pub包中创建MybatisSQLsessionFactoryjava,该类
(1)学生表字段各包括:studentid、smdentll锄e、smdentpsw、smdentbinh、college和major,相应的字段描述为:学生m姓名、
密码、生日、学院和专业。其中主键为stIldentid。
(2)问题表字段名包括:questionid、qtitle、qcontent、qdate和
studentn啪e,相应的字段描述为:问题id、标题、内容、提问日期
和提问者。其中主键为questiontid。
(3)案例表字段名包括:projectid、xuqiufenxi、pmcess、head、in仃oduction、goal和tecIlIlical,相应的字段描述为:案例id、需求分析、开发步骤、标题、引言、系统目标和设计技术。其中主键为projecnid。
(4)需求分析表字段名包括:xuqiufenxiid、projectid、xstepl
和xdetaill,相应的字段描述为:需求id、案例id、步骤一和详细一。其中主键为xuqiufenxiid。
用于加载Mybanscon地.xml文件。
这样,两个框架跟数据库的配置都基本完成了。
3.2功能实现
3.2.1登陆模块
启动系统程序后,首先进入系统登录界面。
在登录平台的时候,系统会要求用户输入账号密码及身份作为验证信息,这是为了防止非法用户输入正常信息后便可以
使用本系统,若用户输入有误,将提示错误信息。3.2.2导航栏
3软件工程课程实践教学互动平台的实现
3.1系统框架搭建
(1)搭建stnJts框架
导航栏显示了整个系统具有的功能模块,并有各功能的
链接。
3.2.3各功能模块
创建一个webProject之后在web.xITll中会自动生成s劬ts2的配置信息。
在scr目录下,会生成stnlts.xfnl的配置文件,定义拦截器,
拦截器就好像一个过滤器,可以把不想要或不想显示的内容过滤掉,可以减轻代码冗余,提高重用率。设置内容如下:
(1)添加案例:案例添加共分为六个部分,分别为:标题、引言、系统目标、需求分析、开发步骤、涉及技术,分别填写其内容。重置键将清空所用内容,所以应谨慎使用。
(2)显示案例:显示系统中自带的案例,可以点击详情查看
(下转第41页)
计算机时代2013年第12期
改进后算法的求解时间主要消耗在两个方面,一是查找中
・4l
・
间点,二是在中间点的邻接点中找出从起点经过中间点到该邻接点的更小的权值和。查找中间点时,本文算法采用堆排序的思想找出最小权值的节点作为中间点,一趟堆排序的时间复杂度为o(109:n);找中问点的邻接点时,由于算法采用的是邻接多重表存储图,每个节点的所有邻接边都在同一个链表中,所以每次遍历次数是当前节点的邻接边的条数e;而这两个过程的外循环都遍历了所有节点,都是需要循环n次。所以改进算法最坏的时间复杂度为o(n+(109。n+e)),但是在实际地图中每个点的邻接边数e都很少,远小于图的节点数n,因此在求解实
际地图的最短路径问题时本文算法的时间复杂度可以认为是
o(n
现了改进的算法并在模拟地图上仿真实验,实验表明,改进算法能够快速找到起点到目的地的最短路径。
参考文献:
【1】王树曲,吴政学.改避的DⅡsktra最短赡往算法及其应用研究【J1.什算
机科学,2012.39(5):223—228
【2】章永龙.D”kstra最短路桎算法优化【J】.南昌工程学院学报,2006.
25(3):30一33
【3】王志和,凌云.DUl‘slra最短路往算法的优化及其实现【J】.t计算机信
息,2007.23(11):275—277
【4l王舞存,张晓彤,陈彬等.一种基于D”l‘s廿a算法的启发式最优路径搜
索算法【J】.北京科技太学学报,2007.29(3):346—349
f5】严蔚敏,吴伟民.数据结构(C语言版)fM】.清毕大学出版社,1997.16】张勤.DⅪkstra最短路往算法的C话言实现【J1.福州大学学报,2011_4:
24—27
log。n)。传统础ks廿a算法和本文算法的时间复杂度对比
表3算法的时间复杂度对比
如表3所示。
【7】程杰.大话盘据结构【M】.清华大学出版社,2011.
【8】司连法,王文静.快速DUkstra最短路往优化算法的实统【J】测绘通报,
2005.8:15—17
【9l张成花.GIS中一种改进的DUsktra算法及其实统IJ】.计算机应用与获
件,2011.28(5):275—277
4结束语
本文在分析了传统Dj_jks仃a算法的基础上,对Dj_jks仃a算法
【10】廖远.一对一最短路往算法研究及车载导航系统设计【D】.南昌大学,
2012.
的存储结构进行了分析,采用邻接多重表来构建无向图,优化了构建无向图和求解最短路径问题的时间复杂度。用c++实
【111郝春梅.一种改避的D”k曲国算法的分析及程序实现IJ】.计算机与统
代蝴011.1:36—38圜
(上接第37页)
具体信息,通过£0rc撒h显示所有案例。
(3)查看案例:点击案例后面的“详细”,即可查看案例的详
细内容。
教学互动平台。通过该平台学习,学生将能够较好地理解并掌握软件工程项目的开发理论和方法。通过参与完成一个具体的工程项目,将极大地激发学生的学习兴趣,提高学习的主动性,使得从事软件项目开发的专业能力得到增强。该系统将教学与实践很好地结合起来,并增加了互动交流的环节。学生通过软件开发实践实验真实的体会到软件开发的整个过程;通过贴近自己的命题激发学习兴趣,增强团队意识,提高交流及沟通能力;通过项目管理意识和内容的引入使学生真正感受到软
件开发的复杂性和所需要的严谨思维和态度。参考文献:
11】白小军,史璇,罗钧要.基于Web的学校网络管理平台设计【J】.教学与
管理(理论版),2007.
【2】邢东山,沈钧毅,原野.基于Web使用挖掘技术的个性化教育网站构
(4)案例分解:在案例详细内容的界面中,点击“项目分解”,即可对案例进行分解,就能查看各部分内容。进入页面时所有内容都是隐藏的,点击“详细”才能看到该部分的详细内容,这样以便清楚观察每个步骤。详细内容后面点击“细节分
析”可以查看作者对该步骤的细节分析。继续点击“实践”,则
观察者可对该步骤进行实践。
(5)模拟实践:点击“实践”,会弹出一个小窗口,该窗口用JQuery实现,学生可对该步骤进行模拟实践。
(6)FAQ:点击导航栏中的知识管理库一>FAQ,可进入FAQ库,里面罗列了所有的问题,在下面的文本框中,可以添加所需要的问题,实现方法跟案例的显示一样。点击“详细”,可进入查看问题的详细信息以及该问题对应的回答,下面的文本框可对该问题进行回答。
(7)资料库:资料库中存放着一些文件,学生可以对其进行
下载。
筑【J】计算机应用与授件,2002.8.
【3】张波,张福炎.基于JSP技术的Web应用程序的开发【J】.什算机应用
研究,2001.18(5):99—101
【4】刘斌,王最.StnJts,Spring,Hibemate框杂在oA开震中的应用【J】.计
算机技术与发展,2010.20(1):151—154
【5】李峰,刘彦隆.基于SSH框架与jQuery技术的JavaWeb开发应用【J】.
4结束语
本文设计实现了一个基于web开发的软件工程课程实践
科技情报开发与经济,2010・6:106—108
翻