基于新工科背景的软件需求分析课程教学模式研究
2020-04-02广州大学华软软件学院叶小艳
文/广州大学华软软件学院 叶小艳
一、引言
2017年2月18日,教育部高等教育司张大良司长在综合性高校工程教育发展战略研讨会上强调:当前新经济快速发展迫切需要新型工科人才支撑。随后,教育部于同年6月9日在北京召开新工科研究与实践专家组成立暨第一次工作会议,审议通过了《新工科研究与实践项目指南》。根据指南要求,新工科应该服务于新经济、新产业。[1]从普通高校层面来说,一方面要开设和发展新兴工科专业,另一方面要推动现有工科专业的改革创新,主动布局面向未来技术和产业的人才培养。[2][3]为加快实现我国工程教育强国的梦想,普通高校应该构建新工科与传统工科相结合的学科专业新结构,探索新工科背景下课程教学新模式,提高普通高校教育质量和人才培养质量。[4]
一个专业的改革通常立足于专业定位、专业目标,然后是课程建设。新工科的“新”在于以下五个方面:新理念、新模式、新方法、新内容和新质量,如图1所示。而对于课程来讲,创新教学方法、优化教学内容等则成为新工科背景下教学新模式的重要内容。
图1 新工科教育范式框架
软件需求位于软件工程的起始阶段,是软件系统开发中一个重要的独立工作阶段,为软件工程后续阶段提供了工作基础,对软件项目的成败至关重要。美国专门从事跟踪工程项目成功或失败的权威机构Standish Group的CHAOS系列报告指出,需求因素对成功项目的影响指数为53.9%,对问题项目的影响指数为55.6%,对失败项目的影响指数为60.9%,和软件需求相关的因素为软件项目所带来的风险和问题已经超过了所有的其他因素。同时,随着软件系统规模的扩大和复杂程度的增长,以需求分析为重心的传统需求处理技术已经不能适应现代软件技术发展的要求,完整的需求工程过程应运而生。[2]需求工程是开发者在进一步深入理解软件项目需求处理活动之后提出的一个阶段性活动。同传统的需求分析相比,在需求工程中,软件需求处理不仅仅停留在单纯的分析与建模,需求的获取、定义、文档化、验证及管理都是其中必需和重要的工作。
到目前为止,学术界与产业界在需求工程领域取得了较大的进展,研发了一系列有效的需求技术、方法和工具,[5][6]构成了一个完整的需求工程过程框架。但是,尚有大量理论、方法和技术有待于广泛传播和全面应用,特别是需要进行系统化的实践才能验证其科学性。
二、软件需求分析课程的主要问题
1.课程开设较为随意,课程愿景难保障
从查阅的各种文献资料看,不少学校有开设软件需求分析类的课程。但课程名称不一、课程内容设置、课程教学模式等更是五花八门,有的学校直接把需求分析课变成了UML建模课;有的只设置理论教学,不设置实践教学环节;有的按照传统技术类课程设置教学模式,这样导致学生上完这门课仍然不得要领,更谈不上在软件工程实践工作中能够很好地把握需求环节,确保项目的顺利进行。
笔者任教的学校包含了软件工程、信息管理与信息系统、计算机科学与技术、人工智能、网络工程等10多个IT专业,据调研,目前只有两个专业开设了需求分析课程,按照现代IT项目规模大、业务复杂的特点,如果忽略需求分析阶段的工作,则会在很大程度上造成整个软件项目的失败、延期、超支等现象。在这样的环境下,需求分析的课程愿景难得得到保障。
2.传统教学模式固化,影响课程教学效果
需求分析课是一门综合性非常强的课程,从理论方面看,需要掌握需求工程每个阶段的理论知识、编程知识、界面分析的知识等,还需要掌握大量行业知识、沟通学、心理学、语言学等,才能保障学生在需求捕获的过程中沟通顺畅。从实践方面看,需要掌握需求开发过程中大量的工具、方法和技巧,才能在此基础上形成鲜明的实践路线,在实际项目中得心应手。
传统教学模式主要采用的是教师讲授的方式,学生被动接收;实践教学环节设置以单个实验任务为主,没有连贯性的任务体现。这样对于技术的训练是“依葫芦画瓢”,学生并不能深入理解“需求分析”的实质。实践过程中涉及的技术、工具、方法等在这样的模式下难以体现,学生在课堂活动过程中并不能完全领会,最终还是会把实践课上成UML建模课。而需求分析过程中行业知识、沟通、表达等能力的培养更是空白。
3.考核方式单一,难以体现课程目标
传统考核方式有两种:一种是纯理论教学的闭卷考试,另一种是平时成绩(占30%)和期末考试成绩(占70%)结合。这两种考核方式的共同点就是强调理论知识的掌握程度,而忽略了实践能力的考核,因此会导致本课程的目标丢失,学生并没有在该课程中掌握到熟练的动手能力。
4.实践教材匮乏,师生难以把握实践内容
市场上的需求分析类的教材比较少,又基本是以基本理论研究为主,能够作为课堂实验教材的书籍更是匮乏,这样就令相关的教师和学生无所适从,教师不能很好地把握实践内容,学生缺少了引领,也不知如何下手。
三、软件需求分析课程改革措施
1.指导思想
图2 基于OBE理念的人才培养技术路线
本课程《教学大纲》《实验大纲》的制定是在软件工程等专业基于OBE(基于学习产出的教育模式)理念的人才培养技术路线上的一个环节(如图2所示),根据本专业的培养目标决定了学生毕业时应该达到什么要求,然后制定课程体系,再进行教学实施,而后进行教学评价,形成反馈和改进措施,最后回到培养目标,形成一个闭环结构。而《需求分析》在整个人才培养方案中,是一门专业的核心课程;需求分析环节,也是学生毕业设计作品中必须涉及的内容,所以该课程的教学在整个人才培养方案中至关重要。
本课程的教学设计坚持以学生为中心,以掌握、巩固知识和掌握基本技能为基础,以提高专业能力为主线,以增强实践本领为重点,以激励创新意识为导向的指导思想开展实践教学。
2.基本原则
(1)坚持整体优化、持续改进的原则
图3 需求分析课程教学改革思路
教学大纲、实践大纲的制定,符合人才培养目标的要求,从整体优化的角度正确处理好课堂教学和实践教学以及各实践环节之间的关系,[7]在对原有的教学设计进行认真梳理和研究的基础上,进行统筹考虑、系统设计,以下思维导图(见图3)是笔者对本课程进行整体优化的分析过程。
在人才培养方案的大框架下面,根据课程特征、知识要求和本课程的愿景,从知识点覆盖、教学方式、课堂组织形式、课堂管理模式、学生学习模式、课堂质量保障等方面进行对策研究,并进行课堂实施,然后形成验证与反馈机制,逐年改进。
(2)坚持理论联系实际的原则
坚持理论联系实际,既加强本学科的基本理论、基础知识、基本技能的训练,又与生成实际紧密结合。
本课程全程模拟企业实际需求分析的实施过程[8][9],实践内容以项目贯穿始终,使学生既能运用所学知识和所掌握的技能解决实际问题,又培养团队合作和独立思考的能力。
(3)注重培养学生实践能力和创新意识的原则
实践教学对于提高学生的综合素质、培养学生的创新精神与实践能力具有特殊的作用。本课程在内容选择和教学方法确定上注重学生创新意识的培养,所有项目从立项到结题都是学生自主提出,增加了学生自主设计实验的能力。在实践环节中模拟企业的客户方和开发团队的需求沟通环节,学生要使项目能够顺利进行,必须大力加强分析能力、表达能力、沟通能力等专业技能之外的能力,促进综合技能的培养。
(4)坚持符合市场需求、根据职业岗位能力分析设计的原则
根据岗位的任务、项目、能力、知识进行分析综合,按照职业岗位作业流程、工作任务等,设计项目的课程内容体系,修订课程标准和教学大纲。
3.具体做法
(1)课程教材的编写
笔者在研读了国内外的需求分析相关书籍,综合了国内外先进的需求分析方法和技术的基础上,最终采用了徐峰老师的SERU过程框架的原理来设置需求实践的内容。作为一本既可以涵盖理论教学,又可以涵盖实践教学的教材,在设置需求定义、需求捕获、需求分析与建模、需求评审、需求验证等理论知识的基础上,设置了12个实训环节。实训的内容以完整的项目贯穿始终,学生在实践过程中模拟企业项目的实施,以文档来驱动实践实施过程,最终得出完整的《软件需求规格说明书》。
(2)教学内容设置
根据需求分析的课程愿景,本课程设置的理论教学部分包含了除需求定义、需求捕获、需求分析与建模、需求描述、需求验证等技术部分的内容,还设置了实施项目部分所需的团队成员角色及所需技能、需求规划、需求管理等内容,以此来保证实践内容的正常实施。具体内容如图4所示。
图4 课程理论教学体系
实践部分内容根据围绕理论部分的基本概念、方法,以“项目课程化”的方式来设置教学内容。整个实践过程以项目贯穿始终,但因为课堂教学分散的特点,将项目分为若干个小目标,进而分散到每一节课里面去,使得学生既有项目全局的概念,又有具体而明确的局部概念,能够更好地推进课程实践过程的实施。
具体的实践内容网络图如图5所示,这是一个将待开发的项目看作一个黑盒的过程,从业务的角度去逐步求精的过程。
图5 课程实践内容网络图
(3)课程教学模式设置
本课程理论部分包括知识讲授、案例分析和讲解、团队讨论;实践部分包括情景式教学、任务驱动式教学、项目课程化教学和问题导入法教学等多种教学方式。
具体的课堂组织形式是先由学生自由组队(3-5人为一组,不超过5人),然后在资源库选择项目,或者根据生产实际提出项目(此时的团队扮演的是客户的角色),并根据项目的目标对项目进行立项,项目立项后抽签决定组号,角色扮演正式由此开始。此时由后一组的同学充当前一组同学的需求团队,前一组是后一组的客户,那么在这个过程中,同一个组是双重角色,在项目实施过程中,既能体会客户的立场,也能体会需求团队的立场。需求团队此时正式接收客户的项目进行需求开发。
需求团队在课程里会经历需求定义、需求捕获、需求开发和需求描述的过程,在每个过程中形成书面文档,每次的文档会经过教师的批改、客户的审核,部分关键点会经历集体课堂需求审核的过程,每次审核过后,需求团队都会修改文档,直至项目结束,会形成完整的《软件需求规格说明书》,参与最后的评审。具体如图6所示:
图6 课程教学模式图
在课堂控制过程中,有几点要特别关注。第一是客户方对于项目的提出,教师要善于控制项目的规模,项目过大和过小都不利于课堂训练;第二是协调客户和需求团队之间的关系,企业中出现的沟通问题,在课堂中同样会出现,教师鼓励团队自己解决的前提下,教师也要起疏导作用;第三是课堂有效性的控制,课堂引入了“团队积分制”,不论是团队讨论的过程,还是客户方配合、需求团队的需求开发、需求评审的过程,都纳入团队积分的范畴,课程每一阶段结束,会进行积分排名和清空,排名靠前的会给予高的平时成绩。这样的积分方式对学生有了激励的效果,学生课堂讨论会变得比较热烈。
四、结束语
本课程的教学改革在学生中取得了比较好的效果,从毕业生回访和企业评价来看,企业对于本门课程的教学进行了充分的肯定。同时,本课程也获得了学校“一师一优课”的立项和校内教改项目的立项,会在实践过程中进行不断完善。