APP下载

特色化实践项目驱动的软件需求工程教学探索

2021-05-29王文娟邹一波王振华

实验室研究与探索 2021年4期
关键词:涉海海洋案例

宋 巍,贺 琪,王文娟,邹一波,王振华

(上海海洋大学信息学院,上海 201306)

0 引言

2017 年教育部、财政部、国家发展改革委印发《关于公布世界一流大学和一流学科建设高校及建设学科名单的通知》,面对“双一流”建设带来的机遇和挑战,作为特色化一流学科建设高校,如何充分依托优势学科,培养具有优势学科与信息学科交叉背景的复合型领域信息化人才,是当前特色院校软件工程专业建设和改革的首要任务。

软件需求分析与设计是软件工程专业中最重要的基础课程之一,是软件工程学科体系建设中必不可少的环节,为软件工程专业方向学生后续课程(例如软件项目开发、测试和管理等)的学习奠定重要基础。此外,在实际软件工程应用项目中,需求分析与设计也是决定该软件项目成功与否的重要因素之一。据相关统计,需求阶段产生的软件项目问题,在维护阶段将造成100%~200%成本增加,并导致约15%的软件项目失败。因此,软件工程的需求分析与设计课程建设对于培养应用型软件工程人才,具有重要的社会意义和实际价值。

基于上述原因,团队长期致力于将海洋领域知识融入信息专业核心课程教学,定期开展不同学科背景教师间的教学研究活动,通过对多个实际涉海项目的分析和反复讨论,针对软件需求分析教学,提出驱动“全过程实践”的课堂教学方法和“全过程引导”的软件需求分析综合实践方案,为培养具有特色实践经验的软件需求工程师人才,以及交叉复合型的海洋信息化高水平紧缺人才打下坚实基础。

1 软件需求分析的教学研究现状

软件需求工程作为一门用工程化方法研究高质量软件需求开发和管理的学科,其自身特性决定了该学科知识具有高度的抽象性[1]。教学中,大量概念、需求获取和建模方法等内容,使得学生易感枯燥,失去学习兴趣。因此,很多教育工作者对软件需求分析教学方法进行了改革。

案例驱动的教学方法在工程类的人才培养中,起到了重要的作用[2-3]。张纯容等[4]提出采用“问题与案例驱动的课内实践教学分级模式”来培养工程师所需的能力及职业素质。秦放等[5]从教学内容、教学方式、课程考核等方面进行探讨,提出案例驱动与项目导向结合的软件工程课程教学模式。

以案例驱动的教学法在软件需求分析或软件需求工程中得到广泛应用,并取得较好的教学效果。例如,刘伟等[6]将案例驱动教学法引入“软件需求工程”课程的课堂导入、内容讲解和实验教学等教学环节,结合实践与理论,合理选取和设置教学案例,发挥学生学习的主动性及创造性,提高教学质量。文献[7-9]中则采用教学案例讨论的方法,改进了课程的教学内容与方法,增加了课程中实践的比重,有效提高学生的学习热情,提升了教学质量。孙红梅等[10]提出了面向个性化案例的软件工程类课程的网络教学平台建设的方案。陆向艳等[11]提出基于专题教学的软件工程实践教学方案,并以“原型法需求分析实践”为专题进行实践教学,进行了相关课程教学目标和教学考核的详细设计,实现了核心教学内容,教师对各教学环节的跟踪指导及成绩评定的精细设计,并得到学生的好评。但是,以上研究均缺乏有新意的、面向行业需求的实践案例。

为增强教学互动,陈丹琪等[12]探讨了建构主义理论,并将相关情境、协作、会话和意义建构4 大要素融入需求工程教学中,改变教学互动方式,激励学生主动交流和思考。在软件需求工程实践与考核环节中,角色轮换或角色扮演等策略被广泛使用[1,13-16]。学生分组,组间相互进行需求提出、需求获取、需求评审,学员分别扮演用户方、开发方、评审者等不同角色,促进学员不同技能与交流协作能力的培养。师生和学生间的交互有助于软件需求工程抽象知识的理解和掌握,应在软件需求工程/软件需求分析教学中进一步加强,需要在教学中设计更具体、更明确的交互措施。

在教学管理和质量评审方面,李尤丰等[13]借助统一软件数据管理系统(USDM)的“需求设计管理工具”,对学生实践项目的准备、启动、展开、定型、评审等5 个环节使用软件成熟度模型(CMMI)标准管理,并进行量化考核。康雁等[14]引入CMMI 质量保障体系和业界标准,保证需求文档撰写质量和实践需求管理的各个阶段。然而,除了以标准化管理量化考核或增强需求文档质量,更重要的是如何引导学生认识和修正需求分析过程中的问题。

