面向工程应用的软件工程课程教学改革的分析与研究论文

时间:2020-10-08 19:06:54 其他类论文 我要投稿

面向工程应用的软件工程课程教学改革的分析与研究论文

  1引言

面向工程应用的软件工程课程教学改革的分析与研究论文

  软件工程是一门研究用工程化方法开发、维护和管理软件的科学。IEEE-CS/ACM在计算机学科教程体系中、中国教育部高等学校计算机科学与技术教学指导委员会在《高等学校计算机科学与技术专业公共核心知识体系与课程》中,都将软件工程列为计算机学科的核心专业课,因此软件工程在计算机学科中占有}-分重要的地位,是培养学生软件工程能力的一门关键课程。

  然而,由于软件工程本身就是一个比较复杂的系统工程,软件工程课程兼具理论性与实践性,目前不少高校对该课程的教学效果并不理想。为此,教育部高等学校计算机科学与技术教学指导委员会专门成立课题组,研究形成了《软件工程课程教学实施方案》。对教学内容、教学模式和实践体系等提出了明确的要求。国内外众多高校也积极开展软件工程的课程改革,从指导思想、教学目标、课程内容、教学方式、实践环节等方而进行进一步探索和创新,取得了一系列富有成效的改革成果。

  西安建筑科技大学计算机专业自从1986设立以来就一直将软件工程作为专业主干课,20多年来,许多教师在长期的教学实践中对该课程的教学进行了不断的探索。目前,国家和西安的软件产业发展迅猛,对软件开发和外包服务人才的需求很大,而我校已经新申请到软件工程一级硕士点和本科专业,正在建设计算机应用型人才培养模式创新实验区,在此背景下我校对软件工程课程进行了进一步的深化改革,形成了一套面向工程应用、特色鲜明、行之有效的改革方案。

  2软件工程课程存在的问题

  <1)从课程内容上看,软件工程课程系统性、综合性、交叉性强,内容多、更新快。软件工程到目前为比已经由一门课程发展成一个新兴的学科体系,包括软件工程本科专业和研究生一级学科。软件工程的发展导致其课程内容非常庞杂,几乎涉及了软件工程学科的主要内容,从某种意义上软件工程课程是软件工程学科内容的“大纲”。根据IEEE-CS与ACM于2014年发布的软件工程知识体系,软件工程课程共15个知识域,涉及7门学科,系统性、交叉性、综合性非常明显。因此,学生由于经验缺乏和知识背景的限制,要在短时间内全面掌握软件工程课程的内容客观上难度较大。

  <2)从课程性质看,软件工程是一门兼具理论性与实践性的工程技术课程。软件工程诞生于人们对“软件危机”的解决,是人们对软件开发、管理、维护经验的总结,包括一系列的思想、概念、方法、技术和规范,具有完整的逻辑理论体系。然而软件工程的课程内容来源于实践、高于实践、应用于实践,具有很强的工程应用特征。因此,由于大部分学生普遍缺乏软件开发的经历,对软件项目管理与维护不熟悉,如果教学方式不合理,容易造成理论与实践脱节。

  <3)从教学内容上看,教学案例和项目设置往往不合理。教学案例和项目或者比较陈旧,脱离实际,学生不感兴趣;或者项目规模较小,软件工程的重要性体现不出来;或者庞杂、零碎、不系统,软件分析、设计、构造、测试等不同的阶段选取的案例与项目不同,导致学生对软件过程各个阶段的衔接和平滑过渡与映射不能较好的掌握,实践中无法完成完整的软件开发。

  <4)从教学方法上讲,高校的教师非师范院校毕业较多,许多教师对教育学、心理学、教学论、课程论等不熟悉,在教学方法上采用的是“自发的”以教师为中心的讲解教学模式,“满堂灌”、“照本宣科”、“照屏宣科”是其基本特征,导致学生感觉枯燥乏味,学习兴趣不高,积极性下降,教学效果差。

  <5)从实践教学上讲,或者实验课时太少,学生缺乏充分的软件开发实践训练;或者实验内容不合理,以掌握工具、编写软件文档为主;或者实践教学体系不完整,没有课程设计,甚至有的学校认为软件工程只是一门纯理论课,没有必要设置实践环节。凡此种种导致学生只记住了一些理论知识,无法形成实际的软件开发能力,更谈不上专业素质的培养。

  3改革措施

  为了进一步提高软件工程课程的教学质量,解决存在的问题,根据国家和社会对计算机专业人才市场需求,在IEEE-CS/ACM和教育部高等学校计算机科学与技术教学指导委员会关于该课程有关文件的指导下,配合西安建筑科技大学实施的计算机学科的质量工程,应用前沿的教育教学理论,我们对该课程的教学进行了深入改革和积极探索。

  3.1课程的教学定位和培养目标

  1998年美国学者霍恩斯坦在批判继承布卢姆教育目标分类学的基础上推出了一个全新的教育目标分类体系,它将全部教育目标划分为认知领域、情感领域、动作技能领域和行为领域4个部分,每个领域包含5个层次的教育目标多元智能理论是美国哈佛大学心理学教授霍华德·加德纳于1983年在质疑传统智能理论的基础上提出来的,他认为人的智能由言语语言、数理逻辑、音乐节奏、视觉空间、身体运动、人际交往、自我认识、自然探索八个方面组成,教育者应该培养和发展学生的多元智能。

  霍恩斯坦的教育目标分类理论、霍华德·加德纳的多元智能理论对课程定位和目标的确立具有重要的指导作用。包括我们学校,目前不少高校或者把软件工程定位为一门纯粹的理论课程,课程与实际工程应用结合不紧密,学生对这门课感到枯燥、不感兴趣,体会不到软件工程的实用价值;或者基于传统理论制定的教育目标笼统、单一,缺乏层次性,教学实施和评价困难,培养的学生难以满足社会需要。

  以国家和社会对计算机学科人才的需求为导向,根据IEEE-CS八CM、教育部高等学校计算机科学与技术教学指导委员会和国家高等教育“质量工程”的要求,应用霍恩斯坦的教育目标分类理论、霍华德·加德纳的多元智能理论,我们对“软件工程”课程的定位和目标进行了研究,将软件工程课程定位为理论与实践并重的“工程型”专业主干课,既涉及计算机学科的理论、抽象、设计三个形态,又关注于工程学科的系统性、规范性和可度量性等基本属性,突出教学实践环节和软件形态开发能力的培养,使学生通过实践工程的建设获得基础技能、团队合作、分析与解决问题以及创新能力的发展。

  3.2课程教学内容的实施

  IEEE-CS与ACM于2014年发布的软件工程知识体系,确定的软件工程课程知识域共15个,包括软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程建模与方法、软件质量、软件工程专业实践、软件工程经济学、计算机基础、数学基础、工程基础。以这15个知识域为参考,基于工程型人才的培养定位,根据教育部高等学校计算机科学与技术教学指导委员会制定的《软件工程课程教学实施方案》l31在教学内容方面的建议,确定了如下的教学内容与重点:

  <1)软件工程概述厂注重引导学生认真分析案例中体现出的工程性问题,阐述软件工程领域中的业界最佳实践和最新技术发展动向。

  <2)需求分析。教学中重点讲解需求获取和需求管理的主要活动,引导学生运用所学的方法和技术,定义各种系统的软件需求,形成需求规格说明并进行需求评审。

  <3)分析建模。教学中介绍结构化分析技术,重点讲解基于面向对象分析方法,并侧重于对实际的软件系统进行建模分析。

  <4)软件设计。教学中强调各种不同的设计方案,引导学生通过比较和分析这些方案的优劣,权衡和选择合适的设计方案,并且在应用设计原则进行详细设计时,尽量使用重用技术,掌握常用的设计模式。

  <5)用户界面设计。教学中介绍常见的用户界面风格,讲解如何运用用户界面设计工具完成具体的界面设计。

  <6)软件实现。在学习软件工程之前,学生已经具备一定的程序设计基础,但可能缺少软件工程的概念和训练。通过分析程序代码实例,从可读性、规范性、正确性、容错性、可重用性等方面讲解良好的编码实践,强调代码走查和单元测试技术是软件编码的一部分,在课程实验项目中训练学生应用测试驱动的软件开发技术,掌握编写高质量代码的基本能力。

  <7)软件测试。教学中全面介绍质量保证体系和常见的软件测试工具,引导学生设计简单的测试用例,并能够运用工具完成简单的测试要求,也可以编写一些小规模的测试工具。

  <8)软件交付与维护。这部分内容以讲授基础知识为主,同时通过课程实验项目,使学生体会软件发布与部署工作。

  <9)软件过程。教学中结合具体的工程性项目,引导学生选择和改进适用的过程模型,并能够定义整个开发过程。

  < 10)软件工程管理。教学中重点介绍大型软件企业的层次式组织结构及其常见的角色职责与分工,讲解如何制订小组层次上的项目进度计划,培养较强的口头交流与协商能力。

  3.3基于建构主义理论的教学模式的革新

  目前的软件工程教学采用的是“以教师为中心,教师讲、学生听”的基于行为主义理论的传统教学模式,该模式将学习看成是一种消极的知识传递过程,在这种教学模式下,作为认知主体的学生在教学过程中自始至终处于被动状态,难以发挥其主动性、积极性。这样的教学,既不能保证教学的质量与效率,又不利于培养学生的发散性思维、批判性思维和创造性思维,也不利于创造型人才的成长。

  近二十年来,把学生作为知识灌输对象的行为主义教学理论已经让位于把学生看作是信息加工主体的建构主义教学理论,该理论下的教学模式主要有支架式、抛锚式和随机进入式厅。抛锚式教学也称“基于问题的教学”,实际情境中的真实事件或真实问题的确定称为“抛锚”。支架式教学围绕所学习的主题,按照“最邻近发展区”的要求,建立概念框架,然后引导学生进入一定的问题情景,让学生独立探索,并通过小组协商,最终完成对所学知识的意义建构。随机进入式则随意通过不同途径、不同方式进入同样教学内容的学习,从而使学生获得对同一事物或同一问题的多方面的认识与理解。实践证明建构主义的教学模式不但能有效地提高学生思维的发散性、批判性和创新性,而且能提高学生的自主性和合作精神,强化学生的素质教育。

  基于构建主义的教学理论,根据软件工程课程的特点,我们对传统的教学模式进行改革,创立了以建构主义抛锚式教学方式为主、以支架式和随机进入式为辅的新教学模式,将教学过程分解为创设情境、确定问题、自主学习、协作学习、效果评价五个环节,对每个环节进行精心设计,并按照教学内容、教学环节的不同选择具体的教学方式。其中抛锚式教学就是情境教学或项目驱动教学,关键是“抛锚”,以来自教师实际横向课题的软件开发工程项目为驱动贯穿于软件项目投标与合同确定、需求分析、软件设计、软件构造、软件测试与维护,以及项目的管理等各个阶段和方面的教学。支架式教学方式主要用于软件工程基本概念、基本理论、基本方法等理论性知识的学习,重点是“支架”的建立;而随机进入式则通过递进式、多层次的学习来突破难点,时机的选择很重要。新的教学模式受到学生的极大欢迎,显著提高了教学质量。

  3.4大实践体系的构建

  IEEE-CS八CM和教育部高等学校计算机科学与技术教学指导委员会都特别指出要高度重视专业教育的实践环节,而对于软件工程课程来讲,强化实践环节更是提高学生软件开发能力、增强项目管理意识和团队合作精神的突破口。基于我校实验课课时只有8学时,且没有课程设计安排的特殊现实,改革中我们构建了课程协同、项目驱动、内引外联、多次迭代的大实践体系。

  <1)先修课程铺垫。我校的数据结构、数据库、面向对象的程序设计等课程是软件工程课程的先修课程,他们的课程设计环节通常要完成一个小软件的`开发。尽管此时学生还没有学习软件工程课程,但是我们也要求在课程设计的指导中教师要按照软件工程的原理简要介绍开发的过程、重点和文档的规范,让学生尽量按照软件工程的要求去开发软件完成课程设计,这样就为后面软件工程课程的学习积累了一定的开发经验。

  <2)课内实验二次开发。在先修课程的课程设计中由于学生还没有开始学习软件工程课程,很多学生在小软件的开发中会出现类似历史上的“软件危机”现象:缺乏分析和设计,只注重编程与实现,也不重视文档的编写,采用开发完补文档的方式,从而造成软件功能差、漏洞多、不稳定、常反复、难维护的不良后果。对此,我们将软件工程实验课的内容由原来的以文档编写为主改革为以开发软件为主,而项目的来源则是学生以前在其他课程的课程设计中完成的小软件项目。在实验中,首先由学生选择开发过的小软件项目,对该项目存在的问题,不符合软件工程原理的地方进行分析,让学生亲身体会软件工程课程的重要性。然后重新分析定义软件的规格,形成新的、扩大了的开发任务,最后按照软件工程的要求完成原来小软件的二次开发。这样学生在8学时的实验中就完整地进行了一个软件的开发,项目虽小,但是“麻雀虽小,五脏俱全”,学生从分析、设计到实现,软件开发的各个阶段都进行了训练。由于前后对比鲜明,学生体会深刻,收获很大。

  <3)生产实习全封闭式实战训练。实验课程中对其他课程设计项目的二次开发,尽管让学生按照软件工程的要求进行了一次完整的软件开发训练,但是项目基本都是虚拟的,项目的规模也较小,同时每个小软件都是学生单独开发,学生得到的训练效果有限。对此我们对生产实习的课程进行了变革,通过和全国著名的专业软件培训机构—行知汇元软件培训中心进行合作,在暑假对毕业班学生进行为期一个月的全封闭式软件开发实战训练。实战项目和训练方案由公司与学校共同制定,教学实施以公司的讲师为主,学校的带队教师进行监督,组织与管理由双方共同进行,与真实软件公司的方式基本相同。学生以4-5人为一小组,一组一个项目,以各个学生的特长为基础进行优化组合和任务分工,开发时同一小组的成员一人一台电脑围绕着圆形工作台协作进行。为了保证质量,考核由平时成绩、阶段评估与最终答辩组成。平时成绩以考勤为主,辅以老师的巡视、提问等随机性因素。按照软件工程的过程和周期,每一个阶段完成后都要进行评估,以便及时发现问题,只有评估通过才能进入下一个阶段的开发。最后进行公开答辩,公司和学校的教师共同组成答辩小组,除了教师提问外其他学生也可以进行提问,答辩结束后除了给出每人的答辩成绩外,还要评出最佳软件奖、最佳团队合作奖。由于“真刀真枪”,实习结束后,学生普遍感觉收获很大,不仅软件开发能力得到显著提高,而且团队合作精神、职业素养受到良好的培养。

  3.5评价和考核方式的变革

  目前“软件工程”的评价和考核采用平时成绩+笔试的方式,平时成绩占30%,笔试占70%,该方式偏重于理论,无法考查学生的实际项目开发能力。改革后的考核由实验成绩、平时成绩和期末笔试3部分组成,平时成绩占10%,期末考试成绩占50%,实验成绩占40%。平时成绩包括作业、课堂讨论、教师提问和考勤等环节,期末考试采用开卷形式,重点考查学生对软件工程的基本概念、基本理论、基本方法的理解和掌握程度。实验课程的考核包括成果展示、文档撰写、平时巡查等环节。

  4总结

  经过3年的教学实践,本文提出的改革措施逐步得到实施,原先存在的问题不断得到解决,改革的效果不断地体现出来,学生对软件工程课程的兴趣明显提高,学生的实际开发能力、团队合作精神、职业素养都得到了有效培养,学生就业于软件开发企业的比例也有了增加,并且受到企业的好评。当然,软件工程课程的改革只有进行时,没有完成时,今后在提高课堂教学的质量、完善实践教学体系等方面,我们还要做进一步的努力。

【面向工程应用的软件工程课程教学改革的分析与研究论文】相关文章:

1.微课程的应用与教学方法分析论文

2.木工程材料课程教学改革研究

3.关于计算机软件工程管理与应用探索的工程论文

4.Matlab应用课程教学研究论文

5.哲学本性与部门哲学应用哲学的合法的研究分析论文

6.成本会计课程教学改革分析论文

7.财务会计课程教学改革研究渴望论文

8.计算机软件工程管理研究的论文

9.软件工程论文的提纲