CN115794196B - EdgeX的关键软件识别方法、装置、设备及存储介质 - Google Patents

EdgeX的关键软件识别方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115794196B
CN115794196B CN202310103429.2A CN202310103429A CN115794196B CN 115794196 B CN115794196 B CN 115794196B CN 202310103429 A CN202310103429 A CN 202310103429A CN 115794196 B CN115794196 B CN 115794196B
Authority
CN
China
Prior art keywords
software
revision
node
key
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310103429.2A
Other languages
English (en)
Other versions
CN115794196A (zh
Inventor
屈晟
武斌
武延军
吴敬征
罗天悦
庞海天
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Nanjing Software Technology Research Institute
Original Assignee
Zhongke Nanjing Software Technology Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongke Nanjing Software Technology Research Institute filed Critical Zhongke Nanjing Software Technology Research Institute
Priority to CN202310103429.2A priority Critical patent/CN115794196B/zh
Publication of CN115794196A publication Critical patent/CN115794196A/zh
Application granted granted Critical
Publication of CN115794196B publication Critical patent/CN115794196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明属于计算机技术领域,公开了一种EdgeX的关键软件识别方法、装置、设备及存储介质。该方法包括:获取EdgeX的软件演进信息;根据所述软件演进信息构建动态演进图;根据所述动态演进图进行权重计算,确定关键节点;根据所述关键节点确定所述EdgeX的关键软件。通过上述方式,基于软件演进信息构建动态演进图,根据动态演进图进行权重计算,从而确定关键节点,根据关键节点可确定EdgeX在演进过程中的关键软件,实现了EdgeX在演进过程中的关键软件的识别,确定了EdgeX中开发者和维护者主要围绕的软件模块,为EdgeX后续软件的开发和维护提供模块关键性的参考。

Description

EdgeX的关键软件识别方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种EdgeX的关键软件识别方法、装置、设备及存储介质。
背景技术
随着5G技术、人工智能、计算硬件等领域的发展,一套部署在更加靠近生产现场、数据源头(即边缘侧)且可提供低延迟、实时性的计算框架应运而生。新兴的边缘计算技术,可以为行业用户提供低延迟的实时计算、处理服务。其中,EdgeX是介于边缘物理传感设备和执行设备——云端信息系统之间的“中间人”,EdgeX具体表示为EdgeX Foundry。EdgeX平台支持并鼓励快速增长的物联网解决方案提供商在统一的生态系统中协同工作,以减少应用开发中的不确定性、加快部署时间并促进规模化。
EdgeX在作为边缘物理传感设备、执行设备与云端信息系统之间的中间件,需要依赖众多复杂的软件模块与EdgeX具体部署场景下的节点进行交互,随着EdgeX的不断演进,相关依赖软件模块复杂程度可能不断膨胀上升超出维护者或开发者的接收范围,为EdgeX的维护或国产化带来新的挑战。因此,为了提升EdgeX的维护效率帮助开发者或维护者发现EdgeX中需要核心维护的重要软件模块。
目前针对软件已有一些网络化建模的相关研究,但具体到EdgeX还没有相关的研究。面向软件的相关研究主要建模方式以软件代码中的类为网络节点,以类间的继承、关联等关系为边构建了无向软件网络,通过统计相关的结构特征,发现软件网络具有显著地“小世界”和“无尺度”特性,符合复杂网络系统的特征。一些研究方法基于软件静态代码结构的分析、基于软件动态执行结构,对软件依赖网络进行分析得到软件中的关键函数、关键模块等。软件静态代码结构分析是根据软件的源代码,在编译好的文件上进行建模的一种方法,其重点在于全面分析源代码编译后的静态依赖关系;基于软件动态执行结构的分析侧重于代码运行时的调用关系,在一定程度上动态执行结构与软件实际运行情况更贴切。从软件静态代码结构分析和动态执行结构分析两个角度进行分析,是从软件现状出发分析得到软件中的关键模块,而对于EdgeX软件演进过程中开发者精力的投入、开发过程中围绕的核心依赖软件模块,这两个角度均不能很好地进行分析。因此现亟需提供一种对软件演进过程中的关键软件进行识别的方法。
发明内容
本发明的主要目的在于提供一种EdgeX的关键软件识别方法、装置、设备及存储介质,旨在解决现有技术中如何识别EdgeX演进过程中的关键软件的技术问题。
为实现上述目的,本发明提供了一种EdgeX的关键软件识别方法,所述EdgeX的关键软件识别方法包括:
获取EdgeX的软件演进信息;
根据所述软件演进信息构建动态演进图;
根据所述动态演进图进行权重计算,确定关键节点;
根据所述关键节点确定所述EdgeX的关键软件。
可选地,所述根据所述软件演进信息构建动态演进图,包括:
根据所述软件演进信息获取版本发布信息和软件修订信息;
根据所述版本发布信息和所述软件修订信息构建多个软件修订图;
根据各软件修订图确定修订软件集和修订记录集;
根据所述修订软件集和所述修订记录集构建动态演进图。
可选地,所述根据所述修订软件集和所述修订记录集构建动态演进图,包括:
根据所述修订软件集和所述修订记录集确定修订软件节点和依赖关系;
根据所述版本发布信息和所述软件修订信息确定各软件的依赖标签;
根据所述修订软件节点、所述依赖关系以及各软件的依赖标签构建动态演进图。
可选地,所述根据所述动态演进图进行权重计算,确定关键节点,包括:
对所述动态演进图进行概率初始化,得到初始出现概率;
根据预设概率表达式和所述初始出现概率进行更新计算,确定目标出现概率;
根据所述目标出现概率进行权重计算,确定关键节点。
可选地,所述根据所述目标出现概率进行权重计算,确定关键节点,包括:
根据所述动态演进图确定各修订软件节点的关联边;
根据各修订软件节点的关联边和所述目标出现概率计算各修订软件节点的活跃度权重;
根据各修订软件节点的活跃度权重确定关键节点。
可选地,所述根据所述关键节点确定所述EdgeX的关键软件之后,还包括:
根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率;
根据各修订软件节点的节点标签概率确定目标节点标签;
根据所述目标节点标签和所述关键节点确定关键软件团体。
可选地,所述根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率,包括:
根据所述动态演进图进行标签初始化,得到各修订软件节点的初始标签;
根据各修订软件节点的初始标签和各修订软件节点的目标出现概率进行分类统计,确定各修订软件节点的相似节点和相似出现概率;
根据各修订软件节点的相似节点和所述相似出现概率进行邻接概率计算,得到各修订软件节点的节点标签概率。
此外,为实现上述目的,本发明还提出一种EdgeX的关键软件识别装置,所述EdgeX的关键软件识别装置包括:
获取模块,用于获取EdgeX的软件演进信息;
构建模块,用于根据所述软件演进信息构建动态演进图;
计算模块,用于根据所述动态演进图进行权重计算,确定关键节点;
确定模块,用于根据所述关键节点确定所述EdgeX的关键软件。
此外,为实现上述目的,本发明还提出一种EdgeX的关键软件识别设备,所述EdgeX的关键软件识别设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的EdgeX的关键软件识别程序,所述EdgeX的关键软件识别程序配置为实现如上文所述的EdgeX的关键软件识别方法。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有EdgeX的关键软件识别程序,所述EdgeX的关键软件识别程序被处理器执行时实现如上文所述的EdgeX的关键软件识别方法。
本发明通过获取EdgeX的软件演进信息;根据所述软件演进信息构建动态演进图;根据所述动态演进图进行权重计算,确定关键节点;根据所述关键节点确定所述EdgeX的关键软件。通过上述方式,基于软件演进信息构建动态演进图,根据动态演进图进行权重计算,从而确定关键节点,根据关键节点可确定EdgeX在演进过程中的关键软件,实现了EdgeX在演进过程中的关键软件的识别,确定了EdgeX中开发者和维护者主要围绕的软件模块,为EdgeX后续软件的开发和维护提供模块关键性的参考。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的EdgeX的关键软件识别设备的结构示意图;
图2为本发明EdgeX的关键软件识别方法第一实施例的流程示意图;
图3为本发明EdgeX的关键软件识别方法一实施例的整体流程示意图;
图4为本发明EdgeX的关键软件识别方法第二实施例的流程示意图;
图5为本发明EdgeX的关键软件识别方法一实施例的动态演进图;
图6为本发明EdgeX的关键软件识别装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的EdgeX的关键软件识别设备结构示意图。
如图1所示,该EdgeX的关键软件识别设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-VolatileMemory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对EdgeX的关键软件识别设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及EdgeX的关键软件识别程序。
在图1所示的EdgeX的关键软件识别设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明EdgeX的关键软件识别设备中的处理器1001、存储器1005可以设置在EdgeX的关键软件识别设备中,所述EdgeX的关键软件识别设备通过处理器1001调用存储器1005中存储的EdgeX的关键软件识别程序,并执行本发明实施例提供的EdgeX的关键软件识别方法。
本发明实施例提供了一种EdgeX的关键软件识别方法,参照图2,图2为本发明一种EdgeX的关键软件识别方法第一实施例的流程示意图。
EdgeX的关键软件识别方法包括以下步骤:
步骤S10:获取EdgeX的软件演进信息。
需要说明的是,本实施例的执行主体为终端设备,终端设备可为电脑、平板等智能终端,本实施例对此不加以限制。终端设备获取EdgeX(EdgeX Foundry)的软件演进信息,根据软件演进信息构建动态演进图,根据动态演进图进行权重计算,确定关键节点,根据关键节点确定EdgeX的关键软件,后续实施例中所涉及的EdgeX均具体表示为EdgeX Foundry。
可以理解的是,软件演进信息是存储于代码仓库中的EdgeX演进过程信息,软件演进信息包括EdgeX所有
Figure SMS_1
次版本发布记录和每一次版本发布所对应的软件模块修订记录。
步骤S20:根据所述软件演进信息构建动态演进图。
需要说明的是,动态演进图指的是反映EdgeX演进过程的动态变化软件依赖图。EdgeX在作为边缘物理传感设备、执行设备与云端信息系统之间的中间件,需要依赖众多复杂的软件模块与EdgeX具体部署场景下的节点进行交互。这些依赖软件模块涉及了EdgeX运行时的方方面面,生成、描述、调用和可视化RESTful风格的API接口用到了SwaggerHub接口框架,LF Edge eKuiper 基于一定设计的规则引擎完成边缘端的流式数据处理实现超轻量的物联网边缘数据分析,AngularJS构建了全新的用户可视化界面保持与行业标准的一致提升可视化界面维护性,除此以外EdgeX还涉及了Redis、Kubernetes、ConsulACL等一系列软件模块完成数据存储、服务管理、访问控制等功能。这些依赖软件模块在EdgeX演进发展的过程中也不断发生变化,形成了一个复杂的动态变化软件依赖图。
可以理解的是,动态演进图由所有
Figure SMS_2
次版本发布所得到的软件模块节点/>
Figure SMS_3
、软件模块之间修订的依赖关系/>
Figure SMS_4
以及依赖关系的标签/>
Figure SMS_5
形成,动态演进图的具体表现形式为
Figure SMS_6
步骤S30:根据所述动态演进图进行权重计算,确定关键节点。
需要说明的是,在得到动态演进图后,基于动态演进图计算各软件模块节点之间的修订依赖边出现的概率以及软件模块的活跃度权值,根据各软件模块节点的活跃度权值,识别EdgeX中关键的软件模块节点,EdgeX中关键的软件模块节点即为关键节点。
可以理解的是,为了基于动态演进图确定准确的关键节点,进一步地,所述根据所述动态演进图进行权重计算,确定关键节点,包括:对所述动态演进图进行概率初始化,得到初始出现概率;根据预设概率表达式和所述初始出现概率进行更新计算,确定目标出现概率;根据所述目标出现概率进行权重计算,确定关键节点。
在具体实现中,由于EdgeX不同软件版本发布对应的修订重要性不同,新近发布版本的软件模块修订对当前EdgeX软件的影响较大,而旧发布版本下的修订记录对当前软件影响力逐渐下降,在聚合修订依赖关系标签信息时引入信息重要性衰减机制,计算EdgeX软件模块修订之间依赖关系的出现概率,EdgeX软件模块修订之间依赖关系的出现概率即为目标出现概率。
需要说明的是,对动态演进图进行概率初始化,得到初始出现概率,具体过程为:对动态演进图中各边初始化出现概率,得到各边的初始出现概率
Figure SMS_7
。边为EdgeX第 i 次版本发布中对软件模块之间相互影响的一次修订记录。
可以理解的是,预设概率表达式为用于计算目标出现概率的方式,预设概率表达式为:
Figure SMS_8
根据预设概率表达式和初始出现概率进行更新计算,确定目标出现概率,具体过程为:基于前一版本计算得到的依赖关系概率与当前版本的标签信息,更新软件模块修订之间依赖关系的出现概率:
Figure SMS_9
其中
Figure SMS_10
为人为设定的超参数,描述对历史修订信息的重视程度,/>
Figure SMS_11
越大表示历史修订记录的出现概率权重衰减越弱;不断重复迭代更新软件模块修订之间依赖关系的出现概率,直至得到EdgeX最新软件发布版本/>
Figure SMS_12
时各边出现概率/>
Figure SMS_13
在具体实现中,根据软件模块修订之间依赖关系的出现概率计算各软件模块节点的活跃度权重,根据活跃度权重在所有软件模块节点中确定关键节点。
需要说明的是,为了根据目标出现概率进行准确的权重计算,进一步地,所述根据所述目标出现概率进行权重计算,确定关键节点,包括:根据所述动态演进图确定各修订软件节点的关联边;根据各修订软件节点的关联边和所述目标出现概率计算各修订软件节点的活跃度权重;根据各修订软件节点的活跃度权重确定关键节点。
可以理解的是,修订软件节点即为动态演进图中的各软件模块节点,根据动态演进图确定各修订软件节点的所有关联边
Figure SMS_14
,基于各修订软件节点的关联边和目标出现概率/>
Figure SMS_15
可计算各修订软件节点的活跃度权重/>
Figure SMS_16
。修订软件节点的活跃度权重越高,表示该修订软件节点对应的软件模块在EdgeX软件演进的过程中不断被修改演进,对EdgeX的演进过程起重要作用,在后续EdgeX演进过程中该软件模块可能被继续修订。
在具体实现中,在确定各修订软件节点的活跃度权重后,可对各修订软件节点的活跃度权重进行正向排序,基于排序结果在所有修订软件节点中确定关键节点。
步骤S40:根据所述关键节点确定所述EdgeX的关键软件。
需要说明的是,关键节点所对应的软件模块即为EdgeX演进过程中的关键软件。
可以理解的是,为了为EdgeX后续软件的开发和维护提供,可基于关键软件进行软件模块团体的发掘,进一步地,所述根据所述关键节点确定所述EdgeX的关键软件之后,还包括:根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率;根据各修订软件节点的节点标签概率确定目标节点标签;根据所述目标节点标签和所述关键节点确定关键软件团体。
在具体实现中,基于EdgeX中活跃的关键软件,使用无监督的拉取式标签传播方法对EdgeX软件模块进行聚类,发掘关键软件所属的软件模块社团以及不同软件模块之间的关联关系。
需要说明的是,根据动态演进图进行权重计算,确定各修订软件节点的属于邻接节点标签的对应的概率,各修订软件节点的属于邻接节点标签的对应的概率即为节点标签概率
Figure SMS_17
可以理解的是,在确定各修订软件节点的节点标签概率后,选择具有最大权重
Figure SMS_18
的邻接节点标签进行匹配更新,具体的计算公式为:/>
Figure SMS_19
,不断迭代重复计算各修订软节点属于邻接节点标签的对应概率,并选择具有最大权重/>
Figure SMS_20
的邻接节点标签进行匹配更新,直至各修订软件节点达成共识获得确定的软件模块标签,各修订软件节点达成共识获得确定的软件模块标签即为各修订软件节点的目标节点标签,根据关键节点的目标节点标签和各修订软件节点的目标节点标签进行分类,具有相同标签的软件模块属于同一个软件模块团体,与关键节点对应的软件模块所属于的软件模块团体即为关键软件团体,在关键软件被修改时,关键软件团体中的其他软件模块也可能被修改。
在具体实现中,为了基于动态演进图确定准确的节点标签概率,进一步地,所述根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率,包括:根据所述动态演进图进行标签初始化,得到各修订软件节点的初始标签;根据各修订软件节点的初始标签和各修订软件节点的目标出现概率进行分类统计,确定各修订软件节点的相似节点和相似出现概率;根据各修订软件节点的相似节点和所述相似出现概率进行邻接概率计算,得到各修订软件节点的节点标签概率。
需要说明的是,根据动态演进图进行标签初始化,得到各修订软件节点的初始标签,具体过程为:基于动态演进图,使用各修订软件节点自身唯一的信息初始化图中节点的标签,将各修订软件节点
Figure SMS_21
的标签/>
Figure SMS_22
初始化为/>
Figure SMS_23
,初始化后的标签即为各修订软件节点的初始标签。
可以理解的是,目标出现概率指的是各修订软件节点对应边的出现权重概率
Figure SMS_24
,根据各修订软件节点的初始标签和各修订软件节点的目标出现概率进行分类统计,确定各修订软件节点的相似节点和相似出现概率,具体过程为:各修订软件节点/>
Figure SMS_28
向自己的邻接节点/>
Figure SMS_33
传播初始标签和目标出现概率/>
Figure SMS_27
,各修订软件节点/>
Figure SMS_30
接收其他邻接节点/>
Figure SMS_34
的节点标签/>
Figure SMS_38
以及邻接节点/>
Figure SMS_25
的目标出现概率/>
Figure SMS_29
,统计其中有相同标签的其他节点/>
Figure SMS_35
以及对应的边出现概率权重/>
Figure SMS_36
,与各修订软件节点/>
Figure SMS_26
具有相同标签的其他修订软件节点
Figure SMS_31
即为相似节点,相似节点/>
Figure SMS_32
对应的边出现概率权重/>
Figure SMS_37
即为相似出现概率。
在具体实现中,基于各修订软件节点的相似节点和相似出现概率进行邻接概率计算,得到各修订软件节点的节点标签概率,具体过程为:根据各修订软件节点的相似节点和相似出现概率计算各修订软件节点
Figure SMS_39
属于邻接节点标签/>
Figure SMS_40
的对应的概率/>
Figure SMS_41
,且
Figure SMS_42
,各修订软件节点的属于邻接节点标签的对应的概率即为节点标签概率/>
Figure SMS_43
需要说明的是,如图3所示,从代码仓库中获取软件演进信息,根据软件演进信息构建动态演进图,基于动态演进图计算各修订软件节点的活跃度权重,从而挖掘其中的活跃软件模块(关键软件),基于关键软件的目标节点标签进行软件模块团体的挖掘,最终确定关键软件团体。
本实施例通过获取EdgeX的软件演进信息;根据所述软件演进信息构建动态演进图;根据所述动态演进图进行权重计算,确定关键节点;根据所述关键节点确定所述EdgeX的关键软件。通过上述方式,基于软件演进信息构建动态演进图,根据动态演进图进行权重计算,从而确定关键节点,根据关键节点可确定EdgeX在演进过程中的关键软件,实现了EdgeX在演进过程中的关键软件的识别,确定了EdgeX中开发者和维护者主要围绕的软件模块,为EdgeX后续软件的开发和维护提供模块关键性的参考。
参考图4,图4为本发明一种EdgeX的关键软件识别方法第二实施例的流程示意图。
基于上述第一实施例,本实施例EdgeX的关键软件识别方法中所述步骤S20,包括:
步骤S21:根据所述软件演进信息获取版本发布信息和软件修订信息。
需要说明的是,软件演进信息包括EdgeX所有
Figure SMS_44
次版本发布记录和每一次版本发布所对应的软件模块修订记录,EdgeX所有/>
Figure SMS_45
次版本发布记录即为版本发布信息,每一次版本发布所对应的软件模块修订记录即为软件修订信息。
步骤S22:根据所述版本发布信息和所述软件修订信息构建多个软件修订图。
需要说明的是,根据版本发布信息和软件修订信息,构建每一次版本发布所对应的软件修订图,对于第
Figure SMS_47
次版本修订构建的软件修订图表示为:/>
Figure SMS_49
,其中
Figure SMS_51
是第/>
Figure SMS_48
次版本发布所包含的软件模块节点集合,/>
Figure SMS_50
为软件修订图/>
Figure SMS_52
的边集合,集合中包含的边/>
Figure SMS_53
为EdgeX第/>
Figure SMS_46
次版本发布中对软件模块之间相互影响的一次修订记录。
步骤S23:根据各软件修订图确定修订软件集和修订记录集。
需要说明的是,根据构建的
Figure SMS_54
个软件修订图/>
Figure SMS_55
,统计每一次版本发布涉及的软件模块集合/>
Figure SMS_56
和修订记录集合
Figure SMS_57
,软件模块集合即为修订软件集,修订记录集合即为修订记录集。
步骤S24:根据所述修订软件集和所述修订记录集构建动态演进图。
需要说明的是,在确定修订软件集和修订记录集后,即可根据修订软件集和修订记录集构建动态演进图
Figure SMS_58
可以理解的是,为了根据修订软件集和修订记录集进行动态演进图的准确构建,进一步地,所述根据所述修订软件集和所述修订记录集构建动态演进图,包括:根据所述修订软件集和所述修订记录集确定修订软件节点和依赖关系;根据所述版本发布信息和所述软件修订信息确定各软件的依赖标签;根据所述修订软件节点、所述依赖关系以及各软件的依赖标签构建动态演进图。
在具体实现中,根据修订软件集和修订记录集得到构建动态演进图所包含的软件模块节点
Figure SMS_62
和依赖关系/>
Figure SMS_64
,软件模块节点
Figure SMS_66
即为修订软件节点,根据版本发布信息和软件修订信息以位信息的形式记录软件模块之间依赖关系标签/>
Figure SMS_61
,若软件模块/>
Figure SMS_63
之间的边/>
Figure SMS_67
在第/>
Figure SMS_69
次软件发布中存在修订记录依赖关系,则该边的标签/>
Figure SMS_60
;反之则/>
Figure SMS_65
,各软件模块之间的依赖关系标签即为各软件的依赖标签,根据修订软件节点
Figure SMS_68
、各软件模块之间修订的依赖关系/>
Figure SMS_70
以及各软件的依赖标签/>
Figure SMS_59
构建动态演进图,动态演进图的构建如图5所示,图中的各软件模块即为各修订软件节点。
本实施例中通过根据所述软件演进信息获取版本发布信息和软件修订信息;根据所述版本发布信息和所述软件修订信息构建多个软件修订图;根据各软件修订图确定修订软件集和修订记录集;根据所述修订软件集和所述修订记录集构建动态演进图。通过上述方式,基于软件演进信息获取版本发布信息和软件修订信息,进一步构建多个软件修订图,根据软件修订图确定的修订软件集和修订记录集最终进行动态演进图的构建,不仅保证了构建过程的准确性,还能够准确反映EdgeX的演进过程。
此外,参照图6,本发明实施例还提出一种EdgeX的关键软件识别装置,所述EdgeX的关键软件识别装置包括:
获取模块10,用于获取EdgeX的软件演进信息。
构建模块20,用于根据所述软件演进信息构建动态演进图。
计算模块30,用于根据所述动态演进图进行权重计算,确定关键节点。
确定模块40,用于根据所述关键节点确定所述EdgeX的关键软件。
本实施例通过获取EdgeX的软件演进信息;根据所述软件演进信息构建动态演进图;根据所述动态演进图进行权重计算,确定关键节点;根据所述关键节点确定所述EdgeX的关键软件。通过上述方式,基于软件演进信息构建动态演进图,根据动态演进图进行权重计算,从而确定关键节点,根据关键节点可确定EdgeX在演进过程中的关键软件,实现了EdgeX在演进过程中的关键软件的识别,确定了EdgeX中开发者和维护者主要围绕的软件模块,为EdgeX后续软件的开发和维护提供模块关键性的参考。
在一实施例中,所述构建模块20,还用于根据所述软件演进信息获取版本发布信息和软件修订信息;
根据所述版本发布信息和所述软件修订信息构建多个软件修订图;
根据各软件修订图确定修订软件集和修订记录集;
根据所述修订软件集和所述修订记录集构建动态演进图。
在一实施例中,所述构建模块20,还用于根据所述修订软件集和所述修订记录集确定修订软件节点和依赖关系;
根据所述版本发布信息和所述软件修订信息确定各软件的依赖标签;
根据所述修订软件节点、所述依赖关系以及各软件的依赖标签构建动态演进图。
在一实施例中,所述计算模块30,还用于对所述动态演进图进行概率初始化,得到初始出现概率;
根据预设概率表达式和所述初始出现概率进行更新计算,确定目标出现概率;
根据所述目标出现概率进行权重计算,确定关键节点。
在一实施例中,所述计算模块30,还用于根据所述动态演进图确定各修订软件节点的关联边;
根据各修订软件节点的关联边和所述目标出现概率计算各修订软件节点的活跃度权重;
根据各修订软件节点的活跃度权重确定关键节点。
在一实施例中,所述确定模块40,还用于根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率;
根据各修订软件节点的节点标签概率确定目标节点标签;
根据所述目标节点标签和所述关键节点确定关键软件团体。
在一实施例中,所述确定模块40,还用于根据所述动态演进图进行标签初始化,得到各修订软件节点的初始标签;
根据各修订软件节点的初始标签和各修订软件节点的目标出现概率进行分类统计,确定各修订软件节点的相似节点和相似出现概率;
根据各修订软件节点的相似节点和所述相似出现概率进行邻接概率计算,得到各修订软件节点的节点标签概率。
由于本装置采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有EdgeX的关键软件识别程序,所述EdgeX的关键软件识别程序被处理器执行时实现如上文所述的EdgeX的关键软件识别方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的EdgeX的关键软件识别方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种EdgeX的关键软件识别方法,其特征在于,所述EdgeX的关键软件识别方法包括:
获取EdgeX的软件演进信息,所述软件演进信息包括EdgeX所有版本的发布记录和每一次版本发布所对应的软件模块修订记录;
根据所述软件演进信息构建动态演进图,所述动态演进图指的是EdgeX演进过程中的动态变化软件依赖图;
根据所述动态演进图进行权重计算,确定关键节点;
根据所述关键节点确定所述EdgeX的关键软件;
其中,所述根据所述软件演进信息构建动态演进图,包括:
根据所述软件演进信息获取版本发布信息和软件修订信息;
根据所述版本发布信息和所述软件修订信息构建多个软件修订图;
根据各软件修订图确定修订软件集和修订记录集;
根据所述修订软件集和所述修订记录集构建动态演进图。
2.如权利要求1所述的EdgeX的关键软件识别方法,其特征在于,所述根据所述修订软件集和所述修订记录集构建动态演进图,包括:
根据所述修订软件集和所述修订记录集确定修订软件节点和依赖关系;
根据所述版本发布信息和所述软件修订信息确定各软件的依赖标签;
根据所述修订软件节点、所述依赖关系以及各软件的依赖标签构建动态演进图。
3.如权利要求1所述的EdgeX的关键软件识别方法,其特征在于,所述根据所述动态演进图进行权重计算,确定关键节点,包括:
对所述动态演进图进行概率初始化,得到初始出现概率;
根据预设概率表达式和所述初始出现概率进行更新计算,确定目标出现概率;
根据所述目标出现概率进行权重计算,确定关键节点。
4.如权利要求3所述的EdgeX的关键软件识别方法,其特征在于,所述根据所述目标出现概率进行权重计算,确定关键节点,包括:
根据所述动态演进图确定各修订软件节点的关联边;
根据各修订软件节点的关联边和所述目标出现概率计算各修订软件节点的活跃度权重;
根据各修订软件节点的活跃度权重确定关键节点。
5.如权利要求1至4中任一项所述的EdgeX的关键软件识别方法,其特征在于,所述根据所述关键节点确定所述EdgeX的关键软件之后,还包括:
根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率,各修订软件节点根据修订软件集和修订记录集确定得到;
根据各修订软件节点的节点标签概率确定目标节点标签;
根据所述目标节点标签和所述关键节点确定关键软件团体。
6.如权利要求5所述的EdgeX的关键软件识别方法,其特征在于,所述根据所述动态演进图进行权重计算,确定各修订软件节点的节点标签概率,包括:
根据所述动态演进图进行标签初始化,得到各修订软件节点的初始标签;
根据各修订软件节点的初始标签和各修订软件节点的目标出现概率进行分类统计,确定各修订软件节点的相似节点和相似出现概率;
根据各修订软件节点的相似节点和所述相似出现概率进行邻接概率计算,得到各修订软件节点的节点标签概率。
7.一种EdgeX的关键软件识别装置,其特征在于,所述EdgeX的关键软件识别装置包括:
获取模块,用于获取EdgeX的软件演进信息,所述软件演进信息包括EdgeX所有版本的发布记录和每一次版本发布所对应的软件模块修订记录;
构建模块,用于根据所述软件演进信息构建动态演进图,所述动态演进图指的是EdgeX演进过程中的动态变化软件依赖图;
计算模块,用于根据所述动态演进图进行权重计算,确定关键节点;
确定模块,用于根据所述关键节点确定所述EdgeX的关键软件;
所述构建模块,还用于根据所述软件演进信息获取版本发布信息和软件修订信息;
根据所述版本发布信息和所述软件修订信息构建多个软件修订图;
根据各软件修订图确定修订软件集和修订记录集;
根据所述修订软件集和所述修订记录集构建动态演进图。
8.一种EdgeX的关键软件识别设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的EdgeX的关键软件识别程序,所述EdgeX的关键软件识别程序配置为实现如权利要求1至6中任一项所述的EdgeX的关键软件识别方法。
9.一种存储介质,其特征在于,所述存储介质上存储有EdgeX的关键软件识别程序,所述EdgeX的关键软件识别程序被处理器执行时实现如权利要求1至6任一项所述的EdgeX的关键软件识别方法。
CN202310103429.2A 2023-02-13 2023-02-13 EdgeX的关键软件识别方法、装置、设备及存储介质 Active CN115794196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310103429.2A CN115794196B (zh) 2023-02-13 2023-02-13 EdgeX的关键软件识别方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310103429.2A CN115794196B (zh) 2023-02-13 2023-02-13 EdgeX的关键软件识别方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115794196A CN115794196A (zh) 2023-03-14
CN115794196B true CN115794196B (zh) 2023-06-30

Family

ID=85430954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310103429.2A Active CN115794196B (zh) 2023-02-13 2023-02-13 EdgeX的关键软件识别方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115794196B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035783A (zh) * 2021-11-10 2022-02-11 成都淞幸科技有限责任公司 一种软件代码知识图谱构建方法及工具
CN114706558A (zh) * 2022-03-17 2022-07-05 浙江工商大学 基于K-Truss的复杂软件关键模块识别方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461867B (zh) * 2014-11-08 2018-04-03 南通大学 一种软件演化过程故障分析方法
US9690553B1 (en) * 2016-09-26 2017-06-27 International Business Machines Corporation Identifying software dependency relationships
CN107678776A (zh) * 2017-08-09 2018-02-09 上海壹账通金融科技有限公司 多模块版本依赖关系构建方法、装置、服务器和存储介质
CN108509217B (zh) * 2018-03-17 2021-05-25 东南大学 一种软件架构可持续演进原则达成性度量方法
CN110110529B (zh) * 2019-05-20 2020-12-11 北京理工大学 一种基于复杂网络的软件网络关键节点挖掘方法
CN111913702B (zh) * 2020-08-11 2022-04-01 湖北大学 一种基于图神经网络的软件系统中关键类的识别方法
CN113901231A (zh) * 2021-09-29 2022-01-07 中山大学 一种知识图谱的演进分析方法、装置及介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035783A (zh) * 2021-11-10 2022-02-11 成都淞幸科技有限责任公司 一种软件代码知识图谱构建方法及工具
CN114706558A (zh) * 2022-03-17 2022-07-05 浙江工商大学 基于K-Truss的复杂软件关键模块识别方法

Also Published As

Publication number Publication date
CN115794196A (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
Stamatakis Using RAxML to infer phylogenies
US11315032B2 (en) Method and system for recommending content items to a user based on tensor factorization
JP2018521382A (ja) 古典的なプロセッサで量子類似計算をエミュレートするためのquanton表現
US10860829B2 (en) Data-parallel parameter estimation of the Latent Dirichlet allocation model by greedy Gibbs sampling
JP2019204499A (ja) データ処理方法および電子機器
US20220392585A1 (en) Method for training compound property prediction model, device and storage medium
US11960980B2 (en) Machine learning system to predict causal treatment effects of actions performed on websites or applications
WO2022097230A1 (ja) 予測方法、予測装置及びプログラム
Sarkar et al. An algorithm for DNA read alignment on quantum accelerators
JP2018045361A (ja) 情報処理装置、情報処理方法、およびプログラム
CN115794196B (zh) EdgeX的关键软件识别方法、装置、设备及存储介质
Sun et al. Particle swarm algorithm: convergence and applications
CN113448821A (zh) 一种识别工程缺陷的方法和装置
CN116561338A (zh) 工业知识图谱生成方法、装置、设备及存储介质
Dai et al. Core decomposition on uncertain graphs revisited
Piatkowski et al. Parallel inference on structured data with crfs on gpus
CN114528973A (zh) 业务处理模型的生成方法、业务处理方法和装置
JP2022531480A (ja) 訪問予測
CN116340090A (zh) 基于交互序列的软件识别方法、装置、设备及存储介质
US20120271610A1 (en) Stochastic simulation of multi-language concurrent systems
CN113610214B (zh) 基于异步自编码器的软测量方法、装置、设备及存储介质
US20220391765A1 (en) Systems and Methods for Semi-Supervised Active Learning
CN116129227B (zh) 模型训练方法、装置、电子设备及计算机可读存储介质
Wetering Exploring Layer-specific Quantization in CNN-based Selective Sweep Detection
Gao et al. Computer Science Review

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant