《软件工程》课程TAP教学模式探索与实践

2014-08-30 02:07胡文艺阚瑷珂王华军
职业技术教育 2014年5期
关键词:软件工程教学模式

胡文艺+阚瑷珂+王华军

摘 要 针对软件工程课程的特点和教学研究现状,提出以课堂理论教学为引导、案例分析为基础、项目实践为关键的创新TAP教学模式。实践证明,TAP教学模式符合软件工程课程的特点,有益于提高学生学习的积极性、主动性和软件工程能力,对于软件工程人才职业技能的培养具有一定的指导意义。

关键词 软件工程;TAP;教学模式;项目实践

中图分类号 G714 文献标识码 A 文章编号 1008-3219(2014)05-0051-03

软件工程学是一门指导计算机软件开发和维护的工程学科[1],是计算机科学与技术专业的主干核心课程,在专业知识结构中占有重要地位。采用“理论教学为引导、案例分析为基础、项目实践为关键”(简称TAP)的教学模式,使学生能更好地了解软件项目开发和维护的一般过程,扎实掌握软件工程的基本原理、方法和过程,真正做到学以致用。

一、软件工程课程特点及教学要求

(一)课程特点

一是综合性强。软件工程课程教学要达到良好的教学效果,其前提是要学好计算机应用基础、操作系统原理、离散数学、数值分析、数据结构及算法设计、数据库原理和一门高级程序设计语言等前导基础课程。学生只有掌握了软件工程的基本概念和基本原理,才能综合运用理论和方法开发出符合用户需求的、高质量的软件。

二是内容更新快。软件工程是一门发展极为迅速的学科,从1968年软件工程早期定义提出后,近五十年来,不断有大量新理论、新方法、新技术出现,相关知识点的更新速度远远超过了教材的更新速度。软件工程的授课内容应随着需求、应用的变化以及新技术的出现而变化[2]。

三是实践性强。该课程的最终目标是要学生把所学的知识运用到实际项目的开发实践中,并且只有在实际项目中才能培养学生学以致用的能力,并使其领悟软件工程的真正精髓。

(二)教学要求

软件工程适用的教学模式由课程的专业性质、理论体系和应用领域决定。首先,在当前计算机行业发展的大环境下,对软件工程人才的培养,既不等同于培养软件开发高级阶段的系统分析师,也不是培养刚入门的初级程序员。其次,该课程作为计算机系统结构、算法与数据结构、高级程序设计等的后续课程,是学生在掌握基本的程序开发技能后,进行毕业设计和以后具体软件项目设计和实施。就课堂训练而言,要教会学生如何在软件项目运行管理中避免失控、在软件进度的跟踪过程中防止偏离既定设计目标、在面临计划的突变时能协同开发团队顺利地调整阶段目标等,而不仅限于让学生掌握一般工具。基于以上教学要求,创建“理论教学+案例分析+项目实践”的教学模式便成为现实所需。

二、TAP教学模式内涵及运行

在软件工程课程的教授过程中,本文提出的TAP教学模式是指以课堂理论教学为引导(T:Teaching)案例分析为基础(A:Case Analysis)、项目实践为关键(P:Practical Training),具体见图1。

(一)课堂理论教学为引导

软件工程课程课堂讲授内容主要包括:软件工程概述、可行性研究、需求分析、概要设计、详细设计、实现、测试、维护和软件管理等。在讲授过程中,本着以学生为中心的原则,采用启发式讲授、引导式提问和互动式讨论的方法,深入浅出地对课程进行讲解,使学生更容易掌握基础知识,理解重要概念,了解软件开发模型和过程。作为一门实践性很强的课程,软件工程课程的讲解还应包括在具体案例分析和实践之后的重点、疑难点、盲点的分析和总结,并根据具体情况进行提问式和讨论式的讲解,以便学生能更系统、更全面、更感性地掌握该课程的知识。

(二)案例分析为基础

软件工程的理论和方法是从大量的软件开发案例中总结出来的,可借助真实的、经典的和学生使用较多的软件作为开发案例,从而激发学生内在的学习动力,使学生有效地理解和掌握理论知识,快速地与实际应用接轨。在教学过程中通过基于Android系统的手机游戏开发等案例的分析,使得学生对软件工程生命周期各个阶段的工作有一个深刻直观的理解。

