软件过程管理课程的教学模式改革初探
2017-11-24王健
王健
摘要:本文针对软件过程管理教学中存在的问题,结合国外高水平大学的教学经验,并将案例和任务加以融合,从课堂教学、实践和考核环节开展了课程教学模式改革的探索。实践表明,上述改进能够对教学活动产生积极的影响。
关键词:软件过程管理;教学模式;案例
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)45-0100-02
一、引言
大量研究和实践表明,软件项目和软件过程管理已经成为影响软件项目开发成败的关键因素。特别是随着软件系统越来越复杂,规模越来越大,提高软件过程改进和管理的能力,对于提高软件开发团队的生产力至关重要。软件过程管理是软件工程方向高年级本科生的重要课程。工程教育专业认证标准中明确规定了我国高校工程教育本科毕业生应具备的基本能力,其中,软件工程方向的毕业生需要具有“软件过程改进与项目管理的能力”。不难看出,软件过程管理能力是软件工程专业本科生培养的重要目标,也是软件工程从业人员如软件工程师、软件分析师、项目经理、产品经理等必须具备的能力。然而,在软件过程管理的教学中,还存在一些问题,导致师生普遍认为该课程的学习难度较大。除了大学教学中普遍存在的问题,诸如教学模式相对单调、学生缺乏主动参与意识等,软件过程管理课程在教学中还面临其他困难,主要包括以下几个方面。
1.与软件生命周期中的建模、设计、开发、测试等阶段相比,软件过程管理中涉及的具体技术内容相对不多,大量教学内容与管理、团队建设、交流等经验和技能相关,这些内容很难完全通过课堂教学传递给学生。同时,又由于缺乏合适的案例,导致学生难以真正理解过程管理中的相关知识。
2.软件过程管理的从业人员要求具备丰富的软件开发经验,较好的综合分析能力和大局观,而大部分本科生只是具备了初步的编程经验,社会阅历也相对不足,对这些内容的理解和认识还存在较大不足,这些不足之处也会为教师顺利实现教学目标带来一定的障碍。
3.软件过程管理能力的培养需要经过大量的工程实践,这就要求教师在教学过程中设计科学合理的教学实验,制定完善的考核体系,这是对软件过程管理教学的另一重要挑战。
针对上述问题,本文结合国外高水平大学的教学经验,并将案例和任务加以融合,开展了软件过程管理课程教学模式的探索,其目的是让学生能够积极主动地参与到软件过程管理课程的教学中,掌握软件过程管理的新技术和新方法,提高学生的软件过程改进与项目管理的实践能力,以培养出合格的软件工程专业人才。
二、课程教学改革实践
软件过程管理课程的教学目标包括:(1)掌握软件过程管理的基本概念、原理和方法;(2)能够将所学知识和相应的软件工具,在具体的软件系统开发过程管理中加以综合运用;(3)为今后继续从事软件工程的研究或实践奠定坚实的基础。其中,第1和第2个目标主要是分别通过课堂教学环节和实践环节完成,第3个目标则依赖于这两个环节的共同完成。
1.课堂教学环节的探索。在课堂教学环节,国外高水平大学的教学模式已经对软件工程的教学产生了一定的影响。笔者于2014年曾经在计算机领域的知名高校-加拿大多伦多大学开展了为期一年的访学,期间旁听了两门软件工程的课程,这个经历也引发了笔者自身对软件过程管理课堂教学的反思。首先在教学内容的选择上,国外课堂大都不指定具体的教材,往往是指定一个详细的阅读列表作为教学内容的载体。然后教师会在每次上课前,事先分配本次课堂教学主题相关的一组文章,要求所有学生在课前自行阅读。在课堂上教师首先进行教学内容的讲解,然后开始论文讨论,每次讨论都会分配一到两名学生主持,并要求其他同学参与到讨论中,课堂主持和讨论都会被计入到平时成绩中去。这种形式的教学要求学生将大量时间用于课前准备和课堂参与,学生在教学过程中会非常投入和积极主动。借鉴国外这种主动引导型的教学模式,结合国内高校学生的实际,本校在课堂教学中也没有指定教材,但还是会推荐一到两本教材用于参考。由于参考教材难以及时、全面地反映软件过程管理的发展现状,某些教学内容过于陈旧而无法满足将来学生毕业后的实际需要。本校在教学过程中增加了软件过程管理的最新进展介绍,例如敏捷开发过程的相关主题,同时会列出一些适合学生阅读的文献。要求每位同学选择一篇论文进行详细阅读,撰写并提交一份报告,同时选择一部分同学进行课堂报告。在报告中,教师可以首先要求其对论文的主要内容进行简短总结,然后列出一些可供大家探讨的问题,例如,论文中存在的争议之处、对论文的疑问或不清楚的地方、论文的优缺点、论文有待改进之处等。这些问题的提出和探讨有助于加深学生对论文的理解,启发学生进行深入思考,为其将来从事研究和具体的工作实践奠定了坚实的基础。
2.实践环节的探索软件过程管理要求学生具备软件开发技能、问题分析和解决能力、沟通交流和团队协作能力、文档撰写能力等综合技能,这些差异巨大的能力培养往往需要借助于大量的实践。本校在软件过程管理的实践环节中主要关注以下方面:(1)结合当前软件工程研究现状和发展趋势,除了经典的软件工程开发案例外,还需考虑云计算、移动互联网、物联网等趋势下的软件开发案例,例如面向服务的软件系统、移动应用软件等。在实际教学过程中,学生们选择了手机智能购物系统、教学管理系统、程序化交易平台、微信读书软件、网上订餐系统等软件。(2)考虑业界主流的软件过程管理工具,构建尽可能接近业界应用的实践教学环境。在笔者的教学过程中,主要选择了两个工具:Rational Team Concert(RTC)和Project。RTC是IBM开发的一个能够支持实时、跨地域协作的软件交付环境和项目管理工具,被广泛应用于许多项目的开发过程中。该软件提供了贯穿整个软件开发生命周期的集成环境,涵盖了需求定义、迭代计划制定、源码控制、缺陷跟踪、变更管理以及统计报表等功能。Project是由微软开发的项目管理工具,能够支持项目计划编制、为任务分配资源、跟踪开发进度、管理项目预算和分析工作量等功能。这些平台的使用,有助于帮助学生理解工业界实际的软件过程和项目管理环境。(3)设计合理的分组实践机制。通过分组协同工作,一方面,帮助培养学生的团队沟通和协作能力;另一方面,也有助于解决学生开发经验不足的问题,通过协同合作互相提高。本校要求学生自由搭配,以3—5人为一组。然后进入选题阶段,各个小组通过讨论选择一个正在开发或之前开发过的软件项目,也可以自己设想一个项目。由于课程学习时间有限,只需从所选系统中选择一到两个模块作为案例。基于小组选择的案例,根据软件过程管理中不同阶段分配的任务(主要包括需求分析和管理、开发工作量估算、软件项目计划制定、项目风险管理等),定期提交相应的任务,并进行课堂分享。在每次任务的课堂分享时,要求小组成员轮流汇报。此外,其他同学或教师都可以在其汇报的过程中随时进行提问,所有成员都要到前台回答问题。
3.考核环节的探索。考核环节分为平时成绩和期末考试两个部分。平时成绩主要根据其课堂报告和讨论、文献阅读报告等多方面表现来进行综合评定。在课堂分享过程中,教师还可以根据各小组的报告准备、报告讲解和回答问题情况,给小组成员评定成绩。同时,在课堂上对各小组的完成质量进行点评。通过课堂分享,一方面锻炼了学生的表达能力,另一方面还可以起到促进学生相互学习和共同进步的目的。期末考试主要包括基础理论知识和案例分析两方面,重在考查學生解决和分析问题的能力。
三、结语
本文将上述教学改革实践活动应用到两届学生的软件过程管理教学中,并根据学生的课堂表现和课后反馈,得出学生大都能够掌握软件过程管理工具的使用的同时,对课程的重要性也有了比较深刻的认识。在今后的教学实践过程中,需要继续以提高学生素质为出发点,不断改进和优化软件过程管理课程的教学活动。
参考文献:
[1]朱少民,左智.软件过程管理.清华大学出版社[M].北京:清华大学出版社,2007.
[2]教育部全国工程教育专业认证专家委员会.工程教育专业认证标准(试行)[EB/OL].http://www.moe.gov.cn/publicfiles/business/htmlfiles/moe/s3861/201110/125419.html.
[3]孙小兵,李斌,李云,徐明.面向实践的软件项目管理课程案例库建设[J].计算机教育,2015,(20):39-41.
[4]郭洪禹,张云.国外名校公开课对软件工程课程教学的启示[J].计算机教育,2014,(9):124-126.endprint