静网PWA视频评论

基于软件设计大赛的软件工程教学方法研究

2023年11月14日

- txt下载

摘要:文章首先阐述了软件工程教学存在的问题,然后分析了软件工程教学目标与学生基本能力,接着论述 了软件设计大赛实施过程,最后提出了基于软件设计大赛的软件工程教学方法改革。
随着我国产业结构的不断调整优化、“十三五”规 划政策的引领、“一带一路”建设的不断推进,社会对 软件开发应用人才的需求在不断增加。许多软件开发 人才选择自主创业,开发设计具有创新性的应用软件 平台,而一些企业也会将软件项目进行外包,这就需 要大量的软件开发人员。软件工程课程主要讲授软件 开发的基本原理、基本方法及开发过程中如何分析和 解决问题,能够让学生从工程学的角度认识软件的设 计开发过程,进一步理解和掌握软件开发过程中需求 分析、设计、编码实现、测试和维护的基本思路和方 法,培养学生的操作能力、协作能力和创新能力。
  一、软件工程教学存在的问题
软件工程是计算机专业的一门专业必修课,课程 教学不仅包括理论部分,同时也有实践部分[1]。该课程 在教学中主要存在以下问题。
第一,课堂教学过程中理论比较抽象枯燥,学生 不易理解,学习兴趣不浓厚。 软件工程课程中包含了 大量的理论知识,具有一定的综合性。传统教学过程 大多以教师讲解为主,学生被动地听课学习,没有参 加过实际的项目开发,对理论知识理解不够深刻。
第二,实践教学环节较少,造成理论和实际脱离。 软件工程课程是一门实践性很强的课程,但传统教学 中实践环节较少,实验课堂上教师仅对课堂教学内容 进行补充和验证,远远达不到实际的应用要求,造成 了教学和实际应用相脱离的现象。 由于在实验课堂 中无法体会到项目开发的管理过程,体会不到团队 合作的乐趣,学生很难将课堂所学理论知识与实际 应用进行结合。
第三,教学过程方法单一,无法满足实际应用需 要。软件工程教学过程中采用传统的课堂“灌输”教学 方法,无法满足学生的学习需求。同时,课程具有很强的实践性,仅仅采用传统教学方法,无法体现实际项 目开发的组织和管理过程,教学过程与实际开发情况 往往相差甚远。
第四,教学案例资源不足,学生学习的兴趣大大 减弱。教学资源对于软件工程教学至关重要,在课堂 教学中,教师可以通过典型的教学案例进行示例性讲 解,同时在实践教学中还需要让学生进行进一步的开 发练习。但传统教学中,教学案例比较落后,无法激发 学生学习兴趣,学生学习的积极性不高。
第五,课堂教学内容与实际技术脱节。教学中教师 教授的一些理论有的是传统的技术方法,与实际软件 公司采用的开发技术有较大的差别。因此,在传统的课 堂上学生无法学习到最前沿的软件开发技术方法。
二、软件工程教学目标与学生基本能力分析
(一)教学目标
软件工程是一门理论与实践并重的基础课程,同 时也是一门综合性课程[2] 。课程的教学目标是让学生 掌握先进的软件开发方法、开发技术和软件设计分析 的先进思想,具备软件工程师应具备的能力,从而更 好地适应和服务社会[3] 。具体课程教学目标主要包括 以下方面:在教学程序设计和数据库技术基础课程内 容后,应使学生具备软件开发的基本技能,能够从软 件项目的开发管理过程出发,了解软件开发的基本思 路和方法,理解和掌握软件工程的基础理论知识;从 系统工程的角度出发,将工程化的方法、管理手段与 已经掌握的技术运用在软件项目开发中,使学生具备 软件开发、软件维护与项目管理的基本能力[4],包括用 户沟通交流能力、团队协作能力、解决问题能力、项目 管理能力等;让学生快速掌握软件开发的一些新技术 和新方法,能够快速适应实际工程中的软件开发需 求,并进一步提升学生的学习能力和应用创新能力。
( 二)学生的基本能力
第一,软件需求获取能力。用户需求获取是软件 开发关键的一步,会起到事半功倍的效果。用户需求 获取是软件开发的基础和依据,也是软件功能模块测 试的基本依据。在课程教学过程中,教师要引导学生 掌握获取需求的基本方法和基本思路,并带领学生到 实际企业进行了解,以提升学生交际和获取需求的能力。
第二,软件分析设计能力。软件分析设计是综合 能力的体现,即学生不仅要掌握软件工程方面的知识, 同时还要具备数据库设计能力、面向对象分析能力、 算法分析设计能力等[5]。学生在进入实际岗位后,要了 解分析实际应用需求,采用不同的软件框架开发、设 计软件中每一层应该提供的服务,以确保软件结构合 理灵活。
第三,软件编码和测试能力 。软件编码阶段要 求将需求分析获取的系统功能,根据设计阶段的要 求,采用计算机编程语言转化为计算机能够执行的 程序[6] 。在教学过程中,教师要注重培养学生的逻辑 思维能力,注意思维的连贯性和严谨性,提高学生的 程序设计能力和编程能力。对于实现的功能模块,学 生要掌握基本的测试方法和技巧,确保模块功能的 正确性。
第四,文档撰写能力。文档是软件开发的基础和 依据,在软件开发过程中,文档是必不可少的内容,它 贯穿了整个软件开发的过程[7]。文档记录了系统需求 分析、系统设计、编码、测试和维护等阶段的具体内 容,不仅为项目管理提供了依据,也为后期的软件维 护、人员培训等提供了有力保障。基于此,在实际教学 过程中,教师要让学生了解文档在软件开发过程中的 作用,知道文档编制的规范和编写的基本方法,能够 按照国家标准撰写各个文档。
  三、软件设计大赛实施过程
