APP下载

软件工程综合实训课程融合初探

2017-07-31郑大鹏王琳路良刚

计算机教育 2017年7期
关键词:综合实训课程融合软件工程

郑大鹏+王琳+路良刚

摘 要:基于建构主义认知学说,分析课程融合问题及其研究方法,提出课程融合的综合方案,具体阐述在软件工程综合实训中穿插软件开发过程、数据库设计与管理、软件测试实践、系统分析与设计、Web软件实现技术等理论课程的实施过程,并说明教学效果。

关键词:建构主义;软件工程;综合实训;课程融合

文章编号:1672-5913(2017)07-0135-05

中图分类号:G642

0 引 言

为了改善应用型软件工程人才培养现状,文献[1]提出一种创新的人才培养模式,这种模式主张在教学计划中引入长周期的软件工程综合实训。在实训中,学生以小组为单位完成一个较具规模的项目,并同步学习多门软件工程课程。文献[2]对这种综合实训的过程和内容进行探讨,指出这种综合性实训应采用迭代的软件开发过程并将20周的实践分为6次迭代,整个过程中学生开展10个领域共30项活动,教师讲授软件开发过程、数据库设计与管理、软件测试实践、系统分析与设计、Web软件实现(编程)技术等课程的内容。将如此多的课程组合在一起进行教学,究竟教学效果如何,教师又该如何选取各门课程的教学内容并将其合理组织到实训过程中,这些是我们要探讨的问题。

1 课程融合问题及研究方法

按照传统的课程建设和教学方法,软件工程的专业知识被组织在多门课程中。各门课程独立施教,教学内容由课程负责人根据课程目标确定,且各门课程所采用的教学案例也相互独立,因此学生学习一门课程时,难以与其他课程的内容对照和结合。从建构主义认知理论和实际教学的效果看,采用这种方式进行教学,学生学习起来有困难,学习兴趣降低,教学效果不理想。将软件工程主要学习内容融合在一个大型综合性实训中,可以克服上述弊端。学生在综合实训中可以边做项目边学习,所学知识可以马上应用于项目中,有利于学生将所学各类知识重新构建,形成自己对软件工程的认知。在文献[1—2]所建议的综合性实训中,需要融合的内容按照其内聚性可组织为软件开发过程、数据库设计与管理、软件测试实践、系统分析与设计、Web软件实现(编程)技术5个模块。这些模块所要培养的学生能力见表1。

上述模块内容与综合实训之间的关联和在时间顺序上的穿插,即本文所指的课程融合问题。模块内容如何选取和安排是该大型综合性实训能否成功的关键,我们也将重点探讨上述课程融合的方案及其合理性和有效性。

我们采用的研究方法是首先根据理论给出融合的原则和具体方案,然后按照方案实际执行,最后通过对比未执行课程融合的综合实训调查结果与执行了课程融合的综合实训调查结果,分析方案的实际应用效果及合理性。

2 课程融合原则

根据对建构主义认知学说的理解,基于实践经验,在考虑软件工程综合实训中的课程融合时,我们主要遵循以下几项原则。

(1)为了提高学习效率,达到最好的学习效果,知识的学习与应用应该同步,即所学知识应尽可能立即应用到项目开发过程中。这样做不仅有利于学生准确理解知识,还可以让他们在实践中加深对知识的认识,从而做到牢固掌握。因此,软件工程有关的知识内容应该按照项目开发过程来组织,做到所学即所用,急用先学,学完即用。

(2)教学内容的选取应以项目开发需要为依据,即项目中需要用到哪些知识和技能,就在课程中加入相应的内容;项目开发中不会用到的知识和技能,就排除在课程内容之外。综合实训中学习的内容一般不属于基础知识,不存在既定的知识体系或完備性要求。如果脱离项目实际需要,而按照选择的教材照本宣科,效果往往不好。

(3)项目开发案例选取以承载必要的教学内容为宗旨。为了增强学生学习和实践的效果,课程内容以项目需求为剪裁原则。为了满足国家软件工程专业教学指导委员会对本专业的要求,参考国际有关工程专业认证标准,软件工程综合实训的教学内容应该具有一定的目标或最低要求,并且这些目标和要求只能通过选取合适的教学案例和项目开发任务予以实现;如果随意选择案例或开发项目,有可能造成实践内容或理论内容的重要缺失,导致最终不能符合相关组织对软件工程专业的定义及要求。

(4)区分适合用理论课传授的显性知识和只能在工作中感悟和学习的隐性知识。显性知识作为理论课教学内容进行安排;隐性知识则通过项目开发中的要求、纪律或者指南来体现。例如,如何获取和识别系统需求、如何文档化需求等,可以作为系统分析与设计课的内容;如何领导一个项目小组、如何在项目小组中协作等,则比较适合作为项目开发中的要求和指南提出,让学生自己在实践中摸索和体会。

(5)对于比较复杂深奥的学习内容,不应采用一次性灌输的方式,即一开始就将全部内容和要求倾注给学生;相反,可以通过多次迭代,逐步向学生解说有关知识和奥秘,在重复中加强学生对相关内容的理解,便于他们充分理解和牢固掌握。

3 课程融合方案

为了达到实训目标,我们在综合实训中选用的教学案例是一个网上送花电子商务系统,包含了电子商务网站的基本功能,如商品选购、购物车维护、订单确认、网上支付、订单查询、个人信息修改维护等。为了实现网上支付功能,教师预先实现了一个模拟支付网站。支付功能的实现,在数据库技术方面,需要用到事务处理;在Web编程方面,为了实现电商网站与支付网站的对账,需要使用Web Services、Windows Services等技术;在分析设计方面,为了适应不同的支付方式,需要考虑使用设计模式。这个案例可以使各门课程的内容达到期望的深度和广度。本实训中需要融合各门课程的具体内容如下。

