KR102245386B1 - Software function analysis system using social network and data envelopment and its method - Google Patents

Software function analysis system using social network and data envelopment and its method Download PDF

Info

Publication number
KR102245386B1
KR102245386B1 KR1020190085761A KR20190085761A KR102245386B1 KR 102245386 B1 KR102245386 B1 KR 102245386B1 KR 1020190085761 A KR1020190085761 A KR 1020190085761A KR 20190085761 A KR20190085761 A KR 20190085761A KR 102245386 B1 KR102245386 B1 KR 102245386B1
Authority
KR
South Korea
Prior art keywords
function
social network
value
index
deriving
Prior art date
Application number
KR1020190085761A
Other languages
Korean (ko)
Other versions
KR20210009143A (en
Inventor
김우제
허상무
Original Assignee
서울과학기술대학교 산학협력단
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 서울과학기술대학교 산학협력단 filed Critical 서울과학기술대학교 산학협력단
Priority to KR1020190085761A priority Critical patent/KR102245386B1/en
Publication of KR20210009143A publication Critical patent/KR20210009143A/en
Application granted granted Critical
Publication of KR102245386B1 publication Critical patent/KR102245386B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Abstract

본 발명은 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템 및 그 방법에 관한 것으로서, 다수의 소프트웨어 중에 어느 하나의 프로그램의 소스를 입력받는 소스 선정부; 소스에 포함된 함수 각각의 연결 경로를 도출하는 노드 추적부; 함수 각각의 연결 경로로부터 사회연결망 지표 값을 도출하는 사회연결망 지표 도출부; 및 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 핵심함수로 도출하는 자료포락부를 포함한다.
상기와 같은 본 발명에 따르면, 프로그램 소스에서 함수들 간에 연결된 정도, 위세중심성 지표, 노드의 링크 정도에 따른 HITS 지표, 노드를 연결하는 최단거리 경로 측정을 합산한 인접 중심성 지표, 노드를 중계하는 정도를 측정하는 사이중심성 지표 및 노드가 다른 점들 사이에 위치하는 정도를 측정함으로써, 핵심함수를 도출하는 효과가 있다.
The present invention relates to a software function analysis system and method using a social network and a data envelope, comprising: a source selection unit receiving a source of any one program among a plurality of software; A node tracking unit for deriving a connection path for each function included in the source; A social network index derivation unit for deriving a social network index value from each connection path of the function; And a data envelope for deriving a social network index value having a value greater than a preset value as a core function.
According to the present invention as described above, the degree of connection between the functions in the program source, the predominant centrality index, the HITS index according to the link degree of the node, the adjacent centrality index obtained by summing the shortest-distance path measurements connecting the nodes, and the degree of relaying the nodes. It is effective to derive the core function by measuring the center of gravity index and the degree to which the node is located between different points.

Description

사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템 및 그 방법{Software function analysis system using social network and data envelopment and its method}Software function analysis system using social network and data envelopment and its method}

본 발명은 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 프로그램 소스에서 함수들 간의 연결을 도출한 후, 호출되지 않는 함수는 제외시키고, 함수들이 연결된 정도, 위세중심성 지표, 노드의 링크 정도에 따른 HITS 지표, 노드를 연결하는 최단거리 경로 측정을 합산한 인접 중심성 지표, 노드를 중계하는 정도를 측정하는 사이중심성 지표 및 노드가 다른 점들 사이에 위치하는 정도를 측정하여 핵심함수를 도출하는 기술에 관한 것이다.The present invention relates to a software function analysis system and method using a social network and a data envelope, and more particularly, after deriving a connection between functions from a program source, excluding functions that are not called, and the degree to which functions are connected, The predominant centrality indicator, the HITS indicator according to the link level of the node, the adjacent centrality indicator that sums up the measurement of the shortest-distance path connecting the nodes, the intercentrality indicator that measures the degree of relaying nodes, and the degree to which nodes are located between different points. It is about the technology to derive the core function by measuring it.

소프트웨어 개발 조직에서는 결함을 제거하기 위하여 개발 초기에는 코드 인스펙션을 수행하고, 개발 중에는 버그를 수정하며, 개발 후에는 테스트를 통하여 결함을 제거한다. 개발 초기에 코드 인스펙션을 수행하여 결함을 제거하는 것이, 개발 비용을 절감하고 개발 기간도 단축시킬 수 있는 가장 좋은 방법으로 알려져 있다(Rico, 2002). 그렇지만, 코드 인스펙션을 수행할 때, 어느 소스를 선정해야 하는지에 대한 명확한 기준은 없는 실정이다.In order to remove defects, the software development organization performs code inspection at the beginning of development, fixes bugs during development, and removes defects through testing after development. Removing defects by performing code inspection in the early stages of development is known as the best way to reduce development cost and shorten development period (Rico, 2002). However, there is no clear standard as to which source to select when performing code inspection.

근래 IT 시스템은 규모가 점점 커지고 복잡해지므로, 사람이 육안으로 하는 코드 인스펙션을 수행하기가 어려워지고 있다. 이런 문제를 해결하기 위하여, 정적분석도구를 이용하여 결함이 발생할 가능성이 높은 코드를 제시한다. 소프트웨어 소스의 함수들은 서로 호출하는 연결망 구조를 형성하고 있고, 중요한 위치를 점유하고 있는 함수가 있을 것이다. 만약, 결함이나 성능에 관련된 중요한 함수를 찾아낼 수 있다면, 그 함수들을 집중적으로 관리하여 결함을 제거하거나 성능을 개선시키면, 적은 비용과 노력으로 상당한 효과를 거둘 수 있을 것이다.In recent years, IT systems have become increasingly larger and more complex, making it difficult for humans to perform visual code inspection. In order to solve this problem, a code with a high probability of defects is presented using a static analysis tool. The functions of the software source form a network structure that calls each other, and there will be functions that occupy important positions. If an important function related to defects or performance can be found, if the functions are managed intensively to eliminate defects or improve performance, significant effects can be achieved with little cost and effort.

