APP下载

面向应用型大学的软件过程管理课程教学探索

2023-05-29王海峰陈新疆何淑庆

软件导刊 2023年5期
关键词:应用型软件过程

王海峰,刘 皓,张 明,陈新疆,何淑庆

(1.临沂大学 信息科学与工程学院;2.山东省网络重点实验室临沂大学研究所,山东 临沂 276002)

0 引言

随着中国经济进入高质量发展阶段,工信部、教育部调查显示预计到2025 年各行业对高技能人才缺口将达到3 000 万人[1]。应用型本科高校的转型与建设成为一项重要的教育战略,应大力培养服务国家、地方经济社会发展需要的应用型人才,缓解当前高校人才培养与社会需求不匹配和供需脱节的问题。其中,应用型本科院校软件工程专业的目标是培养专业能力强、社会适应快、具有较强实践和创新精神的高级应用型人才[2]。

在教学设计上,当前应用型高校的软件工程专业倾向于培养学生研发、测试和运维技术的应用能力,持续关注研发技术与企业实践的结合,开展多形式的软件工程教学与课程改革研究[3-4],但忽视或欠缺对本科学生软件过程管理能力的培养,与企业对管理培训生的人才需求相差甚远。具体为,开设的软件过程管理、项目管理学时较少;教学内容枯燥,多为各种管理方案的规则与条例;缺乏面向企业应用的实践教学设计方案;教学路径与内容相对固定。

显然,当前软件过程管理的教学内容与企业需求存在脱节,因此本文围绕应用型大学软件工程本科专业研究如何面向企业应用的过程管理进行课程改革。

1 相关研究

目前,应用型高校软件工程专业的教学是国内外教学研究的热点,特别是对实践教学的改革[5]。国内学者结合工程认证研究培养与企业对接的人才教学模式,以人才需求为导向与OBE 模式构建软件工程专业的实践能力体系,以职业化资格认证为基础培养适合信息社会发展的软件研发专业人才[6-7]。

随着软件规模增大,企业对软件项目与过程管理的人才需求增多,应用型高校也逐渐开始关注培养软件工程学生的过程管理能力,通过改革软件过程管理课程的教学模式,培养应用型人才的软件过程管理意识[8]。在软件工程项目实践中,通过模拟方式实施过程管理用户沟通、需求和项目,采用游戏方式提高学生对过程管理的兴趣和热情[9]。

然而,在当前应用型高校的软件工程专业实践教学改革中,虽然提升了学生的实践技术研发能力,但忽略了软件过程能力的培养,尤其缺少以软件过程为主线来组织教学活动的研究工作[10]。现阶段,国内重点高校的软件工程硕士教学中注重培养软件管理能力,以企业级云平台结合现代企业的敏捷实践改善软件工程专业学位研究生的培养方案,对应用型高校本科教学具有一定的参考意义[11]。

国外,Liargkovas 等[12]研究软件工程教育与工业界人才需求脱节的问题,涉及人机交互、编程技术、软件过程管理及计算机基础知识等方面;Ståhl 等[13]在软件工程教学中提倡引入工业界人员参与教学活动,与教师一起完成项目教学设计。并且,为了项目教学满足毕业学生或职业研发人员的需要,企业管理者将过程管理的思路贯彻到整个项目实践活动。Gren[14]利用翻转课堂教学模式提升学生学习的主动性,但并未明确引入企业过程管理方法培养学生。Marques 等[15]针对提升学生项目实践经验的问题提出适合团队过程管理与监控方案,利用个体的自省能力与团队协同学习方式管理个人、团队的过程活动。Gupta[16]通过融合设计驱动教学模式(Design-Based Learning,DBL)与项目驱动教学模式(Project-Based Learning,PBL)减少高校与企业需求的差距,提高学生解决复杂项目工程的设计能力、创新能力与管理能力。

综上所述,国内外在软件工程教学研究中均重视高校与企业需求间的差异,在技术研发能力方面改进教学模式、实践活动、教学组织等内容,使学生积累工程实践经验,改善高校教学与社会实践对接的问题。然而,软件工程专业人才的项目与过程管理教学研究仍处于发展阶段,才刚开始注意学生的过程管理能力在项目设计与实践中的重要作用和高校教学与企业实践间存在的鸿沟。

2 课程设计

2.1 课程建设思路