综上所述,当前软件需求工程的教学仍存在以下主要问题:

(1)缺乏具有行业特色且有新意的实用型案例,不利于特色领域信息人才的培养。学生选课系统、在线订餐、网上书店等经典案例不断出现在多个计算机教学课程中,很多学生对此缺乏兴趣,需求开发存在很大局限性[15]。

(2)孤立小型案例,案例间的关联性不强,缺乏系统性和完整性。大部分实用案例都与较复杂的信息系统相关,系统内容的相互关联如何在教学案例中加以体现,是现阶段案例驱动教学改革的重点。

(3)需要强化教学互动的具体设计,加强对学生实践全过程的引导。软件需求分析的案例和项目,开放性比较强,适当的教学互动有利于控制知识点的实践效果。

2 特色项目驱动的软件需求分析教学设计

2.1 教学目标

我校软件工程专业的教学目标是“培养适应当前社会信息化发展水平,掌握计算科学和软件过程的基本理论、方法和技能,接受良好、系统的工程实践训练,具备熟练运用软件工程专业知识分析、解决、管理复杂工程问题的能力,能适应多学科、多行业需求,尤其是海洋、农业、空间信息背景的软件工程高级应用型人才”。与该教学目标相匹配,将软件需求分析课程的教学目标和任务定位于:培养掌握基本理论和方法、具备实践经验的软件需求工程师等领域人才,以及满足海洋行业需求的海洋信息化特色高水平紧缺人才。

通过引入海洋信息化软件项目作为实际案例,全过程贯穿并指导软件工程需求分析的教学与实践环节,将授课内容各个环节与实践任务紧密结合,激发学生的学习主动性和创造性,提高学生对软件需求分析知识的理解力和软件需求分析综合实战能力。本教学设计是海洋特色高水平大学建设背景下软件工程专业新型教学模式的初步探索。

2.2 教学设计与内容

围绕教学目标,确定教学活动的实施包括以下3个阶段。

(1)海洋特色软件项目的遴选与再分析。以涉海类项目案例驱动的软件需求分析,首先要完成软件项目的遴选。根据软件工程需求分析与设计课程目标、时间安排以及软件工程专业本科生的知识技能和理解能力,合理选择海洋特色软件项目案例的难度、规模、数量。

为此,调研了学校2014~2017 年间在海洋与信息交叉领域完成的软件工程项目,共12 项,从中选择适合的项目作为案例。项目选择依据两大原则:①项目材料相对齐全。需收集的各类项目资料包括:原始背景资料、项目的软件需求规格说明文档、会议纪要、各类硬数据、项目成果等;②项目难度适中。项目周期太长、涉众范围太广的项目,一般太复杂不适宜教学任务;而执行时间太短、涉众单一、功能简单的项目一般不需要开展软件工程需求分析。因此,选择周期6~12 个月,涉众3~6 类的项目。最后,对于选定的项目,进一步根据教学内容在需求量上进行适当删减,对于部分资料不足的项目,积极与项目相关涉众开展了面谈和集体访谈,获取需求,并由教师开展需求分析活动,确保最终的需求说明文档具备优秀需求特性。

通过以上过程,选定了两个涉海类项目:海洋环境监测平台和海洋经济调查数据管理系统。这两个系统前期项目需求分析较完备,难度适中,且各自具有不同的侧重点。海洋环境监测网平台以各类环境监测的业务管理为主要需求,涉及多类型监测内容的处理与展示,适合在课堂教学环节中使用;海洋经济调查数据管理系统以数据管理为主要需求,涉及多种数据库建模和关联关系的分析、数据的查询、输入和输出等,与学生数据结构与数据库原理等课程相关性强,适合在学生自主实践中使用。由于这两个系统都比较庞大,用于教学时对原系统中功能模块的数量进行了删减,将业务级需求控制在3~4 项,便于开展教学实践。

(2)海洋特色软件项目驱动的“全过程实践”教学措施。海洋特色化项目确定后,需要解决的问题是如何围绕软件工程需求分析活动的全过程,将海洋信息化实际项目及软件工程需求分析与设计课程的教学内容真正结合起来,设计最适合的教学情境,最大化教学效果。

教学团队从3 个方面制定相关措施。①整理选定的海洋领域软件工程项目的需求分析材料,根据授课内容的不同阶段进行分解,使其与教学活动相匹配,保证对教学内容的全覆盖和完整性。②对于理论教学中的重点和难点部分,从选定的涉海项目中提炼关键问题,作为教学中与学生交互活动的主题,让学生带着问题思考、讨论、总结。③授课时结合准备的材料和交互主题设计,以海洋环境监测平台软件项目的需求分析全程贯穿教学,边学边做,逐步开展对该项目的分析,激发学生的学习主动性和积极性,强化对课程知识点的理解。