하지만, 코드 인스펙션이나 정적분석도구에서는 소스 함수의 연결망 구조를 분석하지는 않고, 함수가 몇 번 호출(Fan-in)되고, 다른 함수를 몇 번 호출(Fan-out)하는 지에 대하여 분석하게 된다. 이렇게 분석된 정보는 호출이 많이 된 함수는 중요한 함수이고, 호출이 적게 된 함수는 중요하지 않은 함수라는 잘못된 정보를 전달하게 되는 문제점이 있다.However, code inspection or static analysis tools do not analyze the network structure of the source function, but analyze how many times the function is called (Fan-in) and how many times other functions are called (Fan-out). As for the analyzed information, there is a problem in that a function with many calls is an important function, and a function with few calls is an unimportant function.

이에 본 출원인은 복수의 입력요소와 산출요소를 이용하여 의사결정단위들의 상대적인 효율성을 측정하는 자료포락분석을 통해 함수간의 상대적인 효율성을 측정하여 핵심함수를 도출하는 기법을 제안하고자 한다.Accordingly, the present applicant intends to propose a technique for deriving a core function by measuring the relative efficiency between functions through data envelope analysis that measures the relative efficiency of decision-making units using a plurality of input and output elements.

대한민국 등록특허공보 제10-1311050호(2013.09.27.공고)Korean Registered Patent Publication No. 10-1311050 (announced on September 27, 2013)

본 발명의 목적은, 프로그램 소스에서 함수들 간에 연결된 정도, 위세중심성 지표, 노드의 링크 정도에 따른 HITS 지표, 노드를 연결하는 최단거리 경로 측정을 합산한 인접 중심성 지표, 노드를 중계하는 정도를 측정하는 사이중심성 지표, 및 노드가 다른 점들 사이에 위치하는 정도를 측정함으로써, 핵심함수를 도출하는데 있다.It is an object of the present invention to measure the degree of connection between functions in a program source, an index of predominance centrality, an index of HITS according to the degree of linking of a node, an adjacent centrality index obtained by summing up the measurement of the shortest-distance path connecting nodes, and the degree of relaying nodes. It is to derive the core function by measuring the center of gravity index, and the degree to which the node is located between different points.

본 발명에 따르면, 프로그램 소스에 대한 핵심함수를 집중적으로 테스트함으로써, 실행 결함 제거하여 오류를 바로잡고 실행 성능을 개선시키는 효과가 있다.According to the present invention, by intensively testing a core function for a program source, there is an effect of removing execution defects, correcting errors and improving execution performance.

이러한 기술적 과제를 달성하기 위한 본 발명의 일 실시예는 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템으로서, 다수의 소프트웨어 중에 어느 하나의 프로그램의 소스를 입력받는 소스 선정부; 소스에 포함된 함수 각각의 연결 경로를 도출하는 노드 추적부; 함수 각각의 연결 경로로부터 사회연결망 지표 값을 도출하는 사회연결망 지표 도출부; 및 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 핵심함수로 도출하는 자료포락부를 포함한다.An embodiment of the present invention for achieving this technical problem is a software function analysis system using a social network and a data envelope, comprising: a source selection unit receiving a source of any one program among a plurality of software; A node tracking unit for deriving a connection path for each function included in the source; A social network index derivation unit for deriving a social network index value from each connection path of the function; And a data envelope for deriving a social network index value having a value greater than a preset value as a core function.

바람직하게는, 노드 추적부는 소스에 포함된 함수 각각의 연결 경로를 추적하여 전체 함수에 대한 연결을 구성하는 것을 특징으로 한다.Preferably, the node tracking unit is characterized in constructing a connection to the entire function by tracking the connection path of each function included in the source.

사회연결망 지표 도출부는, 함수 각각에 대한 연결 경로로부터 특정 함수에 대한 연결 정도에 대한 지표 값을 도출하고, 특정 함수 실행시 이 함수와 연결된 함수가 실행되는 정도에 대한 위세중심성 지표 값을 도출하며, 노드의 링크 횟수에 따른 함수간의 참조관계에 대한 HITS 지표 값을 도출하고, 두 노드를 연결하는 최단 경로거리를 합산한 인접중심성 지표 값을 도출하고, 노드를 중계하는 정도를 측정하는 사이중심성 지표 값을 도출하는 것을 특징으로 한다.The social network index derivation unit derives the index value for the degree of connection to a specific function from the connection path for each function, and derives the value of the dominance-centeredness index for the degree to which the function connected to this function is executed when the specific function is executed, Intercentrality index value that derives the HITS index value for the reference relationship between functions according to the number of links of nodes, derives the value of the adjacency centering index by summing the shortest path distance connecting two nodes, and measures the degree to which nodes are relayed. It is characterized in that to derive.