软件过程管理作为软件工程专业开设的核心课程,对培养学生的软件过程管理能力具有重要意义。本文首先调查应用型高校学生的总体学习水平,以便于准确设计课程内容、教学形式和项目训练的难度。通过在线发布学情调查问卷与历史数据发现:①当前学生技术开发能力普遍较弱,大部分学生不具备独立工程研发的能力,学生群体技术能力差距较大;②学生对软件过程管理、项目管理与软件质量管理的知识了解较少;③由于过分强调软件开发技术类的学习意义,当教材内容枯燥、文字描述呆板时大部分学生对软件过程管理的学习缺乏热情;④学生缺乏对软件过程管理前沿知识与实践的了解以及企业实际工程管理的应用能力,尤其是国外流行的敏捷过程管理与国际大公司的过程管理体系知识;⑤由于学生有各自的职业规划,例如考研、就业、各类职业考试,导致该学习阶段可供学生分配的时间较少,因此还应该根据不同学生的职业规划需求设计教学路径。基于上述情况,本文遵循以下原则开展课程教学设计:

(1)项目竞赛驱动,强调组织管理实践。通过软件过程组织的个人开发、团队开发、多团队协同开发3 种形式,开展适合学生技术水平的项目开发训练。采用竞赛方式评价开发过程的管理水平,以此激发学生的学习热情,培养软件过程管理能力。

(2)校企合作教学,融入企业管理知识。借助校企合作平台将软件企业的管理人员请入课堂,在教学中引入企业专家的项目管理经验。在实践教学中与企业专家共建项目实训内容,使实践内容融合工程研发技术,让学生及时接触到现代软件企业的过程管理知识。

(3)倡导个性化教学。依据行为与认知跟踪设计学习路径,将理论教学内容划分为核心、扩展两大模块,针对扩展知识模块实施个性化教育。根据学生学习行为、认证追踪、兴趣等数据,构建个性化的学习路径与评价方案。

2.2 教学安排

课程教学分为理论和实践两部分,包含32 个理论学时与16 个实践学时。理论内容主要包括软件过程规范、过程标准体系、软件过程成熟度及其相关概念和理论。关键知识点为软件过程的组织管理、需求管理、项目管理、质量管理、技术管理和集成管理等流程、方法和实践,还涉及软件过程评估与改进框架、模型和实施细节。

在项目实践部分采用以下3 种实践形式:①个人开发的管理实践,学生通过自选微信小程序或小游戏进行开发,实践个人软件过程管理模型(Personal Software Process,PSP);②团队开发过程管理实践,由教师给定的基于Web 应用程序为基础增强或新增部分功能需求,以此实践团队过程管理模型(Team Software Process,TSP);③多团队协同开发实践企业级能力成熟度模型(Capability Maturity Model Integration,CMMI),通过多个小团队协同开发企业级的应用项目,由企业工程师分配、协调工作,实现校内不同分组间的协同与校企团队间的协同,在协同开发过程中实践CMMI过程管理方案。

通过这种教学安排,学生能准确了解软件开发和维护的全过程,理解软件过程框架、标准和内涵,在软件开发中灵活选择不同过程管理模型进行应用。在项目实践中,学生能掌握软件开发与维护的多种管理方法,解决过程管理遇到的关键问题,培养持续改进软件过程意识。在实现课程培养目标前提下,培养应用型高校软件工程专业学生的软件开发过程管理能力与持续改进能力。其中,软件开发的过程管理能力通过PSP 过程模型提升学生自我管理能力,通过TSP 模型掌握团队过程管理能力与方法,使其具备基本的团队过程改进能力;持续改进能力通过学习敏捷管理思想与工业界的过程管理模型,使其具备基本的软件过程改进能力,培养其持续优化的意识。

2.3 教学内容设计

本文将教学内容设计划分为重构传统教学内容结构、个性化教学设计方案与面向企业的过程管理内容3 个部分。

2.3.1 重构传统教学内容结构