以海洋环境监测网平台为例,针对各教学阶段的主要难点梳理出与之对应的项目内容和课堂交互的方式方法,如表1 所示。

表1 教学关键问题与案例项目材料和交互内容对照表

(3)以海洋特色化项目“全过程引导”的软件需求分析综合实践。与理论教学相辅相成,实践课程是学生深入理解和掌握需求搜集、分析、评审、变更管理等过程和技能的重要手段,同时也是培养学生动手实践能力、沟通交流能力和团队协作能力的有效渠道。通常学生以小组为单位开展软件需求项目的设计与分析实践,小组项目可以是自由选题也可是给定题目。这两种做法的利弊是:①自由选题的灵活性高、项目范围广,但小组项目各不相同,教师对学生自定义项目的准备不足,分析和指导可能不到位;②给定题目下教师能够对学生做出的项目分析给出比较准确、合理的指导,但题目往往不能与时俱进,学生对此缺乏兴趣。

在海洋特色化项目驱动下,将学生综合实践的项目选题范围确定为:1 个指定的海洋类软件工程项目(海洋经济调查数据管理系统)加自由选题。此外,以分角色扮演的组织形式开展综合实践。根据第1 阶段选定的海洋信息化项目(该项目未在理论教学中出现)指定1 个项目题目;每个小组各提出1 个合理的软件项目(项目的合理性由教师进行指导),作为项目候选库。此时,小组扮演的角色是软件需求方。由1 个小组自愿选择海洋类项目、其余小组选择非自己小组提出的项目,开展需求工程活动。此时,学生们扮演的角色是需求分析工程师。在学生开展需求分析活动的过程中,教师以这个海洋类项目为样本,通过检查、分析该项目各小组的分析活动和产生的需求分析文档,发现学生在开展需求分析各个阶段中出现的问题;并以此为例向所有学生进行讲解,从而引导学生了解如何正确开展需求活动及撰写需求文档,理解并解决自己项目中出现的共性问题。③在实践项目完成后开展需求评审活动。各小组此时扮演技术评审方,汇同需求方代表一起,对不相关的需求项目按照优秀需求的特性,从需求的质量和数量方面进行评审,给出评审意见并由教师做最终复核。

在整个实践过程中,特色化涉海软件项目起到积极引导作用,既保证了教师能够对学生需求分析活动开展的有效把握,又增强了学生的主动性和积极性。同时,每小组分别扮演了3 个角色:软件需求方、需求分析工程师、技术评审方。这种分角色扮演的过程真实模拟了软件需求开发过程中的情境,使学生充分体验不同角色间产生的冲突、协调与协作,深入理解软件需求工程各方面的活动和方式方法。

3 教学效果分析及改进策略

经过一个学期的软件需求分析课程教学实践,采用问卷形式对以上改革的实施效果进行了调查,并结合学生在实践过程中的作业完成情况进行了效果分析。调研主要包括3 方面的内容:学生对软件需求分析知识的了解和掌握程度、海洋特色化项目案例在本教学中的适用情况、学生对融入海洋特色的软件需求分析教学的态度和建议。

调查问卷包括12 个单选问题和2 个开放式问题。调查对象是60 名参加本课程的本科二年级软件工程专业学生,共收回49 份有效问卷,其中男生33 名,女生16 名,男女生比例与本专业学生的男女比例一致。以下对问卷调查的结果进行分析。

3.1 学生对软件需求分析的理解度

针对学生在授课前后对软件工程需求分析的了解程度进行了对比分析,如图1 所示。可见,在开始本课程前,只有约20%的学生对软件工程的需求分析有点了解,约39%的学生不太了解或完全不了解;完成课程后,了解软件需求分析的学生比例增加到81%以上。图2 所示是通过本课程的学习学生对软件需求分析知识掌握程度的自我评价。总体来看,超过67%的学生对知识的掌握度可以达到60%以上,其中,约8%的学生可以达到80%以上,约30%的学生达到70%以上。仍有约16%的学生认为自己的掌握程度在51%~60%,其余16%的学生的掌握程度在50%以下。

图1 完成本课程前、后学生对软件需求分析的了解程度对比

图2 学生认为自己对软件工程需求分析知识的掌握程度

整体来讲,大部分学生认为自己从课程中受益。学生对软件需求分析知识的掌握程度远低于其对课程知识的了解程度,有大约32%的学生认为自己对课程的掌握程度达不到60%。这种比例符合软件需求分析课程的特点。软件需求分析理论知识比较抽象,软件项目的需求分析本身又具有迭代性、阶段性等特点,短时间内的小规模项目实践对于知识的完全掌握难度很大。