자료포락부는, 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 소수점 이상으로 변환하고, 변환한 사회연결망 지표 값과 대응하는 함수를 중요도에 따라 그룹으로 분류하여 핵심함수로 도출하되, 분류된 핵심함수의 소스가 기 설정된 라인 이하인 경우 해당 함수를 제외시키는 것을 특징으로 한다.The data envelope converts the value of the social network index having a value greater than a preset value to more than a decimal point, classifies the converted social network index value and the corresponding function into groups according to their importance, and derives them as core functions. When the source of the function is less than or equal to a preset line, the function is excluded.

전술한 시스템을 기반으로 하는 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법은, 소스 선정부가 다수의 소프트웨어 중에 어느 하나의 프로그램의 소스를 입력받는 (a) 단계; 노드 추적부가 소스에 포함된 함수 각각의 연결 경로를 도출하는 (b) 단계; 사회연결망 지표 도출부가 함수들 간의 연결 경로로부터 사회연결망 지표 값을 도출하는 (c) 단계; 및 자료포락부가 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값과 대응하는 함수를 핵심함수로 도출하는 (d) 단계를 포함하는 것을 특징으로 한다.The method for analyzing a software function using a social network and a data envelope according to an embodiment of the present invention based on the above-described system includes the steps of: (a) receiving a source of a program from among a plurality of software by a source selection unit; (B) deriving a connection path for each function included in the source by the node tracking unit; (C) deriving a social network index value from a connection path between functions by a social network index derivation unit; And (d) deriving a function corresponding to a social network index value having a value greater than a preset value as a core function of the data envelope.

바람직하게 (c) 단계는, 사회연결망 지표 도출부가 함수 각각에 대한 연결 경로로부터 특정 함수에 대한 연결 정도에 대한 지표 값을 도출하는 (c-1) 단계; 사회연결망 지표 도출부가 특정 함수 실행시 이 함수와 연결된 함수가 실행되는 정도에 대한 위세중심성 지표 값을 도출하는 (c-2) 단계; 사회연결망 지표 도출부가 노드의 링크 횟수에 따른 함수간의 참조관계에 대한 HITS 지표 값을 도출하는 (c-3) 단계; 및 사회연결망 지표 도출부가 두 노드를 연결하는 최단 경로거리를 합산한 인접중심성 지표 값을 도출하는 (c-4) 단계; 사회연결망 지표 도출부가 노드를 중계하는 정도를 측정하는 사이중심성 지표 값을 도출하는 (c-5)단계를 포함하는 것을 특징으로 한다.Preferably, the step (c) includes: (c-1) in which the social network index derivation unit derives an index value for a degree of connection to a specific function from a connection path for each function; A step (c-2) of deriving, by the social network index derivation unit, a value of the dominance-centeredness index of the degree to which a function connected to the function is executed when a specific function is executed; (C-3) step of deriving, by the social network index derivation unit, a HITS index value for a reference relationship between functions according to the number of links of nodes; And (c-4) deriving, by the social network index derivation unit, an adjacent center of gravity index value obtained by summing the shortest path distances connecting the two nodes. It characterized in that it comprises a step (c-5) of deriving a value of the inter-centrality index for measuring the degree to which the social network index derivation unit relays the nodes.

상기와 같은 본 발명에 따르면, 프로그램 소스에서 함수들 간에 연결된 정도, 위세중심성 지표, 노드의 링크 정도에 따른 HITS 지표, 노드를 연결하는 최단거리 경로 측정을 합산한 인접 중심성 지표, 노드를 중계하는 정도를 측정하는 사이중심성 지표, 및 노드가 다른 점들 사이에 위치하는 정도를 측정함으로써, 핵심함수를 도출하는 효과가 있다.According to the present invention as described above, the degree of connection between the functions in the program source, the predominant centrality index, the HITS index according to the link degree of the node, the adjacent centrality index obtained by summing the shortest-distance path measurements connecting the nodes, and the degree of relaying the nodes. There is an effect of deriving a core function by measuring the center of gravity index, which measures the value, and the degree to which the node is located between different points.

본 발명에 따르면, 프로그램 소스에 대한 핵심함수를 집중적으로 테스트함으로써, 실행 결함 제거하여 오류를 바로잡고 실행 성능을 개선시키는 효과가 있다.According to the present invention, by intensively testing a core function for a program source, there is an effect of removing execution defects, correcting errors and improving execution performance.

