KR101016755B1 - Mehod of making function list in relation to certain use and system thereof - Google Patents

Mehod of making function list in relation to certain use and system thereof Download PDF

Info

Publication number
KR101016755B1
KR101016755B1 KR1020080069923A KR20080069923A KR101016755B1 KR 101016755 B1 KR101016755 B1 KR 101016755B1 KR 1020080069923 A KR1020080069923 A KR 1020080069923A KR 20080069923 A KR20080069923 A KR 20080069923A KR 101016755 B1 KR101016755 B1 KR 101016755B1
Authority
KR
South Korea
Prior art keywords
function
weight
node
call graph
document
Prior art date
Application number
KR1020080069923A
Other languages
Korean (ko)
Other versions
KR20080072615A (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 KR1020080069923A priority Critical patent/KR101016755B1/en
Publication of KR20080072615A publication Critical patent/KR20080072615A/en
Application granted granted Critical
Publication of KR101016755B1 publication Critical patent/KR101016755B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/312List processing, e.g. LISP programming language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은, 소스코드를 구성하는 각 함수가 특정 기능에 관련된 정도를 나타내는 가중치 콜 그래프를 이용하여, 소스코드를 구성하는 함수 중 특정 기능에 관련된 함수 목록 작성 방법 및 시스템에 관한 것이다. The present invention relates to a method and a system for preparing a function list related to a specific function among functions constituting the source code by using a weighted call graph indicating the degree to which each function constituting the source code is related to a specific function.

특정 기능에 관련된 함수 목록 작성 방법은, (a) 기능소개문서로부터 추출된 기능특징벡터 및 소스코드로부터 추출된 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성하는 단계; (b) 상기 소스코드를 구성하는 각 함수의 호출관계를 나타내는 콜 그래프를 추출하는 단계; (c) 상기 가중치 벡터 및 상기 콜 그래프를 기초로, 상기 함수의 특정 기능에 관련된 정도를 나타내는 관련 가중치 및 특정 기능을 제외한 기능에 관련된 정도를 나타내는 비관련 가중치를 나타낸 가중치 콜 그래프를 생성하는 단계; 및 (d) 상기 가중치 콜 그래프를 분석하여 특정 기능에 관련된 함수 목록을 작성하는 단계를 포함한다. A method for creating a function list related to a specific function may include: (a) generating a weight vector representing the similarity between the function feature vector extracted from the function introduction document and the function feature vector extracted from the source code; (b) extracting a call graph representing a call relation of each function constituting the source code; (c) generating a weighted call graph indicating an associated weight indicating a degree related to a specific function of the function and an unrelated weight indicating a degree related to a function except a specific function based on the weight vector and the call graph; And (d) analyzing the weighted call graph to create a function list related to a specific function.

소스코드, 기능, 함수, 목록 Source code, functions, functions, lists

Description

특정 기능에 관련된 함수 목록 작성 방법 및 시스템{MEHOD OF MAKING FUNCTION LIST IN RELATION TO CERTAIN USE AND SYSTEM THEREOF}METHOD OF MAKING FUNCTION LIST IN RELATION TO CERTAIN USE AND SYSTEM THEREOF}

본 발명은, 소스코드를 구성하는 각각의 함수가 특정 기능에 관련된 정도를 나타내는 가중치 콜 그래프를 이용하여, 소스코드를 구성하는 함수 중 특정 기능에 관련된 함수 목록 작성 방법 및 시스템에 관한 것이다. The present invention relates to a method and a system for creating a function list related to a specific function among functions constituting the source code by using a weighted call graph indicating the degree to which each function constituting the source code is related to a specific function.

소프트웨어의 재사용이란, 기존의 소프트웨어에서 표준화된 공통부분과 잘 알려진 프로세스를 이용하여, 품질 및 생산성을 향상시키며 새로운 소프트웨어의 생산하는 것을 말한다. 소프트웨어의 재사용을 위해 가장 중요한 것은 기존의 소프트웨어를 구성하는 소스코드의 이해이다.Software reuse refers to the production of new software with improved quality and productivity, using common parts and well-known processes standardized in existing software. The most important thing for reusing software is understanding the source code that composes existing software.

소스코드의 설계문서가 있는 경우는 소스코드의 이해가 어렵지 않을 것이나, 일반적으로 소프트웨어는 최초 개발된 후 빈번한 수정을 거치므로 설계문서와 소스코드가 일치하지 않는 경우가 많다. 또한, 다양한 사람들의 협업에 의해 개발되는 오픈 소스의 경우, 설계문서를 기대할 수 없고 간단한 기능소개문서를 기초로 소스코드를 이해하여야 하는 경우가 대다수이다. If there is a design document of the source code, it will not be difficult to understand the source code, but in general, the software often undergoes frequent modifications after the initial development, so the design document and the source code are often inconsistent. In addition, in the case of open source developed by collaboration of various people, the design document cannot be expected and the source code should be understood based on a simple function introduction document.

기능소개문서는 존재하나 설계문서가 존재하지 않는 소프트웨어를 재사용하 려고 하는 경우, 전체 소스코드 분석을 통해 소프트웨어를 이해하는 것은 비용과 시간이 많이 소요된다는 문제점이 있다. 따라서, 소프트웨어의 일부 기능만을 수정하여 사용하고자 하는 경우에, 특정 기능에 관련된 소스코드 만을 검색할 필요가 있다. If you try to reuse software that has function introduction document but no design document, understanding the software through full source code analysis is costly and time-consuming. Therefore, when only some functions of the software are to be modified and used, it is necessary to search only the source codes related to the specific functions.

본 발명이 이루고자 하는 기술적 과제는, 소스코드를 구성하는 각각의 함수가 특정 기능에 관련된 정도를 나타내는 가중치 콜 그래프를 이용하여, 소스코드를 구성하는 함수 중 특정 기능에 관련된 함수 목록 작성 방법 및 시스템을 제공하는 것이다. SUMMARY OF THE INVENTION The present invention provides a method and system for creating a function list related to a specific function among functions constituting the source code by using a weighted call graph indicating the degree to which each function constituting the source code is related to a specific function. To provide.

