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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/312—List processing, e.g. LISP programming language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution 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
본 발명은, 소스코드를 구성하는 각각의 함수가 특정 기능에 관련된 정도를 나타내는 가중치 콜 그래프를 이용하여, 소스코드를 구성하는 함수 중 특정 기능에 관련된 함수 목록 작성 방법 및 시스템에 관한 것이다. 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
가중치 벡터 생성부(110)는 기능문서 생성부(111), 함수문서 생성부(112), 특징벡터 추출부(113) 및 가중치 벡터 완성부(114)를 포함하며, "기능소개문서"로부터 추출된 기능특징벡터 및 소스코드로부터 추출된 함수특징벡터 간의 유사성을 나타내는 가중치 벡터를 생성한다.The
기능문서 생성부(111)는 '기능소개문서'를 벡터 공간 검색 엔진이 읽을 수 있는 구획문자를 이용한 문서인 '기능문서'로 변환하고, 함수문서 생성부(112)는 소스코드를 함수 단위로 구분하여 '함수문서'를 생성한다.The
특징벡터 추출부(113)는 기능문서 및 함수문서에 사용된 단어들의 집합을 생성한다. 또한, 특징벡터 추출부(113)는 기능문서에서 출현된 각 단어의 출현빈도를 기초로 파악된 벡터인 '기능특징벡터'를 추출하고, 함수문서에서 출현된 각 단어의 출현빈도를 기초로 파악된 벡터인 '함수특징벡터'를 추출한다. The
가중치 벡터 완성부(114)는 기능특징벡터 및 함수특징벡터 간의 내적을 계산하여, 기능특징벡터와 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성한다.The weight
콜 그래프 추출부(120)는 소스코드로부터 콜 그래프를 추출한다. 이때, 콜 그래프는 소스코드를 구성하는 모든 함수들의 호출 관계가 표시된 그래프로서, 콜 그래프의 각 노드는 소스코드를 구성하는 각각의 함수를 의미하며, 소스코드의 메인 함수를 루트노드(Nroot)로 하고, 모든 피호출 함수들이 트리 형태로 구성된다. The
가중치 콜 그래프 생성부(130)는 관련 가중치 파악부(131), 비관련 가중치 파악부(132) 및 그래프 완성부(133)를 포함하며, 가중치 벡터 및 콜 그래프를 기초로 가중치 콜 그래프를 생성한다.The weighted
관련 가중치 파악부(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
그래프 완성부(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
노드기준 처리부(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
이후, 시스템(100)은 가중치 벡터 및 콜 그래프를 기초로 가중치 콜 그래프 를 생성(S300)하고, 생성된 가중치 콜 그래프를 분석하여 특정 기능에 관련된 함수 목록을 작성(S400)한다. Thereafter, the
도 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
이후, 시스템(100)은 기능문서 및 함수문서에 사용된 단어들의 집합을 생성(S103)하고, 기능문서와 함수문서 각각에서 각 단어의 출현빈도를 기초로 기능특징벡터 및 함수특징벡터를 추출(S104)한다.Thereafter, the
이후, 시스템(100)은 추출된 기능특징벡터 및 함수특징벡터 간의 내적을 계산하여 기능특징벡터와 함수특징벡터의 유사성을 나타내는 가중치 벡터를 생성한다(S105). Thereafter, the
도 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
도 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
또한, 시스템(100)은 각 함수의 호출관계를 나타내는 콜 그래프에, 각 함수별로 특정 기능을 제외한 다른 기능에 대한 가중치를 합산하여, 특정 기능에 대한 "비관련 가중치"로 각 함수 노드에 표시한다(S302). In addition, the
이때, "관련 가중치" 및 "비관련 가중치"의 표시는 {관련 가중치, 비관련 가중치}와 같은 형식으로 표시될 수 있다.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
구체적으로, 가중치 콜 그래프를 생성하는 단계(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
이후, 시스템(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
이후, 시스템(100)은 기능u1에 대한 각 함수의 "관련 가중치" 및 "비관련 가중치"를 콜 그래프에 표시한다(S303). 도 6c는 기능u1에 대한 함수 노드의 관련 가중치 및 비관련 가중치를 나타낸 그래프이다. Thereafter, the
이후, 시스템(100)은 콜 그래프의 각 에지를 통해 호출되는 노드와 그 노드의 하위 에지들의 관련 가중치 및 비관련 가중치를 각각 합산하여 에지 가중치를 계산(S304)한다. Thereafter, the
이후, 시스템(100)은 각 에지의 "관련 가중치" 및 "비관련 가중치"를 각 에지에 표시(S305)하여, 가중치 콜 그래프를 완성(S306)한다. 도 6d는 기능u1에 대해 완성된 가중치 콜 그래프이다. Thereafter, the
도 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
작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높지 않다고 판단된 경우, 시스템(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
반면, 작업 노드의 관련 가중치가 작업 노드의 비관련 가중치 보다 높다고 판단된 경우, 시스템(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
이후, 시스템(100)은 에지를 기준으로 특정 기능에 관련된 함수들의 집합인 "최종 집합"을 파악한다(P2). Thereafter, the
시스템(100)은 루트 노드를 작업 노드로 선택(S407)하고, 작업 노드의 하위 에지 중 관련 가중치가 가장 높은 에지를 선택(S408)한다. 이후, 시스템(100)은 선택된 에지의 관련 가중치가 특정 기능에 대해 관련 가중치가 가장 높은 함수 노드의 관련 가중치 보다 큰지 여부를 판단한다(S409).The
선택된 에지의 관련 가중치가 특정 기능에 대해 관련 가중치가 가장 높은 함 수 노드의 관련 가중치 보다 큰 경우, 시스템(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
반면, 선택된 에지의 관련 가중치가 특정 기능에 대해 관련 가중치가 가장 높은 함수 노드의 관련 가중치 보다 크지 않은 경우, 시스템(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
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다. 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)
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)
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)
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 |
-
2008
- 2008-07-18 KR KR1020080069923A patent/KR101016755B1/en not_active IP Right Cessation
Patent Citations (4)
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 |