一是可行性研究和需求分析阶段。通过案例分析,引导学生从可行性研究的经济、技术、操作和社会及法律等方面进行分析,假设学生自己作为用户,引导其思考会有哪些需求,如何进行需求分析,怎样生成报告等。

二是实施阶段。第一,结合案例的特点和开发策略,了解软件过程中喷泉开发模型,并讨论若用瀑布模型、原型化方法、增量模型和螺旋模型等进行开发,其过程有何异同。第二,重点分析该软件的架构设计、详细设计及设计模式。第三,通过课堂提问和讨论理解软件可维护性的重要性,及在课堂进行该软件的黑盒测试,对软件测试形成直接的感性的认识。

三是项目管理阶段。通过该软件的案例分析,充分认识项目管理在成本、人员、进度、质量、风险等各项活动中的重要性。

(三)项目实践为关键

1.企业实践

以校企合作为契机,充分利用学校和企业的资源,优势互补,促进理论教学与实践相结合。本专业已经与多家软件有限公司建立校企合作关系,邀请企业有经验的工程师走进课堂,分享业界的开发技术和实践经验。学生参与企业的真实项目,使用当前主流技术和敏捷开发方法,也能激发学生的学习积极性和实践探索兴趣。

2.课程同步实践

在引导式教学和案例分析的基础上同步开展课程实践活动,使得软件项目管理贯穿于课程同步实践,从而全面做到理论与实践的实时结合。以基于Android的手机游戏开发作为软件工程课程同步实践项目。

首先,可行性研究、需求调研和需求分析。学生组成3~5人的开发小组对基于Android的手机游戏进行调研和可行性的实际分析,编写《可行性报告》和《需求分析报告》。

其次,软件设计,主要包括概要设计和详细设计。本实践项目的概要设计中的系统结构设计采用客户/服务器模式,在该阶段通过引导学生了解内聚和耦合的概念,并指导学生进行模块划分。在详细设计中,各小组成员根据模块的分工,确定各自负责的模块。在游戏类的详细设计中,界面设计占有至关重要的作用,学生也需对软、硬件接口、模块接口进行逻辑结构和物理结构设计。

第三,实现和测试。程序实现是大多数学生的难点,也是项目实践的关键点。基于Android的手机游戏采用的技术方案为Android +Java+SQL Server。在实践过程中,需对Java相关知识进行复习,适当的时候帮助学生进行代码的编写和调试。测试阶段由不同的开发小组人员进行交叉测试,分别进行白盒和黑盒测试。在时间足够充分的情况下,由开发小组人员编写测试代码,进行白盒测试。通过这两种测试方式,找出游戏中存在的错误,并写出相应的《测试报告》。

第四,软件维护。各小组把完成的手机游戏软件安装到本小组人员的手机上,一旦发现问题进行及时维护。通过使用自己编写的软件,让学生体会软件健壮性和维护的重要性。

三、教学效果

(一)学生评教

近三年来,采用TAP教学模式对软件工程本科课程教学改革进行探索,效果显著。《软件工程》课程被评为校级精品课程,学生的学习成绩和学生给教师的评教分值逐年上升,见表1。

(二)社会评价

软件工程课程重点培养学生在计算机软件项目中分析和解决问题的能力,注重软件工程学方法和思想的引导,注重计算机软件与应用领域知识面深度和广度的拓展,着力培养学生的自主学习和实际动手能力。在企业实践中,以项目实战为导向,增强了学生学习的自信心和主动性,取得了良好的反馈。用人单位普遍反映毕业生的软件工程能力比较突出,毕业生到了新的“实战环境”后,其适应能力、创新能力、可塑性等方面都表现优异,得到用人单位的广泛好评。

(成都理工大学2013-2016年高等教育人才培养质量和教学改革项目《<软件工程>课程教学模式改革》,编号:13JGY68,主持人:胡文艺)

参考文献:

[1]张海藩.软件工程导论(第五版)[M].北京:清华大学出版社,2008:5.

[2]Jazayeri M.The Education of a Software Engineer[C]. Proceedings of the 19th International Conference on Automated Software Engineering(ASE04).Washington DC:IEEE Computer Society,2004:xviii- xxvii.

