1、电脑与电信(1)软件工程知识点多且分散,学生很难建立起课程的整体知识体系2 软件工程方法学课程教学现状软件工程方法学课程围绕软件工程的理论和实践,涉及相当多的知识点。在以往的教学过程中,主要是以教师在课堂上讲解概念和原理为主,并配套课程设计、大作业等形式进行软件工程实践。该课程一般采用的考核方式是闭卷考试。通过对以往学生考试成绩得分情况的分析,结合所授学生的真实反馈,概括出学生在学习本课程中主要存在的问题有以下两点:1 软件工程方法学课程的重要性软件工程方法学课程内容多,内容理论性强,且学1时有限。以齐治昌主编的软件工程第4版为例,共16个章节,但高校一般安排本课程40学时。在有限的教学时长前
2、提下,如何让学生建立起学科知识的全貌,是对任课老师的一大考验。就软件工程方法学这门课程来讲,通篇其实围绕软件工程的三要素:方法、工具和过程,按照软件生命周期的各个阶段进行展开。从系统定义、软件需求调研、需求分析、概要设计、详细设计、软件实现,到软件测试、软件维护、软件项目管理,对每个阶段的刻画方法、工具和过程都做了详细的介绍。如在需求分析阶段,是选择结构化分析方法还是面向对象的分析方法,基于结构化分析工具,如数据流图、数据字典来描述;还是基于统一建模语言UML,通过用例图、类图来刻画。通过本课程的学习,学生预期应能掌握软件生命周期各阶段工作流,并对将来从事软件开发打下良好的理论基础。但学生在学
3、习的过程中,往往无法建立起整体的知识体系,过多的知识点使他们无从下手,很难整理出知识点前后的联系,亟需老师的引导和软件工程是研究软件开发和管理的一门工程科学,软件工程方法学课程是软件工程及相关专业学生的主干、必修课程。该课程围绕软件工程的三要素,对软件工程的最佳实践方法和现有方法论、软件过程模型、软件过程各阶段的描述工具等进行了全面、系统性的介绍,并涵盖软件度量、软件项目管理等相关内容,使学生不仅能够对软件工程的原理有所认识,而且能具备实际开发软件的各种技能。自软件工程概念诞生,尤其是20世纪90年代以来,随着网络技术和面向对象技术等的广泛应用,软件工程取得了突飞猛进的发展。软件工程已从计算机
4、科学与技术中脱离出来,目前软件工程学科是与计算机科学与技术、信息与通信工程、控制科学与工程等并列的工学学科。在教育部公布的普通高等学校本科专业目录中,软件工程专业是计算机类下属与计算机科学与技术、网络工程、信息安全等并列的专业。融合知识图谱的软件工程方法学课程教学设计段志应摘 要:软件工程是研究软件开发和管理的一门工程科学,软件工程方法学课程是软件工程及相关专业学生的主干、必修课程。当前的软件工程方法学教学过程中存在的主要问题是知识点多且分散、内容理论性强,学生很难建立起课程的整体知识体系。为解决该问题,提出融合知识图谱的课程教学方法,对软件工程方法学课程的理论知识进行了整理,提炼出其中的知识
5、点,通过知识图谱构建工具建立其知识点、知识章节之间的联系,并在教学的过程中加以应用。该方法不仅能够辅助教学,使学生对本课程的知识体系一目了然,而且可以利用该课程知识图谱进行问答自测等,有效地激发学生的学习热情,提高教学效果。(南京理工大学紫金学院,江苏 南京 210023)关键词:软件工程方法学;知识图谱;Neo4j;知识图谱教学中图分类号:TP311.5-4;G647.38 文献标识码:A 文章编号:1008-6609(2023)01-0065-05作者简介:段志应(1992),女,河南新乡人,硕士,工程师,研究方向为大数据分析、数据挖掘、知识图谱。基金项目:江苏高校哲学社会科学研究项目,项
6、目编号:2021SJA2257。65DOI:10.15966/ki.dnydx.2023.z1.008电脑与电信3 软件工程方法学课程知识图谱的构建在软件工程方法学教学过程中,通过构建课程知识章节和知识点的知识图谱,一方面方便教师与学生对课程整体脉络的把控,另一方面课程知识图谱的构建也有利于数字化资源的建设。由于软件工程方法学课程知识点多、内容理论性强,且学生很难建立起对课程的整体脉络,如果课上填鸭式地进行理论知识输出,很难激发学生的学习兴趣和热情。教师在授课的过程中,需要结合实际案例,引导学生对理论知识的应用案例进行理解和思考。知识图谱的概念自2012年由谷歌提出,在工业界和学术界得到了广泛
7、的发展和应用。知识图谱是一种比较通用的语义知识的形式化描述框架,它用节点表示语义符号,用边表示符号之间的语义关系,这种统一形式的知识描述框架非常有利于知识的分享和利用,且便于计2算机系统的存储、检索和语义计算。(2)软件工程方法学相关知识理论性强,很难激发学生的学习兴趣知识图谱是以结构化三元组的形式来存储现实世界中的概念、实体以及实体之间的关系。三元组由头实体h、尾实体t和它们之间的关系r组成。其中,关系也可以是属性,此时尾实体则为头实体的属性值。3.2 软件工程方法学课程知识建模为了解决软件工程方法学课程目前的教学问题,一种解决途径是通过思维导图,对课程的章节知识、知识结构进行表征。如图1所
8、示,该思维导图是对软件工程过程这一章节内容的架构描述。思维导图使学生能够一目了然课程的全貌,以及不同章节、知识点之间的前后联系,先整体后局部,帮助学生构建起课程整体的知识体系,并方便学生课后的复习回顾。然而,思维导图是静态的,是以层级关系体现概念,当希望以具体的某个知识点来动态展开其结构和关系时,知识图谱是一种更好的解决方案。3.1 知识图谱的基本概念教学方式的设计优化。知识图谱按照研究内容,可大体分为通用知识图谱和领域知识图谱。通用知识图谱如WordNet语言知识图谱,ConceptNet、HowNet常识图谱,DBpedia、Wikidata等百科知识图谱。领域知识图谱是针对某一特定领域构
9、建的知识图谱,如音乐知识图谱、药物知识图谱、电商知识图谱等。相较于通用知识图谱,领域知识图谱的知识覆盖范围3小、知识深度更深,对知识精度也要求更高。知识图谱构建的一般步骤是:知识建模、知识获取、知识融合、知识推理、知识管理和应用。其中知识获取主要包括实体抽取、属性抽取、关系抽取和事件抽取等。知识图谱构建常用的工具有Protg、OntoEdit、Neo4j等。其中,Neo4j是一种开源的NoSQL图数据库,不仅支持知识框架的构建,而且还提供了专门的知识存储和检索方案。知识建模的核心是构建本体来对目标领域进行描软件工程过程划分、各阶段任务、各阶段的输入和输出系统定义软件定义可行性研究需求分析软件生
10、命周期总体设计详细设计软件开发编码测试2.软件工程过程软件运行维护维护定义、分类瀑布模型快速原型模型增量模型螺旋模型喷泉模型面向复用的开发模型(基于构件的过程模型)统一软件开发过程摸型RUP敏捷摸型极限编程软件过程模型应用型原型抛弃型原型掌握各模型的特点、适用场景图1 软件工程过程章节内容思维导图66电脑与电信为对课程知识点进行全面梳理,数据源的选择非常重1要,需结合多本教材,取其精化,综合而成。齐治昌主编的软件工程第4版内容较全面,但其对结构化分析和设计方法内容做了精简。虽然目前面向对象方法是主流,但作为一门概述性的课程,有必要对软件工程方法学4的全貌进行介绍。因而,结合了郑人杰主编的软件工
11、程概论第3版,该教材对结构化分析设计方法进行了专5门讲解。同时,参考了吕云翔编著的软件工程理论与实践,该教材提供了完整的项目案例。实体之间的逻辑关系定义为5种:前序、后继、包含、相关、同义。关系主要体现在知识章节和知识章节之间、知识章节和知识点之间、知识点和知识点之间。对这5种关系的说明如下:知识点有属性。但这里的属性是指该知识点要求学生掌握的要点,并不包括具体的属性值。如对于“软件”知识点,其属性要点包括:定义、特点、分类、发展、质量要素和安全保护等。基于选定的数据源,对软件工程方法学的知识进行综合梳理,结合教学经验,整理为14个知识章节。从人才培养目标和教学大纲出发,对每个章节的知识点进行
12、梳理,构建课程的知识图谱体系架构,主要包括如下单元:(1)实体述,需要在本体中定义出知识的类别体系、类别下所属的概念和实体,以及它们之间的语义关系。针对软件工程方法学课程,需要结合该领域需求设计本体。本课程知识图谱构建的主要目标是为了方便学生对软件工程方法学的理论知识点、知识章节之间的关联关系有整体上的认知,并不聚焦于概念细节。(2)关系有两种实体,一种是知识章节,另一种是知识点。知识章节包含知识点。前序、后继:这两种关系主要是在知识章节之间,从章节粒度表示学习知识时的先后顺序,例如:知识章节“软件工程概述”是知识章节的“软件工程过程”的前序章节,“软件工程过程”是“软件工程概述”的后继章节。
13、包含:该关系体现在知识章节和知识点之间、知识点与知识点之间,表示一种层级关系。例如:知识章节“软件工程过程”包含知识点“软件过程模型”,知识点“软件过程模型”包含知识点“瀑布模型”。相关:该关系体现在知识点和知识点之间,表示这两个知识点具有相关性。例如:知识点“需求”与“干系人”相关。同义:该关系体现在知识点和知识点之间,表示这两个知识点是同一含义。例如:知识点“判定树”和“决策树”表示的是同一含义。知识章节、知识点实体及它们之间的关系如图2所示。3.3 软件工程方法学课程知识图谱构建为了方便对课程知识图谱的构建、数字化存储、可视化显示和查询应用,选择使用Neo4j图数据库。参考6Neo4j图
14、数据库官方文档给出的图谱构建建议,其中一条是“要对问题建模”,即:首先考虑希望图谱解答什么问题,从问题出发去构建图谱。构建课程图谱的本质是解决学生对课程整体知识架构的建立问题,因而可以尝试从学生学习的视角来提出问题,如:软件危机这个知识点需要掌握的要点有哪些?软件危机属于哪一章节的知识点?软件生命周期包含哪些阶段?对这些问题类型进行整理,结合教学经验,综合所选的三本教材中进行实体和关系抽取,将抽取后的结构存储在CSV文件中。构建的CSV文件包括7个:知识点文件、知识章节文件、知识章节-知识章节关系文件、知识章节-知识点包含关系文件、知识点-知识点包含关系文件、知识点-知识点相关关系文件、知识点
15、-知识点同义关系文件。之后再将CSV文件通过Cypher命令LOAD到Neo4j图数据库中。构建后的课程知识图谱全貌如图3所示,共212 个实体,251个关系。其中:14个知识章节,198个知识点。图中红色节点表示知识章节,蓝色节点表示知识点,节点之间的连线表示它们之间的关系。知识点知识点知识点知识点知识点知识点知识点知识章节知识章节知识章节包含包含同义相关前序章节后继章节同义图2 软件工程方法学知识章节和知识点关系说明67电脑与电信查询软件生命周期包含哪些阶段,Cypher语言查询命令如下,查询结果如图4所示。MATCH(s:知识章节)-rel:包含-(:知识点名字:软件危机)MATCH(:
16、知识点名字:软件生命周期)-rel:包含-(c:知识点)通过课程知识图谱,可以解答之前提出的问题。在Neo4j上进行查询需要用到Cypher语言,该语言类似于关系型数据库的SQL语言。如查询软件危机这个知识点属于哪个章节,Cypher语言查询命令如下,查询结果为“软件工程概述”。RETURN s充分利用知识图谱可视化、可交互、形象化的特性,调动学生课堂学习的积极性,加深其学习印象。基于构建好的软件工程方法学课程知识图谱,可将其融入课堂教学应用,包括知识图谱教学、知识图谱自主学习、知识图谱智能问答等,解决现有教学过程中的问题,帮助学生加深对课程内容框架的梳理和掌握。4.2 知识图谱助力自主学习4.1 知识图谱可视化教学除了教师课堂授课,课后学生也可以充分利用课程知识图谱进行自主学习。学生可以结合自身知识掌握情况,利用知识图谱进行查漏补缺,利用知识章节、知识点之间的顺序和依赖关系,不断构建自己的知识框架,提高学习效率。4.3 基于知识图谱的智能问答利用构建好的软件工程方法学课程知识图谱,在教学场景中的一个典型应用就是智能问答。智能问答是自4 融合知识图谱的软件工程方法学课程教学设计针对软件