一种软件供应链的图布局可视化方法技术

技术编号:33637524 阅读:29 留言:0更新日期:2022-06-02 01:52
本发明专利技术涉及一种软件供应链的图布局可视化方法,包括步骤:获取待布局软件供应链的树形布局;根据树形布局中软件包节点间的层级关系确定各节点的初始布局位置;依次遍历各节点,计算各节点所受作用力并根据作用力计算移动距离以更新各节点的布局位置;迭代执行上述步骤直至达到迭代终止条件,所得节点布局即为待布局软件供应链的最终图布局。相比于现有技术,本发明专利技术方法既可以展示软件包之间的层级依赖关系,又可以对具有特殊位置的软件包节点进行合理的布局,同时兼顾了显示空间的利用率和节点布局的整体美感。节点布局的整体美感。节点布局的整体美感。

【技术实现步骤摘要】
一种软件供应链的图布局可视化方法


[0001]本专利技术属于软件供应链
,具体涉及一种软件供应链的图布局可视化方法。

技术介绍

[0002]根据感知心理学的研究,人类对图像的认知速度及接受度要远远大于文字。而信息可视化是通过视觉化的手段来向用户传递数据背后的信息,把复杂或者数据量很大的信息通过可视化的方式表达出来,以方便用户对数据进行更深度的挖掘和分析。图可视化是信息可视化的一个重要领域,图数据也称为网络数据,是现实世界中最常用的数据类型之一。图可视化在科学研究、工业产生、互联网、日常生活等领域都发挥着重要作用,比如计算机网络、生物信息学、社交关系、软件依赖等。图数据经过图可视化的方式展示后能够辅助用户去分析复杂的关系数据,从而发现数据中蕴含的价值。
[0003]随着信息技术的飞速发展和互联网的普及,人类社会对软件的依赖逐渐增加,软件已经成为人们生活、工作、学习中不可或缺的一部分。软件供应链是一个系统在开发和运行过程中,涉及到的所有软件上游(Upstream)、源码包(Source Package)、二进制包(Binary)、包管理器(Package Manager)、存储仓库(Repository),以及开发者(Developer)和维护者(Maintainer)、社区(Community)、基金会(Foundation)等按照依赖、组合等形成的供应关系网络。软件供应链所包含的软件包数量巨大,且依赖关系复杂。开发者通常会更关注直接依赖的软件包,忽略间接依赖的软件包。而通过可视化的方式可以帮助用户们对这些量大、依赖关系复杂的大型数据进行深入的探索和研究。软件供应链的数据可以抽象成图结构数据,软件包代表节点,软件包之间的依赖关系可以抽象成有向边。对软件供应链进行图可视化可以直观的展示软件包之间的依赖关系,帮助开发者发掘对软件供应链影响重大的软件包、追踪软件包的依赖、减少软件供应链本身存在的维护风险、合规风险等。
[0004]图数据可视化的核心在于布局,图布局是图可视化中非常重要的基石,对图进行合理的布局可以帮助研究人员快速分析、准确定位问题。而布局算法通常是按照一些特定的模型,将抽象数据进行具象展示。如果没有对图进行合理的布局,用户就难以快速的从图中提炼出想要的信息。软件供应链中的软件包存在依赖关系,由其抽象出的图数据具有明显的层级结构,同时一个软件包可能被不同层级的软件包所依赖,比如底层的软件包A同时被它上一层的软件包C和第三层的软件包B所依赖,那么当软件包A缺少维护发生问题时,不仅对软件包C的安全有影响,也会威胁着软件包B的安全,具有这样位置特征的软件包可能对整个软件供应链有着更大的意义。因此,对软件供应链的可视化既需要清晰的展示软件包之间的层级关系,又需要对位置特殊的软件包进行合理有效的布局,这样便于用户挖掘出软件供应链里更重要的软件包,对软件供应链的风险和安全进行评测,以探索出更多有价值的信息。
[0005]现有的图布局方法,比如树形布局,更关注节点之间的层级关系,这样的布局从根节点出发,按照层级关系向同一方向从上而下或自左而右累加,这样的展示方式最为直观
也符合大众对树的认知,但存在一些问题,比如对显示屏幕空间的利用率不高,越靠近根节点就越稀疏,导致大量留白,浪费屏幕空间,不适合大数据量的软件供应链的数据进行布局。力导引布局也是图布局中常用的方法,力导引布局强调模拟电子之间的引力与斥力,这样可以大大的减少节点之间的重叠和边的交叉,可以生成节点均匀分布的优美布局,但这一特性不利于展示软件供应链中的层级关系,难以突出显示位置特殊的软件包。

技术实现思路