도 1은 본 발명의 한 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템을 도시한 구성도.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 함수 분석 시스템의 노드 추적부에 대한 예를 도시한 도면.
도 3은 본 발명의 일 실시예에 따른 사회연결망을 이용한 소프트웨어 함수 분석 시스템의 사회연결망 지표 도출부가 연결 정도에 대한 지표 값을 도출한 것을 도시한 예시도.
도4a 및 도 4b는 본 발명의 일 실시예에 따른 사회연결망을 이용한 소프트웨어 함수 분석 시스템의 사회연결망 지표 도출부가 위세중심성 지표 값을 도출한 것을 도시한 예시도.
도 5는 본 발명의 일 실시예에 따른 사회연결망을 이용한 소프트웨어 함수 분석 시스템의 사회연결망 지표 도출부가 HITS 지표 값을 도출한 것을 도시한 예시도.
도 6은 본 발명의 일 실시예에 따른 사회연결망을 이용한 소프트웨어 함수 분석 시스템의 사회연결망 지표 도출부가 인접중심성 지표 값을 도출한 것을 도시한 예시도.
도 7은 본 발명의 일 실시예에 따른 사회연결망을 이용한 소프트웨어 함수 분석 시스템의 사회연결망 지표 도출부가 사이중심성 지표 값을 도출한 것을 도시한 예시도.
도 8은 본 발명의 일 실시예에 따른 자료포락을 이용한 소프트웨어 함수 분석 시스템의 자료포락부가 핵심함수를 도출한 것을 도시한 예시도.
도 9는 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법을 도시한 순서도.
도 10은 본 발명의 일 실시예에 따른 사회연결망 분석기법을 이용한 소프트웨어 함수 분석 방법의 제S906 단계의 세부과정을 도시한 순서도.
도 11은 본 발명의 일 실시예에 따른 자료포락을 이용한 소프트웨어 함수 분석 방법의 제S908단계 이후과정을 도시한 순서도.
1 is a block diagram showing a software function analysis system using a social network and a data envelope according to an embodiment of the present invention.
2 is a diagram showing an example of a node tracking unit of the software function analysis system according to an embodiment of the present invention.
3 is an exemplary view showing that a social network index derivation unit of a software function analysis system using a social network according to an embodiment of the present invention derives an index value for the degree of connection.
4A and 4B are exemplary diagrams illustrating that a social network index derivation unit of a software function analysis system using a social network according to an embodiment of the present invention derives a prestige centeredness index value.
5 is an exemplary view showing that a social network index derivation unit of a software function analysis system using a social network according to an embodiment of the present invention derives an HITS index value.
6 is an exemplary view showing that a social network index derivation unit of a software function analysis system using a social network according to an embodiment of the present invention derives a value of an adjacent center of gravity index.
FIG. 7 is an exemplary view showing that a social network index derivation unit of a software function analysis system using a social network according to an embodiment of the present invention derives an inter-centrality index value.
8 is an exemplary view showing that a data envelope part of a software function analysis system using a data envelope according to an embodiment of the present invention derives a core function.
9 is a flow chart showing a software function analysis method using a social network and a data envelope according to an embodiment of the present invention.
10 is a flow chart showing a detailed process of step S906 of a software function analysis method using a social network analysis method according to an embodiment of the present invention.
11 is a flow chart showing a process after step S908 of a method for analyzing a software function using a data envelope according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art may easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are attached to similar parts throughout the specification.

도 1을 참조하면 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템(100)은, 다수의 소프트웨어 중에 어느 하나에 대한 프로그램의 소스를 입력받는 소스 선정부(102)와, 소스에 포함된 함수 각각의 연결 경로를 도출하는 노드 추적부(104)와, 함수들 간의 연결 경로로부터 사회연결망 지표 값을 도출하는 사회연결망 지표 도출부(106), 및 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 소수점 이상으로 변환하고, 변환한 사회연결망 지표 값과 대응하는 함수를 중요도에 따라 그룹으로 분류하여 핵심함수로 도출하는 자료포락부(108)를 포함하여 구성된다.Referring to FIG. 1, a software function analysis system 100 using a social network and a data envelope according to an embodiment of the present invention includes a source selection unit 102 receiving a source of a program for any one of a plurality of software. , A node tracking unit 104 for deriving a connection path for each function included in the source, a social network index deriving unit 106 for deriving a social network index value from the connection path between the functions, and a value greater than a preset value It is configured to include a data envelope 108 that converts the social network index value having a decimal point or more, classifies the converted social network index value and the corresponding function into groups according to importance, and derives it as a core function.

구체적으로, 노드 추적부(104)는 소스에 포함된 함수 각각의 연결 경로를 추적하여 전체 함수에 대한 연결을 구성한다.Specifically, the node tracking unit 104 configures a connection to the entire function by tracking the connection path of each function included in the source.

예컨대, 노드 추적부(104)는 도 2에 도시된 바와 같이, 소스 파일은 2개(Start.c, Parser.c)로 구성되어 있고, Start.c의 main 함수 내에서 도 2의 ①처럼 Parser.c의 Paser() 함수를 호출하고, Paser.c는 도 2의 ②처럼 자기 자신 파일내의 Internal_func 함수를 호출하도록 코딩되어 있다고 가정한다. 또한, Start.c는 도 2의 ③처럼 자기가 속한 파일 내의 Internal_func 함수를 호출하게 된다.For example, the node tracking unit 104 is composed of two source files (Start.c and Parser.c), as shown in FIG. 2, and in the main function of Start.c, Parser as shown in ① of FIG. 2 It is assumed that the Paser() function of .c is called, and Paser.c is coded to call the Internal_func function in its own file as shown in ② of FIG. 2. In addition, Start.c calls the Internal_func function in the file to which it belongs, as shown in ③ of FIG. 2.

이때, static으로 선언된 Internal_func() 함수는 Start.c와 Parser.c에 전부 존재하지만, 파일 내부에서만 사용되므로 컴파일이나 실행하는 데 전혀 문제가 없다.At this time, the Internal_func() function declared as static exists in Start.c and Parser.c, but it is used only inside the file, so there is no problem with compiling or executing.

이하, 도 3 내지 도 7을 참조하여 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템(100)의 사회연결망 지표 도출부(106)가 수행하는 세부 절차에 대해 살피면 아래와 같다.Hereinafter, a detailed procedure performed by the social network index derivation unit 106 of the software function analysis system 100 using a social network and data envelope according to an embodiment of the present invention will be described with reference to FIGS. 3 to 7. same.

먼저, 사회연결망 지표 도출부(106)는 함수들간의 연결 경로로부터 사회연결망 지표 값을 도출하되, 먼저 함수 각각에 대한 연결 경로로부터 특정 함수에 대한 연결 정도에 대한 지표 값을 도출한다.First, the social network index derivation unit 106 derives a social network index value from a connection path between functions, and first, derives an index value for a degree of connection to a specific function from the connection paths for each function.