본 발명의 한 특징에 의하면, 특정 기능에 관련된 함수 목록 작성 방법이 제공된다. According to one aspect of the present invention, a method of creating a function list relating to a particular function is provided.

특정 기능에 관련된 함수 목록 작성 방법은, (a) 기능소개문서로부터 추출된 기능특징벡터 및 소스코드로부터 추출된 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성하는 단계; (b) 상기 소스코드를 구성하는 각 함수의 호출관계를 나타내는 콜 그래프를 추출하는 단계; (c) 상기 가중치 벡터 및 상기 콜 그래프를 기초로, 상기 함수의 특정 기능에 관련된 정도를 나타내는 관련 가중치 및 특정 기능을 제외한 기능에 관련된 정도를 나타내는 비관련 가중치를 나타낸 가중치 콜 그래프를 생성하는 단계; 및 (d) 상기 가중치 콜 그래프를 분석하여 특정 기능에 관련된 함수 목록을 작성하는 단계를 포함한다. A method for creating a function list related to a specific function may include: (a) generating a weight vector representing the similarity between the function feature vector extracted from the function introduction document and the function feature vector extracted from the source code; (b) extracting a call graph representing a call relation of each function constituting the source code; (c) generating a weighted call graph indicating an associated weight indicating a degree related to a specific function of the function and an unrelated weight indicating a degree related to a function except a specific function based on the weight vector and the call graph; And (d) analyzing the weighted call graph to create a function list related to a specific function.

상기 (c) 단계는, (i) 상기 콜 그래프에 상기 관련 가중치 및 상기 비관련 가중치를 표시하는 단계; (ii) 상기 콜 그래프의 각 에지를 통해 호출되는 노드와 그 노드의 하위 에지들의 관련 가중치 및 비관련 가중치를 각각 합산하여 에지 가 중치를 계산하는 단계; 및 (iii) 상기 에지 가중치를 각 에지에 표시하여, 가중치 콜 그래프를 완성하는 단계를 포함할 수 있다. Step (c) may include: (i) displaying the related weights and the unrelated weights in the call graph; (ii) calculating edge weights by summing respective related and unrelated weights of nodes called through each edge of the call graph and the lower edges of the node; And (iii) displaying the edge weights at each edge to complete a weighted call graph.

상기 (d) 단계는, (i) 상기 가중치 콜 그래프의 노드를 기준으로 특정 기능에 관련된 함수들의 집합인 최종 집합을 파악하는 단계를 포함할 수 있고, (ii) 상기 가중치 콜 그래프의 에지를 기준으로 상기 최종 집합을 파악하는 단계를 더 포함할 수 있다. The step (d) may include (i) identifying a final set, which is a set of functions related to a specific function, based on nodes of the weighted call graph, and (ii) based on an edge of the weighted call graph. The method may further include identifying the final set.

상기 (d) 단계의 (i) 단계는, 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드를 작업 노드로 선택하는 단계; 상기 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높은지 여부를 판단하는 단계; 상기 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높다고 판단된 경우, 루트 노드로부터 상기 작업 노드까지의 콜 체인상의 함수 노드를 최종 집합에 추가하는 단계를 포함할 수 있다. Step (i) of the step (d) may include selecting a node having the highest related weight for a specific function among the nodes of the weighted call graph as a work node; Determining whether an associated weight of the work node is higher than an unrelated weight of the work node; If it is determined that the related weight of the work node is higher than the unrelated weight of the work node, adding the function node on the call chain from the root node to the work node to the final set.

상기 (d) 단계의 (ii) 단계는, 상기 가중치 콜 그래프의 루트 노드를 작업 노드로 선택하는 단계; 상기 작업 노드의 하위 에지 중 관련 가중치가 가장 높은 에지를 선택하는 단계; 상기 선택된 에지의 관련 가중치가 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드의 관련 가중치 보다 큰지 여부를 판단하는 단계; 상기 선택된 에지의 관련 가중치가 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드의 관련 가중치 보다 큰 경우, 상기 작업 노드를 상기 최종 집합에 추가하는 단계를 포함할 수 있다. Step (ii) of step (d) may include selecting a root node of the weighted call graph as a work node; Selecting an edge with the highest associated weight among lower edges of the work node; Determining whether the related weight of the selected edge is greater than the related weight of the node having the highest related weight for a particular function among the nodes of the weighted call graph; If the relevant weight of the selected edge is greater than the related weight of the node having the highest related weight for a particular function among the nodes of the weighted call graph, adding the working node to the final set.

상기 (d) 단계의 (ii) 단계는, 상기 선택된 에지의 관련 가중치가 상기 가중 치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드의 관련 가중치 보다 크지 않은 경우, 상기 작업 노드 및 상기 작업 노드로부터 호출되는 모든 모드를 최종 집합에 추가하는 단계를 포함할 수 있다. The step (ii) of the step (d) is performed when the associated weight of the selected edge is not greater than the related weight of the node having the highest related weight for a particular function among the nodes of the weighted call graph. Adding all the modes called from the working node to the final set.

상기 (a) 단계는, (i) 상기 기능소개문서로부터 상기 기능특징벡터를 추출하는 단계; (ii) 상기 소스코드로부터 상기 함수특징벡터를 추출하는 단계; 및 (iii) 상기 기능특징벡터 및 함수특징벡터 간의 내적을 계산하여 상기 기능특징벡터와 상기 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성하는 단계를 포함할 수 있다. The step (a) may include: (i) extracting the function feature vector from the function introduction document; (ii) extracting the function feature vector from the source code; And (iii) calculating a dot product between the function feature vector and the function feature vector to generate a weight vector representing the similarity between the function feature vector and the function feature vector.

상기 (a) 단계는, 상기 기능소개문서 및 함수문서-여기서 함수문서는 상기 소스코드를 함수 단위로 구분한 문서임-에 사용된 단어들의 집합을 생성하는 단계를 더 포함할 수 있다. The step (a) may further include generating a set of words used in the function introduction document and the function document, wherein the function document is a document in which the source code is divided into function units.

