公开/公告号CN112883122A
专利类型发明专利
公开/公告日2021-06-01
原文格式PDF
申请/专利权人 北京控制工程研究所;
申请/专利号CN202110163577.4
申请日2021-02-05
分类号G06F16/28(20190101);G06F16/26(20190101);G06F16/35(20190101);G06F40/295(20200101);
代理机构11009 中国航天科技专利中心;
代理人张丽娜
地址 100080 北京市海淀区北京2729信箱
入库时间 2023-06-19 11:11:32
技术领域
本发明涉及一种基于多视图模型的嵌入式软件知识的表示方法及管理系统,该方法能将多源异构的软件资产进行统一化描述,能提高对软件知识的组织管理能力。
背景技术
当前嵌入式软件领域积累了大量的软件资产,主要包括:软件需求规格说明、软件设计报告、软件测试报告、源代码等,其中蕴含了海量、丰富的嵌入式软件知识。但由于软件资产库中的数据是多源异构的,格式主要包含:自然语言文本、流程图、表格、源代码、注释等,很难将不同类型的数据整合起来以支持软件复用开发。因此,如何将多源、异构的嵌入式软件数据有效的组织整合起来是一个亟需解决的问题。
现有的软件资产管理方法,通常是利用关系型数据库将不同形式的数据分类并进行简单罗列,形成若干个软件资产库。目前嵌入式软件也是利用这种方法进行管理的,无法全面、充分的表达软件知识的真实含义,不支持对软件在语义层面上进行知识检索,忽略了不同类型数据间存在的显式或隐式关系,不利于对嵌入式软件进行高效的复用开发。
为了将多源、异构的嵌入式软件资产组织起来,提高软件的知识管理效率,对软件复用开发提供支持,需要设计一种面向嵌入式软件的知识表示方法,并实现一个嵌入式软件知识管理系统。
发明内容
本发明解决的技术问题是:针对现有的嵌入式软件知识表示及管理效率不高、软件重用能力不足的问题,提出了一种基于多视图模型的软件知识表示方法及管理系统,该方法及系统针对多源、异构、数量大的软件资产特点,面向软件研制开发中各流程的软件知识需求,目的是解决软件知识之间的关联性弱、检索难度大、复用能力低、软件知识管理效率不高等问题。该方法首先以嵌入式控制软件为基础构建一个软件本体模型,按照软件本体模型中的约束从软件资产中抽取相应的软件实体、实体属性及实体间关系,将抽取到的知识存入软件知识管理系统,提高了嵌入式软件的知识管理效率。
本发明的技术方案是:
一种基于多视图模型的软件知识表示方法,该方法步骤包括:
第一步,软件实体获取模块通过对嵌入式软件资产进行自然语言文本识别,获取软件知识实体,在实体获取的过程中,要从需求规格说明、设计报告、测试报告中分别获取软件的需求实体、代码实体和测试实体;
第二步,实体属性提取模块通过对每类嵌入式软件资产进行文本分割,提取每类软件知识实体的实体属性,软件资产包括3类:当资产为需求功能点时,所述的软件实体为软件需求实体;当资产为代码模块时,所述的软件实体为软件代码实体;当资产为测试用例时,所述的软件实体为软件测试实体;
第三步,实体间关系抽取模块通过软件知识实体和软件实体的属性,抽取软件实体间的关联关系,软件实体间共存在6种关系,分别为:需求实体间关系、代码实体间关系、测试实体间关系、需求与代码实体间关系和需求与测试实体间关系;
第四步,判断当前构建的软件本体模型是否完全符合本体评价标准,若不符合,则返回第一步,对软件知识实体、软件实体属性和软件实体间关系进行重新定义;若符合,转入下一步;
第五步,对每类软件实体及软件实体间关系构建一个实体视图模型,对不同类实体间的关系构建实体关联模型;
第六步,通过嵌入式软件知识抽取,获得嵌入式软件多视图知识表示模型。
一种基于多视图模型的软件知识管理系统,该系统包括软件本体模型构建模块、软件实体获取模块、实体属性提取模块、实体间关系抽取模块、软件知识管理模块、软件知识库更新模块和软件知识检索模块;
软件本体模型构建模块用于从嵌入式控制软件中自动识别与提取软件本体模型视图信息;所述的模型视图信息是指软件本体模型中表示的软件资产的需求功能点、代码模块和测试用例;每个模型视图都由软件实体、实体属性、实体间关系构成;提取到的模型视图信息由多视图模型中的图结构予以存储;
软件实体获取模块用于进行命名实体识别,从文档格式的软件资产中抽取相应的软件实体,嵌入式软件实体包括3类:软件需求实体、软件代码实体和软件测试实体,其中,软件需求实体代表了嵌入式软件中某项任务或功能的抽象化描述及其相关属性概念;软件代码实体代表了嵌入式软件中具有某项功能、或实现某种操作的代码片段及其相关的属性信息;软件测试实体代表了嵌入式软件中针对某类功能设计的某项测试用例;
实体属性提取模块用于从嵌入式软件实体文本信息中提取属性,软件实体属性能从多刻面对该实体进行描述,不同类型的软件实体具有不同的属性集合,所述的软件实体属性包括需求实体属性、代码实体属性和测试实体属性;
当软件实体为需求实体时,所述的软件实体属性集合={需求名,功能点编号,需求描述,调用条件,输入,输出};
当软件实体为代码实体时,所述的软件实体属性集合={代码名,代码功能,输入参数,输出参数,代码实现};
当软件实体为测试实体时,所述的软件实体属性集合={测试项目名称,项目对应功能项,测试项目标识,测试类型,操作步骤,期望结果};
实体间关系抽取模块用于提取嵌入式软件实体间的关联关系,从软件资产文本、已抽取的软件实体和软件实体属性中识别软件实体间的关联关系,软件实体间共存在6种关系:需求实体间关系R-R、代码实体间关系C-C、测试实体间关系T-T、需求与代码实体间关系R-C和需求与测试实体间关系R-T;
当软件实体间关系为需求与需求实体时,所述的需求实体间关系集合R-R={包含关系,组成关系,依赖关系,互斥关系};
当软件实体间关系为代码与代码实体时,所述的代码实体间关系集合C-C={循序关系,协作关系,调用关系,依赖关系};
当软件实体间关系为测试与测试实体时,所述的测试实体间关系集合T-T={同组关系};
当软件实体间关系为需求与代码实体时,所述的需求与代码实体间关系集合R-C={一对一实现关系,一对多实现关系};
当软件实体间关系为需求与测试实体时,所述的需求与测试实体间关系集合R-T={一对一对应关系,一对多对应关系};
软件知识管理模块用于存储嵌入式控制软件多视图模型信息,并对软件知识模型进行管理,所述的软件多视图模型由两类模型组成:软件实体视图模型和软件实体关联模型,软件实体视图模型存储的是一类软件实体、实体属性及该类软件实体的内部关系,而软件实体关联模型中存储的是不同类型软件实体间的关联关系;所述的软件实体视图模型具体包括需求实体视图、代码实体视图和测试实体视图;所述的软件实体关联模型具体包括需求与代码实体关联模型和需求与测试实体关联模型;
软件知识库更新模块用于对存储管理系统中的软件多视图模型进行增、删、改等操作,利用数据库查询语言形成可执行脚本,实时更新软件知识管理模块,当出现不当操作(如删除或修改不存在的节点或关系)时,模块会自动进行报错及定位;
软件知识检索模块用于接收用户输入的检索条件,并将检索条件转化为逻辑查询语句,与软件知识管理模块中的信息进行关联词匹配,并展示结果。
本发明与现有技术相比的优点在于:
(1)本发明公开了一种基于多视图模型的嵌入式软件知识表示方法,对嵌入式控制软件资产进行分析,定义了控制软件本体模型,其中包括软件知识实体、实体属性,及实体间关系;通过本体评价标准对软件本体模型进行评价;通过构建视图模型来描述每类软件知识实体、实体属性,以及该实体间的内部关系,得到三个嵌入式软件视图模型;通过构建实体关联模型来描述不同软件实体间的关系,得到两个嵌入式软件实体关联模型;它们共同构成了嵌入式软件多视图知识表示模型,提高了软件知识管理效率。
(2)本发明公开了一种基于多视图模型的嵌入式软件知识管理系统,该系统能够将多源、异构的嵌入式软件资产进行统一表示,使传统基于关系型数据库的资产管理模式转化为基于多视图模型的软件资产可视化管理模式,解决了嵌入式软件知识管理效率不高的问题,同时还利用多视图模型建立起了异构软件数据源间存在的显式和隐式关系,能在语义层面上对软件知识库进行高效的查询,提高了嵌入式软件的重用能力。所述方法能够直接应用于嵌入式软件领域,从而实现软件资产库的智能化管理。
附图说明
图1为本发明软件知识表示方法的流程图;
图2为本发明软件知识管理系统的组成示意图。
具体实施方式
下面以某嵌入式控制软件知识检索为实施例,对本发明的具体实施方式作进一步说明。
如图1和图2所示,一种基于多视图模型的嵌入式软件知识管理系统,该系统包括软件本体模型构建模块、软件实体获取模块、实体属性提取模块、实体间关系抽取模块、软件知识管理模块、软件知识库更新模块和软件知识检索模块。
软件本体模型构建模块用于从控制软件中自动识别与提取软件本体模型视图信息;所述的模型视图信息是指软件本体模型中表示的软件资产的需求功能点、代码模块和测试用例;每个模型视图都由软件实体、实体属性、实体间关系构成;提取到的模型视图信息由多视图模型中的图结构予以存储。以某控制软件为例,该软件采用周期驱动的多模式管理运行方式,在每个控制周期内,软件依次执行遥控遥测、轨道计算、模式控制、系统管理任务,并在上述任务执行时间空隙内执行空闲任务。
软件实体获取模块用于进行命名实体识别,从文档格式的软件资产中抽取相应的软件实体,软件实体包括3类:软件需求实体、软件代码实体和软件测试实体,其中,软件需求实体代表了软件中某项任务或功能的抽象化描述及其相关属性概念;软件代码实体代表了软件中具有某项功能、或实现某种操作的代码片段及其相关的属性信息;软件测试实体代表了软件中针对某类功能设计的某项测试用例。以某控制软件需求实体获取过程为例,每个需求功能点为一个软件需求实体,抽取结果为“预编程模式”。
实体属性提取模块用于从嵌入式软件实体文本信息中提取属性,软件实体属性能从多刻面对该实体进行描述,不同类型的软件实体具有不同的属性集合,所述的软件实体属性包括需求实体属性、代码实体属性和测试实体属性。以某控制软件需求实体属性提取过程为例,每个需求功能点的描述对应了各个属性,抽取结果为:“需求名”=“预编程模式”,“功能点编号”=“XX_FREQ009”,“需求描述”=“自主控制电机运动”,“调用条件”=“软件处于预编程模式,即flgAUTO==TRUE”,“输入”=“电机控制状态字、预编程子模式字、钻取采样故障标志”,“输出”=“电机控制状态字、预编程子模式字”。
实体间关系抽取模块用于提取嵌入式软件实体间的关联关系,从软件资产文本、已抽取的软件实体和软件实体属性中识别软件实体间的关联关系,软件实体间共存在6种关系:需求实体间关系R-R、代码实体间关系C-C、测试实体间关系T-T、需求与代码实体间关系R-C和需求与测试实体间关系R-T。以某控制软件需求实体间关系抽取过程为例,需求实体间的关系隐含在软件需求实体属性中,抽取结果为:“程控功能-包含->星箭分离程控”;“程控功能-包含->正常模式程控”;“星箭分离程控-互斥->正常模式程控”。
软件知识管理模块用于存储控制软件多视图模型信息,并对软件知识模型进行管理。
软件知识库更新模块用于对存储管理系统中的软件多视图模型进行增、删、改等操作,利用数据库查询语言形成可执行脚本,实时更新软件知识管理模块,当出现不当操作(如删除或修改不存在的节点或关系)时,模块会自动进行报错及定位。
软件知识检索模块用于接收用户输入的检索条件,并将检索条件转化为逻辑查询语句,与软件知识管理模块中的信息进行关联词匹配,并展示结果。以查询“姿态确定”包含哪些子需求任务为例,输入Cypher查询语句:
MATCH
path=(r:Requirement_Entity{requirement_name:'姿态确定'})-[:`包含关系`*]-(sub_r)
RETURN path
返回结果(表格形式)为:
本发明未详细说明部分属本领域技术人员公知常识。
机译: 一种信息建模,表示和集成的信息进程与不同型号的知识表示的无需使用正式语言的方法,这是一种基于结构化数据的有限集合来呈现描述这些对象的半结构化数据的方法
机译: 用于信息建模的方法,并且代表不同知识表示模型的信息过程的任意对象,而无需集成和正式语言,以及用于基于结构化数据的有限集合描述所述对象的半结构化数据的方法
机译: 用于信息建模的方法,以及不同知识表示模型的信息过程的任意对象,而无需集成和正式语言,以及用于基于结构化数据的有限集合描述所述对象的半结构化数据的方法