第三,实现和测试。程序实现是大多数学生的难点,也是项目实践的关键点。基于Android的手机游戏采用的技术方案为Android +Java+SQL Server。在实践过程中,需对Java相关知识进行复习,适当的时候帮助学生进行代码的编写和调试。测试阶段由不同的开发小组人员进行交叉测试,分别进行白盒和黑盒测试。在时间足够充分的情况下,由开发小组人员编写测试代码,进行白盒测试。通过这两种测试方式,找出游戏中存在的错误,并写出相应的《测试报告》。

第四,软件维护。各小组把完成的手机游戏软件安装到本小组人员的手机上,一旦发现问题进行及时维护。通过使用自己编写的软件,让学生体会软件健壮性和维护的重要性。

三、教学效果

(一)学生评教

近三年来,采用TAP教学模式对软件工程本科课程教学改革进行探索,效果显著。《软件工程》课程被评为校级精品课程,学生的学习成绩和学生给教师的评教分值逐年上升,见表1。

(二)社会评价

软件工程课程重点培养学生在计算机软件项目中分析和解决问题的能力,注重软件工程学方法和思想的引导,注重计算机软件与应用领域知识面深度和广度的拓展,着力培养学生的自主学习和实际动手能力。在企业实践中,以项目实战为导向,增强了学生学习的自信心和主动性,取得了良好的反馈。用人单位普遍反映毕业生的软件工程能力比较突出,毕业生到了新的“实战环境”后,其适应能力、创新能力、可塑性等方面都表现优异,得到用人单位的广泛好评。

(成都理工大学2013-2016年高等教育人才培养质量和教学改革项目《<软件工程>课程教学模式改革》,编号:13JGY68,主持人:胡文艺)

参考文献:

[1]张海藩.软件工程导论(第五版)[M].北京:清华大学出版社,2008:5.

[2]Jazayeri M.The Education of a Software Engineer[C]. Proceedings of the 19th International Conference on Automated Software Engineering(ASE04).Washington DC:IEEE Computer Society,2004:xviii- xxvii.

第三,实现和测试。程序实现是大多数学生的难点,也是项目实践的关键点。基于Android的手机游戏采用的技术方案为Android +Java+SQL Server。在实践过程中,需对Java相关知识进行复习,适当的时候帮助学生进行代码的编写和调试。测试阶段由不同的开发小组人员进行交叉测试,分别进行白盒和黑盒测试。在时间足够充分的情况下,由开发小组人员编写测试代码,进行白盒测试。通过这两种测试方式,找出游戏中存在的错误,并写出相应的《测试报告》。

第四,软件维护。各小组把完成的手机游戏软件安装到本小组人员的手机上,一旦发现问题进行及时维护。通过使用自己编写的软件,让学生体会软件健壮性和维护的重要性。

三、教学效果

(一)学生评教

近三年来,采用TAP教学模式对软件工程本科课程教学改革进行探索,效果显著。《软件工程》课程被评为校级精品课程,学生的学习成绩和学生给教师的评教分值逐年上升,见表1。

(二)社会评价

软件工程课程重点培养学生在计算机软件项目中分析和解决问题的能力,注重软件工程学方法和思想的引导,注重计算机软件与应用领域知识面深度和广度的拓展,着力培养学生的自主学习和实际动手能力。在企业实践中,以项目实战为导向,增强了学生学习的自信心和主动性,取得了良好的反馈。用人单位普遍反映毕业生的软件工程能力比较突出,毕业生到了新的“实战环境”后,其适应能力、创新能力、可塑性等方面都表现优异,得到用人单位的广泛好评。

(成都理工大学2013-2016年高等教育人才培养质量和教学改革项目《<软件工程>课程教学模式改革》,编号:13JGY68,主持人:胡文艺)

参考文献:

[1]张海藩.软件工程导论(第五版)[M].北京:清华大学出版社,2008:5.

[2]Jazayeri M.The Education of a Software Engineer[C]. Proceedings of the 19th International Conference on Automated Software Engineering(ASE04).Washington DC:IEEE Computer Society,2004:xviii- xxvii.

猜你喜欢
软件工程教学模式
群文阅读教学模式探讨
“思”以贯之“学、练、赛、评”教学模式的实践探索
创新线上英语教学模式的思考
高中英语“读写学思”教学模式探索与实践
“认知-迁移”教学模式在高年级阅读教学中的应用
依托工作室的软件工程实践教学研究
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