상기 (a) 단계의 (i) 단계는, 상기 기능소개문서를 기능문서로 변환하는 단계; 및 상기 기능소개문서에서 상기 단어의 출현빈도를 기초로 상기 기능특징벡터를 추출하는 단계를 포함할 수 있다.Step (i) of the step (a), converting the function introduction document into a function document; And extracting the functional feature vector based on the frequency of appearance of the word in the function introduction document.

상기 (a) 단계의 (ii) 단계는, 상기 소스코드를 함수 단위로 구분하여 함수 문서를 생성하는 단계; 및 상기 함수문서에서 상기 단어의 출현빈도를 기초로 상기 함수특징벡터를 추출하는 단계를 포함할 수 있다.Step (ii) of step (a) comprises: generating a function document by dividing the source code into function units; And extracting the function feature vector based on the frequency of appearance of the word in the function document.

삭제delete

삭제delete

삭제delete

삭제delete

삭제delete

본 발명에 의하면, 소스코드를 구성하는 각각의 함수가 특정 기능에 관련된 정도를 나타내는 가중치 콜 그래프를 이용하여, 소스코드를 구성하는 함수 중 특정 기능에 관련된 함수 목록 작성 방법 및 시스템을 제공할 수 있다. According to the present invention, a method and system for creating a function list related to a specific function among functions constituting the source code can be provided by using a weighted call graph indicating the degree to which each function constituting the source code is related to a specific function. .

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

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있 다.Throughout the specification, when a part is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise. In addition, the terms “… unit”, “… unit”, “module”, etc. described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. have.

본 명세서에서 "기능소개문서"는 소스코드로 구성된 소프트웨어의 기능을 소개한 문서를 말하며, "기능문서"는 기능소개문서를 벡터 공간 검색 엔진이 읽을 수 있는 구획문자를 이용하여 변환한 문서를 말한다. 또한, "기능특징벡터"는 기능문서에서 출현된 각 단어의 출현빈도를 기초로 파악된 벡터를 말한다. In the present specification, the "function introduction document" refers to a document that introduces a function of software composed of source code, and the "function document" refers to a document obtained by converting a function introduction document using a delimiter that can be read by a vector space search engine. . In addition, the "functional feature vector" refers to a vector grasped based on the frequency of appearance of each word appearing in the functional document.

본 명세서에서 "함수문서"는 소스코드를 함수 단위로 구분한 문서를 말하며, "함수특징벡터"는 함수문서에서 출현된 각 단어의 출현빈도를 기초로 파악된 벡터를 말한다. In the present specification, the "function document" refers to a document in which the source code is divided into function units, and the "function feature vector" refers to a vector identified based on the frequency of occurrence of each word appearing in the function document.

이제, 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 방법 및 시스템에 대하여 도면을 참고하여 상세하게 설명한다.Now, a method and system for creating a function list related to a specific function according to an embodiment of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 시스템의 구성도이다. 1 is a block diagram of a function list preparation system related to a specific function according to an embodiment of the present invention.

도 1을 참고하면, 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 시스템(100)은(이하, "특정 기능에 관련된 함수 목록 작성 시스템"은 "시스템"이라 한다.), 가중치 벡터 생성부(110), 콜 그래프 추출부(120), 가중치 콜 그래프 생성부(130) 및 함수목록 작성부(140)를 포함한다. 도 1의 각 구성에 대해 설명하면 다음과 같다. Referring to FIG. 1, the function list creation system 100 related to a specific function according to an embodiment of the present invention (hereinafter, "a function list creation system related to a specific function" is referred to as a "system"), generates a weight vector. The unit 110, a call graph extractor 120, a weighted call graph generator 130, and a function list generator 140 are included. Each structure of FIG. 1 is demonstrated as follows.

가중치 벡터 생성부(110)는 기능문서 생성부(111), 함수문서 생성부(112), 특징벡터 추출부(113) 및 가중치 벡터 완성부(114)를 포함하며, "기능소개문서"로부터 추출된 기능특징벡터 및 소스코드로부터 추출된 함수특징벡터 간의 유사성을 나타내는 가중치 벡터를 생성한다.The weight vector generator 110 includes a function document generator 111, a function document generator 112, a feature vector extractor 113, and a weight vector completeter 114, which are extracted from a “function introduction document”. A weight vector representing the similarity between the extracted function feature vector and the function feature vector extracted from the source code is generated.

기능문서 생성부(111)는 '기능소개문서'를 벡터 공간 검색 엔진이 읽을 수 있는 구획문자를 이용한 문서인 '기능문서'로 변환하고, 함수문서 생성부(112)는 소스코드를 함수 단위로 구분하여 '함수문서'를 생성한다.The function document generator 111 converts the 'function introduction document' into a 'function document' which is a document using a delimiter that can be read by a vector space search engine, and the function document generator 112 converts the source code into a function unit. Create 'function document' separately.

특징벡터 추출부(113)는 기능문서 및 함수문서에 사용된 단어들의 집합을 생성한다. 또한, 특징벡터 추출부(113)는 기능문서에서 출현된 각 단어의 출현빈도를 기초로 파악된 벡터인 '기능특징벡터'를 추출하고, 함수문서에서 출현된 각 단어의 출현빈도를 기초로 파악된 벡터인 '함수특징벡터'를 추출한다. The feature vector extractor 113 generates a set of words used in the function document and the function document. In addition, the feature vector extractor 113 extracts a 'feature feature vector', which is a vector determined based on the frequency of appearance of each word appearing in the functional document, and is identified based on the occurrence frequency of each word that appears in the function document. The function vector is extracted.

가중치 벡터 완성부(114)는 기능특징벡터 및 함수특징벡터 간의 내적을 계산하여, 기능특징벡터와 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성한다.The weight vector completion unit 114 calculates a dot product between the function feature vector and the function feature vector, and generates a weight vector representing the similarity between the function feature vector and the function feature vector.

