应用型本科院校软件工程课程教学改革与实践
2019-01-27彭慧伶
彭慧伶
(洛阳理工学院计算机与信息工程学院,河南 洛阳471023)
1 引言
应用型高校《软件工程》课程是计算机科学与技术专业和软件工程专业课程体系中非常重要的专业课,它的综合性强,对学生实践要求很高。该课程主要是为了让学生掌握软件工程的基本原理和实践方法,熟悉软件项目研发的过程,探索软件开发的最新方法与传统方法的区别,着重培养学生的系统工程思维能力、策划能力、实践能力、创新能力,兼顾培养学生的沟通和团队合作能力。
2 《软件工程》课程教学的现状
①本课程的理论原理比较抽象,不易掌握,从而导致学生在教与学的过程中极易产生枯燥、乏味的感觉。②本课程作为一门本科软件专业必修课程,在教学方案设置和教学过程中应突出本科计算机专业课程特色,同时要注重发挥本科生自学能力强的优点,加强引导。③本课程教学学时少,教学过程简单乏味。④理论与实践相脱离,重理论、轻实践。⑤考核方式滞后。
为了解决上述问题,我们在软件工程教学过程中,结合长期以来积累的经验教训,对教材的选取策略、教学内容的安排、教学的方法生动性和教学手段的多样性等方面进行了研究,提出了一些建议。
3 教学改革与实践
3.1 精心选取教材并充实教学内容
随着软件行业的快速发展,那些既掌握软件开发技术,又要懂得项目管理的复合型人才,成为各个软件公司的宠儿。针对这种需求,高校的应用型软件工程课程的教学培养目标,也需要以满足社会需求为导向,努力培养学生的复合能力,以期能在软件项目研制中发挥重要作用。因此,在教学上不仅要注重软件研发专业技能的培养,还要注意对学生软件项目管理能力的培养,我们建议,软件工程的教学要辅以大量的课堂讨论和管理、沟通实践环节。
特别是在教学内容的安排上,要注重软件工程的基本原理、概念和方法的讲解,引领学生学习面向对象、面向组件等方法在内的新方法和新技术,尽量使学生尽快深入掌握软件重用、CASE 集成环境和网络平台下的软件研发技术等。还要大力鼓励学生阅读英文原版文献,增强对国际前沿技术的了解,同时教师也要讲授比较成熟的新方法,例如,面向A-gent方法、敏捷开发(XP) 等[1]。通过教学内容的合理安排和对前沿知识的引导,帮助学生开阔视野、培养创新意识、了解最前沿的技术,为以后的工程实践打下坚实的基础。
3.2 课堂讲授应把握好知识的切入点
当前的在校大学生普遍缺乏软件开发实战经验,对软件工程课程的部分内容认识相对肤浅,同时,大部分学生对课程内容的逻辑关系没有整体的把握,他们通常也不容易对纯理论的东西感兴趣,所以,教和学都会感到枯燥无味,学生的积极性无法调动,这直接影响了教学效果。为了充分调动学生在课堂学习过程中的主动性和趣味性,软件工程教师在教学实践上,需要注意以下几个方面:第一,要让学生明白理论指导实践的重要性,着重提高学生的软件工程理论水平。在讲解软件工程发展过程的同时,能够辅助介绍一些软件工程上成功和失败的著名案例,要使学生充分理解软件开发包含策划、设计、实现、测试、部署、维护等多个过程,不单单是写代码。教师要尽力使学生确信,软件开发必将朝着“工程化”的方向发展,软件项目的研发也应该以软件工程学的思想和方法为指导,才能保证软件项目的质量和进度,避免风险。第二,要让学生明白软件工程的完整过程域和实施方法。软件工程课程本身就是为了培养学生系统解决问题的能力,教师在教学内容的组织和软件开发方法的讲授过程中,就需要循循诱导学生,使其明白系统性、全局观对高质量的软件项目研发的重要性。第三,着重强调软件工程中各主要知识点之间的逻辑关系。软件工程中各主要知识点之间均有内在的逻辑关系,它们环环相扣,彼此印证。教师在讲解需求分析、概要设计和详细设计三项开发过程之间的关系时,要在需求开发完成的基础上,通过系统的概要设计,来实现需求的功能、性能要求,把每个功能在哪个部件实现进行初步的规划设计,这就是概要设计;对概要设计进一步细化,形成详细可实现的功能模块,这就是详细设计,教师要把这些逻辑关系讲清楚,使学生烂熟于心,才能在未来的软件研发中使用。同时,也要将面向对象的软件开发方法与传统的结构化开发方法相比较,将测试用例生成技术与需求分析模型、软件设计模型以及相关技术相联系,让学生能够直观地感受到软件工程的思想和方法始终贯穿于软件研发活动中[2]。
3.3 建立完善的课程体系
我们建立了完善的课程体系:基础部分—应用部分—实践部分。基础部分:软件工程概述、软件工程过程、软件工程管理、软件工程技术。应用部分:参照当前软件项目研发的标准过程,以面向对象技术与通用模型语言为核心,把企业的最佳实践和实际案例讲解给学生,同时注重覆盖CVS、Rational Rose、Enterprise Architecture、JUnit 等软件工程工具与环境,使学生在应用部分教学中,熟悉当前先进的软件工程过程和通用技术。实践部分:教师要组织学生以软件项目开发团队的方式,共同协作开发一个具有一定规模的软件系统,让学生按照软件工程的策划、需求、设计、测试、部署、维护等各个阶段的要求,认真实施完成,让学生通过软件研发项目的实战经验,深入了解和掌握软件工程的思想和过程,了解每一个过程域的重点和它们之间的相互关系。
3.4 注重理论结合实践,加强课堂互动
教师在教授软件工程课程时,要加强课堂互动,充分让学生参与教学过程,发挥学生的主观能动性,循循善诱,让学生一边思考一边听取理论讲解,同时又能实时表达自己的理解和想法,加强教师对当前教授内容的掌控。实战训练需要提前安排学生分组,按照软件工程的要求进行初步策划,教师要根据课堂分组讨论的结果,引导他们完成一个完备的软件界面设计方案,并用指导学生使用界面辅助设计工具实现[3]。通过这些实践让学生感受软件研发的魅力,使理论与实践有机统一,激发学生学习软件工程的兴趣和自信。
3.5 采用案例化的教学模式
课程中尽量采用案例教学法,通过案例的生动讲解,把枯燥的教学变得生动有趣,同时,在教学中教师要扮演设计者与激励者的角色,并鼓励学生要积极参与讨论,进而增进教学效果。在理论教学中,以实际软件开发案例贯穿于整个理论知识讲解的始终,使学生在理解理论知识的同时建立起软件开发系统化与工程化观念;让学生参与教学过程中,针对某一问题进行互动式的讨论;针对课程实践中的问题,鼓励学生开展专题讨论或形成专题报告。
3.6 考核要理论实践并重
软件工程作为一门实践性课程,其考核方法应该有别于其他课程,检验的重点不但要关注理论考试成绩,而且要考查学生是否能在软件开发过程中贯彻软件工程的思想和方法。因此,建议加大实践考核的比重,考核分为课程考试和课程设计,其中课程考试兼顾平时成绩和笔试成绩;课程设计单独作为一门实践课程进行考核,建议从课程的开始就布置课程设计题目,学生自由组合,按照教学进度,分阶段提交需求分析文档、设计文档、测试文档和可运行的软件代码等。
4 结语
《软件工程》作为应用型高校计算机专业和软件工程专业的核心课程之一,我在教学过程中,摈弃了主讲理论的传统教学方法,通过对教材的精心选取、教学内容的合理组织、考核方法的科学评判,实践与理论并重,注重在教学中使用具体化、实例化的案例,增强学生的主观能动性和积极性,注重学生综合能力的养成。