이때, 연결 정도에 대한 지표 값은 도 3에 도시된 바와 같이 사회연결망 분석을 통해 연결 정도에 대한 지표 값을 도출할 수 있다.In this case, as shown in FIG. 3, the index value for the degree of connection may be derived through an analysis of the social network.

이어서, 사회연결망 지표 도출부(106)는 특정 함수 실행시 이 함수와 연결된 함수가 실행되는 정도에 대한 위세중심성 지표 값을 도출한다.Subsequently, the social network index derivation unit 106 derives a prestige centeredness index value for the degree to which a function connected to the function is executed when a specific function is executed.

이때, 도 4a 및 4b를 참조하면, 연결 정도에 대한 지표 값에 따라 정렬된 함수 중에 특정 함수(er_set) 실행 시 이 함수에 연결된 함수(er_set_internal)가 다른 함수에 의하여 3번만 호출되지만, 특정 함수(er_set)가 실행되면, 같이 실행될 수 있으므로 특정 함수(er_set)의 위세에 의하여 많이 실행될 가능성이 있다는 위세중심성 지표 값으로 도출하게 된다.At this time, referring to FIGS. 4A and 4B, when a specific function (er_set) is executed among the functions arranged according to the index value of the connection degree, the function connected to this function (er_set_internal) is called only 3 times by another function, but a specific function ( When er_set) is executed, it can be executed together, so it is derived as a value of the dominance-centeredness indicator that there is a possibility that a large number of executions may be performed by the dominance of a specific function (er_set).

뒤이어, 사회연결망 지표 도출부(106)는 노드의 링크 횟수에 따른 함수간의 참조관계에 대한 HITS 지표 값을 도출하되, 도 5에 도시된 바와 같이 사회연결망 분석을 통해 도출하되, 노드의 Authority 값이 큰 순으로 정렬하도록 구성된다.Subsequently, the social network index derivation unit 106 derives the HITS index value for the reference relationship between the functions according to the number of links of the node, but is derived through the social network analysis as shown in FIG. 5, but the authority value of the node is It is configured to be sorted in large order.

이때, Authority 점수가 높으면 Hub 점수 역시 높고, Hub 점수가 높으면 노드의 링크가 많기 때문에 해당 함수가 실행될 가능성 역시 높아지게 된다.At this time, if the Authority score is high, the Hub score is also high, and if the Hub score is high, the possibility of executing the function increases because there are many links of nodes.

이어서, 사회연결망 지표 도출부(106)는 두 노드를 연결하는 최단 경로거리를 합산한 인접중심성 지표 값을 사회연결망 분석을 통해 도 6에 도시된 바와 같이 도출한다.Subsequently, the social network index derivation unit 106 derives, as shown in FIG. 6, a value of an adjacent center of gravity index obtained by summing the shortest path distances connecting the two nodes through the social network analysis.

이때, 인접 중심성이 높을수록 최단경로거리의 합은 작아지고 전체 연결망의 중심에 가까워지게 된다.At this time, the higher the adjacent centrality, the smaller the sum of the shortest path distances and the closer to the center of the entire network.

그리고, 사회연결망 지표 도출부(106)는 노드를 중계하는 정도를 측정하는 사이중심성 지표 값을 사회연결망 분석을 통해 도 7에 도시된 바와 같이 도출한다.In addition, the social network index derivation unit 106 derives, as illustrated in FIG. 7, a value of an inter-centrality index, which measures the degree of relaying nodes, through social network analysis.

한편, 도 8에 도시된 바와 같이 자료포락부(108)는 전술한 바와 같이 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 소수점 이상으로 변환하고, 변환된 사회연결망 지표 값들에 대응하는 함수들의 상대적인 효율성을 계산하여 기 설정된 값보다 큰 값을 갖는 함수를 핵심함수로 도출한다.Meanwhile, as shown in FIG. 8, the data envelope 108 converts a social network index value having a value greater than a preset value to a decimal point or more, as described above, and includes functions corresponding to the converted social network index values. By calculating the relative efficiency, a function with a value larger than a preset value is derived as a core function.

이어서, 도출된 핵심함수는 제외시키고, 다시 대상 함수들에 대하여 상대적인 효율성을 계산하여 다음 순위의 핵심함수를 도출하며, 이런 과정은 여러 번 반복할 수 있으며 도출된 순서대로 핵심함수를 그룹화하고 우선순위를 결정한다.Subsequently, the derived core functions are excluded, and the relative efficiency of the target functions is calculated again to derive the next-ranked core functions. This process can be repeated several times, and the core functions are grouped in the derived order and prioritized. Decide.

또한, 자료포락부(108)는 분류된 핵심함수의 소스가 기 설정된 라인 이하인 경우 해당 함수를 제외하고, 기 설정된 값보다 작은 값을 갖는 함수를 핵심함수에서 제외하도록 구성된다.In addition, when the source of the classified core function is less than or equal to a preset line, the data envelope 108 is configured to exclude a function having a value smaller than a preset value from the core function.

이때, 함수 필터링을 위해 기 설정된 라인은 8줄 내지 12줄 바람직하게는 10줄로 설정될 수 있으나, 본 발명의 일 실시예가 이에 국한되는 것은 아니다. 또한, 함수를 중요도에 따라 분류되는 그룹은 3개 내지 5개 바람직하게는 4개로 분류될 수 있으며, 분류되는 그룹의 개수는 설정 값에 따라 변경될 수 있다.In this case, the preset line for function filtering may be set to 8 to 12 lines, preferably 10 lines, but an embodiment of the present invention is not limited thereto. In addition, the number of groups classified according to the importance of the function may be classified into 3 to 5, preferably 4, and the number of classified groups may be changed according to a set value.

