欢迎来到专业的聚能秘书网平台! 工作总结 工作计划 心得体会 疫情防控 述职报告 思想汇报 教案设计 对照材料
当前位置:首页 > 专题范文 > 公文范文 > 正文

在软件工程实验教学中引入敏捷方法的探索

时间:2022-10-27 16:06:03 浏览量:

摘要:本文通过分析软件工程课程的特点和学生的实践背景,指出了本课程传统实验教学过程中存在的一些局限性。针对这些不足,本文提出了在实验教学中引入敏捷方法,并结合案例教学和团队开发等教学手段和方法来提高学生的实践能力。

关键词:敏捷方法;Ruby on Rails;案例教学

中图分类号:G64 文献标识码:A

1软件工程课程的特点

“软件工程”是一门工程实践性较强的课程,目标是让学生掌握求解软件的基本思想、工具、技术、过程和方法,为后续的专业知识学习以及今后从事计算机软件开发、测试与维护奠定良好的基础。但本课程内容较难讲授,学生学习起来感到较抽象,有些空洞。其主要原因有:

(1) 学生实践经验不足,动手能力不强。本课程是属于实用工程学科,课本内容采用将知识点从具体到抽象、对实践经验进行概括总结的方法加以叙述,但是学生对实例并不了解,难以理解所讲述的实践经验和知识。而且授课对象是大二的学生,掌握的开发技术和工具很有限,动手能力有待提高。

(2) 课程的综合性强。软件开发是一项综合性和系统性很强的工程,需要开发者具有程序设计、数据结构、操作系统、数据库系统和开发工具环境等多方面知识和综合运用能力。而学生学习的只是单一的课本知识,而且没有系统化。

(3) 学生独立性较强,不善于团队合作和沟通。在程序设计和数据结构等先修课程中主要是培养学生独立的逻辑思考和编程能力,而忽视了沟通、交互与团队合作。

通过收集以往选修该课程的学生反馈来看,不少同学反映对后续两年在校期间的软件项目开发帮助不大,所学的软件工程的方法和技术并没有得到很好的应用。因此,应该对实验教学内容进行适当调整。通过引入敏捷Web开发框架、结对编程和测试驱动开发等敏捷方法,并结合案例教学和团队开发等教学手段和教学方法,来培养学生开发软件系统的工作能力、实际操作能力以及沟通能力。

2敏捷方法以及Ruby on Rails

在2001年召开的研讨软件过程未来发展趋势的一次会议上,17位业界专家就什么是“敏捷”达成一致意见,成立了“敏捷联盟”并发布了联盟敏捷宣言。这份联盟敏捷宣言是“敏捷软件开发”价值和目标的浓缩定义,并通过许多共同的原则进行了细化。敏捷的价值观是:个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。敏捷方法强调应加强开发人员之间的交互,加强与客户的交互,注重有可工作的软件和完善、不过分的文档,积极、快速应对客户的需求变化,而不是回避。

Ruby on Rails是一个具备了敏捷特性的Web开发框架,使Web应用的开发、部署和维护变得更容易。该框架非常强调人和交互,鼓励用户与开发团队合作。Rails强烈要求遵循“不要重复你自己”和“惯例重于配置”两个原则,使得当需求变化时,Rails应用需要修改的代码量比用其它框架开发的应用要少得多。Rails应用是用Ruby编写的,而Ruby能够准确、简炼地描述程序概念,因此变化也更加容易地被限制在一个小模块内部,并且代码修改也更容易。该框架强烈重视单元测试和功能测试。Rails的这些特点使该框架能很好地响应变化。

3实验教学改革及实施过程

通过分析敏捷方法的主要特征以及Rails框架的敏捷特性,在软件工程课程实验教学中引入敏捷方法有助于综合提高学生对敏捷软件工程关键性技术的全过程实践与应用,理解软件需求与软件测试、软件开发的紧密关系,掌握现场需求捕捉、单元/功能/系统测试等方面的技术。因此,在软件工程课程中的后期以案例驱动的方式讲授应用Rails进行敏捷Web开发。在实验教学中,主讲教师要求学生以分组的形式完成自拟作业题系统的敏捷Web开发,并全程指导应用结对编程、测试驱动开发等敏捷方法,鼓励并促进小组成员之间的沟通与合作。

具体实施包括以下三个环节:案例学习及重现、分组系统开发和系统评审环节。

(1) 案例学习及重现

在软件工程教学中引入案例教学能有效地提高教学效果。在这个环节中,学生首先在课余时间认真阅读案例,并进行分析。老师同步在课堂上讲授案例,包括一些主要任务、技术以及开发工具,然后学生在实验课按照案例中步骤重现案例中的系统开发过程,最后总结归纳。

采用的案例是depot应用系统,该系统是一个采用Ruby on Rails实现的网上购书系统,包括了货品维护、分类显示、购物车、结算、发货以及用户权限管理等功能。该案例真实、生动,且具有普遍性。学生在深入剖析该案例后,能模仿该案例来开发其他Web应用系统。