考虑到知识体系的完整性与严谨性,在传统软件过程管理课程中以软件过程的组织管理、需求管理、项目管理、质量管理、技术管理和集成管理逻辑线索组织关键知识点。然而,由于课程知识体系过于庞大,学生容易淹没在枯燥的知识点中,导致学生学习热情和兴趣下降,难以形成系统的知识结构。为此,本文以软件过程管理模型为主线组织教学内容的逻辑结构。首先,将软件过程管理模型划分为学院派和工业派,理论学习的重点隶属于学院派的PSP 过程管理模型、TSP 过程管理模型及企业级应用的CMMI 模型。以个体、团队和企业级3 种组织粒度为线索设计教学内容,分别为个体软件开发过程管理模型(PSP)、团队软件开发过程管理模型(TSP)和企业级软件成熟度模型(CMMI)。在3 种具体的过程管理模型中从组织管理、需求管理、项目管理、质量管理、技术管理和集成管理这6个维度来梳理其中的关键知识点。

2.3.2 个性化教学设计方案

现阶段,针对不同学生职业目标与学习时间设计个性化教学方案。将学院派的PSP、TSP 和CMMI作为核心教学内容,工业派的敏捷过程管理模型、统一软件开发过程模型(Rational Unified Process,RUP)和微软过程管理模型设置为扩展教学模块。对于扩展模块的内容,为学生设计个性化的教学评价方案。

在理论学习过程中,首先设置课后习题跟踪学生对管理模型的认知情况,在核心知识的学习阶段获得学生学习行为的量化评价,然后根据在线调查问卷和师生访谈为学生建立认知与兴趣的个人画像。其中,认知状态是对软件过程管理知识掌握的一种量化,分为了解、理解、掌握、应用、评价和创新6 个等级;个人兴趣数据主要是对未来职业规划的取向,例如研发岗位、管培生岗位、自主创业等。接下来,根据学生个人学习画像推荐扩展部分教学内容,每位学生只选择扩展模块的一个过程管理模型完成学习,具体的个性化教学方案包括学习路径脑图、在线慕课、在线测试和答疑。最后,向学生提供在线慕课扩展部分知识点,教师开展线上答疑反馈,设计与之相对应的测试题,通过平时成绩考核评价学生对扩展模块的掌握情况。

2.3.3 面向企业的过程管理内容

教学内容中增加面向企业应用的过程管理内容:①引入国外大企业的过程管理实践材料,为学生设置CMMI 的认证观摩课,适度引导学生阅读一定的英文文献来了解国外过程管理思路,开阔学生国际视野;②企业管理者为学生开设专题讲座,让企业工程师与高校教师共同设计项目实训内容,促使理论知识与企业过程管理实践的充分融合,使课堂理论知识落地;③在教学内容中增加管理学、微观经济学与软件营销学内容,增加经管类知识使学生从软件开发成本、销售和市场等角度思考过程管理中存在的问题,扩展学生知识面,提升其适应企业工程化管理的能力。

通过上述理论教学内容的设计,本文针对理论教学内容设计了相应的项目实践内容(见表1),并采用竞赛方式激发学生的学习兴趣与热情,以取得其项目实践的评价。

Table 1 Teaching arrangement of software process management表 1 软件过程管理教学安排

3 项目实践

软件过程管理的实践是教学设计的难点,需要一个循序渐进的项目实践线索,完成个人—团队过程管理能力的过渡,实践面向企业应用的过程管理活动。然后,突出面向企业的过程管理培训,改善高校教学与企业人才需求脱节的问题。最后,设计项目训练内容与实践形式。

3.1 实践内容设计

根据学生认知规律组织项目实践顺序,首先实践PSP个体软件过程管理模型,培养学生的自我管理能力;然后实践团队过程管理,应用TSP 团队过程管理方案;最后将全体学生划分成不同小团队实践协同开发,应用企业级CMMI 过程管理方案。在PSP 个体软件过程管理实践中,每个学生根据自身技术水平与兴趣,自选微信小程序、手机APP 或小游戏软件开发任务,提供为期4 周的实践活动。在PSP 实践中学生需要管理项目时间与软件质量,完成PSP 过程管理中理论方案的应用,规范记录各种管理数据,教师通过电子周报的方式监督、评价过程管理的问题,适时给予反馈指导。在PSP 个体过程管理实践完成后,学生已具备自我管理能力。

TSP 过程管理模型通过4~5 人的小团队进行实践,考虑到团队开发难度与学生投入时间的平衡,采用给定Web项目的增量式开发,即教师给出一个校园报修管理系统,提出新的功能或性能需求,要求学生在4 周内完成。在研发过程中应用TSP 团队管理方案,主动应用TSP 管理框架与实践细节技术,解决团队过程管理中遇到的问题。教师通过周会方式了解团队过程管理问题,提出具体解决方案。