이하, 도 9를 참조하여 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법에 대해 살피면 아래와 같다.Hereinafter, a method of analyzing a software function using a social network and a data envelope according to an embodiment of the present invention will be described with reference to FIG. 9.

먼저, 소스 선정부가 다수의 소프트웨어 중에 어느 하나의 프로그램의 소스를 입력받는다(S902).First, the source selection unit receives the source of any one program among a plurality of software (S902).

이어서, 노드 추적부가 소스에 포함된 함수 각각의 연결 경로를 도출한다(S904).Subsequently, the node tracking unit derives a connection path for each function included in the source (S904).

뒤이어, 사회연결망 지표 도출부가 함수들 간의 연결 경로로부터 사회연결망 지표 값을 도출한다(S906).Subsequently, the social network index derivation unit derives the social network index value from the connection path between the functions (S906).

그리고, 자료포락부가 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값과 대응하는 함수를 핵심함수로 도출한다(S908).In addition, a function corresponding to a social network index value having a value larger than a preset value of the data envelope is derived as a core function (S908).

이하, 도 10을 참조하여 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법의 제S906 단계의 세부과정에 대해 살피면 아래와 같다.Hereinafter, a detailed process of step S906 of the software function analysis method using a social network and data envelope according to an embodiment of the present invention will be described with reference to FIG. 10.

제S904단계 이후, 사회연결망 지표 도출부가 함수 각각에 대한 연결 경로로부터 특정 함수에 대한 연결 정도에 대한 지표 값을 도출한다(S1002).After step S904, the social network index derivation unit derives an index value for the degree of connection to a specific function from the connection paths for each function (S1002).

이어서, 사회연결망 지표 도출부가 특정 함수 실행시 이 함수와 연결된 함수가 실행되는 정도에 대한 위세중심성 지표 값을 도출한다(S1004).Subsequently, when the social network index derivation unit executes a specific function, the authority-centeredness index value for the degree to which the function connected to the function is executed (S1004).

뒤이어, 사회연결망 지표 도출부가 노드의 링크 횟수에 따른 함수간의 참조관계에 대한 HITS 지표 값을 도출한다(S1006).Subsequently, the social network index derivation unit derives the HITS index value for the reference relationship between the functions according to the number of links of the node (S1006).

이어서, 사회연결망 지표 도출부가 두 노드를 연결하는 최단 경로거리를 합산한 인접중심성 지표 값을 도출한다(S1008).Subsequently, the social network index derivation unit derives an adjacent centroid index value obtained by summing the shortest path distances connecting the two nodes (S1008).

그리고, 사회연결망 지표 도출부가 노드를 중계하는 정도를 측정하는 사이중심성 지표 값을 도출한다(S1010).In addition, an inter-centrality index value, which measures the degree to which the social network index derivation unit relays the node, is derived (S1010).

이하, 도 11을 참조하여 본 발명의 일 실시예에 따른 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법의 제S908단계 이후과정에 대해 살피면 아래와 같다.Hereinafter, a process after step S908 of the software function analysis method using a social network and data envelope according to an embodiment of the present invention will be described with reference to FIG. 11.

제S908단계 이후, 자료포락부가 비교할 함수들의 사회연결망 지표 값을 이용하여 상대적인 효율성을 계산한다(S1102).After step S908, the data envelope calculates the relative efficiency by using the social network index values of the functions to be compared (S1102).

이어서, 자료포락부가 계산된 상대적인 효율성이 기 설정된 값보다 큰 값이 있는 지를 비교한다(S1104).Subsequently, it is compared whether there is a value greater than a preset value for the calculated relative efficiency of the data envelope (S1104).

S1104의 비교결과, 기 설정된 값보다 상대적인 효율성이 큰 함수가 검출된 경우, 자료포락부가 해당 함수를 핵심함수로 등재하고, 비교할 함수 목록에서 제외시킨 후 S1102로 분기한다(S1106).As a result of the comparison of S1104, when a function having a relative efficiency greater than the preset value is detected, the data envelope registers the function as a core function, excludes it from the list of functions to be compared, and branches to S1102 (S1106).

반면에, 제S1104의 비교결과, 기 설정된 값보다 더 이상 상대적인 효율성이 큰 함수가 존재하지 않는 경우, 자료포락부가 분석을 종료하고 분석된 순서에 입각하여 핵심함수의 중요도를 결정한다. On the other hand, as a result of the comparison of S1104, when there is no function having a relatively greater efficiency than the preset value, the data envelope ends the analysis and determines the importance of the core function based on the analyzed order.

그리고, 자료포락부가 도출된 핵심함수의 라인 수가 기 설정된 라인 이하인 경우 해당 함수를 핵심함수에서 제외시킬 수 있다(S1108).In addition, when the number of lines of the core function from which the data envelope is derived is less than or equal to a preset line, the function may be excluded from the core function (S1108).

이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등 물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.Although described and illustrated in connection with a preferred embodiment for illustrating the technical idea of the present invention as described above, the present invention is not limited to the configuration and operation as illustrated and described as described above, and deviates from the scope of the technical idea. It will be well understood by those skilled in the art that many changes and modifications are possible to the present invention without. Accordingly, all such appropriate changes and modifications and equivalents should be considered to be within the scope of the present invention.

