创新平台下软件工程实验教学模式探索*

2012-04-29 00:44杜莹程普杜小玉
计算机时代 2012年7期
关键词:团队建设软件工程实验教学

杜莹 程普 杜小玉

摘要: 针对软件工程实践教学中存在的问题,结合大学生科技创新平台的实施,从实验课题选择、软件过程模型选择、团队建设、开源资源利用等方面提出软件工程实验模式的改革方案;并且给出了部分实施细节。

关键词: 软件工程; 创新平台; 实验教学; 团队建设

中图分类号:G642.0文献标志码:A 文章编号:1006-8228(2012)07-63-02

0 引言

软件工程是一门实践性很强的学科,它的所有理论来自于工程实践,课程目标是让学生掌握软件开发中的方法学和工程学知识,并应用于实践,因此实验课程的建设非常重要。目前,大多数院校把该实验课当作一门理论课程的附属课程或验证课程,实验题目和实验步骤由老师提前设计好,学生缺少综合型设计性实践项目的训练,不能以团队的方式共同完成一个较大的开发项目,而且学生在实验课程中仍扮演着知识填充器的角色,在许多环节中浅尝辄止,与软件工程实际运用脱节,对软件过程的体验难以深入,更谈不上深刻,无法达到预期的教学效果[1]。软件工程知识内容综合性强而且抽象枯燥,对于没有任何实际项目开发经验的学生来说难度太大,要使学生获得真实的软件开发经验,掌握并运用它并不容易。所以,软件工程实验模式的改革势在必行。

高校大学生科技创新平台建设给软件工程实验教学模式改革提供了一个机会。在软件工程实验课程中,利用创新平台可以挑选现实生活中的常见问题,稍作修改作为实验内容;通过创新实践平台,学生可以凝聚成一个个富有创新意识的团队,并利用软件工程知识解决实际问题。

1 大学生科技创新平台建设

为培养具有创新精神和实践能力的高级专门人才,我校专门设立了大学生科技创新专项基金;在学校资助的基础上,学院建立了创新实验室,择优扶持一批优秀学生项目,为大学生开展科技创新活动创造条件。另一方面,指定专门教师负责,组织和指导学生参加各级设计大赛,例如“挑战杯”全国大学生课外学术科技作品竞赛、大学生创新实验项目、数学建模竞赛、ACM世界大学生程序设计竞赛、全国大学生程序设计竞赛、全国大学生软件创业大赛;积极组织学院级C++、Java、C#、数据结构等竞赛。充分利用课内外时间,以培养学生创新性为出发点,通过各种形式的科技创新活动增强学生的创新意识,培养学生的创新能力;并为学生搭建接触社会实际、增长创业才干的平台。这些创新训练培养了学生的逻辑思维能力、动手能力和科研能力,同时提高了他们书写文档的水平。这些创新项目与软件工程课程学习相互补充,相得益彰[2]。

2 软件工程实验模式改革方案

基于创新平台,我们从以下几个方面提出了软件工程实验教学模式改革方案。

⑴ 以整体项目形式自定实验课题

软件工程实验课题的选择上给学生很大的选择空间,课题大部分来自于各个实际的创新项目,或者是根据创新项目修改以后的虚拟项目,还有一部分题目来自其他专业基础课程。学生被分成若干开发小组,使学生尽可能地从解决实际问题中得到软件工程相关经验,在软件项目管理和软件过程方法上能得到较为真实的体验;使教学实践与实际软件工作实践无缝连接,在教学体制内获得相关软件开发实践经验[3]。

⑵ 根据项目适当选择软件过程模型

软件工程理论课程中给学生介绍了各种软件过程模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、Rational统一过程、敏捷过程以及微软过程等。在软件工程实验中指导学生根据项目的需要采用相适应的开发模式,让学生更容易理解掌握各种软件过程模型,并能最大限度地获得直接开发经验。例如对于一些比较经典项目采用瀑布模型,学生容易理解软件开发生命周期;对于一些开发时间要求较高的项目采用敏捷开发,可以减少不必要的文件输出,提高开发效率;还有一些项目,用户系统使用经验较少或对界面要求高,可以指导学生采用快速原型法;对于一些允许逐渐增加模块的项目,可以使用增量模型[4]。

这里需要注意,开发过程需要尽可能地真实,按正规企业的开发流程,评价也要尽可能地按照企业标准。

⑶ 项目开发团队建设

通过学生自愿报名,考试选拔出一些编程能力较强的学生,组成项目开发团队,由学院提供实验室,让有实战经验、课题项目比较多的老师指导,利用业余时间,进行一些软件开发项目的研发工作。这样做的好处是,既可将软件工程的知识用在开发过程中,又可将团队开发经验用在软件工程实验中。

⑷ 开源资源充分利用