(一)软件设计大赛目标
目前,国内软件类设计大赛有很多,大赛的目标 主要是引导高校学生积极参加科研活动,了解一线企 业采用的先进技术和学科前沿知识,促进软件和信息 技术专业技术人才培养,从而不断培养具有创新能力 和实践能力的高端人才,满足社会对高端技术人才的 需求,最终促进我国软件行业的高水平发展[8]。基于以 上目标,如何将大赛的组织过程与实际的教学环节相 结合、如何将实际的软件项目开发案例融入教学过 程,是非常关键的部分。
(二)软件设计大赛应用需求分析
软件设计大赛的赛题一般分为给定具体需求的 赛题和自主命题的赛题两类。第一类赛题一般由国内 知名的 IT 企业根据实际项目的具体需求制定题目。 例如,“中国软件杯”大学生软件设计大赛面向全国高 校大学生,一般给定 10个左右的赛题供学生选择。当 确定具体要做的题目后,学生首先要查找相关的文献 资料,包括国外一些论坛上的高质量文献资料,同时 对资料进行学习分析和归类,并在此基础上,重新回 到赛题上,对赛题进行二次认识和分析,从整体上分 析赛题要解决的核心问题和难点,而指导教师需要帮 助学生进行分析,把握好分析的思路和方向。第二类 是学生从日常生活出发,观察和分析生活中存在的实 际问题,自主设计和开发具有创新性、应用性的软件。 例如,在中国大学生计算机设计大赛中,学生可自主 选择要开发的系统,软件需求也需要学生自主确定。
(三)软件设计大赛组织过程
在软件设计大赛的组织过程中,应以小组为单位 进行,根据成员的学习特长,有针对地进行分工,且小 组成员要定期进行讨论,确定软件系统应该划分为哪 些子系统,各子系统应该具备哪些基本功能、可扩充 的功能有哪些。
软件开发是一个重复送代的过程,每一次送代完 成后,对软件的需求会更加明确,且每一次送代对学 生的设计和开发能力也大有裨益。在大赛组织过程 中,指导教师一定要明确学生是主体,而不能过多地 对学生的开发思路进行指导。
学生经过大赛的历练,综合素质有了很大的提高, 不仅包括技术方面,还包括表达能力、人际关系处理 能力、答辩过程的应变能力等方面。经过大赛的组织 和实施,学生能清楚一个软件项目该如何动手分析和 设计、如何捕捉和细化用户的需求、如何对软件系统 进行划分、各子系统之间数据交互接口的如何设计 等。通过软件系统的开发,学生能够将课堂所学的理 论知识在具体项目中进行应用,对理论知识有了更加 深刻的认识。
四、基于软件设计大赛的软件工程教学方法改革
软件工程教学改革主要以国家级软件设计大赛 为中心,不断驱动和促进课堂理论教学的更新,同样 也在不断为实践教学注入新的资源和活力。
为了进一步满足地方应用型本科院校发展的需 求,课程组教师带领学生参加了国家级软件设计大赛,经过十几年的不断努力,积累了大量的教学素材,不 仅包括具有创新思维的教学案例、具有先进技术的 教学项目,还积累了大量项目开发过程管理的经验。 通过近几年的不断总结归类,以及完善优化,笔者构 建了一套完整的教学模式,以下主要从三个方面进行 说明。
(一)课堂教学改革
课堂教学是教学过程中非常重要的一个环节,是 教师给学生传授知识和技能的完整过程,包括教师讲 授的内容、学生的响应情况、教学活动过程的组织等 内容[9]。课堂教学改革主要从教学方法和教学内容两 个方面进行说明。
在课堂教学过程中,主要采用案例驱动的教学方 法。但由于理论知识枯燥无趣,学生很难保证上课的 专注度。因此在课前,教师首先要根据本次课的教学 内容,将项目案例进行分解,提取出一些与本节课相 关的问题。在课堂教学,教师抛出要解决的问题,然后 启发学生自主思考讨论该如何解决。在讨论过程中, 学生发现要解决该问题又存在其他各种各样的困难, 此时教师可以开始讲解基本知识,这样就保障了学生 整节课都会全身心地投入。当理论知识讲解完成后, 重新回到实际问题上,教师要引导学生思考“该从哪 几个方面来分析?该如何进行结构设计?”等。简言之, 教师需要将案例按教学需求贯穿软件工程课堂教学 过程,帮助学生理解相应的软件工程理论知识。在软 件工程课堂教学过程中,教师可按照“根据教学目标, 呈现案例并提出问题—开展案例讨论—总结讨论意 见,解决案例问题”这三个环节实施案例教学,从而帮 助学生掌握当节软件工程课的相关知识点。例如,在 某一节软件工程课堂教学中,笔者先呈现了如下案 例:“中国软件杯”大学生软件设计大赛中的一个题目 为《视障人士友好资讯软件设计开发》,要求参赛者满 足实际视障人群的需求,设计一个功能多样的友好资 讯软件,使其能够实现语音交互及新闻推荐;辅助实 现线上和线下的资讯阅读;能够根据视障人士的语音 要求为其推荐相应分类的新闻;当阅读报纸和书籍或 相关文字资料存在困难时,只需要拍照,就可以完成 对应照片内容的语音提示与阅读等功能。在呈现这一 案例背景之后,笔者结合案例内容适时提出“该款软 件都需要具备哪些功能?”的问题,接着围绕问题组织 学生展开案例讨论。在这一过程中,学生采用了课本 中讲解的需求获取方法(包括用户访谈、用户调查、现场观摩、文献查阅、原型法等基本方法),获得了较多 的信息,然后经由进一步分析,达成共识,最后由教师 对学生提出的功能需求进行分析汇总,得出系统应包 括智能识物、连续语音阅读、语音转文字的论坛、交友 的朋友圈、娱乐的试听等功能模块。
此外,值得注意的是,在软件工程课堂教学过程 中应用案例驱动的教学方法,需要教师提前选择好教 学案例,确保案例内容和当节理论课内容高度一致, 而这个过程也需要课程团队的教师经过反复的讨论 才能确定。案例驱动的教学方法改变了单一依据课本 知识的“灌输式”教学模式,通过引入一些实际项目案 例,可以一边让学生做项目,一边进行理论知识的讲 解,具有很好的教学效果。通过案例教学法,进一步激 发了学生的学习兴趣,可使学生以主人翁的态度投入 学习,提升学生学习软件工程课程的积极性。将学生的 获奖作品作为教学案例融入课堂,可以改变教学过程 中教学案例缺少的局面。除了讲解教材上已有的理论 和技术,教师还可以从大赛中获取目前社会上采用的 更先进的开发技术,并将这些技术作为拓展知识讲解 给学生,让学生在课下自主学习,由此可以有效提升教 学效率。
(二)实践教学改革
软件工程是实践性很强的一门课程,学生掌握理 论知识后如何在实际中灵活应用是非常重要的。国家 级软件设计大赛不仅提供了丰富的开发课题,同时大 赛实施过程中采用的管理方法也可以应用到实践教 学的管理过程中。
课程组教师将近 10 年的大赛课题进行汇总分 析,筛选出一些难度适中、思路发散的题目,包括需求 分析、软件结构设计、接口设计、数据库表设计等内 容,形成实践项目开发库。在实践课中,学生根据实际 情况,一方面可以在项目库中选择已给定的题目,也 可以自主选题。自主选择的题目需要任课教师审核通 过方可进行开发。 这样通过选题可以激发学生的开发 意识和思维,使其从实际生活中挖掘新的开发案例, 进而积极主动地投入实践项目开发。
在实践教学的管理过程中,通常是 3~4人为一个 项目团队进行实践,采用组长负责制,一般组长担任 项目经理的职务,不仅要进行合理的分工,组织和协 调各个组员,确保组员之间能够团结高效地进行工 作,还要整体把控项目的进度、开发的技术和方法。例 如,在“中国软件杯”大学生软件设计大赛的《视障人
士友好资讯软件设计开发》项目中,小组经过课下搜 索和讨论并获得用户需求后,要以小组为单位在实践 课上进一步设计软件的基本模型,思考软件包含哪些 功能模块、各个功能模块之间的接口如何设计、功能 模块的界面如何设计,在此基础上,还要分析数据库 要存放哪些基本数据信息、数据库表之间的关联关系 等内容。这个过程需要学生组建小组,并在集中讨论 后,由各小组组员轮流上台给大家讲解,在讲解的过 程中,其他组学生可以提出补充建议,对设计部分内 容进行完善。在软件设计过程中,学生要将课堂所学 的模块化方法和原则融入实际的应用,对软件模块进 行优化。然后根据分工,每个学生依据各自负责的部 分进行开发,在开发过程中可能会遇到之前没有考虑 到的问题,此时还需要集中反复的讨论,不断对开发 方案进行调整和优化。在实践教学过程中,教师要定 期组织各组进行组内讨论,清楚了解各组的状况,从 宏观上对各组进行指导。各组之间也可以相互进行讨 论,就某一个具体问题集思广益,共同决定开发思路 和方向。 在实践过程中,学生可以体会到软件设计开 发的过程,而不是传统的纸上谈兵模式,这样能增强 获得感,进一步积累项目开发的经历,为今后毕业工 作打下坚实的基础。
(三)综合能力培养
软件工程教学不仅要培养学生的专业能力,还要 更进一步培养学生的综合能力,让学生能够满足社会 对人才的需求,并在软件企业里快速提升自己。以下 将从四个方面阐述学生综合能力培养方法。
第一, 日常生活中软件应用的观察能力。在日常 生活中,教师要引导学生从专业角度出发,多留意和 观察软件的应用场景,搜集相关的实际问题素材,并 定期对这些实际问题进行分组讨论,提炼好关键的问 题点,然后根据自己掌握的知识,尝试解决这些问题。 由此,可培养学生的实际观察能力和应用创新能力[10]。
第二,实际问题解决能力。在软件开发过程中,会 出现各种难以解决的问题,此时教师要尽可能地让学 生自己思考和讨论,也可以给学生提供必要的资料和 思考的方向,让学生开动脑筋,最终选择一个合理的 解决方案,对实际问题进行合理解决。学生在思考和 讨论的过程中,可培养实际解决问题的能力。
第三,逻辑思维创新能力。在需求分析和软件设 计过程中,教师要着力培养学生采用新的技术和方法 解决现实问题的能力,进一步提升学生的创新思维[11],引导学生开发市面上没有的软件产品,或者对市面上 存在问题的软件进行优化和改进,设计开发更加合理 高效的软件产品,以达到应用层面的创新目标。
第四,组织和管理能力。软件开发是一项团队集 体活动,根据分工可以将人员划分为项目经理、系统 分析人员、编程人员、资料整理人员等。在开发过程 中,人员分工不同,要求及应具备的能力也不同。 在团 队中,需要一个能够协调组员的组织管理者。 因此在 实践教学过程中,教师要注重培养在团队中起到关键 作用的学生,使其具备凝聚力和领导力。
  五、结语
基于软件设计大赛的软件类课程教学改革秉持 “学生为中心”的教育理念,指导教师要进行宏观把控 和方向引导,让学生通过企业的实际项目对课堂基础 知识进行深入学习和理解,提升学生的学习能力、分 析问题能力、应用能力和创新能力,从而进一步改变 学生的学习状态,激发学生自主学习的内在动力。通 过不断探索和总结,相信在实际的教学过程中,教师 通过不断优化教学内容和教学方法,一定能够培养出 更优秀的应用型创新人才。
  参考文献:
[1] 张忠林,王坚生,兰丽.软件项目管理思想在“软件工程”实践教学 中的应用[J].计算机教育,2010(2):157-160.
[2] 刘黎明,张晓民,王水.项目管理在软件工程教学中的应用与实 践[J].中国教育信息化,2009(19):72-74.
[3] 方宝富,王浩,胡学钢,等.基于教学竞赛一体化的大学生实践创 新能力培养模式研究[J].计算机教育,2010(24):5-8.
[4] 谭琨,刘春.计算机软件工程项目管理方法探究[J].数字技术与应 用,2021(9):222-224.
[5] 廖卓凡,王静,熊兵.新工科背景下“软件工程”课程教学与实践改 革研究[J].计算机时代,2021(5):83.87.
[6] 王涛伟.面向应用的软件工程课程教学改革与实践[J].中国信息 技术教育,2021(12):111-112.
[7] 张秋余,张其文,顾群.以软件工程为主线的课程群体系建设[J]. 西部素质教育,2019.5(2):10-12.
[8] 姜磊,文一凭.新工科背景下项目驱动的“软件工程”课程教学实 践研究[J].当代教育理论与实践,2022(14):60-64.
[9] 赵春霞,曹莉,赵营颖.基于“项目导向+任务驱动”的课程教学模 式研究:以软件工程课程为例[J].科技视界,2021(35):46-47.
[10] 邓志刚.基于计算思维培养的软件工程专业本科教学改革与实 践[J].西部素质教育,2017.3(21):123.129.
[11] 毛新军,尹刚,尹良泽,等.新工科背景下的软件工程课程实践教 学建设:思考与探索[J].计算机教育,2018(7):5-8.13.

收藏

相关推荐

清纯唯美图片大全

字典网 - 试题库 - 元问答 - 繁體 - 顶部

Copyright © cnj8 All Rights Reserved.