(1)软件开发过程:小组软件开发活动,包括每日晨会、周例会和项目专题会;开发团队建设,包括小组角色分工和角色转换;每日集成、配置管理、迭代计划等。

(2)系统分析与设计:业务建模、需求、领域建模、软件逻辑架构、用例实现(软件设计)、设计模式、架构文档等。

(3)数据库设计与管理:数据库创建、管理、安全控制、编程等。

(4)软件测试实践:测试环境搭建、测试计划、测试用例编写、自动化测试、性能测试等。

(5)Web软件实现(编程)技术:客户端编程技术,如HTML、CSS、JavaScript、JQuery、Ajax等;ASP.NET、Web服务、Windows服务、.NET框架编程,如加密/解密、反射、属性等。

为了让学生实践迭代开发,我们根据学期实际历时共19周的现状,将实训项目划分成几次迭代过程,见表2。

对应以上迭代,按照各次迭代目标和各理论课知识点的内在逻辑,将各门课程的知识点交叉编排,见表3。此课程融合方案具有以下特点。

(1)软件开发过程课程贯穿始终,但开始以介绍软件过程为主。课堂上主要学习显性过程管理知识,如配置管理、计划、沟通等;而有关团队协作、角色划分和角色职责方面的问题,让学生参考有关资料主要是《小组软件过程》来体会和学习。

(2)系统分析与设计课是实训课的主轴,从项目开始到结束,在需要的时候适时讲授相关知识。有些知识需要分步多次介绍,逐步深入,如关于软件架构的内容。

(3)数据库设计与管理及软件测试实践课出现在特定的时间段。前者偏向项目前期,当需要建立数据库和进行数据库编程时介绍有关内容;后者偏向项目后期,当程序设计有一定成果时,适时开始测试工作。

(4)有关程序设计的内容按照开发顺序和由浅入深的认知顺序推进,通过代码重构,逐步、反复提升各专题编程知识。

4 实施效果

如文献[3]所述,2014年春季学期,我们针对2011级软件工程专业.NET技术方向的59名学生实施了基于上述课程融合方案的综合实训教学,课后,采用与2013年针对未采用课程融合方案的软件工程综合实训相同的调查问卷对学生进行了调查。在课程结束时,基于学生自愿和匿名原则,由已完成课程答辩的学生填写调查问卷。问卷由15道學生对课程教学效果的主观评价问题组成,每道问题的答案有从强烈赞同到强烈反对的5个选项,其中关于融合课程的学习效果主要有以下问题(其他编号的问题与本文讨论的课程融合没有关系,故没有选取):

2.本课程提高了我的文档写作能力;

3.本课程提高了我的编程能力;

4.本课程提高了我的分析设计能力;

5.本课程提高了我的数据库应用能力;

6.本课程提高了我的软件开发管理能力;

7.本课程提高了我的软件测试技能;

8.本课程提高了我的团队协作能力;

9.本课程让我理解了团队中的不同角色。

以上8道问题的调查结果如图1—图8所示。2013年的课程未采用课程融合方式,其数据仅作为对照。

从以上结果看出,课程融合后的综合实训对学生的编程能力、软件开发管理能力、团队协作能力及学生对团队中角色的认识有显著提高;对学生的数据库应用及测试方面能力只是略有提高;对学生的文档写作能力亦略有提高,但是在系统分析与设计能力提升上,表示赞同和强烈赞同的学生百分比之和与未进行融合的综合实训相比略有降低,究其原因主要是大多数学生将主要精力集中在编程实现方面,而分析设计参考教师提供的案例,基本上不需要花太多精力即可完成。这说明如果综合实训中融合的课程太多,由于学生精力有限,即使有的课程十分重要,那么也极有可能被忽略;将系统分析与设计这门重要的专业必修课融合在该实训中就有此弊端,因此开展后续实践时应加以调整。

5 结 语

根据课程实际执行效果和课后对参与课程学生的调查,我们认为采用课程融合方法,在进行软件工程综合实训的过程中同步穿插理论课教学,可以获得较好的教学效果,如软件开发过程、Web软件实现技术等课程教学效果较明显,但是穿插的理论课如果太多,由于学生的学习精力有限,个别重要课程反倒可能被淡化或忽略,因此穿插的课程数量要适度。对于系统分析与设计这样的核心专业课而言,还是在综合实训课开展之前单独授课较好。

参考文献:

[1] 郑大鹏, 林国璋, 张克军. 一种创新的独立学院软件专业人才培养模式[J]. 计算机教育, 2010(8): 1-3.

[2] 郑大鹏, 肖友清, 张晓燕, 等. 软件工程综合实训软件过程初探[J]. 计算机教育, 2011(8): 107-110.

[3] 郑大鹏, 张晓燕, 张申勇. 基于课程融合和企业环境模拟的软件工程综合实训[J]. 计算机教育, 2015(10): 74-77.

(编辑:宋文婷)

猜你喜欢

综合实训课程融合软件工程
基于CDIO模式材料成型及控制工程专业综合实训的探索与实践
应用型外语人才培养模式下日语视听说类与文化概况类课程融合初步探讨
高职《室内设计CAD》课程综合实训教学设计
依托工作室的软件工程实践教学研究
“课程融合”视域下民办高校电气自动化专业渐进式多层次实践教学体系研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
基于信息安全等级保护的信息安全综合实训教学研究
基于“课证融合”的《外贸单证》课程教学改革研究
关于如何创新和完善计算机软件工程管理的探讨
新媒体环境下信息技术课教学模式的创新与实践研究