前言:想要写出一篇引人入胜的文章?我们特意为您整理了就业导向的软件工程教学实践范文,希望能给你带来灵感和参考,敬请阅读。
摘要:《软件工程》是软件工程专业的核心专业课程之一,本文针对《软件工程》课程理论知识集中、实验实践内容较缺乏、学生学习动力不足、学习目标模糊的问题,提出了基于就业导向开展《软件工程》授课的方法。通过梳理用人单位相关就业岗位对软件类人才的任职资格、专业水平和技能的要求,将其导入授课过程,结合《软件工程》各章节内容讲授,理论联系实际,取得良好的授课效果。
关键词:就业导向;软件工程;教学改革;课程设计
0引言
《软件工程》是软件工程专业的核心专业课之一,主要讲授软件系统的开发理论、技术和方法,以及使用正确的工程化方法开发出成本低、质量高的软件。课程主要涉及软件基础知识、需求分析、概要设计、详细设计、软件实现、软件测试、软件工程标准化、软件文档等内容。学生在学习本课程的过程中,接触大量的专业术语、概念、方法等内容,需学的理论知识较多,无法将其与实践较紧密地结合起来,解决实际问题的能力亟待提升[1-2]。而是否掌握软件工程的思想、方法和工具,提高学生的学习兴趣和欲望、明确学习目的,并灵活地应用到实践中,是《软件工程》课程改革需重点研究的领域。
1存在的问题
在《软件工程》授课过程中,因需学习的理论性内容较多,而实践性内容较少,因此本课程较难提起学生的学习兴趣,加上学生对在将来所从事工作会提供哪些工作岗位、岗位的具体职责、工作内容和课程知识的相关性、相关工作岗位的薪酬待遇差别、不同岗位职业发展空间的不同等均缺乏了解,导致学生学习的目的性和动力不强,往往产生学而无用的错误思想[3-4];此外,软件工程专业的学生比较容易把软件开发的编码能力作为评判专业水平的最重要标准,这导致在校期间将绝大部分学习时间和精力均花费在编程能力提高方面,而忽略软件工程专业能力的培养,这直接导致软件工程专业培养出的大部分学生只能适配“程序员”、“软件开发”岗位,造成专业能力同质化严重、就业竞争压力增加等问题。[5-6]
2基于就业导向的软件工程课程教学改革与实践
2.1软件工程课程教学目标
通过学习《软件工程》课程,使学生掌握软件工程领域的基础知识和重要概念;了解软件过程基本思想和活动、软件工程项目管理技术、需求工程、面向对象的软件开发以及软件实现和软件测试;[7-8]此外,本课程作为软件工程专业核心课程,在学习软件工程专业知识体系的基础上,帮助学生了解本科课程体系、专业学习方法以及软件人才职业发展路线等内容。
2.2软件工程专业就业岗位概况
根据软件行业市场需求,本文梳理了需求工程师、系统设计工程师、开发工程师、测试工程师、运维工程师、及项目管理师软件行业的重点岗位及其职责。通过对岗位和职责的了解,学生比照学习《软件工程》各章节内容,就能较清晰、具体地了解软件行业各重点岗位的构成情况,将所学习的专业知识和将来可能从事的职业岗位结合起来,并根据自身优势有针对性地开展在校学习。
2.2.1需求工程师的岗位职责
主要包括:负责需求调研工作,获取客户需求,进行需求分析。完成需求规格化处理,编制需求规格说明书以及负责项目/产品的需求变更控制、跟踪;
2.2.2系统设计工程师的岗位职责
主要包括:负责系统的架构设计、系统的性能、稳定性、安全优化和重构工作,能结合平台运行状况提供合理优化方案。负责系统的技术选型和技术规划,负责系统架构规范、标准的制定和推广,指导软件工程师的设计、实现及部署工作;
2.2.3开发工程师的岗位职责
主要包括:根据用户需求、系统设计方案等,完成软件逻辑整理、归纳,并完成相应软件代码的编写,保证代码高质量。编写各类标准的技术报告,并对文档进行规范管理。熟练掌握常用软件开发工具,精通常用的开发工具和调试工具。熟悉面向对象原理及常用设计模式;
2.2.4测试工程师的岗位职责
主要包括:根据需求规格说明书和软件,得到测试项,制定测试方案。根据测试项编写测试用例,将测试用例录入用例管理系统,并执行测试用例。根据测试结果,识别、跟踪和定位问题。根据执行测试结果编写测试报告和测试版本发布;
2.2.5运维工程师的岗位职责
主要包括:负责或参与系统线上故障的快速定位、处理平台和数据库各类问题。业务平台持续监控、分析、优化。参与建立运维安装部署、安全、管理等相关标准化文档,协助平台相关组件选型。持续改进日常运维支撑工具,实现运维操作自动化;
2.2.6项目管理师的岗位职责
主要包括:负责项目执行管理,进度跟踪及维护,项目沟通协调工作,领导项目团队准时、优质地完成全部工作。与客户沟通,了解项目的整体需求,及时反馈阶段性的成果。协调项目部门与技术部门的工作,制订项目开发计划文档,量化任务,并合理分配给相应的人员,跟踪项目的进度。
2.3《软件工程》课程教学设计
《软件工程》课程教学设计主要结合软件工程中主要活动及其对应的工作岗位,由教师对每类工作岗位的任职资格、专业知识、综合素质、薪酬待遇等情况进行介绍。学生通过对将来就业岗位概况的了解,发现与自己能力、个性匹配的潜在工作岗位,从而明确学习的目标、提高学习动力和学习兴趣。
2.3.1需求工程章节的课程教学设计
需求工程是应用已证实有效的原理和方法,通过合适的工具和符号,系统地描述出待开发系统及其行为特征和相关约束。需求工程的主要活动包括需求获取、需求分析、形成需求规格说明、需求验证和需求管理等。在授课过程中,教师可结合软件企业的需求工程师岗位进行讲解。将需求工程的主要活动和需求工程师的岗位职责对应起来,使学生产生就业岗位场景的代入感,从而提高学习兴趣和动力。教师可提前收集一些企业对需求工程师的岗位要求信息,包括任职资格、专业知识、综合素质、薪酬待遇等。譬如任职资格可包括:熟练使用PPT、Word、Excel、Visio等Of-fice工具;本科及以上学历优先、软件工程专业优先等,越具体越好,让学生了解企业对需求工程师的能力要求,在学习好专业知识的基础上,提前开展相关职业能力的储备。对编码能力稍弱,但沟通协调能力较强的学生,教师可鼓励引导他们将来从事需求工程师岗位,提高他们学习专业知识的动力。目前需求工程师岗位薪酬在软件行业岗位薪酬中处于中等水平,平均薪资为1万元/月左右;
2.3.2系统分析与设计章节的课程教学设计
系统分析是对需求的精化和构造,产生一个反映真实世界准确的、简洁的和可理解的模型。系统设计研究系统的软件实现问题,即在分析模型的基础上形成实现环境下的设计模型。与系统分析、系统设计知识相关性较高的就业岗位包括系统架构师、系统设计工程师、系统分析师等。教师应结合这些岗位的工作内容、任职资格、薪酬待遇等开展授课,使学生学习不再仅是枯燥、单调的理论知识,而是现实工作岗位的具体要求。在授课过程中,教师要重点说明系统架构师、系统设计师、系统分析师岗位对从业人员的专业能力要求较高,除需具备扎实的专业知识,还需有一定的工作经验,因此要向学生强调必须打好理论知识基础,结合将来在工作岗位中积累的经验,才能较好地胜任此类岗位;此外,这些岗位还要求从业者具有良好的学习能力、沟通技能和团队合作能力,对个人综合素质的要求也较高。系统架构师、系统设计师、系统分析师岗位薪酬目前在软件行业岗位薪酬中均处中、上水平,平均薪资为2万元/月左右,岗位吸引力大,对帮助学生锚定职业目标有明显激励作用。
2.3.3软件实现章节的课程教学设计
软件实现的主要工作包括设计模型审查、程序设计、代码编写、代码走查、代码编译、代码测试等。根据系统实现架构又可将工作类型分为前端开发、后端开发、移动端开发等。与软件实现相关性较高的就业岗位主要是软件开发工程师。由于软件开发工程师市场需求量大,加之学生在校期间参加的各类竞赛比赛多与编码、算法能力相关,因此院校往往把提高学生编码能力作为专业课程最重要的培养目标来设定。但仅具很强的编码能力,并非衡量合格软件工程人才的唯一标准,况且有些学生的个性、综合素质不适合将来从事编码工作,因此具备一定的编码能力应当作为软件工程人才具备的一项重要能力而非唯一重要能力。教师在授课过程中,要结合市场对软件工程师的能力要求,重点说明目前软件开发技术多样性、复杂性的特点,强调软件开发工程师需具备很强的学习和实践能力。除需掌握各类开发技术,如:Java开发框架、HTML5、CSS、Vue、SQL等,还需具有较强的问题解决能力、理解能力及学习能力,同时要具备较好的协作能力和团队精神,对软件产品有良好的专业悟性,对人机交互、用户体验等有较为深入的专业认识。软件开发工程师目前在软件行业岗位薪酬中处于中等水平,平均薪酬为1万元/月左右;
2.3.4软件测试章节的课程教学设计
软件测试是使用人工和自动手段运行或检测某个软件系统的过程,其目的在于检验软件系统是否满足规定的需求或弄清预期结果与实际结果之间的差别。与《软件工程》教材软件测试章节对应的岗位是软件测试工程师。教师授课过程中要强调软件测试工程师的具体岗位要求:负责构建测试环境、功能测试、集成测试和界面测试;建立并完善测试流程,根据软件设计需求制订测试计划,设计测试数据和测试用例,完成测试报告;负责完成对项目的单元测试、功能测试、黑盒、白盒和自动化软件测试等。教师要让学生时刻感受到课堂学习的专业知识在将来就业中的作用和价值;此外,教师还要强调现代软件企业中,软件测试工程师岗位的重要性,即此岗位与最终交付软件的质量密切相关,因此大多数软件企业都设置该岗位,从而引导学生拓宽择业面。软件测试工程师目前在软件行业岗位薪酬中处于中等水平,平均薪酬为1万元/月左右;
2.3.5软件维护章节的课程教学设计
软件维护是指在软件产品发布后,因修正错误、提升性能或其它属性而进行的软件修改。教师在讲授软件维护章节的过程中,同样要结合市场对软件维护工程师工作职责和专业水平要求来讲授,包括:为客户安装软件产品并保证顺利运行;及时响应客户需求,解决产品运行中遇到的各项问题;及时反馈客户意见,协助开发人员优化公司软件产品;为客户提供IT维护支持等;同时,教师要结合不同企业的软件产品,举例说明软件纠错性维护、适应性维护、完善性维护、预防性维护的特点和区别,尤其要重点强调维护规范和维护流程的重要性,避免出现维护事故。软件维护在软件产品生命周期中占比最高,但大部分软件维护岗位对专业知识水平的要求相对其它岗位要低一些,因此这个岗位比较适合专业学习有困难、专业能力水平较一般的学生。相较于其它岗位,大部分软件维护工程师的薪酬待遇也偏低,平均薪酬为7千元/月左右;
2.3.6软件项目管理章节的课程教学设计
软件项目管理是为使软件项目能按预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动。软件项目管理虽是部分《软件工程》教材的一个章节,但往往也是作为一门单独的专业课程为软件工程专业学生开设的。因此,《软件工程》教材中软件项目管理章节的内容一般较为简洁,学生全面掌握软件项目管理知识,需通过学习单独的软件项目专业课来进一步学习。软件项目管理岗位是软件企业中极其重要的工作岗位,需对软件项目的质量、安全、进度、成本进行管理,往往关系到软件项目的成败。在学生学习过程中,教师应结合软件项目经理的岗位职责、专业能力要求、工作经验要求等进行讲授,重点突出企业对软件项目经理综合素质的要求,引导学生提升综合能力,从而为将来从事软件项目工作打好基础。软件项目管理岗位薪酬目前在软件行业岗位薪酬中处于中、上水平,平均薪资为1.5万元/月左右,但因其需要一定的项目工作经验,因此对刚参加工作的软件工程专业毕业生而言,任职难度较大。
3课程效果
2020-2021学年第二学期,采用就业导向开展《软件工程》授课,2020级软件工程专业一个大班(76人),期中及期末学生对课程的整体评价课程好于往年,优于其他四位教师同期开班并按传统模式授课的评价。从课后效果看,采用就业导向开展《软件工程》授课,在授课过程中引入职业场景,通过实际的企业用人需求、岗位要求、薪酬水平等内容,强化学生学习专业知识的目标,无论是对基础薄弱、还是基础好、能力强的学生,均能取得较好的成绩提升效果。
4结语
基于就业导向开展《软件工程》授课的方法对教师的要求较高,需教师及时跟踪用人单位对各类软件人才的动态需求并进行梳理,将其转化为对教材各章节知识点的学习需要。下一步课程组将探索把就业导向和软件工程项目实践结合的授课方式,以进一步提高《软件工程》课程的实用性和时效性。
参考文献
[1]俞瑞钊,高振强.以就业为导向的高职课程体系构建之实践与探索[J].中国高教研究,2007(5):41-44.
[2]陈昊.论以就业为导向的高职计算机专业课程体系建设[J].中国劳动关系学院学报,2012,26(3):118-121.
[3]余向平.高职教育以就业为导向的人才培养模式探讨[J].职业技术教育,2005,26(4):23-25.
[4]王新露.基于就业导向的电子商务课程体系优化研究[J].中国储运,2021(11):160-161.
[5]周华庭.基于就业导向的《市场营销学》课程改革探析[J].知识经济,2021,589(22):162-164.
[6]王凯.基于OBE的现代学徒《软件工程》课程改革与实践[J].品牌研究,2021(25):276-278,283.
[7]董娜.软件工程类课程教学方案设计及方法探索———以DSP课程为例[J].江苏师范大学学报(自然科学版),2021,39(1):64-67.
[8]秦怀斌.《软件工程》课程设计的实践及思考[J].电脑知识与技术,2016,12(10):151-151,156.
作者:耿俊 张蕾 王博 严嘉斌 单位:新疆大学软件学院 新疆财经大学信息管理学院