软件工程课程创新研究

前言:寻找写作灵感?中文期刊网用心挑选的软件工程课程创新研究,希望能为您的阅读和创作带来灵感,欢迎大家阅读并分享。

软件工程课程创新研究

一、传统教学模式的问题

1.实践教学缺乏系统性和针对性目前许多高校“软件工程课程除了理论讲解外,也加入了实践教学部分。往往受学时所限,实践分为软件项目若干设计文档的编写和软件工程工具的实验练习。前者受缺乏相应的开发环境、教师虚拟客户不能很好地反应现实需求、理工科学生的文字表达能力不足等因素的影响,设计文档的编写不能很好提高学生能力;后者在一定程度起到了一定的作用,但对于培养学生分析问题、解决问题、管理和团体协作能力方面仍显不足。

2.评分模式单一软件工程采用了传统的闭卷考试方式,平时成绩占总成绩的30%,期末考试占70%。平时成绩=上课出勤情况(10%)+实验完成情况(10%)+作业完成情况(10%)。任课教师通过对不同的考核内容赋予不同权重来评价学生对软件工程课程的掌握情况,主要考核学生对课程基本知识的理解。此方法不足以提高学生实际动手的能力,更不利于激发学生实际软件设计开发的兴趣。

二、现有的教学方法的分析

针对上述问题,从事软件工程的相关教师从不同角度,对软件工程课程进行了改革。归纳起来主要有如下几种教学方法改革:

1.自底向上教学法在“软件工程”课程中应用授课方式主要是用倒叙的方式贯穿完整案例(包含警戒案例),以启发、讨论、辩论的形式讲授软件工程的原理、方法及过程,使学生不觉生疏,易接受,又符合IT从业人员的工作进程。[2]

2.模块化教学法在“软件工程”课程中的应用在尊重教学规律和学生个性发展的原则上,根据课程体系和内容之间的关系,将教学部分划分为若干独立的模块,确定模块之间的关联,针对不同的教学计划要求,采用不同的模块组合有选择地进行讲授和学习。[3]

3.案例教学法在“软件工程”课程中的应用软件工程案例教学是根据“软件工程”课程的教学目的和学生培养目标要求,教师选用相应的案例作为基本素材,引导学生对案例进行调查、思考、分析、讨论、设计、开发和交流等相关活动,在活动中教授学生软件工程的原理、方法及过程,进而提高学生分析和解决问题的能力,加深学生对基本理论知识的理解和掌握。[4]

4.项目驱动教学法在“软件工程”课程中的应用项目驱动教学法是案例教学法的基础上采用“案例导向、项目驱动”的教学方法。首先,教师根据要讲授的理论知识预先准备一个或者多个小的软件开发项目;然后,将学生作为主体,以软件开发项目的研发过程为引导,采用学生小组团队合作和学生个人独立完成相结合的教学形式,组织学生开展集体讨论并完成相应的实践性活动,在研发过程中同学和老师要对每位学生所完成的每个阶段任务加以点评、督促改进、分享经验等;最后,学生将成功的软件给予演示。

5.三位一体式教学法在“软件工程”课程中的应用根据学生的认识特点和该课程自身的特点以及对“软件工程”课程在计算机科学专业的定位、教材的选取、课程培养目标的分析下,采取以综合能力培养为中心、项目实践为标准,模板、案例、指导说明为辅助的三位一体式的教学思路。[6]对目前在“软件工程”课程改革中应用的五种方法针对改革侧重点进行汇总发现(见表1),单一的教学方法只是在理论教学、实践教学和考核方式某一方面发挥了很好的作用,而不能从全面发挥效果,而对于“软件工程”课程来说三者同样重要。

三、基于多元教学法的课程改革新模式

某一种教学模式改革已经不能满足现代“软件工程”课程教学的要求,只有将多元教学模式组合在一起,充分考虑各自对课程教学的优势,避其缺点,找到一种既能使学生具有良好的理论基础,又能充分培养学生实践能力,还能准确地考核学生的教学模式。本次课程改革就是本着这样一种思想,从理论教学、实践教学和考核方式三个方面进行多样化改革。

1.理论教学内容多样化

理论知识的学习在学生以后软件项目开发过程中具有必要性和重要性,软件工程学习过程中要重视基础和基本技能的培养。学生要具有开发软件项目的能力,首先要熟悉掌握软件工程相关的理论知识,特别是对如何按照工程化的方法系统地设计、实现、测试和维护大型软件,内容包括:软件开发的基本理论、方法和技术;其次是了解目前已有系统、工具和技术。(1)授课内容引入案例。教师在教学过程中引入与理论知识相匹配的实际案例,将比较抽象的软件工程原理、方法和技术转为具体生动的案例进行诠释,增强理论教学的艺术性、科学性、趣味性、形象性,使学生能够在课堂上深刻领会和理解软件工程的思想和方法,教学效果收到了事半功倍。(2)适时更新教学内容。近几年,软件原理、方法和技术发展较快,许多适应时展的软件不断涌出,而目前的教材虽不断改版更新,但其更新的速度远远跟不上软件工程的发展。因此,教师在进行理论讲解时,除了要教授学生基本原理、技术和方法外,还要时刻关注新内容的出现。(3)制作丰富多彩的课件。采用多媒体教学手段,在课件中插入图片、动画、声音、视频等多媒体元素,使教学内容更加充实和生动。(4)课堂小组讨论。从小问题到大问题,让学生参与教学过程,有机会发表自己的看法。课堂讨论和分析试验,使理论有实践作支撑,抽象的知识变得看得见,用得着,大大激发学生学习的兴趣和自信。

2.实践教学内容多样化

