1. 引言
河北科技师范学院是河北省首批应用型转型发展试点院校,近几年,我校各个专业、每门课程都紧密围绕应用型大学的办学定位不断深化教学改革,不断提高应用型人才的培养质量。软件工程课程作为计算机专业的一门专业核心课程,也需要不断加强教学改革,强化学生的实践能力培养,让学生学以致用,满足区域经济社会发展对人才专业能力的需求。
2. 软件工程课程教学改革研究现状
软件工程课程的目标是培养学生软件工程能力,要求学生具备项目组织、管理能力,成为具有团队协作精神、技术创新能力和市场开拓能力的高素质、实用型、复合型、国际化高级软件工程技术人才和软件工程管理人才 [1] 。为了突出软件工程课程的培养目标,提高学生的就业竞争力,一些专家学者和教学人员对软件工程课程改革进行了一定的研究。2011年,刘晓明等人分析了以应用型软件人才培养为目标的“软件工程”课程教学方法,重点从教学梯队建设、教学内容的选择及有机结合、案例教学、企业实训四个方面进行了探讨 [2] 。2011年,廖礼萍等人提出了项目驱动的软件工程教学改革方案 [3] ,将电子商务通用平台的设计与开发贯穿到教学过程中。2016年,佟玉军等人分析了软件工程人才培养模式中所存在的问题,建立了校企联合的多层次实践教学体系 [4] 。2017年,闫爱斌等人指出软件工程课程要对教学前、教学中和教学后三阶段的教学工作做出改革 [5] 。郭艾等人在对软件工程教育现状研究的基础上,提出了软件工程在培养目标、教学手段、课程体系、考核方式和校企合作五个方面的改革方法 [6] 。
我校的软件工程课程以“应用”为目的已经做了一些基础性改革,例如对课程学时、理论实验学时分配不断进行调整,增加“软件开发教学实习”实践课提高学生的实践能力等。然而,软件企业需要的是具备高素质软件工程能力的研发人员和产业工人,目前的软件工程教学无法满足企业需求,与应用型人才培养目标依然存在一些差距。例如软件工程课程教学内容多、杂、重点不突出、教学学时相对较少、实践学时尤其少,授课过程重理论、轻实践,学生感觉理论知识简单乏味,但是实践能力又较差,大部分同学撰写的软件开发文档都不够规范。另外,教学过程缺少统一完整适于教学的工程案例,这就使学生很难建立起连贯的软件开发流程,无法将各种开发步骤有效融合在一起;课程考核方式采用的是卷试方式,无法衡量学生的实践应用能力。为了适应应用型大学的建设步伐,软件工程课程需要在教学内容、教学方法、实践项目安排、考核等方面进一步深入改革。
3. 软件工程课程教学改革实践
应用型人才培养的最终目标是满足企业的需求,我们通过对软件开发企业的各种软件岗位人员进行调研,对软件开发企业需要的软件工程能力进行了分析和总结。在此基础上,考虑软件工程课程本身的教学目标和教学特点,我们对软件工程课程从教学内容、教学方法、实验教学、考核方式等方面分别进行了优化和调整,为“应用型”的软件人才培养助力。
3.1. 教学内容改革
为了使软件工程教学更加适应企业的软件工程能力要求,对软件工程课程的教学内容进行了调整,对原有的讲授章节进行了取舍。由于计算机专业以软件开发为主,而软件企业也侧重软件需求分析、设计、测试文档的阅读和撰写等软件工程能力,为此本课程保留和强化软件生命周期模型、结构化分析设计方法、面向对象的分析设计方法、软件测试等教学内容,删除了原有的软件实现和软件质量管理方面的教学内容。调整后的内容更好地突出了计算机专业的专业特点,也使本课程的教学重点更加适应软件企业的人才需求。
3.2. 教学方法改革
1) 案例法教学
为了强化学生对讲授内容的理解,在理论教学中增加了“采购管理系统”工程案例,配合该案例讲解软件开发的各个阶段“做什么”、“如何做”,让学生能充分了解软件生命周期模型中各个阶段的具体任务和相互联系,弥补软件工程教材中重理论轻实践的缺点。
2) 任务驱动法教学
为了增强学生的实践应用能力,采用任务驱动的方式组织教学过程,从第一次上课就布置本课程的作业:让学生自选一个软件系统并实施相应软件开发阶段,用所学知识来解决实际问题。通过了解学生对任务的完成情况,教师能及时地发现教学中出现的问题,了解学生知识掌握的薄弱环节,及时对学生进行辅导,并对教学内容进行完善和调整。
3) 讨论式教学
课堂讨论是一种重要的教学方法,我们在需求分析部分引入课堂讨论,让学生分别模拟用户和开发人员来讨论需求,理解用户是需求的来源,明白如何与用户沟通以及在沟通过程中具备倾听、说服和协商能力的重要性。
4) 普通教学和翻转课堂相结合
为了使课堂教学收到良好的效果,对系统设计和系统测试部分采用普通教学和翻转式课堂相结合的形式,充分利用已经制作的软件工程慕课网站,让学生在课前收看慕课视频对本次课的教学内容进行预习,在课堂上则采用学生先讲解、教师补充并纠正的方式进行授课。
5) 紧密联系其他课程
针对软件工程课程内容多、课时有限的问题,我们将软件工程课程与其他程序设计课程紧密结合,由于学生在程序设计课程中开发过软件,本课中鼓励学生在原来开发的基础上进行二次开发,充分体会软件需求分析和设计的重要性,以及软件开发生命周期模型中各个阶段的紧密关联。另外,模拟企业的软件维护过程,把近两届学生做的毕业设计和课程设计项目管理起来,鼓励学生对这些项目进行维护和改进,让学生进一步理解软件开发文档的重要性,并树立软件版本的概念。
3.3. 实验教学改革
软件工程课程是理论与实践并重的课程,为了突出学生应用能力的培养,在讲解理论知识的同时,需要安排学生完成相应的实践性任务来更好地掌握教学内容,提高学生的软件分析与设计能力。实验教学方面,我们让学生组建开发团队,模拟软件公司的软件开发过程。学生4~5人为一个项目组,项目组自主选择一个软件项目按照软件生命周期模型进行开发,每个成员分别负责需求分析、软件设计、软件实现和软件测试等环节,撰写相应的文档。每个项目组在担当软件开发者的同时,也扮演过程管理者的角色,除了负责本组的开发流程,又负责另一组项目的管理流程,让学生充分体验软件的开发过程和软件质量管理过程,增强实际软件开发和软件质量管理能力。
3.4. 考核方式改革
软件工程课程在考核方式上取消了原来的卷面考核方式,注重对学生的实践能力进行考核。将考核内容改为项目阶段性报告、项目总结、项目问答、开发文档四部分,每部分的得分按照一定比例相加得到最终成绩。这种考核方式既考查学生对软件开发过程中各个阶段的理解和掌握程度,也考查学生的团队协作能力(后期开发阶段文档必须覆盖前期文档,否则说明团队协作有问题),也能充分训练和体现出学生对文档撰写的规范性。
4. 总结
按照企业的软件工程能力要求及本校学生特点,对软件工程课程的授课内容、教学手段和方法、考核方式等方面进行了相应改革,逐步建立一套授课内容安排合理、任务驱动为主导、理论与实践紧密结合的课程体系。通过对近两届毕业生的调查得知,相对以前的课程教学,学生们对软件工程课程的重要性认识、学习兴趣和积极性都在不断提高,学生的软件工程专业素养、文档规范性也都在大幅度提升,学生就业单位的反馈也在逐渐改善,上述现象都说明该课程的教学改革成效较好、有利于应用型人才的培养。
基金项目
本文由河北省高等学校创新创业教育教学改革与实践项目“以创新创业能力培养为核心的计算机科技专业课程体系改革探索和实践(2017CXCY107)”和河北科技师范学院教研项目“面向应用型人才培养的软件工程课程教学改革研究”资助。