通过多个小团队协同模拟企业级的过程管理实践,理解CMMI 关键过程域的理论与管理技巧。由企业工程师提供项目研发任务,研发过程中各小组间协同工作,学生团队与企业开发团队也进行协同操作。由于学生的研发能力有限,通常需要安排软件界面研发与算法测试协同工作。在为期4 周的CMMI 实践中,企业导师每周进行一次专题讲座介绍CMMI 认证内容,并反馈各小组间的过程管理问题。最后一周安排学生与企业研发工程师进行现场交流,由企业工程师现场反馈学生的实践疑问,实现面向企业实践操作的对接。

3.2 实践教学形式设计

在PSP 管理模型实践中,学生对教师资源需求的矛盾较为突出。为此,本文采用“以点带面”的方式设计PSP 实践教学形式,利用展示优秀学生的管理方案起到示范作用。在PSP 实践教学过程中,量化分析学生的PSP 实践效果,通过项目进度延期程度与软件缺陷数量两项指标度量个体管理的优劣。每周以竞赛方式实时公布个人量化成绩,教师选择名列前列的学生分析其管理方案存在的问题,然后讲评其中的共性问题。在PSP 管理实践结束后,根据个人成绩排名选出优秀的个体软件过程管理的学生作为团队领导者。

在团队过程管理实践阶段,开展TSP 这4 个阶段的现场讨论会。教师针对各团队的过程管理问题,现场指导团队组长,再由组长传达至每位组员。在现场讨论会中,各团队组长互相评价、商讨项目开发中的管理问题,共同寻找解决方案。TSP 实践结束后,采用现场答辩方式得出团队成绩。答辩中,组长重点介绍软件项目功能和过程管理方案,向现场学生评委展示TSP 过程管理的文档等。

最后的实践教学环节为多团队协同实践,由工程师选择界面类和基本功能开发任务,实现校内各小团队间的协作和企业开发组简单协作。此外,企业工程师定期开展CMMI 实践的专题报告会议,学生可结合每周实践内容观摩企业过程管理方案。

4 教学效果

由于本科生的社会认知能力与企业人员存在较大差距,学生在学习面向企业的过程管理知识时普遍存在心理压力,但对培养学生的软件过程管理的意识和基本工程化管理能力具有积极作用。为了证明本文所提教学设计的效果,将临沂大学软件工程专业某年级的160 人划分为常规教学和对照教学组。在常规课堂中依据教材内容开展教学,在对照教学组中采用竞赛机制、引入企业课程和实践内容,具体数据如图1 所示。实践表明,该教学方式在以培养应用型人才的临沂大学软件工程专业教学中取得了良好效果。

Fig.1 Analysis of the introduction of competition mechanism in practical teaching图1 实践教学中竞赛机制引入分析

由于常规课堂学习PSP、TSP 软件过程管理模型和实践不采用竞赛机制,因此本文从项目进度管理和软件质量管理两个维度评价竞赛机制对教学效果的影响。其中,项目进度管理考察个人或团队的时间管理能力,本文使用项目是否能按照规定时间完成的延期比率进行评价;软件质量管理水平使用千行代码的Bug出现率作为评价依据。

由图1 可见,引入竞赛机制后学生的时间管理水平提升明显,在PSP、TSP 过程实践中均降低了项目延期率,软件缺陷率也低于常规教学,这说明学生的质量管理能力有所提高。在常规教学中,教师布置完PSP、TSP 学习任务后,由于部分学生缺乏学习动力和热情,在PSP 实践中会出现两极分化的情况。另一方面,教师无法实时介入学生实践过程,会出现教师反馈指导与学生实践脱节的现象。引入实践竞赛机制充分调动了PSP 个体软件过程管理的积极性,学习不积极的学生由于自尊心影响也能主动向他人学习,提升实践热情;在TSP 实践过程中,各团队能快速向教师反馈自身团队发现的问题,以便于教师实时介入并进行反馈指导,实现理论知识与实践活动的融合。

