一种基于ELF的软件可维护性度量方法技术

技术编号:36454420 阅读:12 留言:0更新日期:2023-01-25 22:52
本发明专利技术涉及一种基于ELF的软件可维护性度量方法,引入图理论计算和分析结点依赖关系,首先分析待分析软件安装文件中各ELF文件的符号信息,获得各ELF文件之间的依赖关系,构建有向图;然后基于有向图获得热点结点、热点区域和外部性系数特征描述,以及发现和统计重复、孤立符号特征描述;最后基于所获各特征描述,实现待分析软件可维护性的度量,为待分析软件的进一步设计提供准确依据;设计方案基于ELF的分析更为细致,能直接描述程序内的依赖关系和符号属性,相比源码分析方法,基于ELF的分析更为全面,能从软件运行的整体视角描述各模块关系,并且软件规模越大,迭代周期越长,越能体现基于ELF量化分析的优势。现基于ELF量化分析的优势。现基于ELF量化分析的优势。

【技术实现步骤摘要】
一种基于ELF的软件可维护性度量方法


[0001]本专利技术涉及一种基于ELF的软件可维护性度量方法,属于软件工程


技术介绍

[0002]软件复杂度随着需求的变更和功能的演化而持续上升,软件逐渐变得难以理解、修改和测试,软件开发也越来越容易出错。研发人员大量精力被消耗在可维护性陷阱中,而用于改进设计,提升技术,优化实现的时间却被大幅压缩,导致可维护性进一步变差,形成恶性循环。
[0003]在陷入可维护性陷阱这一过程中,大部分软件生产人员是无意识的,少部分虽然有一定感知但却难以精确地描述和量化分散在软件中的各种问题。
[0004]因此,软件可维护性度量应运而生。可维护性度量能够量化地描述软件中的可维护性问题。软件生产各环节可以此为指导,制定债务清理计划,把可维护性债务控制在一定范围之内。
[0005]现有技术中存在一些软件可维护性度量方法:
[0006]1)基于项目管理的方法:统计项目中里程碑的数量,统计历史异常问题数量并对问题进行分类,计算出综合评估。
[0007]2)基于源码分析的方法:统计代码行数,统计变量的定义/使用比值,统计独立代码路径数量,计算出综合评估。
[0008]基于项目管理的方法过于宏观,难以发现更为深层次的原因,对具体问题缺乏有效指导;基于源码分析的方法过于微观,易陷于代码细节,对软件整体情况缺乏合理评估。

技术实现思路

[0009]本专利技术所要解决的技术问题是提供一种基于ELF的软件可维护性度量方法,以ELF文件为对象,设计全新分析检测逻辑,能够对待分析软件的可维护性实现高效度量,为待分析软件的进一步设计提供准确依据。
[0010]本专利技术为了解决上述技术问题采用以下技术方案:本专利技术设计了一种基于ELF的软件可维护性度量方法,用于针对待分析软件的可维护性实现度量,包括如下步骤:
[0011]步骤A.获得待分析软件安装文件中各个ELF文件分别对应的符号信息集合,然后进入步骤B;
[0012]步骤B.根据各个ELF文件分别对应的符号信息集合,确定各个ELF文件分别所依赖的各个其他ELF文件,构成各个ELF文件分别所对应的目标被依赖文件集合,然后进入步骤C;
[0013]步骤C.基于各个ELF文件分别所对应的目标被依赖文件集合,针对对应目标被依赖文件集合不为空的各个ELF文件,以ELF文件为结点,以ELF文件之间的依赖关系为边,且依赖方向为边的方向,构建有向图,然后进入步骤D;
[0014]步骤D.遍历有向图,获得其中环的个数,并计算各结点的入度,定义其中最大入度
所对应结点为依赖热点,以及针对有向图中各个连通子图,以连通子图的边数计算子图密度,定义最高子图密度的连通子图为热点区域,然后进入步骤E;
[0015]步骤E.基于有向图,获得待分析软件中各个重复符号、以及其对应的ELF文件,并获得待分析软件中各个孤立符号、以及其对应的ELF文件,然后进入步骤F;
[0016]步骤F.分别针对有向图中各结点,根据结点的入度、出度,基于该结点入度数与出度数之和,获得该结点出度数与该和的比值,构成该结点对应的外部性系数,进而获得有向图中各结点的外部性系数,并获得其中最大外部性系数,然后进入步骤G;
[0017]步骤G.根据预设有向图中环、重复符号、孤立符号、最大外部性系数分别对应的权重系数,针对有向图中环的个数、重复符号数量、孤立符号数量、以及最大外部性系数进行加权处理,获得待分析软件所对应的债务指数,然后进入步骤H;
[0018]步骤H.基于有向图中各个依赖热点、以及各个热点区域,更新有向图为待分析软件所对应的依赖关系图,并结合待分析软件所对应的债务指数,实现待分析软件可维护性的度量。
[0019]作为本专利技术的一种优选技术方案:所述步骤A中,分别针对待分析软件安装文件中的各个ELF文件,执行如下步骤A1至步骤A3,获得待分析软件安装文件中各个ELF文件分别对应的符号信息集合;
[0020]步骤A1.解析ELF文件的头信息,获得其中节头表偏移、大小、以及名称字符串索引,然后进入步骤A2;
[0021]步骤A2.针对该ELF文件的节头表,遍历节头表,获取节".strtab"和".dynstr"中的名称字符串表起始地址,然后进入步骤A3;
[0022]步骤A3.基于该ELF文件节头表中节".strtab"和".dynstr"中的名称字符串表起始地址,解析并记录节".symtab"和".dynamic"中的符号信息,构成该ELF文件对应的符号信息集合。
[0023]作为本专利技术的一种优选技术方案:所述步骤B中,分别针对各个ELF文件,将ELF文件作为目标ELF文件,执行如下步骤B1至步骤B3,确定目标ELF文件所对应的目标被依赖文件集合;进而确定各ELF文件分别所对应的目标被依赖文件集合;
[0024]步骤B1.基于目标ELF文件对应的符号信息集合,获得其中的全局未定义符号集合,然后进入步骤B2;
[0025]步骤B2.基于各个ELF文件分别对应的符号信息集合,针对目标ELF文件所对应预设包含其所依赖各ELF文件的待分析被依赖集合,获得待分析被依赖集合中各个ELF文件分别对应的全局可见已定义符号集合,然后进入步骤B3;
[0026]步骤B3.分别针对待分析被依赖集合中各个ELF文件,判断ELF文件所对应全局可见已定义符号集合与目标ELF文件所对应全局未定义符号集合之间的交集是否为空,是则不做任何操作,否则记录目标ELF文件依赖于该ELF文件;进而由目标ELF文件所依赖的各个ELF文件,构成目标ELF文件所对应的目标被依赖文件集合。
[0027]作为本专利技术的一种优选技术方案:所述步骤E包括如下步骤E1至步骤E2;
[0028]步骤E1.获得有向图中各个结点分别对应的全局可见已定义符号集合,并针对该各个全局可见已定义符号集合进行取并运算,在取并运算过程中,记录因已存在相同名称而被丢弃的符号、及其对应的结点,构成待分析软件中各个重复符号、以及其对应的ELF文
件,然后进入步骤E2;
[0029]步骤E2.获得有向图中各个结点分别对应的未定义符号集合,并对该各未定义符号集合进行取并运算,获得并集,以及进一步针针对有向图中各结点全局可见已定义符号集合中的各个符号在该并集中进行查找,记录符号名称查找失败的符号、以及其对应的结点,构成待分析软件中各个孤立符号、以及其对应的ELF文件。
[0030]本专利技术所述一种基于ELF的软件可维护性度量方法,采用以上技术方案与现有技术相比,具有以下技术效果:
[0031]本专利技术所设计一种基于ELF的软件可维护性度量方法,引入图理论计算和分析结点依赖关系,首先分析待分析软件安装文件中各ELF文件的符号信息,获得各ELF文件之间的依赖关系,构建有向图;然后基于有向图获得热点结点、热点区域和外部性系数特征描述,以及发现和统计重复、孤立符号特征描述;最后基于所获各特征描述,实现待分析软本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ELF的软件可维护性度量方法,用于针对待分析软件的可维护性实现度量,其特征在于,包括如下步骤:步骤A.获得待分析软件安装文件中各个ELF文件分别对应的符号信息集合,然后进入步骤B;步骤B.根据各个ELF文件分别对应的符号信息集合,确定各个ELF文件分别所依赖的各个其他ELF文件,构成各个ELF文件分别所对应的目标被依赖文件集合,然后进入步骤C;步骤C.基于各个ELF文件分别所对应的目标被依赖文件集合,针对对应目标被依赖文件集合不为空的各个ELF文件,以ELF文件为结点,以ELF文件之间的依赖关系为边,且依赖方向为边的方向,构建有向图,然后进入步骤D;步骤D.遍历有向图,获得其中环的个数,并计算各结点的入度,定义其中最大入度所对应结点为依赖热点,以及针对有向图中各个连通子图,以连通子图的边数计算子图密度,定义最高子图密度的连通子图为热点区域,然后进入步骤E;步骤E.基于有向图,获得待分析软件中各个重复符号、以及其对应的ELF文件,并获得待分析软件中各个孤立符号、以及其对应的ELF文件,然后进入步骤F;步骤F.分别针对有向图中各结点,根据结点的入度、出度,基于该结点入度数与出度数之和,获得该结点出度数与该和的比值,构成该结点对应的外部性系数,进而获得有向图中各结点的外部性系数,并获得其中最大外部性系数,然后进入步骤G;步骤G.根据预设有向图中环、重复符号、孤立符号、最大外部性系数分别对应的权重系数,针对有向图中环的个数、重复符号数量、孤立符号数量、以及最大外部性系数进行加权处理,获得待分析软件所对应的债务指数,然后进入步骤H;步骤H.基于有向图中各个依赖热点、以及各个热点区域,更新有向图为待分析软件所对应的依赖关系图,并结合待分析软件所对应的债务指数,实现待分析软件可维护性的度量。2.根据权利要求1所述一种基于ELF的软件可维护性度量方法,其特征在于:所述步骤A中,分别针对待分析软件安装文件中的各个ELF文件,执行如下步骤A1至步骤A3,获得待分析软件安装文件中各个ELF文件分别对应的符号信息集合;步骤A1.解析ELF文件的头信息,获得其中节头表偏移、大小、以及名称字符串索引,然后进入步骤A2;步骤A2.针对该ELF文件的节...

【专利技术属性】
技术研发人员:祝远鉴马小玥王闻迪叶勇秦磊
申请(专利权)人:南京烽火星空通信发展有限公司
类型:发明
国别省市:

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

1