对于高校计算机专业学生而言,掌握知识、提高动手能力是最终目的。为了节省昂贵的软件许可证的费用,将宝贵的资金用于其他资源,尽量使用开源资源是一个解决办法。开源资源不收任何费用,又能得到源代码,对于处于学习阶段的学生而言,是非常有利的。而且,使用开源资源的用户数量非常庞大,这就形成一个同心协力的学习群,学生遇到的种种问题,都可以从开源社区中找到答案或在社区的帮助下自己解决。在这一过程中,一方面学生自己获得了知识,提高了能力;另一方面,自己的经验也为开源资源的发展做出了贡献。

在需求管理阶段可以使用Osrmt开源软件;软件设计阶段可以使用ArgoUML、starUML开源软件;编程实现阶段可使用Eclipse、Gcw开源软件;版本控制开源软件有CVS、SVN等;项目管理开源软件有Ganttproject、Xplanner;软件测试Junit、Jmeter、Cppnit等开源软件[5]。

3 实施细节

软件工程实验改革实施的过程中还要注意以下实施细节。

⑴ 重视测试环节,掌握测试技术

许多学生对系统开发的前期阶段比较重视,但对测试的目的理解存在偏差。测试的根本目标是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用;而软件开发者希望通过软件测试表明软件产品中不存在错误,已经正确地实现了用户的要求。所以学生对设计开发技术非常重视,对测试技术比较忽视。要让学生在软件开发过程中正确认识测试的目标,掌握基本测试技术,并且能设计出合适的测试方案。

⑵ 建立合理的评价机制,激发学生学习热情

实验考核与项目验收相结合,可以考察学生在项目中所担负任务的完成情况和工作质量,所以要对实验项目进行验收。

但是,项目是分组的,是一个整体,在一个组里面不可能使每个人的工作分量平均,如果全部以同样的分数评价,肯定会出现混水摸鱼的现象,也肯定会打击某些同学的积极性。所以建立合理的评价机制非常重要。笔者采用协调系数来调整平衡。

设每组学生数n,小组总成果得分sum,协调系数Pi(1

这个协调系数可以由指导老师给出。如果指导老师对小组内同学分工了解的不是那么细致,也可以由组内同学自评。群众的眼睛是雪亮的,这样会更公平。

比如一个小组5个人,一个学生是属于小组内平均水平,pi=0.9,这组总体分是80分,那么这个学生的成绩是0.9*80=72分。如果小组长做了很多工作,pi=1.1,那么他的成绩是1*80=80分;但某个同学只得pi=0.8, 80*0.8=64分。当然这只是其中一种调节方法,关键还得靠学生自觉。当然,学生成绩上限是100分。

⑶ 积极开展技术总结和新技术讲座

经常性的技术总结可以促进学生提升思维能力,帮助学生整理开发思路,增强团队信息沟通以减少重复劳动。所以要求每个同学认真对待技术总结,以团队为单位把开发过程中遇到的问题记录下来,经常开技术总结会进行讨论。新技术讲座对丰富学生课余生活、开拓学生视野、扩大学生知识面有重要作用。可让学生及时了解最新的业界动态,跟踪IT领域的最新科研情况。此举既巩固了学生软件工程领域的基础理论和专业知识,又使他们掌握了解决工程问题的最新技术和手段。

⑷ 资料整理保存

软件工程实验项目中会遇到各种问题,大部分不能直接从课本中找到答案,需要求助于大量课外资料。以往教学中的做法是学生一遇到问题,就开始搜集整理资料,然后再去解决问题,这样做当然能提高学生的自学能力。但是,如果学生遇到任何一个问题都被迫停下来搜集整理资料,会大大影响项目的开发进度,挫伤学习积极性。

为此,每隔一段时间,可以指导学生将资料分类整理在一起,以便其他同学学习,以后的同学又在这个基础上进行整理,日积月累,慢慢地建立承上启下的学习系列。

4 结束语

在创新平台下不断地改进软件工程实验课程教学模式,按照“厚基础、宽口径、强能力、高素质”的要求,配合其他学科教学,实现“工学结合”的人才培养模式,一定能培养出具有良好的系统分析与设计能力、交流与组织协调能力、项目管理能力、创新能力、科学研究能力等较强竞争能力的人才。

参考文献:

[1] 林勇.《软件工程》课程实践教学改革探析[J].电脑知识与技术,

2011.7(30):7467-7468

[2] 李建建,陈文,郑元凯.高校搭建大学生科研创新平台的探索与实践

[J].福建师范大学学报,2011.5(27):106-109

[3] 阳王东,祝青,邓艳智.《软件工程》项目型教学模式的探索[J].计算机

时代,2008.4:68-71

[4] 徐哲,蔡建平.基于开源软件的软件工程实施系统研究[J].微计算机

信息,2009.25(9):178-180

[5] 樊学东.软件工程过程模型及其选择[J].西安外事学院学报,2008.4

(4):80-83

猜你喜欢
团队建设软件工程实验教学
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
适应“三三制”培养模式的化工基础实验教学改革
企业新闻采编人员素质和团队建设
博物馆临时展览的困境与出路
几何体在高中数学实验教学中的应用
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