为了观察教学效果,在常规教学中既不引入企业工程师讲授专题课,又不实施学生团队与企业团队协作的活动。由企业工程师设计学生过程管理能力的调查问卷,问卷围绕规划能力、沟通能力、时间管理、解决矛盾、团队合作、协调能力6 个维度进行设计。每个观测维度设计5~10个问题,通过学生答题情况判断该维度分数,得分区间为[0,1],得分越高能力代表越强,调查问卷发放范围为临沂大学软件工程专业本科生,回收有效问卷为157份。

由图2 可见,引入面向企业实践管理的教学内容后,学生的时间规划、解决矛盾能力明显提升,团队合作、协调组织和项目规划能力有所改善,沟通能力并未发生明显变化。由此可见,企业教师的专题培训与观摩企业CMMI 过程管理实践,有助于增强学生过程管理意识,能使其主动完成项目和时间的规划与管理,在与企业协作的实践中锻炼了自身解决问题的能力,提高了学习积极性,增强了学习目的性。

Fig.2 Comparison of the teaching effect before and after integrating enterprise management图2 融合企业管理教学效果的对比

4.2 现存问题

现阶段,在实际教学过程中仍存在以下问题尚待解决:

(1)教师在需求管理教学活动中,难以复现实际工程中需求动态变化的场景。在各种实践教学活动中,学生无法执行软件需求追踪、需求变更控制的管理任务,导致其对需求管理的理解停留在理论说教层面,无法充分理解需求管理中的技术细节。

(2)学生在软件项目规划方面的知识存在较大欠缺。由于学生编程经验较少,大部分时间用于解决编程技术问题。因此,在PSP、TSP 过程管理中对项目工作量的评估不够准确,项目计划制定不合理,导致项目出现延期现象。

(3)本科生不重视过程管理中测量与分析内容。在PSP、TSP 实践中,学生记录和积累过程数据的意识不强,部分学生编造虚假数据应付检查,导致软件过程管理测量结果不准确。同时,中小型企业的工程师也存在这样的偏见,认为记录数据会影响正常工作。

5 教学反思与改进方向

本文针对应用型高校软件工程本科生的过程管理能力培养提出系统的教学与实践方案,并结合实际教学效果总结改进方向:

(1)选择平行课程教学内容作为实践的项目设计任务,通过与平行课程的协同教学解决师资需求紧缺问题。例如,某学期同时开设移动端开发、Web 应用开发课程,学生在实践PSP 个体过程管理时选择微信小程序或手机APP;在TSP 过程管理实践中选择Web 应用开发课程的项目任务。如此,学生便能突出过程管理的实践应用,避免陷入技术难题。

(2)充分调动广义上的教师资源。充分调动教师、教学平台和研发社区辅导学生,以解决教师资源相对紧张的情况。课程教师通过“一点带面”的方式反馈共性问题;各类教学平台辅助研发技术的常规学习,包括普及新技术等;通过研发社区CSDN、StackOverFlow 等以群体协同学习的方式给予学生实时反馈。

(3)为应用型高校软件工程专业设计教材。在理论部分增设软件经济学内容,使学生从成本角度学习与实践软件过程管理,增强理论教学内容的应用效果;在实践项目中采用增量设计项目任务,为PSP、TSP 过程管理增加动态需求场景,以此加强需求管理实践。研发记录软件过程管理的微信小程序来记录软件过程测量数据,加强学生在软件过程测量与分析的实践活动。

6 结语

本文面向应用型高校的软件工程本科教学工作,针对软件过程管理课程提出完整的教学设计方案,实现培养软件过程管理能力的目标,突出高校与企业合作,将校企合作机制融入理论与实践教学中,通过全新的逻辑线索组织软件过程管理的理论知识,并设计与之相对应的项目实践内容。

在校企合作中引入企业导师的专题课、在实践教学中增加竞赛机制能充分激发学生学习热情。通过观摩企业研发团队与简单协作来指导学生学习企业级的过程管理方法,以避免高校教学内容与企业需求间发生脱节。下一步,将以软件过程管理为核心向软件工程其他课程扩展,融合形成培养学生过程管理能力与改进创新能力的课程群。

猜你喜欢

应用型软件过程
关于应用型复合人才培养的教学模式探讨
禅宗软件
“5-2-1”应用型人才培养模式探索实践
描写具体 再现过程
临终是个怎样的过程
软件对对碰
在这个学习的过程中收获最大的是哪些,为什么?
谈软件的破解与保护