本发明专利技术公开了一种基于模型的软件集成和完整性检测方法、系统及存储介质,所述方法通过根据仿真工具自动化生成代码的特征,直接从基于模型自动化生成的源代码中直接获取模型的输入输出接口的成员元素,将模型的自动化代码与控制软件其他部分的手工代码进行接口集成,提高了控制软件开发效率,并且不易遗漏模型的输入接口成员元素,提高软件质量;同时,本发明专利技术还可以通过获取集成后的输入输出数据元素表,与直接从自动化生成的源代码中读取的接口代码进行匹配,检查集成后的输入输出接口集成函数的输入输出元素的完整性,进一步提高集成后的软件的可靠性。成后的软件的可靠性。成后的软件的可靠性。
【技术实现步骤摘要】
基于模型的软件集成和完整性检测方法、系统及存储介质
[0001]本专利技术属于基于模型的控制软件开发
,特别涉及一种基于模型的软件集成和完整性检测方法、系统及存储介质。
技术介绍
[0002]当前,FADEC软件开发面临软件规模和复杂性不断增长、软件开发成本和可靠性之间的矛盾日益突出、软件适航认证日益迫切、更严格的安全性要求、更频繁的需求变更和软件升级、更苛刻的验证要求等诸多挑战。
[0003]进十年来,基于模型开发(MBD,Model
‑
Based Development)发展非常迅速,在汽车、轨道交通和航空航天等领域有了非常广泛的应用。当前采用MBD开发模式的发动机控制软件项目中,软件设计模型输入以结构体形式定义,项目的模型输入结构体层级多达5级,成员变量超过400个。在手工代码与MBD模型自动代码的集成过程中,必须对所有模型输入元素进行赋值,以确保模型正确运行,在多层结构和多数量的模型输入元素赋值中,一旦会出现输入接口赋值遗漏,则会影响到相应功能,形成缺陷,因此,MBD中接口集成的完整性极为重要。
技术实现思路
[0004]专利技术目的:本专利技术的目的是提出一种基于模型的软件集成和完整性检测方法,根据仿真工具自动生成代码的特征,直接从基于模型生成的源代码中获取各个层级模型的输入输出元素,将模型的源代码与手工代码集成,集成完整性高,且集成效率高。
[0005]本专利技术的另一目的是提出一种可以实施上述基于模型的软件集成和完整性检测方法的系统,以及存储有上述集成方法实例化的计算机程序的存储介质。
[0006]技术方案:本专利技术所述的基于模型的软件集成和完整性检测方法,包括以下步骤:
[0007]S1:基于仿真工具进行模型设计和仿真,并通过仿真工具的代码自动生成工具基于经过验证的模型自动生成的源代码;
[0008]S2:分析源代码的特征,结合软件集成开发需要,提取源代码中集成需要的源代码,形成可用于集成的简洁源代码;
[0009]S3:根据仿真工具自动生成源代码的特征,提取简洁源代码中各个层级的所有模型接口的成员元素;
[0010]S4:根据提取的所有模型接口的成员元素,将简洁源代码与手工代码集成,形成集成后的代码;
[0011]S5:获取集成后的代码中模型输入接口集成函数的输入输出数据元素表和源代码的接口代码,通过匹配算法,利用接口代码检查输入输出接口集成函数的输入输出元素的完整性。
[0012]进一步的,所述步骤S4中,手工代码与简洁源代码集成时,所有模型采用同层级平铺展开方式集成。
[0013]进一步的,所述步骤S3中,通过基于正则分析的递归算法,实现对简洁源代码中所有模型接口的成员元素的提取。
[0014]本专利技术所述的基于模型的软件集成和完整性检测方法,包括以下模块:
[0015]源代码分析模块:用于读取可视化仿真模型基于经过验证的模型自动生成的源代码,并根据软件集成开发需要,提取源代码中需要的源代码形成可用于集成的简洁源代码;
[0016]集成模块:用于根据仿真工具自动生成源代码的特征,提取简洁源代码中各个层级的所有模型接口的成员元素,并根据提取的所有模型接口的成员元素将简洁源代码与手工代码集成;
[0017]模型接口检查模块:用于获取集成后的代码中模型输入接口集成函数的输入输出元素和源代码的接口代码,通过匹配算法,利用接口代码检查输入输出接口集成函数的输入输出元素的完整性。
[0018]本专利技术所述的存储介质,存储有计算机程序,所述计算机程序被设计为运行时实现上述基于模型的软件集成和完整性检测方法。
[0019]有益效果:与现有技术相比,本专利技术具有如下优点:通过根据仿真工具自动代码生成的特点,直接从源代码中提取各模型接口的输入输出元素,实现快速自动化地将模型自动生成的代码与手工代码集成,提高控制软件的开发效率,且不易遗漏模型中的输入输出元素的赋值;同时还便于直接读取源代码的接口代码来匹配检查集成后代码的模型输入输出元素,保证集成后代码的完整性。
附图说明
[0020]图1为本专利技术实施例的基于模型的软件集成和完整性检测方法的流程示意图;
[0021]图2为Simulink工具的RTW工具箱自动生成代码的结构划分示意图;
[0022]图3为本专利技术实施例的基于模型的软件集成和完整性检测方法的集成过程示意图;
[0023]图4为Simulink工具设计的模型结构示意图;
[0024]图5为RTW工具箱自动生成的源代码的模型输入结构体层次结构示意图;
[0025]图6为本专利技术实施例的模型接口检查模块生成的检查结果报表的示意图。
具体实施方式
[0026]下面结合附图对本专利技术的技术方案作进一步说明。
[0027]参照图1,根据本专利技术实施例的基于模型的软件集成和完整性检测方法,包括如下步骤:
[0028]S1:基于仿真工具进行模型设计和仿真,并通过仿真工具的代码自动生成工具基于经过验证的模型自动生成的源代码;
[0029]S2:分析源代码的特征,结合软件集成开发需要,提取源代码中集成需要的源代码,形成可用于集成的简洁源代码;
[0030]S3:根据仿真工具自动生成源代码的特征,提取简洁源代码中各个层级的所有模型接口的成员元素;
[0031]S4:根据提取的所有模型接口的成员元素,将简洁源代码与手工代码集成,形成集
成后的代码;
[0032]S5:获取集成后的代码中模型输入接口集成函数的输入输出数据元素表和源代码的接口代码,通过匹配算法,利用接口代码检查输入输出接口集成函数的输入输出元素的完整性。
[0033]根据上述基于模型的软件集成和完整性检测方法,根据仿真工具的自动生成的源代码的特征,直接获取源代码中各个层级模型的输入输出元素,便于将模型代码可靠且高效的与控制软件的手工代码进行接口集成。并且可以通过读取源代码的接口代码,通过匹配算法比对检查集成后代码中的模型的输入输出元素的完整性,进一步提高集成后代码的可靠性,提高软件质量。
[0034]在本实施例中,以Matlab的Simulink仿真工具为例,Simulink工具中的RTW工具箱根据模型自动生成的代码划分结构如图2所示,包含源文件、头文件、中间目标代码、映射文件、全局数据存储以及外部方法声明文件等,这些内容在集成时并不会全部用到,所以需要结合实际控制软件需要,罗列需要的源代码部分的声明信息等标志性参数,自动提取初始源代码中需要的部分,删除与集成无关的文件,对源代码进行简化形成简结源代码。同时为了提高软件运行效率,在本实施例中还对源代码中的内存拷贝函数进行改写,并加入到提取后的源代码中。
[0035]Simulink工具建立的模型结构如图4所示,按照软件的划分,分成架构层模型(Architecture)和低层需求(LLR,Low Level Requirements)。在输入输出接口方面,RTW工具本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于模型的软件集成和完整性检测方法,其特征在于,包括以下步骤:S1:基于仿真工具进行模型设计和仿真,并通过仿真工具的代码自动生成工具基于经过验证的模型自动生成的源代码;S2:分析源代码的特征,结合软件集成开发需要,提取源代码中集成需要的源代码,形成可用于集成的简洁源代码;S3:根据仿真工具自动生成源代码的特征,提取简洁源代码中各个层级的所有模型接口的成员元素;S4:根据提取的所有模型接口的成员元素,将简洁源代码与手工代码集成,形成集成后的代码;S5:获取集成后的代码中模型输入接口集成函数的输入输出数据元素表和源代码的接口代码,通过匹配算法,利用接口代码检查输入输出接口集成函数的输入输出元素的完整性。2.根据权利要求1所述的基于模型的软件集成和完整性检测方法,其特征在于,所述步骤S4中,手工代码与简洁源代码集成时,所有模型采用同层级平铺展开方式集成。3.根据权利要求1所述的基于模型的软件集成和完整...
【专利技术属性】
技术研发人员:周彰毅,张春,朱理化,狄名轩,周顾庭,赵飞,
申请(专利权)人:中国航发控制系统研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。