软件需求工程的实例验证教学模式研究
2019-04-26凌宗虎
文/凌宗虎
1 引言
《软件需求工程》(以下简称“课程”)是软件工程专业的专业核心课程,主要讲授软件工程过程中的需求开发技术和需求管理技术,是软件工程重要内容之一,对于提高软件可用性和成功率具有重要意义。
课程目前具有较为系统的知识体系,实践灵活应用大量不同的方法技术,新的方法技术不断涌现,无法做到及时统一规范。课程理论教材内容区别较大,缺乏配套的实践教材,实践授课内容起点较高,授课方式选择非常困难。课程实践领域性强,需求获取与分析等技术与相关领域背景密切相关,需要对领域知识的深入了解,对于软件工程专业仅仅具备计算机基础知识和技能的学生来说,是难以弥补的短板。实际教学过程中,学生注重程序设计等基础技术类课程,主要是编码技术第一的认知层次,导致课程认识不足,理论理解不深入,实践环节敷衍态度,实际课程教学效果与要求偏差较大。教学方法采用案例教学法等。
2 基于实例验证的教学模式
针对课程教学问题,采用“理论+实例验证”的教学模式,在课时分配比例达到1:2的情况下,精心挑选并分解实际实例,验证理论学习效果,指导理论学习过程。教学实例与课程理论的关系如图1所示。
目的是培养学生主动探索、积极参与、协作交流及解决问题能力,教学形式采用课堂讲授、小组讨论和实例验证相结合的方法,注重学生主动参与课堂讨论过程,在讨论中应用所学技术解决各种问题。基础要求掌握课程基本原理和方法,理解课程的各种工具,还需要掌握如何运用课程知识解决问题的能力。通过理解课程的实践性,将所学理论知识真正运用到需求开发和管理过程中。
2.1 理论教学
系统讲授课程的理论知识(实践方法和技术要点),结合实践经验,讲解比较抽象的理论问题。可以举例实例场景,不适合论证完整的综合性问题。
提示型教学方法。通过各种提示活动(如讲解、示范等)教授课程内容,从实际经验方面引导学生分析课程中的各种工具及其应用特征,通过师生讨论来共同分析工具的应用方法,由此获得知识技能并发展能力。
解决问题型教学方法。要求开放讨论式的教学环境,教师引导问题,学生解决问题,通过师生对话与讨论来共同思考、探究和分析技能,由此获得知识技能、发展能力。例如,在需求获取技术理论中,对于需求获取是课程中最重要的过程的知识点,采取困难导向方法,获取用户需求时会遇到各种各样的困难,只有在解决困难之后才能获取完整的用户需求。这种教学方法能够发挥教师和学生这两类群体的积极性,如表1所示。
2.2 实例教学
在课堂教学环境中,以实际实例中的场景作为基础,从问题中引导出理论内容,然后再用理论内容解决问题,体现“问题-工具-解决方案”的闭合循环。将各种教学实例分解为应用于不同理论知识点的不同场景。
以“教学管理系统”为例,实例分解为七个部分:与用户见面,详细记录用户的需求信息;探讨系统的操作流程,描述系统的业务功能;系统细节信息获取过程,完善非功能需求信息;业务数据处理,硬数据采集与讨论;需求分析与模型设计;特殊问题的处理要求,系统需求信息完整化;需求维护与需求管理。
实例的七个部分分别验证七个知识点理论:需求获取过程和技术,观察、询问等方法的使用;用例和场景技术在需求工程中的应用,如何描述需求信息的关键部分;原型方法在需求获取过程中的应用,原型的含义及其意义;数据的一般处理过程,硬数据的含义以及注意事项;需求分析的技术,需求建模的技术;面谈的技术,面谈的注意事项;需求信息在软件工程中的作用,需求维护的技术,需求变更的一般流程。
2.3 实践环节
教学实践环节以完整的项目实例为训练素材,提高学生的知识运用以及分析和解决问题的能力,结合几个不同的项目设置,要求按照课程所学步骤,完整实现课程的需求开发过程。
实例1:图像斑点识别。一组数字图像,灰尘、噪音等干扰因素较多,带有实际应用背景,要求识别图像中的斑点。教学目的是,弄清楚到底什么是用户需求,用户需求的重要性。
实例2:某电信网管数据传输系统。通过长达100页的系统需求描述文档和数据库表的设计文档,说明用户需求信息的范围、规模、杂合性,如何整理分析用户需求文档,以及发现问题、查阅资料、探讨问题、解决问题的必备技能。
实例3:某上位机开发需求。通过一个难度较高的与计算机网络设计有关的需求文档,完整说明用户的需求信息,用于训练资料查询、交流沟通、探讨讨论等手段与技巧。
表1:教学手段与教学方法
图1:教学实例与课程理论的关系
3 结束语
实例验证教学模式是一种将理论与实践相结合的互动式教学方法。精心选择和分解项目实例,以实例作为理论基础、辅助工具、验证工具,有助于调动学生的学习积极性,提高教学质量,改善教学效果。