[0006]本专利技术针对现有技术中的不足,基于FR(Fruchterman Reingold)力导引算法并结合节点的位置特征和度中心性,提供一种软件供应链的图布局可视化方法,采用的技术方案如下:
[0007]一种软件供应链的图布局可视化方法,包括以下步骤:
[0008]步骤1:获取待布局软件供应链的树形布局;
[0009]步骤2:根据树形布局中软件包节点间的层级关系确定各节点的初始布局位置;
[0010]步骤3:依次遍历各节点,计算各节点所受作用力并根据作用力计算移动距离以更新各节点的布局位置;
[0011]步骤4:迭代执行步骤3,直至达到迭代终止条件,所得节点布局为待布局软件供应链的最终图布局。
[0012]进一步地,步骤1中,树形布局中有且仅有一个根节点,节点所代表的软件包间的依赖关系通过节点间的有向边体现,节点A代表的软件包依赖于节点B代表的软件包表示为,节点A与节点B之间存在由节点A指向节点B的有向边,节点A称为节点B的前驱节点。
[0013]进一步地,步骤2中,
[0014]首先,将树形布局中的节点分为普通节点和公共节点,仅有一个前驱节点的节点为普通节点,具有多个前驱结点的节点为公共节点;
[0015]然后,对树形布局中的节点进行分层,根节点为第一层,与根节点连接的普通节点为第二层,与第二层普通节点连接的普通节点为第三层,依次类推,公共节点的层数等于与之相连的普通节点所在层数的平均值,树形布局中的总层数depth为忽略公共节点后的节点最高层数;
[0016]最后,将位于同一层的普通节点的布局位置初始化为同一位置,
[0017][0018]将位于同一层的公共节点的布局位置初始化为同一位置,
[0019][0020]其中,v.pos
x
与v.pos
y
分别表示第i层普通节点的x坐标和y坐标,v
g
.pos
x
与v
g
.pos
y
分别表示第j层公共节点的x坐标和y坐标,W和H分别为屏幕显示区域的宽和高,node
w
为节点的显示宽度。
[0021]进一步地,步骤3中某节点所受作用力的计算过程包括:
[0022]首先,确定节点间的理想距离,普通节点间以及普通节点与公共节点间的理想距离k表示为|V|为节点总数,area为屏幕显示区域的面积;公共节点间的理想距离k
g
表示为|V
g
|为公共节点总数;
[0023]然后,对于存在连接关系的公共节点V
u
和节点V
t
,计算V
u
和V
t
间的松紧度strength,strength=1/min(deg(v
u
),deg(v
t
)),deg(v
u
)和deg(v
t
)分别为V
u
和V
t
的度,度表示与该节点相连的节点个数;
[0024]最后,计算节点所受作用力,节点所受作用力包括节点间的引力和斥力,普通节点之间以及普通节点与公共节点之间的引力、斥力计算方式相同,为
[0025][0026]其中,f
a
(d)和f
r<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件供应链的图布局可视化方法,其特征在于,包括以下步骤:步骤1:获取待布局软件供应链的树形布局;步骤2:根据树形布局中软件包节点间的层级关系确定各节点的初始布局位置;步骤3:依次遍历各节点,计算各节点所受作用力并根据作用力计算移动距离以更新各节点的布局位置;步骤4:迭代执行步骤3,直至达到迭代终止条件,所得节点布局为待布局软件供应链的最终图布局。2.如权利要求1所述的一种软件供应链的图布局可视化方法,其特征在于,步骤1中,树形布局中有且仅有一个根节点,节点所代表的软件包间的依赖关系通过节点间的有向边体现,节点A代表的软件包依赖于节点B代表的软件包表示为,节点A与节点B之间存在由节点A指向节点B的有向边,节点A称为节点B的前驱节点。3.如权利要求2所述的一种软件供应链的图布局可视化方法,其特征在于,步骤2中,首先,将树形布局中的节点分为普通节点和公共节点,仅有一个前驱节点的节点为普通节点,具有多个前驱结点的节点为公共节点;然后,对树形布局中的节点进行分层,根节点为第一层,与根节点连接的普通节点为第二层,与第二层普通节点连接的普通节点为第三层,依次类推,公共节点的层数等于与之相连的普通节点所在层数的平均值,树形布局中的总层数depth为忽略公共节点后的节点最高层数;最后,将位于同一层的普通节点的布局位置初始化为同一位置,将位于同一层的公共节点的布局位置初始化为同一位置,其中,v.pos
x
与v.pos
y
分别表示第i层普通节点的x坐标和y坐标,v
g
.pos
x
与v
g
.pos
y
分别表示第j层公共节点的x坐标和y坐标,W和H分别为屏幕显示区域的宽和高,node
w
为节点的显示宽度。4.如权利要求3所述的一种软件供应链的图布局可视化方法,其特征在于,步骤3中某节点所受作用力的计算过程包括:首先,确定节点间的理想距离,普通节点间以及普通节点与公共节点间的理想距离k表示为|V|为节点总数,area为屏幕显示区域的面积;公共节点...

【专利技术属性】
技术研发人员:梁冠宇周弦
申请(专利权)人:中科南京软件技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1