主权项 |
一种软件复杂网络的三维坐标模型构建方法,实现步骤如下:步骤1:确定目标结构化软件,并获取完整的软件源代码;步骤2:对目标软件源代码进行静态扫描,分析软件中的函数以及函数之间的调用关系;步骤3:以函数作为网络节点,函数调用关系作为网络边,构建目标结构化软件的函数调用网络;其特征在于,步骤4:在步骤3得到的函数调用网络中,加入函数调用顺序信息,函数调用顺序以函数调用语句在代码中行号顺序为准;步骤5:根据函数调用顺序以及函数调用拓扑结构,为每个函数节点生成一组唯一的三维坐标,得到目标结构化软件基于函数调用顺序的函数调用坐标网络;所述的函数坐标网络表示为D<sub>COORD</sub>,定义如下:D<sub>COORD</sub>={V,E}V={v<sub>i</sub>=(name,file,coord=(ρ<sub>i</sub>,θ<sub>i</sub>,z<sub>i</sub>),val=(α<sub>i</sub>,β<sub>i</sub>))|i∈[1,n]}E={e<sub>i</sub>=(v<sub>s</sub>o<sub>urce</sub>,v<sub>target</sub>,codeline)|v<sub>s</sub>o<sub>urce</sub>,v<sub>target</sub>∈V;v<sub>s</sub>o<sub>urce</sub>≠v<sub>target</sub>}其中,n表示目标结构化软件中的函数个数;V为节点集合,该集合中的每一个元素v<sub>i</sub>对应软件中的一个函数,节点v<sub>i</sub>包含属性有:函数名name、函数所在文件file、三维坐标coord、影响力角度区间val;ρ<sub>i</sub>,θ<sub>i</sub>,z<sub>i</sub>为节点v<sub>i</sub>三维坐标的三个值,α<sub>i</sub>,β<sub>i</sub>为节点v<sub>i</sub>影响力角度区间的最小值和最大值;E为边集合,该集合中的每一个元素对应软件中的一对函数调用关系,边e<sub>i</sub>的属性包括:调用起始节点v<sub>source</sub>、调用终止v<sub>target</sub>、该边对应的函数调用语句首次出现在代码中的行号codeline。 |