콜 그래프 추출부(120)는 소스코드로부터 콜 그래프를 추출한다. 이때, 콜 그래프는 소스코드를 구성하는 모든 함수들의 호출 관계가 표시된 그래프로서, 콜 그래프의 각 노드는 소스코드를 구성하는 각각의 함수를 의미하며, 소스코드의 메인 함수를 루트노드(Nroot)로 하고, 모든 피호출 함수들이 트리 형태로 구성된다. The call graph extractor 120 extracts a call graph from the source code. At this time, the call graph is a graph showing the call relations of all the functions constituting the source code. Each node of the call graph means each function constituting the source code, and the main function of the source code is the root node. And all called functions are organized in a tree.

가중치 콜 그래프 생성부(130)는 관련 가중치 파악부(131), 비관련 가중치 파악부(132) 및 그래프 완성부(133)를 포함하며, 가중치 벡터 및 콜 그래프를 기초로 가중치 콜 그래프를 생성한다.The weighted call graph generator 130 includes a related weight grasping unit 131, an unrelated weight grasping unit 132, and a graph completion unit 133, and generates a weighted call graph based on the weight vector and the call graph. .

관련 가중치 파악부(131)는 각 함수가 특정 기능에 얼마나 관련되었는지를 나타내는 가중치인 "관련 가중치"를 콜 그래프에 표시한다. The related weight grasping unit 131 displays, on the call graph, "related weights" which are weights indicating how relevant each function is to a specific function.

비관련 가중치 파악부(132)는 각 함수가 특정 기능을 제외한 기능에 얼마나 관련되었는지를 나타내는 가중치인 "비관련 가중치"를 콜 그래프에 표시한다. The unrelated weight grasping unit 132 displays, on the call graph, "unrelated weights", which are weights indicating how relevant each function is to a function excluding a specific function.

그래프 완성부(133)는 콜 그래프의 각 에지를 통해 호출되는 노드와 그 노드의 하위 에지들의 관련 가중치 및 비관련 가중치를 각각 합산한 가중치인 "에지 가중치"를 콜 그래프에 표시하여, 가중치 콜 그래프를 완성한다. The graph completion unit 133 displays, on the call graph, "edge weights", which are the weights of the nodes called through each edge of the call graph and the related and unrelated weights of the lower edges of the node, respectively, on the call graph. To complete.

함수목록 작성부(140)는 노드기준 처리부(141) 및 에지기준 처리부(142)를 포함하며, 가중치 콜 그래프를 분석하여 특정 기능에 관련된 함수 목록을 작성한다.The function list generator 140 includes a node reference processor 141 and an edge reference processor 142, and analyzes a weighted call graph to create a function list related to a specific function.

노드기준 처리부(141)는 가중치 콜 그래프의 노드를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악한다.The node reference processor 141 determines a "final set" which is a set of functions related to a specific function based on the nodes of the weighted call graph.

에지기준 처리부(142)는 가중치 콜 그래프의 에지를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악한다. The edge reference processor 142 determines a "final set" which is a set of functions related to a specific function based on the edge of the weighted call graph.

이제, 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 방법에 대하여 도면을 참고하여 상세하게 설명한다.Now, a method of creating a function list related to a specific function according to an embodiment of the present invention will be described in detail with reference to the drawings.

도 2는 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 방법의 개략적인 흐름도이다. 2 is a schematic flowchart of a method for creating a function list related to a specific function according to an embodiment of the present invention.

도 2를 참고하면, 본 발명의 실시예에 따른 시스템(100)은 기능소개문서로부터 추출된 '기능특징벡터' 및 소스코드로부터 추출된 '함수특징벡터' 간의 유사성을 나타내는 가중치 벡터를 생성한다(S100). 또한, 시스템(100)은 소스코드로부터 콜 그래프를 추출한다(S200).2, the system 100 according to an embodiment of the present invention generates a weight vector indicating the similarity between the 'feature feature vector' extracted from the function introduction document and the 'function feature vector' extracted from the source code ( S100). In addition, the system 100 extracts a call graph from the source code (S200).

이후, 시스템(100)은 가중치 벡터 및 콜 그래프를 기초로 가중치 콜 그래프 를 생성(S300)하고, 생성된 가중치 콜 그래프를 분석하여 특정 기능에 관련된 함수 목록을 작성(S400)한다. Thereafter, the system 100 generates a weighted call graph based on the weight vector and the call graph (S300), and analyzes the generated weighted call graph to create a function list related to a specific function (S400).

도 3은 본 발명의 실시예에 따른 가중치 벡터를 생성하는 단계(S100)의 구체적인 흐름도이다. 3 is a detailed flowchart of generating a weight vector (S100) according to an embodiment of the present invention.

도 3을 참고하면, 시스템(100)은 '기능소개문서'를 '기능문서'로 변환(S101)하고, 소스코드를 함수 단위로 구분하여 '함수 문서'를 생성(S102)한다. Referring to FIG. 3, the system 100 converts a 'functional introduction document' into a 'functional document' (S101), and generates a 'function document' by dividing the source code into a function unit (S102).

이후, 시스템(100)은 기능문서 및 함수문서에 사용된 단어들의 집합을 생성(S103)하고, 기능문서와 함수문서 각각에서 각 단어의 출현빈도를 기초로 기능특징벡터 및 함수특징벡터를 추출(S104)한다.Thereafter, the system 100 generates a set of words used in the function document and the function document (S103), and extracts the function feature vector and the function feature vector based on the frequency of occurrence of each word in each of the function document and the function document ( S104).

이후, 시스템(100)은 추출된 기능특징벡터 및 함수특징벡터 간의 내적을 계산하여 기능특징벡터와 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성한다(S105). Thereafter, the system 100 calculates a dot product between the extracted functional feature vector and the functional feature vector to generate a weight vector representing the similarity between the functional feature vector and the functional feature vector (S105).

도 4는 본 발명의 실시예에 따른 가중치 벡터의 일례를 나타낸 도면이다. 4 is a diagram illustrating an example of a weight vector according to an embodiment of the present invention.

