刘海燕 王雅轩 陈恒
摘 要:《软件工程》课程的理论性和实践性都比较强,在传统授课模式下,实践环节比较薄弱,学生处于被动的接受状态,动手能力较差。基于项目案例驱动的《软件工程》实践教学以项目案例为驱动、以学生自主探究为主线,能够激发学生学习的积极性和主动性,有助于提高学生的实践动手能力和综合素质,培养学生独立探索、勇于开拓的自学能力和创新意识。
关键词:软件工程 项目案例 实践教学 综合素质
中图分类号:G642 文献标识码:A 文章编号:1674-098X(2015)05(b)-0142-02
Practice Teaching Study on Software Engineering Driven By Project Case
Liu Haiyan Wang Yaxuan Chen Heng
(School of Software, University of Foreign Languages, Dalian Liaoning,116044,China)
Abstract: Theory and practice of the course of software engineering are also strong, in the traditional teaching mode, students are in a passive state of accept, the practice ability is weak. Practice teaching based on project case, students inquiry is the main line, which can stimulate students learning enthusiasm and initiative, help to improve the students practical ability and comprehensive quality, raise the students′ independent exploration, and develop the self-study ability and innovative consciousness.
Key words: Software Engineering; Project Case; Practice Teaching;Comprehensive Quality
《軟件工程》是计算机专业的核心必修课程,通过学习该课程可以提高学生综合运用知识解决实际问题的能力,对学生科研能力、工程能力以及创新能力的培养都具有重要作用。
《软件工程》的理论性和实践性都很强,传统教学方式以教师“教”为中心,实践环节比较薄弱,学生基本上是按照教师规定的课程内容来“照猫画虎”式地被动套用知识点,动手能力较差。
软件工程学科最大的特点是来自实践又运用于实践,大型系统成功的开发实践经验本身就可以上升、总结成为软件工程的方法。结合项目案例背景进行讲解,不仅可以加深对理论知识的理解,调动学生的学习兴趣,对于基本没有项目开发经验的学生来说,也是掌握软件工程理论方法的最佳途径[1]。
1 项目案例驱动教学法
著名的心理学家皮亚杰提出的建构主义学习理论认为,知识不是通过教师传授得到的,而是学生在一定的情境下借助他人的帮助,利用必要的学习资料,通过意义建构的方式而获得 [2]。项目教学法是由美国著名教育家凯兹博士和加拿大教育家查德博士共同创建的一种以学生为本的活动教学法。其突出特点在于学习过程的实践活动与研究活动相融合[3]。
结合《软件工程》课程特点及教学体验,采用讲授法与项目案例教学相结合的方式,按照“案例导向、项目驱动”的设计思想,课堂以讲解基础知识为基石,介绍案例为主,讨论为辅。实验设计以项目开发为主,模拟软件企业先进的软件项目管理和开发过程,以项目开发带动软件工程的理论学习,又以软件工程的理论来指导软件开发的实践[4]。按照由表及里、逐层深入的学习途径,使学生可以循序渐进地学习软件工程学的知识和技能,更好地掌握所学内容。
基于项目案例驱动的《软件工程》实践教学以任务为主线、教师为主导、学生为主体,符合探究式教学模式,使学生得到比较全面、系统和规范的软件工程实践训练,能够使学生经历一个具体系统从定义、开发到实现的完整过程。可以锻炼学生的系统分析、设计、编程、测试和维护能力,能够培养学生的团队协作、文档书写、实践动手能力和综合素质,锻炼学生独立探索、勇于开拓的自学能力和创新意识。
2 基于项目案例驱动的《软件工程》实践教学
2.1 优化《软件工程》的理论教学
采用项目案例教学并不意味着对传统教学方法的全盘否定,而是对传统教学法的扩充。《软件工程》课程的基础理论多,而且比较抽象,却是指导实践应用的法宝,对于原理和方法的阐述需要通过课堂讲授进行,所以首先需要进一步优化理论教学。
为此,结合软件工程学科的最新发展方向,精心设计和规划教学大纲,并且对教学内容进行合理删减,将教学内容分为不同层次,采用不同教学方法讲授。在保证学生掌握《软件工程》核心思想的同时,不断拓宽知识面,完善知识结构。
2.2 探索《软件工程》的实践教学
软件工程强调采用工程化的方式来开发软件,包括项目计划、分析、设计、编码、测试和维护等阶段。《软件工程》的实践教学主要采用结合知识点的案例式教学和贯穿整个学习过程的项目实践教学,前者有助于学生对某个阶段技术的掌握,而后者则可以帮助学生形成一个覆盖软件生命周期的全程概念,各有所长。
2.2.1 结合知识点进行案例式教学
在教学的过程中,结合各个章节的知识点,精心设计和选择适于学生理解的小案例来配合讲解,在学生基本理解的基础上,引导他们学习如何灵活运用,化抽象理论为实际应用,激发学生的学习热情和主动性,使其对知识的理解也更加透彻。
2.2.2 贯穿软件工程整个学习过程的项目实践教学
虽然结合知识点的案例式教学有助于学生对某个阶段技术的掌握,但是学生还是难以形成一个覆盖软件生命周期的全程概念。将自主开发的项目和学生的优秀作品作为教学案例,建立了基于主流编程技术Java和.Net的《软件工程》项目案例库,借助于案例教学使学生从多个角度体验软件工程项目开发的全过程,加深學生对软件开发过程中各个阶段衔接的理解。
所选项目案例力求具有典型性,与教学目标相契合,贴近生活,便于学生理解和掌握;具有趣味性、启发性,能够激发学生内在学习热情,去分析和解决问题;具有综合性,尽可能覆盖和贯穿全部的知识点,便于学生形成软件项目开发的全局意识;难度和复杂度适中,在教师的帮助下,学生有解决问题的可能性,以培养学生深入思考、积极探索的信心;项目背景可以是教育、金融、体育、物流等多个领域,帮助学生同步积累一定的行业背景知识。
由学生按照兴趣、爱好和能力自由搭配,组建小组,自行选定项目,项目组成员模拟担任项目经理、技术支持、系统分析员、配置管理员、测试工程师等角色,以软件开发的先后顺序为线索来展开实践,而且参照CMMI标准来完成相应的软件文档撰写,帮助学生积累项目实践经验,提高综合能力。
每节课都要求学生完成一个具体任务,学生目的明确,主动参与其中,调动了学生的学习积极性。不限定实现任务的方法和思路以及完成作品的形式和内容,教师只提供所需素材和指导,促使学生充分发挥想象力,进行自由创作,以培养学生的创新意识和独立探索、勇于开拓进取的自学能力。
2.3 改革《软件工程》的考核机制
在《软件工程》的实践教学中采用项目案例教学方法,以项目为主线,分阶段、循序渐进地学习,使学生在项目实施过程中完成教学任务,灵活掌握软件工程生命周期各阶段的理论知识、技术和方法,并能够运用软件工程的理念来解决具体的实际问题,从而产生成就感,能够取得较好的教学效果。
同时也需要建立科学的评价体系,注重从学生运用软件工程的原理、方法、技术、标准和规范等方面进行软件开发的综合能力以及软件项目的管理能力进行考核,特别是对基础技能、团队协作、人际交流、项目规划几个方面能力的考核,改变传统单靠死记硬背的笔试考核方法,转而重视对知识的理解和运用,以充分调动学生学习的主动性和提高学生的学习兴趣。
在考核环节,除了以小组为单元进行项目演示,展示项目所具有的系统功能、用户界面设计效果、业务逻辑流程之外,还需要展示项目相关系列软件开发和管理文档,包括可行性研究报告、需求分析说明书、概要设计说明书、详细设计说明书、测试报告书、用户使用说明书、项目整体计划书、Q&A票、Bug票、日程表、周报、配置管理文档等。这些文档涵盖Word、Excel、Powerpoint三种文件形式,督促学生学以致用,提高Office应用水平,而且每个文档都必须附带评审记录表,强调必须养成对团队所撰写的每一份材料都进行评审的良好习惯。
项目成果展示的同时,对项目组所有成员进行答辩考核,结合系统规模、设计水平、文章撰写质量、答辩问题回答给予客观评价。这样多方面、多角度地评价课程学习效果,促使学生积极地参与到课程中来,发挥主观能动性。能够引导学生深刻理解和扎实掌握《软件工程》的相关知识,可以在很大程度上缓解个别学生平时不好好学习,试图通过期末临时抱佛脚考试过关的现状,减少“高分低能”现象的发生。
3 结语
项目案例驱动教学模式要求学生必须理论联系实际,可以提高学生灵活运用和分析、解决实际问题的能力;编写软件开发各阶段的文档材料时必须具备完整性、可读性及可理解性,有利于提高学生的文学修养及文字处理能力;评审阶段的陈述与答辩也有利于提高学生的口头表达能力;完成一个项目需要多个同学团结协作,也锻炼了学生的团队协作精神。由此可以全方位地提高学生自身的综合素质。
基于项目案例驱动的《软件工程》实践教学模式显著提高了教学质量和教学效果,主要表现在以下几个方面:
(1)基于任务驱动,激发学生的学习兴趣。在任务驱动模式下,结合项目案例背景进行讲解,化抽象理论为实际应用,使学生对知识的理解更加透彻,可以激发学生的学习热情和主动性。
(2)偏重实践教学,强化学生的动手能力。学生学习都是围绕如何完成具体的任务进行,可以提高学生综合运用知识解决实际问题的动手能力,促使学生发挥想象力和自由创作。
(3)以项目为主线,提高学生的综合实力。基于项目案例驱动的实践教学模式对学生表达能力、文档撰写能力、团队协作能力、科研能力、工程能力以及创新能力的培养都具有重要作用。
(4)面向市场需求,改善学生的就业质量。对学生进行较全面、系统和规范的软件工程实践训练,帮助学生积累项目实践经验,锻炼综合能力,提高综合素质,更好地择业、就业。
参考文献
[1] 汪璟玢,叶福玲.案例与项目实践结合的“软件工程”教学方法[J].计算机教育,2012(10):101-103.
[2] 王小磊,史芳芳.任务驱动与情境认知学习理论在《软件工程》课程教学改革中的探索[J].福建电脑,2013(7):194-195.
[3] 贺平.项目教学法的实践探索[J].中国职业技术教育,2006(22):43-44.
[4] 郝水侠.《软件工程》的教学模式及方法的探索[J].科技创新导报,2009(1):133.