学生的作业情况却表明他们对知识的掌握程度明显高于上一届同学。由于教学改革前一届学生未进行同等调查,无法直接对比调查结果,从学生提交的软件需求分析文档质量方面进行了比对。结果发现,学生所提交的项目文档的总页数平均增加了5.5 页,用户需求和系统级需求的数量上平均增加4.7%,需求的错误率则下降了3%;同时,需求分析建模的模型复杂度(例如,模型中对象的数量和对象间的关系或消息数量)也明显增加。因此,可以认为在海洋特色化项目驱动下软件需求分析的教学效果有明显提升。

3.2 海洋特色化项目案例的难易度分析

以案例贯穿软件工程需求分析课程的重要性得到普遍认可,有85.7%(42 人)的学生认为案例学习非常重要或重要,6 名同学认为一般,只有1 名同学认为不重要。对授课过程中使用的所有案例的总体难易程度和涉海类项目案例的难易程度分别进行了调查,结果如图3 所示。可见,总体案例的难度以适中为主,成正态分布,大部分同学通过对基础知识的学习和自己的独立思考,基本上可以完成案例的分析。而涉海类案例相对偏难,超半数(57%)同学认为难度适中,约39%的同学认为有一定难度,但通过老师的讲解可以理解,有4%(2 名)同学认为太难。“有一定难度”与预期基本一致。由于实际软件工程项目远比简单的通用案例(如,图书管理系统)要复杂,适当地增加案例难度更能体现真实世界的需求,并且激发学生的主动思考,提高其解决问题的能力。但是,由于“有一定难度”的比例较高且有个别同学认为涉海类项目案例的难度太高,在下一轮教学中将对案例做适当调整,以更好地适应学生的理解能力。

图3 案例的难易度分析

关于是否在课程中增加涉海类案例,46.94%的学生建议保持现状,同等比例的学生认为可以适当增加涉海类软件工程案例的,只有6.12%的学生认为应该减少涉海类案例。鉴于学生对涉海类项目的积极响应,在下一轮教学中拟适当增加实践课程中的涉海类案例项目,供学生实践课程中自由选择,以适应部分学生增加涉海类案例的需求。

3.3 学生对融入海洋特色的软件需求分析教学的态度和建议

调查显示,73.47%的学生认为作为以海洋学科为特色的学校,在本课程中引入涉海类软件工程案例符合专业培养目标。开放式问题中,学生们对如何更好地体现海洋特色提出了许多很好的建议,可以总结为以下3 项:

(1)涉海类需求项目与学生小组作业相结合:建议与学校海洋或水产与生命学院的学生或老师合作,了解目前海洋领域的实际需求,将其作为课程小组作业的内容。

(2)需求项目的分析与改进方案相结合:建议任课教师在课堂上将已完成的海洋信息化项目作为案例结合课程知识点进行多方面分析和讲解之后,让学生对已完成的项目提出改进方案,可以提高学生分析问题和掌握知识的能力。

(3)1 +3 案例组合:涉海类案例也不易过多,以免增加学生学习负担,建议以1 个大案例贯穿全课程,中间穿插3 个左右小的涉海类分析案例对重点知识进一步强化。

学生们的这些建议具有建设性,值得在今后的教学中不断尝试和改进。同时,学生们积极表达想法,也充分反映了对教学改革的认可和支持。

4 结语

将海洋特色化项目案例分析引入软件需求分析课程,提出驱动“全过程实践”的课堂教学方法和“全过程引导”的软件需求分析综合实践方案,为特色大学中软件工程专业建设和课程改革提供了参考,为多学科交叉复合型信息人才的培养提供了支持。

此外,通过教学实践也充分证明,学生对这种教学方式非常认可,认为在课程学习过程中,自身主动思考的能力加强了,通过讨论具体的海洋特色类项目案例,获得的知识比单纯教师讲授的内容更容易理解和记忆,同时小组合作完成任务也锻炼了每个学生表达思想、相互合作的能力,促进了合理学习习惯的养成,在学生中间形成了良好的学习氛围。让学生在分析实际案例的过程中,了解海洋信息化的主要流程,为学生未来适应海洋类信息化工作岗位打下了基础。

猜你喜欢

涉海海洋案例
案例4 奔跑吧,少年!
涉海翻译语言服务人才培养现状与问题研究①
战略管理导向下涉海企业全面预算审计体系研究
基于管理创新涉海企业投资审计运行机制研究
随机变量分布及统计案例拔高卷
爱的海洋
发生在你我身边的那些治超案例
第一章 向海洋出发
一个模拟案例引发的多重思考
首届“中国涉海类博物馆馆长论坛”在港顺利举办