100: 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템
102: 소스 선정부
104: 노드 추적부
106: 사회연결망 지표 도출부
108: 자료포락부
100: Software function analysis system using social network and data envelope
102: source selection unit
104: node tracking unit
106: Social network index derivation unit
108: data envelope

Claims (6)

다수의 소프트웨어 중에 어느 하나의 프로그램의 소스를 입력받는 소스 선정부;
상기 소스에 포함된 함수 각각의 연결 경로를 도출하는 노드 추적부;
함수 각각의 연결 경로로부터 사회연결망 지표 값을 도출하는 사회연결망 지표 도출부; 및
기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 핵심함수로 도출하는 자료포락부를 포함하며,
상기 자료포락부는 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 소수점 이상으로 변환하고, 변환한 사회연결망 지표 값과 대응하는 함수를 중요도에 따라 그룹으로 분류하여 핵심함수로 도출하되,
분류된 핵심함수의 소스가 기 설정된 라인 이하인 경우 해당 함수를 제외하고, 기 설정된 값보다 작은 값을 갖는 함수를 핵심함수에서 제외시키는 것을 특징으로 하는 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템.
A source selection unit receiving a source of any one program among a plurality of software;
A node tracking unit for deriving a connection path for each function included in the source;
A social network index derivation unit for deriving a social network index value from each connection path of the function; And
It includes a data envelope that derives a social network index value having a value greater than a preset value as a core function,
The data envelope converts a social network index value having a value greater than a preset value to more than a decimal point, and classifies the converted social network index value and the corresponding function into groups according to importance, and derives it as a core function,
A software function analysis system using a social network and data envelope, characterized in that when a source of a classified core function is less than or equal to a preset line, a function having a value smaller than a preset value is excluded from the core function, excluding the corresponding function.
제1항에 있어서,
상기 노드 추적부는,
상기 소스에 포함된 함수 각각의 연결 경로를 추적하여 전체 함수에 대한 연결을 구성하는 것을 특징으로 하는 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템.
The method of claim 1,
The node tracking unit,
A software function analysis system using a social network and data envelope, characterized in that a connection path for each function included in the source is tracked to configure a connection to the entire function.
제1항에 있어서,
상기 사회연결망 지표 도출부는,
함수 각각에 대한 연결 경로로부터 특정 함수에 대한 연결 정도에 대한 지표 값을 도출하고,
특정 함수 실행시 이 함수와 연결된 함수가 실행되는 정도에 대한 위세중심성 지표 값을 도출하며,
노드의 링크 횟수에 따른 함수간의 참조관계에 대한 HITS 지표 값을 도출하고,
두 노드를 연결하는 최단 경로거리를 합산한 인접중심성 지표 값을 도출하고, 노드를 중계하는 정도를 측정하는 사이중심성 지표 값을 도출하는 것을 특징으로 하는 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 시스템.
The method of claim 1,
The social network index derivation unit,
Derive an index value for the degree of connection to a specific function from the connection path for each function,
When a specific function is executed, it derives the value of the dominance centrality index for the degree to which the function associated with this function is executed,
Derive the HITS index value for the reference relationship between functions according to the number of links of nodes,
A software function analysis system using a social network and data envelope, characterized in that derives an adjacent centroid index value obtained by summing the shortest path distance connecting two nodes, and derives an intercentrality index value that measures the degree to which nodes are relayed.
삭제delete (a) 소스 선정부가 다수의 소프트웨어 중에 어느 하나의 프로그램의 소스를 입력받는 단계;
(b) 노드 추적부가 소스에 포함된 함수 각각의 연결 경로를 도출하는 단계;
(c) 사회연결망 지표 도출부가 함수들 간의 연결 경로로부터 사회연결망 지표 값을 도출하는 단계; 및
(d) 자료포락부가 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값과 대응하는 함수를 핵심함수로 도출하는 단계를 포함하며,
상기 제 (d) 단계는 상기 자료포락부가 기 설정된 값보다 큰 값을 갖는 사회연결망 지표 값을 소수점 이상으로 변환하고, 변환한 사회연결망 지표 값과 대응하는 함수를 중요도에 따라 그룹으로 분류하여 핵심함수로 도출하되,
분류된 핵심함수의 소스가 기 설정된 라인 이하인 경우 해당 함수를 제외하고, 기 설정된 값보다 작은 값을 갖는 함수를 핵심함수에서 제외시키는 것을 특징으로 하는 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법.
(a) receiving, by a source selection unit, a source of any one program among a plurality of software;
(b) deriving a connection path for each function included in the source by a node tracking unit;
(c) a step of deriving a social network index value from a connection path between functions by a social network index derivation unit; And
(d) including the step of deriving a function corresponding to a social network index value having a value greater than a preset value of the data envelope as a core function,
In the step (d), the social network index value having a value greater than a preset value of the data envelope is converted to a decimal point or higher, and the converted social network index value and the corresponding function are classified into groups according to importance, and the core function is But derived as,
A software function analysis method using a social network and data envelope, characterized in that when a source of a classified core function is less than or equal to a preset line, a function having a value smaller than a preset value is excluded from the core function, excluding the corresponding function.
제5항에 있어서,
상기 (c) 단계는,
(c-1) 사회연결망 지표 도출부가 함수 각각에 대한 연결 경로로부터 특정 함수에 대한 연결 정도에 대한 지표 값을 도출하는 단계;
(c-2) 사회연결망 지표 도출부가 특정 함수 실행시 이 함수와 연결된 함수가 실행되는 정도에 대한 위세중심성 지표 값을 도출하는 단계;
(c-3) 사회연결망 지표 도출부가 노드의 링크 횟수에 따른 함수간의 참조관계에 대한 HITS 지표 값을 도출하는 단계;
(c-4) 사회연결망 지표 도출부가 두 노드를 연결하는 최단 경로거리를 합산한 인접중심성 지표 값을 도출하는 단계; 및
(c-5) 사회연결망 지표 도출부가 노드를 중계하는 정도를 측정하는 사이 중심성 지표 값을 도출하는 단계를
포함하는 것을 특징으로 하는 사회연결망과 자료포락을 이용한 소프트웨어 함수 분석 방법.
The method of claim 5,
The step (c),
(c-1) deriving, by a social network index derivation unit, an index value for a degree of connection to a specific function from a connection path for each function;
(c-2) the step of deriving, by the social network index derivation unit, a value of the authority-centeredness index for the degree to which a function connected to the function is executed when a specific function is executed;
(c-3) deriving, by a social network index derivation unit, a HITS index value for a reference relationship between functions according to the number of links of nodes;
(c-4) deriving, by the social network index derivation unit, an adjacent center of gravity index value obtained by summing the shortest path distances connecting the two nodes; And
(c-5) The step of deriving the centrality index value while measuring the degree to which the social network index derivation unit relays the node.
Software function analysis method using a social network and data envelope, characterized in that it includes.
KR1020190085761A 2019-07-16 2019-07-16 Software function analysis system using social network and data envelopment and its method KR102245386B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190085761A KR102245386B1 (en) 2019-07-16 2019-07-16 Software function analysis system using social network and data envelopment and its method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190085761A KR102245386B1 (en) 2019-07-16 2019-07-16 Software function analysis system using social network and data envelopment and its method