软件工程理论的讲解是课程学习和技能培养的基础,而软件工程中许多理论内容如果只是教师讲解不加以实践,内容本身就会变得空洞和不可理解,例如:软件复杂性计算、软件可靠性与安全性的测量标准、结构化的实现方法等都需要学生动手实践才能更好地理解知识本身的内涵。掌握概念、原理、方法和技术,熟练应用软件开发实践中的方法和技术是“软件工程”课程对学生的培养目标。(1)课程角色扮演。教师预先选择若干小项目,班内学生根据自己对项目熟悉情况选择项目名称,划分项目小组,每组人数不超过6人,每个项目小组成员根据自身特长选择不同软件工程角色,例如项目负责人、需求分析负责人、设计负责人、编码负责人、测试负责人和用户代表,进行项目分工。项目组成员按时完成自己负责任务,撰写相应文档。教师帮助学生分析和解决所遇到问题。在整个开发过程可以体现“学以致用”的思想,实现理论与实践相结合。(2)课程设计。课程设计主要是针对高年级学生在学习软件工程课程时开展的专项训练。课程设计采取在学校内模拟IT企业环境下完成来自企业案例或开发一些具有应用价值项目或学校教师承担的开发项目的部分开发工作,也可以是学生自选项目,整个课程设计阶段严格按照工程实施的基本思想来实施。(3)加强校企合作。一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位实地实习。

3.考试方式多样化

传统的考核方式已经不能反映学生实际软件开发的水平,也与多样化的教学模式不相匹配,为此多样化的考核方式才符合现实需求,主要包括:笔试、课后角色扮演、课程设计和项目总结。(1)笔试占总成绩的35%,主要考查学生理论知识的掌握情况和学习效果。(2)课后角色扮演占总成绩的15%。由教师根据每位学生在课后角色扮演中的具体表现进行打分,主要由3部分取平均值组成:1/3*(整个项目的成绩+自己负责完成的文档成绩+组内其他成员负责完成的文档的平均成绩)。(3)项目总结或心得体会占总成绩的15%。根据学生在软件开发过程中所撰写的经验和教训总结报告、每个小组成员建立的个人开发记录或日志的实际情况,相互打分。

四、基于多元教学模式课程改革方案

基于上述改革理念,按照软件工程开发原理、方法和技术,选用典型项目案例,将学生按照项目分成若干个小组,每组人数不超过6人。每个小组对应着一个具体的项目,每个人对应着一个具体工作过程,按照如下步骤进行多元教学。第一步,教师选用合适的教学内容,制作丰富多彩的课件,对学生进行基本理论和基本技能的讲解。在每一个软件生命周期结束后,教师进行案例场景描述。教师按照理论知识的内容,选择相应的案例进行描述,学生将所学内容运用到相关案例中。教师通过案例让学生明白理论知识如何应用,学生通过案例体会到小项目中所学的原理、方法和技术是如何实现的。第二步,课后角色扮演。学生通过分组讨论的方式,完成项目分工,明确自己在项目中所扮演的角色。所有的任务通过集体讨论的方式,决出所要完成的任务,并由相应的角色人实际操作完成。例如,需求分析一章内容,学生课后进行项目小组讨论,决定需求分析的内容,进行相应的需求分析,并由扮演需求分析人员的学生完成需求报告。软件开发过程需要整个团队的通力合作,根据学生的性格、表达能力、开发能力、理论基础掌握情况等方面进行人员分组,将具有不同特点的学生组成一个团队完成项目开发。这种团队合作的方式,既能发挥学生各自的特长,又能培养学生的团队合作精神。第三步,课程设计。当全部内容讲解完成,就可以开始长达2周的课程设计内容了。这段时间要求项目小组,彻底完成一个由教师虚拟的项目。此步骤中,主要培养学生良好的科研习惯,在开发过程中及时总结经验和教训,建立个人开发记录或日志,理论联系实际学着开发软件。第四步,学生总结,教师点评。学生经过多个教学环节后,每个团队在一定程度上完成了各自的项目任务,对各自团队的成果进行总结。教师听取每个团队的汇报后,从横向和纵向两个方面对项目成果之间进行比较,从而让每一位学生明白自己在团队中发挥了什么作用,自己哪些方面不足。第五步,请进来,走出去。通过学校和企业合作的方式,一方面经常邀请软件公司长期从事软件设计、开发和项目管理的工程师和项目经理,给学生讲解自己在软件设计、开发和管理中的经验,高质量软件产品需要经过怎样的开发过程,软件生命周期中标准文档如何撰写等相关内容;另一方面,利用寒暑假时间,让学生走出去,到软件产品的研发单位,实地实习。

五、结束语

在多元教学过程中,理论教学利用多媒体PPT充实了课堂内容,小组讨论调动了学生积极性,不断更新的教学内容跟上了发展,以及启发式的案例教学提高了学生的能力;实践教学从课后角色扮演、期末集中时间课程设计,到寒暑假校企实习,整个过程依据软件工程思想逐步的从小角色的扮演,团结合作做一个虚拟项目,到真正到软件公司去实习工作,提高了学生的语言表达能力、分析问题能力、实践动手能力和软件工程协作、纪律等。考核方式不再是单一的方式,除了考查基本理论的掌握情况,还考核学生是否已经具备了一定的动手能力和科研能力。从理论教学、实践教学和考核方式三个方面进行多元教学,按照方案进行实施,强调动手能力,将工作过程的职业环境融入学习过程中,将学生对知识、职业能力的掌握程度提高到了实践这一层面,使得学生能真正进入到“在学中做,在做中学”的理想学习环境中。

作者:司春景 李向阳 单位:塔里木大学信息工程学院