도 4를 참고하면, 가중치 벡터(200)의 행은 기능특징벡터(u)를 나타내고, 가중치 벡터(200)의 열은 함수특징벡터(f)를 나타낸다. 예를 들어, 기능u1에 대한 함수f3의 유사성을 나타내는 가중치는 0.9이다. Referring to FIG. 4, a row of the weight vector 200 represents a function feature vector u, and a column of the weight vector 200 represents a function feature vector f. For example, the weight indicating the similarity of function f3 to function u1 is 0.9.

도 5는 본 발명의 실시예에 따른 가중치 콜 그래프를 생성하는 단계(S300)의 구체적인 흐름도이다. 5 is a detailed flowchart of the step (S300) of generating a weighted call graph according to an embodiment of the present invention.

시스템(100)은 각 함수의 호출관계를 나타내는 콜 그래프에, 각 함수가 특정 기능에 얼마나 관련되었는지를 나타내는 가중치를 "관련 가중치"로 표시한 다(S301). The system 100 displays, on the call graph indicating the call relationship of each function, a weight indicating how much each function is related to a specific function as "related weight" (S301).

또한, 시스템(100)은 각 함수의 호출관계를 나타내는 콜 그래프에, 각 함수별로 특정 기능을 제외한 다른 기능에 대한 가중치를 합산하여, 특정 기능에 대한 "비관련 가중치"로 각 함수 노드에 표시한다(S302). In addition, the system 100 sums the weights of other functions except for a specific function for each function, and displays them at each function node as "unrelated weights" for the specific function in a call graph indicating a call relationship of each function. (S302).

이때, "관련 가중치" 및 "비관련 가중치"의 표시는 {관련 가중치, 비관련 가중치}와 같은 형식으로 표시될 수 있다.In this case, the indication of “related weights” and “unrelated weights” may be displayed in a format such as {related weights, unrelated weights}.

이후, 시스템(100)은 콜 그래프의 각 에지를 통해 호출되는 노드와 그 노드의 하위 에지들의 관련 가중치 및 비관련 가중치를 각각 합산하여 에지 가중치를 계산(S303)하고, 계산된 에지 가중치를 각 에지에 표시(S304)하여, 가중치 콜 그래프를 완성(S305)한다.Thereafter, the system 100 calculates an edge weight by summing respective related weights and unrelated weights of nodes called through each edge of the call graph and lower edges of the node (S303), and calculates the edge weights of the edges. In step S304, the weighted call graph is completed (S305).

구체적으로, 가중치 콜 그래프를 생성하는 단계(S300)를 기능u1에 대한 가중치 콜 그래프를 생성하는 경우를 예로 들어 설명한다.Specifically, the step (S300) of generating the weighted call graph will be described taking the case of generating the weighted call graph for the function u1 as an example.

시스템(100)은 가중치 벡터(200)를 이용하여 콜 그래프에 각 함수의 기능u1에 대한 가중치를 "관련 가중치"로 표시한다(S301). 도 4를 참고하면, 기능u1에 대해 함수f3은 0.9의 가중치를 가지고, 함수f7은 0.4의 가중치를 가지고, 함수f9는 0.3의 가중치를 가진다. 도 6a는 기능u1에 대한 함수 노드의 관련 가중치를 나타낸 그래프이다.The system 100 displays the weight for the function u1 of each function as "related weight" in the call graph using the weight vector 200 (S301). Referring to FIG. 4, the function f3 has a weight of 0.9, the function f7 has a weight of 0.4, and the function f9 has a weight of 0.3 with respect to the function u1. 6A is a graph showing the relative weights of function nodes for function u1.

이후, 시스템(100)은 콜 그래프에, 각 함수 별로 u1기능을 제외한 다른 기능(u2, u3)에 대한 가중치를 합산하여, 각 함수 노드에 기능u1에 대한 "비관련 가중치"로 표시한다(S302). 도 4를 참고하면, 각 함수 별로 기능(u2, u3)에 대한 가 중치를 합산하면, 함수f2는 1.0의 가중치를 가지고, 함수f3은 0.2의 가중치를 가지고, 함수f4는 0.5의 가중치를 가지고, 함수 f5는 0.6의 가중치를 가지고, 함수f6은 0.8의 가중치를 가지고, 함수f8은 0.2의 가중치를 가지고, 함수f9는 0.4의 가중치를 가지고, 함수 f10은 0.8의 가중치를 가진다. 도 6b는 기능u1에 대한 함수 노드의 비관련 가중치를 나타낸 그래프이다.Thereafter, the system 100 sums the weights for the other functions u2 and u3 except for the u1 function for each function in the call graph, and displays each function node as "unrelated weight" for the function u1 (S302). ). Referring to FIG. 4, when the weights of the functions u2 and u3 are summed for each function, the function f2 has a weight of 1.0, the function f3 has a weight of 0.2, and the function f4 has a weight of 0.5, Function f5 has a weight of 0.6, function f6 has a weight of 0.8, function f8 has a weight of 0.2, function f9 has a weight of 0.4 and function f10 has a weight of 0.8. 6B is a graph showing unrelated weights of function nodes for function u1.

이후, 시스템(100)은 기능u1에 대한 각 함수의 "관련 가중치" 및 "비관련 가중치"를 콜 그래프에 표시한다(S303). 도 6c는 기능u1에 대한 함수 노드의 관련 가중치 및 비관련 가중치를 나타낸 그래프이다. Thereafter, the system 100 displays "related weights" and "unrelated weights" of each function for the function u1 in the call graph (S303). 6C is a graph showing the relative and unrelated weights of the function nodes for function u1.

이후, 시스템(100)은 콜 그래프의 각 에지를 통해 호출되는 노드와 그 노드의 하위 에지들의 관련 가중치 및 비관련 가중치를 각각 합산하여 에지 가중치를 계산(S304)한다. Thereafter, the system 100 calculates an edge weight by summing up relevant weights and unrelated weights of nodes called through each edge of the call graph and lower edges of the node (S304).

이후, 시스템(100)은 각 에지의 "관련 가중치" 및 "비관련 가중치"를 각 에지에 표시(S305)하여, 가중치 콜 그래프를 완성(S306)한다. 도 6d는 기능u1에 대해 완성된 가중치 콜 그래프이다. Thereafter, the system 100 displays (S305) the "related weights" and "unrelated weights" of each edge on each edge to complete the weighted call graph (S306). 6D is the completed weighted call graph for function u1.

도 7은 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록을 작성하는 단계(S400)의 구체적인 흐름도이다. 7 is a detailed flowchart of a step (S400) of creating a function list related to a specific function according to an embodiment of the present invention.

특정 기능에 관련된 함수 목록을 작성하는 단계(S400)는 크게 함수 노드를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악하는 단계(P1) 및 에지를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악하는 단계(P2)를 포함한다. The step (S400) of creating a function list related to a specific function is to identify a "final set" which is a set of functions related to a specific function on the basis of a function node (P1) and the functions related to the specific function on the basis of an edge. Identifying a final set, which is a set (P2).

우선, 함수 노드를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악하는 단계(P1)를 살펴본다. First, a step (P1) of identifying a "final set" which is a set of functions related to a specific function based on a function node will be described.

시스템(100)은 가중치 콜 그래프에서 특정 기능에 대해 관련 가중치가 가장 높은 함수 노드를 작업 노드로 선택(S401)하고, 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높은지 여부를 판단(S402)한다. The system 100 selects a function node having the highest related weight for a specific function as the work node in the weighted call graph (S401), and determines whether the related weight of the work node is higher than the unrelated weight of the work node (S402). do.

작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높지 않다고 판단된 경우, 시스템(100)은 다음으로 특정 기능에 대해 관련 가중치가 높은 함수 노드를 작업 노드로 선택(S403)하고, 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높은지 여부를 판단(S402)한다. If it is determined that the related weight of the work node is not higher than the non-related weight of the work node, the system 100 next selects a function node with a high related weight for the specific function as the work node (S403), and the related of the work node. It is determined whether the weight is higher than the unrelated weight of the work node (S402).

반면, 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높다고 판단된 경우, 시스템(100)은 작업 노드를 핵심 노드로 확정(S404)하고, 루트 노드로부터 핵심 노드까지의 콜 체인상의 함수 노드들을 최종 집합에 추가(S405)하고, 핵심 노드로부터 호출되는 모든 함수 노드를 최종 집합에 추가(S406)한다. On the other hand, if it is determined that the related weight of the work node is higher than the unrelated weight of the work node, the system 100 determines the work node as the core node (S404), and determines the function nodes in the call chain from the root node to the core node. Add to the final set (S405), and adds all the function nodes that are called from the core node to the final set (S406).

이후, 시스템(100)은 에지를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악한다(P2). Thereafter, the system 100 determines a "final set" which is a set of functions related to a specific function based on the edge (P2).

시스템(100)은 루트 노드를 작업 노드로 선택(S407)하고, 작업 노드의 하위 에지 중 관련 가중치가 가장 높은 에지를 선택(S408)한다. 이후, 시스템(100)은 선택된 에지의 관련 가중치가 특정 기능에 대해 관련 가중치가 가장 높은 함수 노드의 관련 가중치 보다 큰지 여부를 판단한다(S409).The system 100 selects the root node as the work node (S407), and selects the edge with the highest associated weight among the lower edges of the work node (S408). Thereafter, the system 100 determines whether the related weight of the selected edge is greater than the related weight of the function node having the highest related weight for the specific function (S409).

선택된 에지의 관련 가중치가 특정 기능에 대해 관련 가중치가 가장 높은 함 수 노드의 관련 가중치 보다 큰 경우, 시스템(100)은 작업 노드를 최종 집합에 추가(S410)하고, 선택된 에지를 통해 호출되는 노드를 작업 노드로 선택(S411)하고, 가중치 비교 단계(S409)를 반복한다. If the relevant weight of the selected edge is greater than the related weight of the function node with the highest relative weight for a particular function, the system 100 adds the working node to the final set (S410) and selects the node called through the selected edge. Selection is made to the work node (S411), and the weight comparison step (S409) is repeated.

반면, 선택된 에지의 관련 가중치가 특정 기능에 대해 관련 가중치가 가장 높은 함수 노드의 관련 가중치 보다 크지 않은 경우, 시스템(100)은 작업 노드 및 작업 노드로부터 호출되는 모든 함수 노드를 최종 집합에 추가(S412)하고, 최종 집합을 확정(S413)한다. On the other hand, if the related weight of the selected edge is not greater than the related weight of the function node with the highest related weight for a particular function, the system 100 adds the work node and all function nodes called from the work node to the final set (S412). In step S413, the final set is confirmed.

이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. The embodiments of the present invention described above are not only implemented by the apparatus and method but may be implemented through a program for realizing the function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded, The embodiments can be easily implemented by those skilled in the art from the description of the embodiments described above.

이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

도 1은 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 시스템의 구성도이다. 1 is a block diagram of a function list preparation system related to a specific function according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록 작성 방법의 개략적인 흐름도이다. 2 is a schematic flowchart of a method for creating a function list related to a specific function according to an embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 가중치 벡터를 생성하는 단계(S100)의 구체적인 흐름도이다. 3 is a detailed flowchart of generating a weight vector (S100) according to an embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 가중치 벡터의 일례를 나타낸 도면이다. 4 is a diagram illustrating an example of a weight vector according to an embodiment of the present invention.

도 5는 본 발명의 실시예에 따른 가중치 콜 그래프를 생성하는 단계(S300)의 구체적인 흐름도이다. 5 is a detailed flowchart of the step (S300) of generating a weighted call graph according to an embodiment of the present invention.

도 6a는 기능u1에 대한 각 함수 노드의 관련 가중치를 나타낸 그래프이다.6A is a graph showing the associated weights of each function node for function u1.

도 6b는 기능u1에 대한 각 함수 노드의 비관련 가중치를 나타낸 그래프이다.6B is a graph showing unrelated weights of each function node for function u1.

도 6c는 기능u1에 대한 각 함수 노드의 관련 가중치 및 비관련 가중치를 나타낸 그래프이다. 6C is a graph showing the relative and unrelated weights of each function node for function u1.

도 6d는 기능u1에 대해 완성된 가중치 콜 그래프이다. 6D is the completed weighted call graph for function u1.

도 7은 본 발명의 실시예에 따른 특정 기능에 관련된 함수 목록을 작성하는 단계(S400)의 구체적인 흐름도이다. 7 is a detailed flowchart of a step (S400) of creating a function list related to a specific function according to an embodiment of the present invention.

Claims (15)

소프트웨어의 기능을 소개하는 기능소개문서와 소스코드를 판독할 수 있는 시스템 장치가 상기 소스코드로 구성된 소프트웨어의 특정 기능에 관련된 함수 목록을 작성하는 방법에 있어서,In a function introduction document introducing a function of the software and a system device capable of reading the source code, a method for producing a function list relating to a specific function of the software composed of the source code, (a) 상기 기능소개문서 및 상기 소스코드를 입력받아 상기 기능소개문서로부터 추출한 기능특징벡터 및 상기 소스코드로부터 추출한 함수특징벡터 간의 유사성을 나타내는 가중치 벡터를 생성하는 단계;(a) receiving the function introduction document and the source code and generating a weight vector representing the similarity between the function feature vector extracted from the function introduction document and the function feature vector extracted from the source code; (b) 상기 소스코드를 구성하는 각 함수의 호출관계를 나타내는 콜 그래프를 추출하는 단계; (b) extracting a call graph representing a call relation of each function constituting the source code; (c) 상기 가중치 벡터 및 상기 콜 그래프를 기초로, 상기 함수의 특정 기능에 관련된 정도를 나타내는 관련 가중치 및 특정 기능을 제외한 기능에 관련된 정도를 나타내는 비관련 가중치를 나타낸 가중치 콜 그래프를 생성하는 단계; 및 (c) generating a weighted call graph indicating an associated weight indicating a degree related to a specific function of the function and an unrelated weight indicating a degree related to a function except a specific function based on the weight vector and the call graph; And (d) 상기 가중치 콜 그래프를 분석하여 특정 기능에 관련된 함수 목록을 작성하는 단계를 포함하는 (d) analyzing the weighted call graph to create a list of functions related to a particular function; 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제1항에 있어서, The method of claim 1, 상기 (c) 단계는,In step (c), (i) 상기 콜 그래프에 상기 관련 가중치 및 상기 비관련 가중치를 표시하는 단계; (i) displaying the related weights and the unrelated weights in the call graph; (ii) 상기 콜 그래프의 각 에지를 통해 호출되는 노드와 그 노드의 하위 에지들의 관련 가중치 및 비관련 가중치를 각각 합산하여 에지 가중치를 계산하는 단계; 및 (ii) calculating edge weights by summing respective related and unrelated weights of nodes called through each edge of the call graph and lower edges of the node; And (iii) 상기 에지 가중치를 각 에지에 표시하여, 가중치 콜 그래프를 완성하는 단계를 포함하는 (iii) displaying the edge weights at each edge to complete a weighted call graph; 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제2항에 있어서,The method of claim 2, 상기 (d) 단계는,The step (d) (i) 상기 가중치 콜 그래프의 노드를 기준으로 특정 기능에 관련된 함수들의 집합인 최종 집합을 파악하는 단계를 포함하는 것을 특징으로 하는 (i) identifying a final set which is a set of functions related to a specific function based on nodes of the weighted call graph 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제3항에 있어서,The method of claim 3, 상기 (d) 단계는, The step (d) (ii) 상기 가중치 콜 그래프의 에지를 기준으로 상기 최종 집합을 파악하는 단계를 더 포함하는 것을 특징으로 하는(ii) determining the final set based on an edge of the weighted call graph. 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제3항에 있어서,The method of claim 3, 상기 (d) 단계의 (i) 단계는, Step (i) of step (d), 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드를 작업 노드로 선택하는 단계; Selecting a node having the highest weight for a specific function among the nodes of the weighted call graph as a work node; 상기 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높은지 여부를 판단하는 단계; Determining whether an associated weight of the work node is higher than an unrelated weight of the work node; 상기 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높다고 판단된 경우, 루트 노드로부터 상기 작업 노드까지의 콜 체인상의 함수 노드를 최종 집합에 추가하는 단계를 포함하는If it is determined that the associated weight of the work node is higher than the unrelated weight of the work node, adding a function node on a call chain from a root node to the work node to the final set. 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제5항에 있어서,The method of claim 5, 상기 (d) 단계의 (ii) 단계는, Step (ii) of the step (d), 상기 가중치 콜 그래프의 루트 노드를 작업 노드로 선택하는 단계; Selecting a root node of the weighted call graph as a work node; 상기 작업 노드의 하위 에지 중 관련 가중치가 가장 높은 에지를 선택하는 단계; Selecting an edge with the highest associated weight among lower edges of the work node; 상기 선택된 에지의 관련 가중치가 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드의 관련 가중치 보다 큰지 여부를 판단하는 단계; Determining whether the related weight of the selected edge is greater than the related weight of the node having the highest related weight for a particular function among the nodes of the weighted call graph; 상기 선택된 에지의 관련 가중치가 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드의 관련 가중치 보다 큰 경우, 상기 작업 노드를 상기 최종 집합에 추가하는 단계를 포함하는 If the relevant weight of the selected edge is greater than the related weight of the node with the highest related weight for a particular function of the nodes in the weighted call graph, adding the working node to the final set. 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제6항에 있어서,The method of claim 6, 상기 (d) 단계의 (ii) 단계는, Step (ii) of the step (d), 상기 선택된 에지의 관련 가중치가 상기 가중치 콜 그래프의 노드 중 특정 기능에 대해 관련 가중치가 가장 높은 노드의 관련 가중치 보다 크지 않은 경우, 상기 작업 노드 및 상기 작업 노드로부터 호출되는 모든 모드를 최종 집합에 추가하는 단계를 포함하는 If the related weight of the selected edge is not greater than the related weight of the node having the highest related weight for a particular function among the nodes of the weighted call graph, adding all modes called from the working node and the working node to the final set. Containing steps 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제7항에 있어서,The method of claim 7, wherein 상기 (a) 단계는, In step (a), (i) 상기 기능소개문서로부터 상기 기능특징벡터를 추출하는 단계; (i) extracting the function feature vector from the function introduction document; (ii) 상기 소스코드로부터 상기 함수특징벡터를 추출하는 단계; 및 (ii) extracting the function feature vector from the source code; And (iii) 상기 기능특징벡터 및 함수특징벡터 간의 내적을 계산하여 상기 기능특징벡터와 상기 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성하는 단계를 포함하는 (iii) calculating a dot product between the function feature vector and the function feature vector to generate a weight vector representing the similarity between the function feature vector and the function feature vector; 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제8항에 있어서,The method of claim 8, 상기 (a) 단계는, In step (a), 상기 기능소개문서 및 함수문서-여기서 함수문서는 상기 소스코드를 함수 단위로 구분한 문서임-에 사용된 단어들의 집합을 생성하는 단계를 더 포함하는 Generating a set of words used in the function introduction document and the function document, wherein the function document is a document in which the source code is divided into function units. 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제9항에 있어서,10. The method of claim 9, 상기 (a) 단계의 (i) 단계는, Step (i) of step (a), 상기 기능소개문서를 기능문서로 변환하는 단계; 및Converting the function introduction document into a function document; And 상기 기능문서에서 상기 단어의 출현빈도를 기초로 상기 기능특징벡터를 추출하는 단계를 포함하는 Extracting the functional feature vector based on the frequency of appearance of the word in the functional document; 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 제10항에 있어서,The method of claim 10, 상기 (a) 단계의 (ii) 단계는, Step (ii) of the step (a), 상기 소스코드를 함수 단위로 구분하여 함수 문서를 생성하는 단계; 및 Generating a function document by dividing the source code into function units; And 상기 함수문서에서 상기 단어의 출현빈도를 기초로 상기 함수특징벡터를 추출하는 단계를 포함하는Extracting the function feature vector based on the frequency of appearance of the word in the function document; 특정 기능에 관련된 함수 목록 작성 방법.How to create a list of functions related to a specific function. 삭제delete 삭제delete 삭제delete 삭제delete
KR1020080069923A 2008-07-18 2008-07-18 Mehod of making function list in relation to certain use and system thereof KR101016755B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080069923A KR101016755B1 (en) 2008-07-18 2008-07-18 Mehod of making function list in relation to certain use and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080069923A KR101016755B1 (en) 2008-07-18 2008-07-18 Mehod of making function list in relation to certain use and system thereof