Publications (2)

Publication Number Publication Date
KR20210009143A KR20210009143A (en) 2021-01-26
KR102245386B1 true KR102245386B1 (en) 2021-04-27

Family

ID=74310270

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190085761A KR102245386B1 (en) 2019-07-16 2019-07-16 Software function analysis system using social network and data envelopment and its method

Country Status (1)

Country Link
KR (1) KR102245386B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179488A (en) 2005-12-28 2007-07-12 Fujitsu Ltd Program for predicting source code problem
JP2009163662A (en) 2008-01-10 2009-07-23 Toshiba Corp Information processor, control method of information processor, and control program of information processor
JP2016051224A (en) 2014-08-28 2016-04-11 富士通株式会社 Software structural change detecting method, structural change detecting program, and structural change detecting apparatus

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499919B2 (en) 2005-09-21 2009-03-03 Microsoft Corporation Ranking functions using document usage statistics
KR101016755B1 (en) * 2008-07-18 2011-02-25 한국과학기술원 Mehod of making function list in relation to certain use and system thereof
US9170805B2 (en) * 2010-07-20 2015-10-27 Hitachi, Ltd. Software maintenance supporting device for analyzing relationships between variables

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179488A (en) 2005-12-28 2007-07-12 Fujitsu Ltd Program for predicting source code problem
JP2009163662A (en) 2008-01-10 2009-07-23 Toshiba Corp Information processor, control method of information processor, and control program of information processor
JP2016051224A (en) 2014-08-28 2016-04-11 富士通株式会社 Software structural change detecting method, structural change detecting program, and structural change detecting apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
블로그, ‘최대한 친절하게 쓴 R로 사회연결망 분석하기’, 2018.09.*

Also Published As

Publication number Publication date
KR20210009143A (en) 2021-01-26

Similar Documents

Publication Publication Date Title
CN106294120B (en) Method, apparatus and computer program product for testing code
US9021449B2 (en) Software regression testing using symbolic execution
US20150363305A1 (en) Method for test case reduction based on program behavior slices
CN109933452A (en) A kind of micro services intelligent monitoring method towards anomalous propagation
KR20060045568A (en) Method and system for probe optimization while instrumenting a program
CN112181758B (en) Fault root cause positioning method based on network topology and real-time alarm
CN104899147A (en) Code static analysis method oriented to security check
CN111104335B (en) C language defect detection method and device based on multi-level analysis
CN110515826A (en) A kind of software defect positioning method based on number frequency spectrum and neural network algorithm
CN104503917A (en) Method and system for analyzing change impact domain based on data flow function invoking path
EP3264274B1 (en) Input discovery for unknown program binaries
CN103218297B (en) The screening technique and device of test data
CN103617119B (en) Based on the mutual regression test case selection method covering of statement
US6691079B1 (en) Method and system for analyzing test coverage
KR102245386B1 (en) Software function analysis system using social network and data envelopment and its method
US8266573B2 (en) Method and system for test point insertion
CN106021113A (en) Precise test implementation method
CN104536882A (en) Error locating method based on frequent sub-graph mining
CN114238135A (en) Test case determination method and device and electronic equipment
US8997064B2 (en) Symbolic testing of software using concrete software execution
Kazmi et al. A Test Case Selection Framework and Technique: Weighted Average Scoring Method
KR20100136773A (en) Method for determining test alternation factor in robot software white box test and automated testing system
CN109710538A (en) A kind of static detection method for state related defects in large scale system
CN110308667A (en) A kind of method, system, device and the storage medium of automatic setting interference checking
CN104050084A (en) Modification impact analysis method based on software route analysis result

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant