郑宇
摘 要:软件需求分析的好坏是软件项目成败的关键,《软件需求分析》课程也是软件工程专业的核心课程,本文分析了《软件需求分析》这门课程在传统教学模式下普遍存在的问题,对本课程从理论教学、实践教学、考查方式等各个方面进行教学方式的改革,通过在实际的教学过程中的实践,重点培养学生的自主学习能力,分析问题、解决问题的动手实践能力,逐步形成与社会需求相适应的软件工程人才的教学模式。
关键词:软件需求分析 软件工程 教学改革 探讨实践
中图分类号:G64 文献标识码:A 文章编号:1674-098X(2021)06(c)-0117-03
Abstract: The quality of software requirement analysis is the key to the success or failure of software projects. Software Requirement Analysis course is also the core course of software engineering major. This paper analyzes the common problems of Software Requirement Analysis course in the traditional teaching mode, and reforms the teaching methods of this course from the aspects of theoretical teaching, practical teaching, examination methods, etc. The practice in the actual teaching process focuses on the cultivation of students' self-learning ability, practical ability to analyze and solve problems, and gradually form a teaching mode of software engineering talents suitable for social needs.
Key Words: Software requirement analysis; Software engineering; Teaching reform; Discussion and practice
隨着软件规模的越来越大,软件行业内也越来越重视到软件需求分析工作,在一个软件项目的开发过程中,需求分析完成的好坏直接关系着整个项目的成功与否。
在教育部教指委编写的最新版《普通高等学校本科专业类教学质量国家标准》中也将《软件需求分析》列为是软件工程专业核心课程之一,该门课程的主要教学内容包括需求工程的基本知识、基本理论,需求获取、软件需求分析方法,需求定义、需求管理[1]。通过该门课程的学习,学生首先要理解需求分析在软件开发过程中的重要地位,并掌握需求分析的各个知识点、方法、技术,初步具备作为软件需求工程师所要求掌握的知识和能力。
1 传统教学过程中存在的问题和不足
在一个软件项目中,软件需求工程师的主要工作是担当客户与开发团队的桥梁,除了要具有扎实的软件需求分析的专业知识,还应该具备优秀的沟通能力、语言表达能力、写作能力和团队合作精神,因此《软件需求分析》(以下简称“本课程”)应该是一门综合性和实践性都很强的课程,而采用传统的教学方式偏重于课堂教授,整个教学以基础理论和基础方法为主,学生在学习过程面对的大多是理论和概念,会觉得内容枯燥,同时由于学习的知识较为抽象,学生无法真正理解所学习的内容。整个教学过程中不能很好地调动学生学习的积极性,系统性的综合实践环节缺乏,学生在教学实践过程中满足于完成任务,实践动手能力缺乏系统的训练,缺乏主动学习能力和协作精神[2]。同时,传统教学中忽略了对新产业行业知识的学习,造成学生毕业后“入职难”,企业“用人荒”的错位现象。知识体系得不到更新,造成与现有新型企业技术的脱节[3],造成学生走入职场后,适应实际工作环境的难度较大,用非所学[4]。
2 课程教学模式的探讨与实践
2.1 建立软件工程课程组体系
本课程的前续课程中有《软件工程》课程,该门课程的教学过程中也会有软件需求分析的相关内容介绍,因此在本课程的教学中会让学生认为该门课程是之前所学习过知识的重复,无法调动学生的学习积极性和兴趣,也增加了教师授课的难度。
针对类似情况,依据软件工程专业的培养方案,成立软件工程课程组,课程组对软件工程专业各门课程进行梳理,重点对各门课程中的相同内容的讲授重点和深度进行了梳理,这样更有利于课程之间的衔接,也更有利于对教学效果的提高。
2.2 课程内容体系的改革
在制定课程的教学大纲时,增加实验实践环节课时量,将本课程的实验实践环节课时量从之前的30%提高到60%,以期能够重点培养学生的实践能力、解决问题的能力和综合应用知识的能力。
2.3 理论教学的改革
在进行了课程内容体系的改革之后,理论教学的学时大幅度压缩,这就要求在对本课程的基础知识教学上重点从“教”变成“学”,对基础知识和基本概念要求学生以自主学习为主,在课堂上通过对案例分析和讲解,并且组织学生进行课堂讨论的形式来让学生深入加强理论知识的学习,激发创新能力[5],这种方式能让课堂氛围变得轻松,提高学生的学习兴趣,同时能够有效培养学生的问题分析能力和表达能力,让学生在讨论中发表自己的意见、困惑等,以便教师能够及时帮助学生克服遇到的困难,加深师生之间的了解,有利于对整个教学工作的开展,也完全契合本校以自主学习为核心的教学范式改革工作。
2.4 实践教学的改革
在进行了课程内容体系改革之后,大大加强了对学生实践性环节的训练,根据本课程的教学内容和改革思想,实验实践环节的重点在需求获取、需求分析、需求定义、需求验证、需求管理这几个方面[6],突出这几个环节上合理和高效进行实验实践环节的设计,具体要求如下。
需求获取:需求获取中首要的需求来源就是将用户目前的业务工作进行梳理,如何理解客户的业务是需求获取阶段最困难,但也是最重要的事。在需求获取的实验实践环节中要求学生在教师的指导下采用能够获取需求的观察法、体验法、问卷调查法、访谈法、单据分析法、报表分析法、需求调研会法等方法,对所要开发的系统进行需求的获取工作。在这一阶段,可以鼓励有条件的学生运用需求获取的各种方法在对所要开发的项目进行实地的需求调研,也可由指导教师根据学生所选题目,简要指出所开发系统的整体需求,学生在教师的指导下完成需求信息的获取。
需求分析:需求分析是需求获取的下一个阶段,两者有着非常密切的联系,通常需求工程师在需求获取阶段从用户那里会收集到大量的信息,但这些信息还不能完全定义为系统的需求,还需要对这些信息中与所要开发的软件系统关系不大的,甚至是无关的,或者是重复的、相矛盾的信息等进行进一步的整理、分析、整合,这就是需求分析阶段的基本任务。在需求分析的实验实践环节中要求学生在教师的指导下,对所获取的需求信息进行提炼、分析,找出用户最真实的、最具体的需求,并通过用统一建模语言(UML)建立所要开发系统的模型,确保需求的准确和所有项目相关人员都能完全理解,并对系统的需求信息形成统一的认识,还需要分析需求信息的可行性、确定各个需求的优先级和建立数据字典。
需求定义:需求定义的主要任务是根据需求获取和需求分析阶段的输出结果,按照国家标准和行业规范,按标准的格式完成一份完整、全面、详细、准确的需求规格说明书。所完成的需求规格说明书能充分反映用户的各方面,精确描述所要开发的软件系统的需求。在需求定义的实验实践环节中要求学生在教师的指导下合作或独立完成一份符合要求的需求规格说明书。
需求验证:需求验证的主要任务就是审核、检验需求定义阶段所完成的软件需求规格说明书,通过需求验证的一系列工作进一步发现所要开发的软件系统的需求中的遗漏、矛盾甚至是错误的需求,在需求验证的实验实践环节中要求由指导教师和学生共同组成需求评审小组,进行需求的测试,审查和验证需求的正确性和完整性等。
需求管理:即便是已经在需求验证阶段经过检验的需求,在软件项目的开发过程中,也很难避免遇到需求变更的问题,需求管理的重点就是要能有效控制和管理需求发生变更。在需求管理的實验实践环节中要求学生在教师的指导下首先合理制定出应对需求发生变更的一整套工作流程,在需求发生变更时,依据工作流程尽可能准确地评估该项需求变更会给所要开发的软件系统所带来的影响,充分衡量所有项目相关人员的利弊后,决定是否进行需求的变更,并做好需求变更的控制、需求变更状态的跟踪与需求规格说明书的版本控制工作。
在整个实验实践教学的过程中,鼓励学生有条件的话进行实地的考察、调研等,让学生根据自己的兴趣或是在生活学习中发现的“痛点”等来拟定题目,这样也能够进一步激发学生后期的学习热情,教师审核题目通过后,学生除了要完成以上各个环节的实验实践任务之外,还需要独立完成本课程的综合课程设计,综合课程设计要紧密结合上述的重点实验实践环节,并作为最终期末考查和评定学生期末成绩的重要依据。
同时,将本课程的学习与各类与软件工程专业相关的学科竞赛、创新创业实践活动、科学研究活动相结合,鼓励学生结合本课程的学习参加这一类的学术活动,将需求分析的知识应用其中,并可以在这些学术活动中产生出综合课程设计的成果,不断引导学生积极、主动地探索知识和参与学术活动的历练,提高学生的科学研究能力、创新意识和创新能力,针对这一类综合课程设计,可以采用分组的方式,每组3~5名学生组队完成,教师要采取各种方式对参赛队伍中的队员工作情况进行监控,避免队伍中出现滥竽充数的学生。
2.5 反馈迭代,形成教学闭环
在教学的过程中,通过学生对软件需求分析的实验实践报告的方式来了解学生对知识点的掌握情况,并且就学生每次提交的实验实践报告的情况进行总结,将出现错误较多的知识点,向学生反馈,并就有代表性的作为案例进行分析,并要求学生对之前所完成的实验实践报告进行进一步的修改与完善,这样学生对每一次实践教学环节成果的完成质量都能迭代提高。
2.6 考查方式的改革
在本课程的教学改革中,对本课程的考查形式也进行了改革,期末考试的学生以完成的综合课程设计的质量作为主要的考查对象,占期末考试成绩的70%,平时成绩占30%,用来考查学生的日常出勤情况、学习态度和各个实验实践环节的完成情况。
这样的考试方式的改革重点提高学生的实践能力和解决问题的能力,避免出现传统的教学方式中,学生只是为了应付考试在考前对各个知识点死记硬背,不求甚解的情况。
同时,得益于软件工程课程组体系的建立和不断完善,在本课程后续课程中,开设了《专业高峰课程》《专业实习》等课程和实习环节,这样可以把对本课程的期末课程综合设计的完成情况进行总结,再次反馈给学生,并在后续课程中进一步的迭代和提高,避免了学生一旦结束考试,就不再进一步对本课程进行深入的学习和提高的情况出现。
3 结语
课程建设是教学工作中的基本工作,也是实现人才培养目标的关键工作,通过对《软件需求分析》课程的教学内容、学时安排、理论教学方法、实践教学方法、教学手段、考查方式等各个方面的改革,加强学生的自主学习能力、实践能力,达到了提高教学质量的目的,取得了良好的教学成果。
在之后教学工作和课程建设中,要进一步完善、更新教学内容,建立更为科学的教学体系,从教学方法的先进性上、课程体系的系统性上和培养学生的实践性上不断进行教学模式的改革和创新,并将教学改革中的经验推广应用到软件工程课程组体系中,从而促进整个软件工程课程组的全面提高,进而推动软件工程人才培养质量的提高。
参考文献
[1] 刘欣.新建本科院校特色专业建设策略研究[D].兰州:西华师范大学,2020.
[2] 姜桂洪.以新工科为指导的软件工程专业毕业设计教学模式建设[J].科技资讯,2019,17(3):247-248.
[3] 郭晓梅,胡丽霞.面向新工科的应用型教学模式探讨[J].科技资讯,2019,17(33):154-155.
[4] 黄亦柔.软件行业技术人员能力模型研究[D].长春:吉林大学,2020.
[5] 杨国军,郑英.《软件需求分析》应用工程化教学改革与实践[J].计算机产品与流通,2020(6):235.
[6] 宝勒尔图雅(Erdenebileg Bolortuya).中蒙教育学硕士研究生课程比较研究[D].哈尔滨:哈尔滨师范大学,2020.