Publications (2)

Publication Number Publication Date
KR20080072615A KR20080072615A (en) 2008-08-06
KR101016755B1 true KR101016755B1 (en) 2011-02-25

Family

ID=39882851

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080069923A KR101016755B1 (en) 2008-07-18 2008-07-18 Mehod of making function list in relation to certain use and system thereof

Country Status (1)

Country Link
KR (1) KR101016755B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102245386B1 (en) * 2019-07-16 2021-04-27 서울과학기술대학교 산학협력단 Software function analysis system using social network and data envelopment and its method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160765A (en) * 1995-12-08 1997-06-20 Hitachi Ltd Production of software parts
KR20010075872A (en) * 2000-01-21 2001-08-11 오길록 Method for automatic generating call graph for software maintenance
KR20030050621A (en) * 2001-12-19 2003-06-25 한국전자통신연구원 Method and apparatus for wrapping existing procedure oriented program into component based system
JP2007200240A (en) * 2006-01-30 2007-08-09 Kyocera Corp Information processing apparatus and information processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160765A (en) * 1995-12-08 1997-06-20 Hitachi Ltd Production of software parts
KR20010075872A (en) * 2000-01-21 2001-08-11 오길록 Method for automatic generating call graph for software maintenance
KR20030050621A (en) * 2001-12-19 2003-06-25 한국전자통신연구원 Method and apparatus for wrapping existing procedure oriented program into component based system
JP2007200240A (en) * 2006-01-30 2007-08-09 Kyocera Corp Information processing apparatus and information processing method

Also Published As

Publication number Publication date
KR20080072615A (en) 2008-08-06

Similar Documents

Publication Publication Date Title
US7356479B2 (en) Device and method for accommodating business process
CN101777004B (en) Method and system for realizing BPEL sub-process multiplexing based on template in service-oriented environment
CN109492266A (en) Optimum design method, device and the equipment of standard component model data
CN111722839A (en) Code generation method and device, electronic equipment and storage medium
CN105976302A (en) Configurable data comparing method and system
CN105825137B (en) A kind of method and device of determining sensitive data dispersal behavior
Solé et al. Region-based foldings in process discovery
CN111181805A (en) Micro-service test baffle generation method and system based on test case
KR20220078107A (en) Method and system for converting object code of bim data with different kind of structure
JP2007188144A (en) Work flow management system
KR101016755B1 (en) Mehod of making function list in relation to certain use and system thereof
JP2013182410A (en) Business analysis design support device, business analysis design support method, and business analysis design support program
CN112416800A (en) Intelligent contract testing method, device, equipment and storage medium
CA2562012A1 (en) Source-code-generation supporting program and source-code-generation supporting method
JP2007249826A (en) Test item generation device
CN104731705B (en) A kind of dirty data propagation path based on complex network finds method
Aminof et al. Synthesis of hierarchical systems
CN111176624B (en) Method and device for generating stream type calculation index
CN113407598A (en) Method and device for generating demand document, storage medium and electronic equipment
CN116113939A (en) Method, device and computer readable medium for organizing software information
JP5300888B2 (en) Software development support program and apparatus
Woitsch Hybrid modelling with ADOxx: Virtual enterprise interoperability using meta models
JP2016115287A (en) Test case generation program, test case generation method and test case generator
CN111562937A (en) Code method level defect early warning method
JP2004157848A (en) Action evaluation system and action evaluation program

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140127

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee