投稿问答最小化  关闭

万维书刊APP下载

以产教融合为导向的软件工程课实践教学改革

2023/5/18 10:17:07  阅读:65 发布者:

1 软件工程课实践教学中存在的问题

软件工程课是软件工程专业本科生和硕士研究生的必修课,也是一门理论与实践并重的课程,但是目前在教学中面临如下的问题。

1)工程化开发软件的方法过于老化,与现在软件企业使用的最新软件开发方法相脱节,导致学生积极性不高[1]

2)实践操作环节薄弱,使得本就缺少实际项目开发经验的学生对这门课越来越望而生畏。

3)实践考核缺少系统性和科学性,考核形式局限于表面,而且实践过程中缺少过程考核,无法精准掌握学生学习情况和考核课程的教学效果。

2 软件工程课实践教学改革思路

产教融合是促进校企协同育人的基本手段,是实现产、教、学、研、用结合的主要方法,是提高人才培养质量的重要途径[2]。产教深度融合已上升为国家战略,主要目标是逐步提高企业参与办学程度,健全多元化办学体制,全面推行校企协同育人机制[3]。课程是人才培养的核心,决定人才培养的质量[4]。实践平台是高校软件工程类人才培养的关键手段。只有课程、实践平台和产教深度融合三位一体,才能共同提高软件工程类人才的专业能力。因此,在软件工程课实践教学改革中,以课程为抓手[5],在授课中吸收华为正在使用的敏捷DevOps开发方法,并且将DevCloud云平台作为实践平台[6-7],严格实践过程考核,提升了课程实践操作性,取得了良好的教学效果,基本上解决了以上问题。

3 课程教学改革设计

软件工程课程改革的总体设计思路分为:①整合理论知识体系;②革新实践教学内容;③开展线上线下的混合式实践教学;④严格实践过程考核。

3.1 整合理论知识体系

将敏捷DevOps开发方法的内容融合到课程的理论教学中,并且详细讲解DevCloud云平台的操作和使用,为下一步的实践教学打下基础。敏捷DevOpsDevelopment and Operations)是敏捷开发的延续,它将敏捷的思想扩展到运维(Operations)阶段,以期快速响应变化和交付价值。DevCloud云平台是华为公司使用的能够支撑需求与计划、设计与开发、测试、部署与发布等软件生命周期相关环节的一站式设计研发活动的云平台。

3.2 革新实践教学内容

依据完整的软件生命周期和敏捷开发方法,将课程的实践教学划分为3个阶段,项目初始阶段、项目管理阶段和项目总结阶段,如下图1所示。项目初始阶段是学生自主选择项目和自由组建开发团队;项目管理阶段指规划设计,迭代开发和持续集成,持续测试和反馈,持续部署和发布,持续交付和运维监测。项目总结阶段指项目最终完成后进行质量度量考核和总结。

1)在整个课程的实践教学中,用敏捷DevOps开发方法开发一个软件项目,并且依据软件生命周期将开发新软件项目的任务细化为多个阶段,每个阶段分配单独的子任务,每个子任务环环相扣,最后完成这个软件项目的全部开发。

2)以DevCloud云平台作为学生实践操作平台和实践教学过程管理平台,实现课程资源共享,实施学生实践过程监控,考核学生实践过程的成果,提升学生的学习效率。

3)在项目初始阶段,教师根据学校和企业提供的不同领域项目建议书,经过和企业的沟通和确认,成为备选项目。学生根据备选项目列表自主选题和自由组建Scrum团队;Scrum是目前最受关注的一种敏捷开发方法,它是一个轻量级的项目管理的框架,它的核心在于迭代和增量的方法来提高产品开发的可预见性并控制风险[8]Scrum团队依据Scrum3种角色:Scrum MasterProduct Owner和团队成员共同组成,每个团队成员4~6名,计划在接下来的8周内共同完成选定的项目开发。

4)项目管理阶段,根据敏捷DevOps开发方法,分为规划设计,迭代开发和持续集成,持续测试和反馈,持续部署和发布,持续交付和运维监测5个子阶段。这个阶段主要以学生为主体进行项目规划、管理和迭代开发及测试工作,并且通过团队成员间的合作和自主学习,完成每个阶段的任务。

a.规划设计阶段:学生团队利用DevCloud平台的Scrum项目流程进行项目整体规划,通过线上思维导图,进行项目的需求梳理、功能分解、讨论总结、迭代计划管理等。每个团队也可以依据项目的实际需求,在平台上定义新的项目研发流程,进行迭代计划管理和执行。教师在本阶段进行需求分析的指导工作。

b.迭代开发和持续集成阶段,团队成员在平台依据项目待完成任务列表中的任务优先级不同,快速进行本机或者云端迭代开发,也可以进行团队的合作开发,利用平台提供的Git代码托管服务进行源代码管理,使用代码检查服务对源代码进行检查,保证代码开发的质量。团队成员提交代码后,快速进行单元测试,测试提交代码的正确性。团队在平台配置构建任务,执行构建成功并生成发布包,并且启动持续集成功能,实现代码变更后自动集成,让产品可以快速迭代,保持迭代开发质量。团队成员依据分工,共同协作完成迭代开发和持续集成的任务。

c.持续测试和反馈阶段,团队成员在平台依据需求编写迭代测试计划,进行功能测试,将功能测试结果及时反馈给开发人员修改,再提交到测试人员,形成持续功能测试。测试人员将性能测试结果及时反馈给开发人员修改,再提交到测试人员,形成持续性能测试。团队成员利用平台管理项目的测试生命周期,管理测试规划,跟踪测试进度和质量。

d.持续部署和发布阶段,团队成员使用平台的部署服务进行服务器主机环境配置工作,将软件的发布包部署到服务器主机上,并且创建流水线任务,完成持续部署与发布。

e.持续交付和运维监测阶段,团队成员利用平台提供的系统运行指标、日志、性能、告警等多维度关联分析报告,进行全方位覆盖业务、应用和基础设施层监测,完成持续运维监测。以上阶段,教师主要进行过程监控。

5)项目总结阶段,教师根据每个团队所选项目完整生命周期的每个阶段完成情况,进行项目质量度量考核,并且进行项目成果的展示和项目总结及建议,并且将总结和建议反馈给开发团队,形成一个软件开发过程管理的闭环。

3.3 开展线上线下的混合式实践教学

实践教学过程采用线上与线下的混合式教学,线上提供敏捷DevOps开发方法案例实验操作视频,为学生提供了个性化自主学习的途径。线下教师及时进行项目开发过程中阶段性的讨论和总结,尤其是对于学生在实践操作中存在的一些共性问题,提升学生的实践能力。

课前,统一申请华为云平台权限的学生账号信息,将实践教学需要的学习资料和工具软件、实验报告及项目质量度量考核表等发送给学生。学生在线下自主完成软件的安装,如果在安装过程中和实验的过程中遇到问题,可在微信群提问并及时获得解答。课中以实践项目中的问题为导向,穿梭知识点启发式教学的翻转课堂,充分调动学生的积极性和主动性;课后团队合作解决项目开发中出现的问题,让学生在解决问题的过程中获得知识与技能。

3.4 严格实践过程考核

课程考核围绕“以学生为中心”的教育理念[9],采用理论考试和实践综合评定相结合得方式进行,实践综合评定重视项目的实践过程考核,项目评估和总结根据以下5项原则。

1)实践考核过程秉承公平公正的原则严格考核。

2)不但评价项目开发流程阶段的成果,而且评价项目最终成果形式。

3)不但评价每个团队最终的贡献,而且根据角色不同,评价每个项目成员的贡献[10]

4)评价学生对整个软件项目开发过程的总结描述。

5)针对软件项目开发全过程给出自己的思考和建议。

根据以上评估原则,制订项目质量度量考核表(表1),教师对每个学生团队选定的项目按照项目质量度量考核表进行考核和评分,并且作为最后的实践综合评定成绩。

其中项目初始阶段的选题和团队组建为文档考核,项目管理阶段为教师在线上考核,项目总结为课堂汇报,学生团队的Product Owner根据团队成员的表现给出评分,然后负责组织团队成员进行讨论,团队成员交流各自对项目的总结和建议,最后由Product Owner总结出交流结果,在课堂上汇报。这种考核方式从以前对个人考核转变为对团队和个人的综合考核,有助于培养学生的分工协作精神和相互合作的意识。

4 教学效果分析

我校2020级和2021级软件工程和计算机科学技术专业硕士研究生在软件工程课的授课过程中,采用DevCloud云平台进行实践操作,取得了良好的教学效果。授课结束后进行了在线问卷调查,被调查的学生通过扫描二维码,以自愿和不记名方式填写了调查问卷,主要以选择题为主,内容包括在软件工程实践教学中使用DevCloud云平台实践操作的满意度和最大优势等方面的调查,45名学生全部参与,并提出了一些很好的建议。

4.1 学生对DevCloud云平台的满意度

42.2%的学生对DevCloud云平台非常满意,46.7%的学生表示满意,不满意的占2.2%,说不清楚的有8.9%,如图2所示。

4.2 DevCloud云平台的最大优势

22位学生选择了DevCloud云平台的最大优势是支撑需求与计划、设计与开发、测试、部署与发布等软件生命周期相关环节的一站式、全流程、安全可信的DevOps云平台,占比为48.9%,8位学生选择了它提供自动部署、软件发布和流水线服务,占比为17.8%,剩下同学分别选择了它提供一站式云端测试管理和自动测试平台以及DevOps云平台是企业开发软件实际使用的软件平台,如图3所示。

4.3 其他方面调查

DevCloud云平台实践操作的必要性的调查中,51.1%40.0%的学生认为非常有必要和有必要;另外在DevCloud云平台对学生的帮助程度的调查中,44.4%48.9%的学生认为非常有帮助和有帮助。

4.4 调查数据分析讨论

通过对实践教革效果的调查数据进行分析,课程的实践教学改革和DevCloud云平台得到了学生的一致认可。但是也有一些需要提升的地方,例如在使用DevCloud云平台过程中,学生发现部分操作流程比较繁琐,界面复杂,需要简化界面和流程,提升用户体验。我们已经把这些建议全部及时反馈给合作企业。授课老师根据学生的学习效果和对教学效果的评价,进行实践教学的反思,持续提升实践教学效果,也为以后课程的实践教学改革提供了重要的依据。

5 结 语

郑州大学是教育部—华为“智能基座”产教融合协同育人基地项目的合作院校之一,软件工程是“智能基座”合作共建课程之一,我们以产业和技术最新发展成果更新教学内容,从理论、实践、应用3个角度,打造校企联合培养人才的教学平台,取得了良好的教学效果;同时推动课程内容与行业标准、生产流程等产业需求对接,把企业需求作为教学实践的内容,促进教学过程与生产过程的无缝对接,提升了学生对产业的认知程度,提高了学生解决复杂功能问题能力和创新能力,促进高校课程内容与技术发展对接,推动了高校与行业企业深度合作培养人才,具有较重要的教学意义和推广应用价值。

参考文献:

[1] 廉咪咪, 张聪品, 范黎林. 敏捷开发在软件工程实践教学中的应用探索[J]. 计算机教育, 2021(6): 155-158.

[2] 吴岩. 以产教融合推进“质量革命”[EB/OL]. (2019-11-30)[2020-05-07]. http://edu.people.com.cn/n1/2019/1130/c367001-31483264.html.

[3] 国务院办公厅. 关于深化产教融合的若干意见(国办发[2017]95)[EB/OL]. (2017-12-19)[2020-01-01]. http://www.gov.cn/zhengce/content/2017-12/19/content_5248564.htm.

[4] 教育部. 实施一流本科课程“双万计划”让本科课程优起来[EB/OL]. (2019-10-31)[2020-06-12]. http://www.moe.gov.cn/jyb_xwfb/xw_fbh/moe_2606/2019/tqh20191031/sfcl/201910/t20191031_406261.html

[5] 李立国. 研究生的培养, 要以课程为抓手[EB/OL]. (2022-04-12)[2022-05-07]. https://theory.gmw.cn/2022-04/12/content_35653203.htm.

[6] 吕云翔, 杨洪洋, 许鸿智, . 基于华为云DevCloud的“软件工程”实训课程改革初探: 以软件学院为例[J].

工业和信息化教育, 2021(10): 83-87.

[7] 何曼. 华为云. “平台+生态”战略助教育数字化转型[J]. 在线学习, 2020(9): 72-74.

[8] 荣国平, 张贺, 邵栋. 软件过程与管理方法综述[J]. 软件学报, 2019, 30(1): 62-79.

[9] 王燕妮. 以“学为中心”的高校课堂讨论探究[J]. 江苏高教, 2017(11): 74-76.

[10] 白晓颖, 李山山, 李明杰, . 基于敏捷开发的软件工程实践教学探讨[J]. 实验技术与管理, 2018, 35(4): 6-11.

基金项目:郑州大学2021年研究生教育研究项目(YJSJY202121)

第一作者简介:赵伟,男,郑州大学副教授,研究方向为云计算和深度学习,iezhaowei@zzu.edu.cn

引文格式:赵 伟,卫 . 以产教融合为导向的软件工程课实践教学改革[J].计算机教育,2023(4)177-180.

转自:“计算机教育”微信公众号

如有侵权,请联系本站删除!


  • 万维QQ投稿交流群    招募志愿者

    版权所有 Copyright@2009-2015豫ICP证合字09037080号

     纯自助论文投稿平台    E-mail:eshukan@163.com