学生先利用课余时间对案例进行一定的分析,教师则在课程上同步讲授案例,以迭代开发的方式不断改进depot应用系统。在讲授过程中,根据敏捷方法的特点,一开始进行了适当的需求分析和设计,包括数据建模、业务流程分析和对象建模,并撰写了必要的文档,包括了ER图、活动图以及类图,然后进行系统实现。在实现过程中,教师既要充当开发人员又要充当客户,从客户的角度来看待系统。具体来看,先找到当前首要任务进行迭代开发,并从客户的角度出发指出系统当前的主要问题,然后立即按客户要求进行修改。

在实验课堂上,重点是按照老师讲授的步骤重现depot系统开发。由于学生对于开发语言和工具不熟悉,所以实验课上教师应全程指导,重点解决操作和代码理解方面的问题。在实验课上,学生也可以按照分组来进行讨论,集体交流。

总结归纳是本环节的最后阶段,要求学生总结在重现depot系统开发过程时获得的经验和教训,为以后开发新系统做准备。

(2) 分组系统开发

本环节是实施过程中最重要的环节,主要目标是让学生体验敏捷软件开发的全过程,且学会与他人合作,培养团队精神。在本环节中,强调结对编程、测试驱动开发等敏捷方法的应用。学生在此环节处于主导地位,教师只起辅助作用。学生按要求分成开发小组(每组最多不超过4人)。各个小组由小组长负责组织、分工、控制进度等,对小组成员的最终实验成绩有一定分数浮动调整权;组长带领全组顺利完成任务,总评可以加一定分数。在实践中注意满足学生的受“尊重的需要”和“自我实现的需要”,采取“角色扮演法”,根据每个同学的特点,尽可能发挥其在技术或管理方面的长处。

所有的小组都要求用Ruby on Rails开发自拟作业题系统,这样在评审时可以相对客观地比较各组的成果。该系统的必需功能需求统一指定,但是各小组可以扩展功能,从而使得各小组有一定的开发自由度。

小组完成项目之后,除递交系统和文档外,还必须完成一份报告。报告中应该包括项目分工情况说明、组员的贡献以及他们参与系统开发过程的心得体会,让学生自己在总结中学习知识,提高水平。

(3) 系统评审

每个小组都将汇报,展示自己的成果。所有小组构成一个环来进行汇报和评审,汇报的顺序由抽签决定。汇报完的一组的组员将评审下一组的汇报,第一组的汇报由最后汇报的一组的组员来评审。教师先提前公布评分标准,并在汇报现场准备好评分表。在学生评审的同时,教师也应该对每个小组的汇报情况、系统的质量、文档以及报告进行评审、打分,并写出评语,但不能影响学生的评审。教师评定成绩占小组成绩的70%,学生评定的平均成绩占30%。最后,教师要对小组的表现进行总结点评,帮助学生整理敏捷开发过程中的技术内容,鼓励积极性,但也要适当地指出系统开发中的不足。

4结束语

目前,在软件工程专业方向的“软件工程”课程实验教学中已经引入了敏捷方法。当引入敏捷方法后,学生普遍反映开始能够较好地理解并掌握软件工程项目的开发理论和方法。和前期和中期的教学相比,后期的教学内容和方式更容易让人接受。而且在实验经验和专业知识有限的前提下,学生能够参与完成一个具体的Web系统开发项目,能极大地激发学习兴趣和主动性,增强在今后的学习过程中开发中小型软件项目的专业能力和信心。

总结起来,经探索提出的该教学方案,其主要特色可以归纳为三方面:

(1) 在学生实践经验不足和专业知识不全面的前提下,通过引入敏捷方法能降低学生开发一个实用软件系统的门槛,使学生能在开发实用系统的同时自觉应用软件工程思想,包括敏捷软件开发的原则来分析问题和解决问题,从而激发了学生的学习热情。

(2) 采用案例学习、重现系统开发以及开发新系统相结合的教学手段,使学生在深入理解案例的基础上能效仿该案例,运用其中的技术来开发新系统。

(3) 在分组系统开发过程中,鼓励学生通过角色扮演、组内讨论交流以及网络途径找到获取需求以及解决一些技术难题的办法。

参考文献

[1] 李劲华,杨厚俊. 普通高校“软件工程”课程教学的探索与实践[J]. 计算机教育,2007,(10):29-31.

[2] 沈备军,陈诚,居德华. 敏捷软件过程的研究[J]. 计算机研究与发展,2002,39(11):1456-1463.

[3] Dave Thomas, David Hansson 著. 林芷薰译. 应用Rails进行敏捷Web开发[M]. 北京:电子工业出版社,2006.

[4] 叶俊民,胡金柱,李蓉. 软件工程案例教学研究[J]. 计算机教育,2007,(7):19-21.

[5] 张引,杨小虎,陈越. “软件工程”课程实践中激励机制的探索[J]. 计算机教育,2007,(5):30-32.

推荐访问:软件工程 敏捷 引入 探索 实验

猜你喜欢