基于力引导图布局的车型数据流图自动化生成方法和系统与流程
- 国知局
- 2024-08-30 15:01:57
本发明属于结合车型数据的数据流拓扑结构可视化与自动化领域,尤其涉及一种基于力引导图布局的车型数据流图自动化生成方法和系统。
背景技术:
1、随着电子技术在汽车上的广泛应用,汽车中的电子设备越来越多,现代汽车大量采用电子控制系统,汽车的动力性、安全性和车辆的驾乘舒适性都得到了极大的改善,但是同时也使得汽车系统变得更为复杂,汽车的风险评估工作变得更加专业化,风险评估人员进行风险诊断有时变得异常困难,这时汽车电子控制系统的风险评估工作就成了难题。
2、汽车数据流图的自动化绘制的主体是数据流图(data flow diagram),简称dfd,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,数据流程图描述数据流动、存储、处理的逻辑关系,它不但可以表达数据在系统内部的逻辑流向,而且还可以表达系统的逻辑功能和数据的逻辑转换。绘制数据流图的方法有多种,本发明主要采用的是fruchterman-reingold(fr)算法。力引导布局目的是减少布局中边的交叉,尽量保持边的长度一致。这种方法借用弹簧模型模拟节点布局过程:用弹簧模拟两节点间的相互关系,受到弹力的作用后,过近的节点会被弹开而过远的点被拉近;通过不断的迭代,整个布局达到动态平衡,趋于稳定。之后,一种新的概念——“力引导”被提出,并逐步演化为fr算法,即力引导布局算法,通过增强两个节点间的物理模型,并加入静电力,通过最小化系统的总能量,从而达到优化节点布局的目的。它遵循两个基本的原则:有边连接的节点需要彼此靠近;节点之间不应该过于靠近。该算法通过考虑原子之间的吸引力和排斥力的相互作用来计算节点的位移。遵循类似于原子或行星的运动规律,系统最终进入一种动态平衡的状态。基于该图布局算法所绘制出来的数据流图具有较好的美观性以及稳定性,适合用于汽车数据流的风险评估工作。
3、目前,风险评估通常的做法往往会造成汽车风险诊断的效率低,评估成本增加。但如果可以将电子元件间的数据流图绘制出来,就可以根据数据流图的属性信息与拓扑结构对风险故障及可能发生的原因做数据流分析,可较为精准地诊断出汽车电子控制系统的风险,提高风险诊断的效率。因此,汽车数据流图的自动化绘制就成为了汽车风险评估的重要任务。
技术实现思路
1、为了简易化手工绘图的流程,实现高效自动绘制车型数据流图,本发明基于力引导图布局算法结合具体汽车风险评估的现实需求提出了一种能将一定格式的数据流文本数据文件转化为可绘制成数据流图的json数据文件,并在原有算法的基础上做出了对适应现实需求的改良,最终绘制的数据流图既满足了进行汽车风险评估的图格式要求,也保持了数据流图最基本的美观性,给实践中进行风险诊断带来了便利性。
2、本发明为解决以上技术问题所采取的技术方案是:
3、一种基于力引导图布局的车型数据流图自动化生成方法,包括如下步骤:
4、s1、读取给定地址的json文件,抽取文件内的数据流信息并将关系储存;
5、s2、利用图布局算法迭代优化节点位置,调整边曲度,并确定项目边界元素的位置参数;
6、s3、将已有参数填入模板,制作owasp-threat-dragon可识别的json文件;所述已有参数包括所有组件的位置参数与其对应的名字,数据流信息,数据流在不同组件间的流向,以及承载数据流的协议信息;所述json文件模板包括三层嵌套结构的数据组织结构,最外层含有整个json文件的共有属性,中间层嵌套含有文件中项目的属性,最内层嵌套包含了所述项目中图案的属性;其中,图案格式为进程,执行器,存储,箭头,边界。
7、进一步地,步骤s1中,抽取文件内的数据流信息并将关系储存包括:导出文件名,图名,图中图案名以及图中图案间的关系,所述图中图案名以及图中图案间的关系包括汽车元件,接口,数据的属性,以及汽车元件,接口,数据间的数据信号的流向与文字内容以及承载数据信号的协议。
8、进一步地,步骤s1中,抽取文件内的数据流信息并将关系储存包括:将抽取的汽车元件,接口,数据的名字用字典存储{,...},i表示汽车元件,接口,数据的名字,数据信号流向由含有元组的字典存储{...},其中表示数据信号由流向;
9、进一步地,步骤s2包括:
10、s21、利用networkx库对存储在字典里的汽车元件,接口,数据的名字分别建立一一对应的图中的节点,并将字典存储的数据信号流关系转换为networkx库绘制出的图形的边;对图中节点数量进行判断,如果数量小于或等于3,则采用基于欧拉回路的平面布局算法来得出各个节点的位置参数;否则,则利用fruchterman-reingold算法对绘制的图进行调整,得出节点位置坐标{...};
11、s22、得到各个汽车元件,接口,数据的位置坐标后,需要对其进行定制化的线性变换,得到变换后的各个汽车元件,接口,数据的位置坐标{...},
12、s23、对各个汽车元件,接口,数据间相连接的线段边的中点处增加一个点,利用化曲为直和最佳微动分离的方法使得该中点的位置坐标进行微调使各个边不交叉重叠,同时将所有的汽车元件,接口,数据的位置坐标以及边中点位置坐标存储在dataframe里;
13、s24、判断各个汽车元件,接口,数据是否有部分位于项目边界外,若没有,则直接执行步骤s25;
14、s25、确定最终项目边界与界外箭头参数位置。
15、进一步地,步骤s24还包括:若各个汽车元件,接口,数据有部分位于项目边界外,则将项目边界内的汽车元件,接口,数据和项目边界外的汽车元件,接口,数据分别用两个dataframe存储,项目边界内的汽车元件,接口,数据的位置坐标为{...}和项目边界外的汽车元件,接口,数据的位置坐标为{...},根据{...}的位置确定最大和最小的横纵坐标{),)},利用其确定项目边界的位置参数,再根据项目边界的位置参数对项目边界外的汽车元件,接口,数据的位置坐标{...}进行调整。
16、进一步地,步骤s24中还包括:
17、s241、根据(,,,)的大小选择离该项目边界外的汽车元件,接口,数据最近的项目边界,并将其以平移的方式移出边界;对所有项目边界外的汽车元件,接口,数据进行此操作后,此时项目边界外的汽车元件,接口,数据和项目边界的位置参数不再调整,为{...}和{),)}所决定;,,,分别表示当前坐标横坐标与最大,最小的横坐标的差值,当前坐标纵坐标与最大,最小的纵坐标的差值;
18、s242、对项目边界内的汽车元件,接口,数据的位置坐标用fruchterman-reingold算法进行调整得到新坐标即可,即,并在之后的步骤中不再调整。
19、一种基于力引导图布局的车型数据流图自动化生成系统,该系统包括如下模块:
20、关系抽取模块,用于读取给定地址的json文件,抽取文件内的数据流信息并将关系储存;
21、图关系布局模块,用于根据图布局算法迭代优化节点位置,调整边曲度,并确定项目边界元素的位置参数;
22、通用文件生成模块,用于已有参数填入模板,制作软件owasp-threat-dragon可识别的json文件;
23、所述模板定义模块,用于定义json文件模板的数据组织结构以及数据组织结构中的图案格式,所述json文件模板包括三层嵌套结构的数据组织结构,最外层含有整个json文件的共有属性,中间层嵌套含有文件中项目的属性,最内层嵌套包含了所述项目中图案的属性;其中,图案格式为进程,执行器,存储,箭头,边界。
24、本发明的有益效果如下:
25、1)使用python实现对json文件的自动撰写生成节省了大量人工画图所造成的精力与时间成本,使得风险评估的工作可以短时间内迅速展开,且自动画图一定程度上避免了人工画图所带来的偶然错误,使得风险评估的结果减少了因数据流图的错误所造成的误差,具有更高的准确性与可靠性。
26、2)依据力引导图布局算法以及针对实践的具体改进使得避免了生成的数据流图中的边交叉,有利于风险诊断的直观判断,同时又满足了风险评估实践中对数据流图的要求,即同时满足了可视化图最终效果的美观性以及实用性。
27、3)交互式系统能够直接读取提供的文本文件中的“专家语言”并转换为其他模块所需输入的格式,实现了对整体功能的封装,只需读取文本文件的地址即可生成可被owasp-threat-dragon读取的数据流图json文件,操作简单运行耗时短,简便性与易操作性并存。
28、上述说明,仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述说明和其它目的、特征及优点能够更明显易懂,特举较佳实施例,详细说明如下。
本文地址:https://www.jishuxx.com/zhuanli/20240830/285195.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。