KR20160088730A - System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network - Google Patents

System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network Download PDF

Info

Publication number
KR20160088730A
KR20160088730A KR1020150008190A KR20150008190A KR20160088730A KR 20160088730 A KR20160088730 A KR 20160088730A KR 1020150008190 A KR1020150008190 A KR 1020150008190A KR 20150008190 A KR20150008190 A KR 20150008190A KR 20160088730 A KR20160088730 A KR 20160088730A
Authority
KR
South Korea
Prior art keywords
developer
bug
report
bug report
network
Prior art date
Application number
KR1020150008190A
Other languages
Korean (ko)
Other versions
KR101697992B1 (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 KR1020150008190A priority Critical patent/KR101697992B1/en
Publication of KR20160088730A publication Critical patent/KR20160088730A/en
Application granted granted Critical
Publication of KR101697992B1 publication Critical patent/KR101697992B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063112Skill-based matching of a person or a group to a task
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Abstract

The present invention relates to a system and a method for recommending a bug patch developer based on a multi-developer network. More specifically, the present invention relates to a bug patch developer recommending technology for reducing a development time and costs of a software. To this end, according to an embodiment of the present invention, the bug patch developer recommending system based on a multi-developer network comprises: a preprocessing unit, an extracting unit, a modeling unit, and a recommending unit.

Description

다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템 및 방법 {System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network}{System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network}

본 발명은 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어의 개발 시간과 비용을 줄이는 버그 정정 개발자 추천 기술에 관한 것이다.The present invention relates to a bug-correcting developer recommendation system and method based on a multi-developer network, and more particularly, to a bug-correcting developer recommendation technique for reducing software development time and cost.

본 발명은 서울시 및 서울산업통상진흥원의 모바일사업 선도 창조 인력 양성 사업사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: HM120006, 과제명: 창조형 모바일 소프트웨어 전문인력 양성].The present invention is derived from the research carried out by the Seoul Metropolitan Government and the Seoul Industry Promotion Agency as part of the project to train the mobile business leader. [Project Assignment Number: HM120006, Title: Training of creative mobile software professionals].

PC(개인용 컴퓨터)나 스마트 폰, 비디오 게임기와 같은 컴퓨터 기기를 통해 각종 소프트웨어를 이용하는 과정에서 이유 없이 오류 메시지가 출력되거나 기기가 오작동하는 경우를 종종 볼 수 있다. 이런 현상은 단순한 기기 고장 때문에 일어나기도 하지만 사용하는 하드웨어나 소프트웨어 자체의 결함에 의한 경우도 많으며, 이는 해당 하드웨어와 소프트웨어를 구성하고 있는 프로그램의 내용 중에 잘못된 코드가 들어 있음을 의미한다. 이렇게 프로그램 상의 결함에 의해 컴퓨터 오류나 오작동이 일어나는 현상을 버그(Bug)라고 한다.Often, an error message is output or a device malfunctions in the process of using various software through a computer such as a PC (personal computer), a smart phone, or a video game machine. This phenomenon is caused by a simple device malfunction, but it is often caused by defects in the hardware or the software itself. This means that the contents of the program constituting the hardware and the software contain erroneous codes. A computer fault or malfunction caused by a program defect is called a bug.

버그는 복잡한 소프트웨어일수록 많이 발생되며, 발생된 버그는 정정을 위하여 버그 리포트와 함께 개발자에게 할당된다. 이때, 새로운 버그는 버그 저장소에 있는 배정자(triager)에 의하여 개발자에게 할당된다.Bugs occur more often in complex software, and bugs that occur are assigned to developers along with bug reports for correction. At this point, the new bug is assigned to the developer by the triager in the bug repository.

그러나, 많은 버그 리포트가 적절한 개발자에게 할당되지 못한 경우 재할당되는 경우가 발생하게 되며, 이는 버그 정정의 시간 및 비용을 증가시키고, 소프트웨어의 개발 비용 또한 증대시키는 문제를 야기한다.However, when many bug reports are not assigned to the appropriate developers, there are cases where they are reallocated, which increases the time and cost of bug correction and increases the development cost of the software.

한편, 한국공개특허 제2012-0069388호 "정적 결함 분류 및 보고 자동화 시스템 및 그 방법"은 하나 이상의 버그 검출기로부터 추출된 데이터를 바탕으로, 버그의 유형에 따른 클래스를 분류하여 기본 점수를 부여하고, 버그의 오류발생 조건(precondition) 및 버그 검출기들로부터 각각 추출된 버그 검사 데이터를 비교 검토(Cross-check)하여 가산점을 부여하고, 부여된 점수에 따른 버그 항목을 클래스 별로 최종 조정함으로써, 버그 검출기를 통해 보고된 버그 중 True Alarm일 가능성이 높은 항목을 쉽게 할당할 수 있으며, 전체적으로는 False Alarm rate를 줄일 수 있는 기술을 제시한다.Korean Unexamined Patent Publication No. 2012-0069388 entitled " Automatic Static Defect Classification and Reporting Automation System and Method "thereof classifies classes according to types of bugs based on data extracted from one or more bug detectors, Bug check data extracted from the bug's precondition and bug detectors are cross-checked to give added points and the bug items according to the given scores are finally adjusted for each class, Among the reported bugs, it is easy to allocate items that are likely to be true alarms, and overall, it suggests techniques that can reduce the false alarm rate.

하지만, 상기 선행기술은 단순히 버그 검출기로부터 추출된 방대한 양의 결과 데이터를 효율적으로 검토하고, 대상 소프트웨어의 버그를 빠른 시간 안에 찾아내기 위한 버그 할당 기술일 뿐, 상기 할당된 버그의 정정을 위하여 버그를 개발자에게 효율적으로 할당하는 기술은 전혀 언급하고 있지 않다.However, the prior art is merely a bug allocation technique for efficiently reviewing a vast amount of result data extracted from the bug detector and finding the bug of the target software in a short time. In order to correct the allocated bug, It does not mention the technology to allocate efficiently to developers.

즉, 상기 선행기술은 많은 버그 리포트가 적절한 개발자에게 할당되지 못하여 재할당되는 경우가 발생하게 되며, 이에 따라 버그 정정의 시간 및 비용이 증가되고, 소프트웨어의 개발 비용 또한 증대되는 종래의 문제를 여전이 해결하지 못하고 있다.That is, in the prior art, many bug reports are not allocated to appropriate developers and are reallocated. Accordingly, the time and cost of bug correction are increased, and the development cost of software is increased. I can not solve it.

한국공개특허 제2012-0069388호 (공개일: 2012.06.28)Korean Patent Publication No. 2012-0069388 (Publication date: June 28, 2012)

본 발명은 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템 및 방법을 제공하려는 것을 목적으로 한다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a bug-corrected developer recommendation system and method based on a multi-developer network.

본 발명은 많은 버그 리포트가 적절한 개발자에게 할당되지 못하여 재할당되는 경우, 버그 정정의 시간 및 비용이 증가하고, 소프트웨어의 개발 비용이 증대되는 문제를 해결하려는 것을 목적으로 한다.An object of the present invention is to solve the problem that the time and cost of bug correction increases and the development cost of software increases when many bug reports are not allocated to appropriate developers and are reallocated.

본 발명은 복잡한 소프트웨어에서 발생하는 많은 버그를 정정하기 위한 적절한 버그 정정 개발자를 추천함으로써, 소프트웨어의 품질을 향상시키고 개발의 시간 및 비용을 절감하려는 것을 목적으로 한다.The present invention aims at improving the quality of software and reducing the time and cost of development by recommending an appropriate bug correction developer to correct many bugs that occur in complicated software.

이러한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템은 전처리부, 추출부, 모델링부 및 추천부를 포함한다.According to an aspect of the present invention, there is provided a bug-corrected developer recommendation system based on a multi-developer network, including a preprocessor, an extractor, a modeler, and a recommender.

상기 전처리부는 수신한 새로운 버그 리포트를 전처리하고, 상기 추출부는 버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 추출하며, 상기 모델링부는 상기 추출된 유사한 버그 리포트를 기반으로 선정된 후보 개발자의 활동 정보를 이용하여, 다중 개발자 네트워크를 모델링하고, 상기 추천부는 상기 모델링된 다중 개발자 네트워크를 이용하여 상기 후보 개발자의 추천 순위를 연산하고, 상기 연산된 추천 순위를 기반으로 상기 수신한 새로운 버그 리포트를 정정할 개발자를 추천할 수 있다.The pre-processing unit preprocesses the received new bug report, and the extracting unit extracts a bug report similar to the preprocessed new bug report in the bug report stored in the bug storage, and the modeling unit selects the bug report based on the extracted similar bug report The recommendation unit computes a recommendation rank of the candidate developer using the modeled multi-developer network, and based on the calculated recommendation rank, You can recommend a developer to fix a new bug report.

이때, 상기 추출부는 벡터로 표현된 상기 전처리된 새로운 버그 리포트와 상기 버그 저장소에 기 저장된 버그 리포트 사이에 KL 발산(Kullback-Leibler divergence)을 이용함으로써 상기 유사한 버그 리포트를 추출할 수 있으며, 상기 모델링부는 상기 활동 정보로서, 개발자가 버그 정정에 참여한 활동 정보를 나타내는 코멘트(comments) 수와 커밋(commits) 수를 이용할 수 있고, 또한, 상기 모델링부는 상기 추출된 유사한 버그 리포트를 정정한 개발자와 상기 수신한 새로운 버그 리포트의 일부 요소가 동일한 리포트를 정정한 개발자를 기반으로 선정된 상기 후보 개발자의 활동 정보를 이용할 수 있다.At this time, the extracting unit can extract the similar bug report by using a KLB (Kullback-Leibler divergence) between the preprocessed new bug report represented by a vector and a bug report previously stored in the bug repository, and the modeling unit The activity information may include the number of comments and commits indicating the activity information that the developer participated in the bug correction, and the modeling unit may use the developer who corrected the extracted similar bug report, Some elements of the new bug report can use the activity information of the candidate developer selected based on the developer who corrected the same report.

한편, 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법은 수신한 새로운 버그 리포트를 전처리하는 단계, 버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 추출하는 단계, 상기 추출된 유사한 버그 리포트를 기반으로 선정된 후보 개발자의 활동 정보를 이용하여, 다중 개발자 네트워크를 모델링하는 단계, 및 상기 모델링된 다중 개발자 네트워크를 이용하여 상기 후보 개발자의 추천 순위를 연산하고, 상기 연산된 추천 순위를 기반으로 상기 수신한 새로운 버그 리포트를 정정할 개발자를 추천하는 단계를 포함할 수 있다.Meanwhile, the multi-developer network-based bug correction developer recommendation method according to an exemplary embodiment of the present invention includes a step of preprocessing a received new bug report, a bug report similar to the preprocessed new bug report in the bug report stored in the bug storage, Modeling a multi-developer network using activity information of a candidate developer selected based on the extracted similar bug report, and calculating a recommendation rank of the candidate developer using the modeled multi-developer network And recommending a developer to correct the received new bug report based on the calculated recommendation rank.

이때, 상기 추출하는 단계는 벡터로 표현된 상기 전처리된 새로운 버그 리포트와 상기 버그 저장소에 기 저장된 버그 리포트 사이에 KL 발산(Kullback-Leibler divergence)을 이용함으로써 상기 유사한 버그 리포트를 추출할 수 있으며, 상기 모델링하는 단계는 상기 활동 정보로서, 개발자가 버그 정정에 참여한 활동 정보를 나타내는 코멘트(comments) 수와 커밋(commits) 수를 이용할 수 있고, 또한, 상기 모델링하는 단계는 상기 추출된 유사한 버그 리포트를 정정한 개발자와 상기 수신한 새로운 버그 리포트의 일부 요소가 동일한 리포트를 정정한 개발자를 기반으로 선정된 상기 후보 개발자의 활동 정보를 이용할 수 있다.In this case, the extracting step may extract the similar bug report by using KLB (Kullback-Leibler divergence) between the preprocessed new bug report represented by a vector and the bug report previously stored in the bug repository, The modeling step may use, as the activity information, the number of comments and commits indicating the activity information in which the developer participated in the bug correction, and the modeling step may correct the extracted similar bug report One developer can use the activity information of the candidate developer selected based on the developer who has corrected the same report with some elements of the received new bug report.

본 발명은 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템 및 방법을 제공할 수 있는 효과가 있다.The present invention is advantageous in that a bug-corrected developer recommendation system and method based on a multi-developer network can be provided.

본 발명은 많은 버그 리포트가 적절한 개발자에게 할당되지 못하여 재할당되는 경우, 버그 정정의 시간 및 비용이 증가하고, 소프트웨어의 개발 비용이 증대되는 문제를 해결할 수 있는 효과가 있다.The present invention has the effect of solving the problem of increasing the time and cost of bug correction and increasing the development cost of software when many bug reports are not allocated to appropriate developers and reallocated.

본 발명은 복잡한 소프트웨어에서 발생하는 많은 버그를 정정하기 위한 적절한 버그 정정 개발자를 추천함으로써, 소프트웨어의 품질을 향상시키고 개발의 시간 및 비용을 절감할 수 있는 효과가 있다.The present invention has the effect of improving the quality of software and reducing the development time and cost by recommending an appropriate bug correction developer for correcting many bugs occurring in complicated software.

본 발명은 과거의 유사한 버그 리포트의 개발자 뿐만 아니라 새로운 버그와 같은 컴포넌트를 가진 버그 리포트의 개발자를 이용하고, 개발자의 코멘트 정보와 커밋 정보를 이용함으로써 보다 적절한 버그 정정 개발자를 추천할 수 있는 효과가 있다.The present invention has the effect of recommending a more appropriate bug correction developer by using a developer of a bug report having a component such as a new bug as well as developers of past similar bug reports and using the developer's comment information and commit information .

도 1은 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템의 개략적인 구성도이다.
도 2는 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템의 전체 개요를 개략적으로 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 MDN 기반의 버그 선별 알고리즘을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법에 대한 동작 흐름도이다.
1 is a schematic block diagram of a bug-corrected developer recommendation system based on a multi-developer network according to an exemplary embodiment of the present invention.
FIG. 2 is a schematic diagram illustrating a bug-corrected developer recommendation system based on a multi-developer network according to an exemplary embodiment of the present invention. Referring to FIG.
3 is a diagram illustrating an MDN based bug selection algorithm according to an embodiment of the present invention.
4 is a flowchart illustrating a bug correction developer recommendation method based on a multi-developer network according to an exemplary embodiment of the present invention.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 한다. 또한 본 발명의 실시예들을 설명함에 있어 구체적인 수치는 실시예에 불과하다.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. In the following description of the embodiments of the present invention, specific values are only examples.

본 발명은 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어의 개발 시간과 비용을 줄이는 버그 정정 개발자 추천 기술에 관한 것이다.The present invention relates to a bug-correcting developer recommendation system and method based on a multi-developer network, and more particularly, to a bug-correcting developer recommendation technique for reducing software development time and cost.

설명에 앞서, 본 발명에서는 수신한 새로운 버그를 '쿼리(Query)'라고 할 수 있으며, 새로운 버그 리포트 및 버그 저장소에 기 저장된 버그 리포트를 '문서'라 할 수 있다.In the present invention, a new bug received may be referred to as a 'query', and a new bug report and a bug report previously stored in the bug repository may be referred to as a 'document'.

또한, 본 발명에서 사용하는 smoothed UM(smoothed unigram model), 즉 평활화된 유니그램 모델은 특정 문서에 대한 확률 벡터의 발생 확률이 0이 되는 것을 방지하기 위하여, 문서의 전체 컬렉션에서 특정 단어의 발생 확률을 측정하는 컬렉션 모델을 사용함으로써 유니그램 모델을 smoothed하게 만든 것을 의미한다.In addition, the smoothed unigram model (UM) used in the present invention is a smoothed unigram model, which is used to prevent occurrence probability of a probability vector for a specific document from becoming zero, Which means that the unigram model has been smoothed by using the collection model that measures

도 1은 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템의 개략적인 구성도이다.1 is a schematic block diagram of a bug-corrected developer recommendation system based on a multi-developer network according to an exemplary embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템(100)은 전처리부(110), 추출부(120), 모델링부(130) 및 추천부(140)를 포함할 수 있다.Referring to FIG. 1, a bug-correcting developer recommendation system 100 based on a multi-developer network according to an exemplary embodiment of the present invention includes a preprocessing unit 110, an extracting unit 120, a modeling unit 130, ).

우선, 본격적인 설명은, 본 발명의 전체 개요를 도 2를 참조하여 개략적으로 설명한 후, 이후 보다 자세히 설명하기로 한다.First, a full description of the present invention will be described in detail after a general outline of the present invention has been schematically described with reference to Fig. 2.

도 2는 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템의 전체 개요를 개략적으로 나타낸 도면이다.FIG. 2 is a schematic diagram illustrating a bug-corrected developer recommendation system based on a multi-developer network according to an exemplary embodiment of the present invention. Referring to FIG.

도 2를 참조하면, 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템은 새로운 버그(New Bug) 리포트가 제출되면, 먼저 수신한 새로운 버그 리포트를 토큰화, 스태밍, 중지 단어 제거 등의 전처리를 수행(a)한다. 이때, 단어 토큰은 다음 단계에서 특징(Features)로 사용될 수 있다. 다음으로 본 발명의 시스템은 smoothed UM과 KL 발산을 이용하여, 수신한 새로운 버그 리포트와 유사한 버그 리포트를 기 저장된 기존의 버그 리포트에서 검색하여 추출(b)한다. 다음으로, 시스템은 선정된 후보 개발자들의 활동 정보(즉, 코멘트 수와 커밋 수)를 이용하여 다중 개발자 네트워크(MDN)을 모델링(c)한다. 다음으로, 시스템은 후보 개발자들의 추천 순위를 연산(d)하여, 새로운 버그 리포트를 해결하기 위한 적절한 후보자를 추천한다. 보다 자세히 살펴보면 다음과 같다.Referring to FIG. 2, a bug-corrected developer recommendation system based on a multi-developer network according to an exemplary embodiment of the present invention includes a step of, when a new bug report is submitted, Perform pre-processing such as word removal (a). At this time, the word token can be used as a feature in the next step. Next, the system of the present invention retrieves and extracts a bug report similar to the received new bug report from the previously stored bug report using smoothed UM and KL divergence (b). Next, the system models (c) the multi-developer network (MDN) using the activity information of the selected candidate developers (ie, the number of comments and the number of commits). Next, the system computes (d) the recommendation rank of the candidate developers and recommends the appropriate candidate to solve the new bug report. Here is a closer look.

전처리부(110)는 수신한 새로운 버그 리포트를 전처리한다. 즉, 전처리부(110)는 새로운 버그 리포트를 수신하면, 상기 수신한 새로운 버그 리포트를 기반으로 토큰화(Tokenization), 스태밍(stemming), 정지 단어(stop words) 제거 등을 포함하는 전처리(또는 자연어처리) 작업을 수행한다.The preprocessing unit 110 preprocesses the received new bug report. That is, upon receiving a new bug report, the preprocessing unit 110 performs a pre-processing including (or including) tokenization, stemming, stop words, etc. based on the received new bug report Natural language processing).

이에 대해 자세히 살펴보면 다음과 같다. 전처리(processing) 기술은 데이터 마이닝(data mining) 연구자가 이용하는 가장 오래되고 잘 알려진 자연어 처리(natural language) 기술을 포함할 수 있다. 엄밀히 말하자면, 전처리는 관측된 패턴에서 본질적인 정보를 쉽게 추출할 수 있도록 현재 주목하고자 하는 부분 패턴을 선정하거나 이 부분 패턴을 정형(整形)하여 불필요한 정보를 분리 제거하기 위한 예비적인 조작을 말하며, 자연어 처리는 인간이 보통 쓰는 언어를 컴퓨터에 인식시켜서 처리하는 일을 말하고, 여기에는 정보 검색, 질의 응답, 시스템, 자동 번역 및 통역 등이 포함된다.The following is a detailed description. The processing techniques may include the oldest and most well known natural language techniques used by data mining researchers. Strictly speaking, the preprocessing is a preliminary operation for selecting the partial pattern to be noticed at present or extracting and removing the unnecessary information by shaping the partial pattern so that essential information can be easily extracted from the observed pattern, Refers to the process of recognizing and processing a language commonly used by humans, including information retrieval, question and answer, system, automatic translation and interpretation.

토큰화(Tokenization)는 색인할 문서를 정의하고 난 후 문서의 텍스트 데이터를 토큰 단위로 분리하여 처리하는 기술을 말하며, 일반적으로 토큰은 단어(words), 구(phrases) 또는 용어(term) 등을 나타낸다.Tokenization refers to the technique of separating the text data of a document into tokens after defining the documents to be indexed. In general, tokens are words, phrases, or terms. .

스태밍(stemming)은 형태소 분석 기법으로서, 토큰화된 정보를 이용하여, 단어에 공통적으로 나타나는 부분을 어근으로 처리하는 기법을 말하며, 정지 단어(stop words) 제거는 색인(인덱스) 작성 때에 표제어(keyword, descriptor)로 하지 않는 언어, 즉, 불필요한 요소를 제거하는 것을 말한다.Stemming is a morphological analysis technique that uses tokenized information to treat parts of a word that are common to a word as a root. Removal of stop words is done by using headwords keyword, descriptor), that is, removing unnecessary elements.

즉, 전처리부(110)는 전처리 작업을 수행함으로써, 수신한 새로운 버그 리포트의 문장을 단어 토큰(word tokens)으로 나누고, 단어의 불필요한 어근을 처리(예를 들어, 'logging"과 ?ogged"를 ?og"로 줄임)하며, 일반적인 정지 단어를 제거(예를 들어, “He'll", "Haven?" 등과 같은 약어를 제거)할 수 있다.That is, the preprocessing unit 110 performs preprocessing to divide the sentence of the received new bug report into word tokens and processes unnecessary roots of the word (for example, 'logging' and 'ogged' ? og "), and remove common idioms (for example, to remove abbreviations such as" He'll "or" Haven? ").

전처리부(110)는 수신한 새로운 버그 리포트를 전처리한 후, 상기 전처리된 새로운 버그 리포트를 벡터화할 수 있으며, 벡터화한 모델은 smoothed UM으로 표현될 수 있다. 이에 대한 설명은 이후에 더 자세히 설명하기로 한다.The preprocessing unit 110 may preprocess the received new bug report, vectorize the preprocessed new bug report, and the vectorized model may be expressed as smoothed UM. The description will be described in more detail later.

추출부(120)는 버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 추출한다.The extracting unit 120 extracts a bug report similar to the preprocessed new bug report in the bug report stored in the bug storage.

버그 저장소에는 과거에 발생했던 버그 리포트에 관한 모든 정보가 저장되어 있다. 예를 들어, 버그 저장소에는 해당 버그 리포트를 정정한 적이 있는 개발자들의 정보, 과거에 발생했던 버그 리포트 정보, 상기 버그 리포트 내에 포함된 버그 정보, 상기 버그 리포트를 정정한 개발자들의 정정 히스토리 정보 등이 저장되어 있을 수 있다.The bug repository contains all the information about bug reports that occurred in the past. For example, in the bug storage, information on developers who have corrected the bug report, bug report information that occurred in the past, bug information included in the bug report, correction history information of developers who corrected the bug report, and the like are stored .

또한, 버그 저장소에 저장된 버그 리포트는 기본적으로 프로그램 소스 코드 파일에 존재하는 에러(error)를 다양한 필드로 기록한 것으로서, 버그 리포트에는 버그 리포트를 작성한 보고자, 현재 상태, 현재 버그 리포트의 심각성 및 우선순위 등 중요한 필드가 포함되어 있을 수 있다. 이때, 개발자가 해당 버그 리포트의 결함을 고치기 위하여, 버그 리포트의 컴포넌트(component), 수정한 개발자(Fixer), 우선사항(Priority) 필드가 영향을 준다.In addition, the bug report stored in the bug repository basically records an error in the program source code file in various fields. The bug report includes a report of the bug report, the current status, the severity and the priority of the current bug report Important fields may be included. At this time, the component of the bug report, the modified developer (Fixer), and the priority field are influenced by the developer in order to fix the defect of the corresponding bug report.

추출부(120)는 버그 저장소에 기 저장된 버그 리포트에서 상기 전처리 된 새로운 버그 리포트와 유사한 버그 리포트를 검색한 후, 상기 검색된 유사한 버그 리포트를 추출하게 된다. 이때, 추출부(120)는 유사한 버그 리포트를 추출하기 위하여, 버그 리포트를 확률 벡터로 바꾸기 위한 smoothed UM을 이용할 수 있으며, 또한 새로운 버그 리포트와 기 저장된 버그 리포트 사이의 유사도를 계산하기 위하여 KL 발산(Kullback-Leibler divergence)을 이용할 수 있다.The extracting unit 120 searches for a bug report similar to the preprocessed new bug report in the bug report previously stored in the bug storage, and then extracts the retrieved similar bug report. In order to extract a similar bug report, the extracting unit 120 may use smoothed UM to convert the bug report into a probability vector. Also, in order to calculate the similarity between the new bug report and the previously stored bug report, Kullback-Leibler divergence).

추출부(120)는 IR(information retrieval) 기반 알고리즘 수행 시 종래 대부분의 연구자들이 사용하던 classic VSM(classic vector space model) 및 다른 통계 모델(예를 들어, LDA; Latent Dirichlet Allocation)이 아닌, 이 보다 더 좋은 성능을 나타내는 smoothed UM(smoothed unigram model)을 사용함으로써, 수신한 새로운 버그 리포트와 유사한 버그 리포트를 검색할 수 있다.The extraction unit 120 extracts a classical vector space model (VSM) and other statistical models (e.g., LDA, Latent Dirichlet Allocation) used by most researchers in the course of IR (Information Retrieval) By using smoothed UM (smoothed unigram model), which shows better performance, you can search for bug reports similar to the received new bug report.

이에 대해 더 자세히 살펴보면 다음과 같다. 우선, 각 문서의 유니그램(unigram)은 벡터 공간 상에 둘 이상의 확률 변수로 구성된 벡터(즉, 확률 벡터)로 표현된다.More specifically, it is as follows. First, the unigram of each document is expressed as a vector (i.e., a probability vector) composed of two or more random variables on the vector space.

하지만, 만약 어떤 단어가 한 문서에서 발생하지 않았을 경우, 이 문서에 대한 확률 벡터의 발생 확률은 0이 되며, 이러한 현상은 확률 수식에서 문제를 야기할 수 있다. 따라서, 이러한 문제를 해결하기 위하여, 최초의 유니그램 모델은 문서들의 전체 컬렉션에서 특정 단어의 발생 확률을 측정하는 컬렉션 모델을 사용함으로써 유니그램 모델(unigram model)을 평활(smoothed)하게 만든다.However, if a word does not occur in one document, the probability of occurrence of the probability vector for this document becomes zero, and this phenomenon can cause problems in the probability expression. Thus, to solve this problem, the first unigram model makes the unigram model smoothed by using a collection model that measures the probability of occurrence of a particular word in the entire collection of documents.

아래에 정의된 수학식 1은 K번째 문서의 smoothed UM을 나타내며, 이 식의 두번째 부분은 컬렉션 모델을 나타낸다. 다시 말해, 수학식 1의 두번째 부분은, 만약에 특정 단어가 버그 리포트에서 전혀 발생하지 않았을 경우에 발생 확률이 0이 되는 것을 회피하기 위해 평활화된 유니그램 모델(smoothed UM)을 사용한, 컬렉션 모델을 의미한다.Equation 1 defined below represents the smoothed UM of the Kth document, the second part of which expresses the collection model. In other words, the second part of Equation (1) is to use a smoothed UM model to avoid the probability of occurrence of zero if a particular word did not occur at all in the bug report, it means.

즉, 이하 수학식 1은 smoothed UM을 나타낸다.That is, Equation (1) represents smoothed UM.

Figure pat00001
Figure pat00001

이때, ω는 용어를 의미하고,

Figure pat00002
는 k 리포트의 가중치 벡터(weight vector)를 의미한다.
Figure pat00003
는 k 리포트 안에 단어 수를 의미하며, ωk(n)은 k 리포트 안에 n번째 출현 빈도를 나타낸다. K는 리포트의 총 개수를 의미하며, μ는 수학식 1에서 두 부분의 서로 다른 가중치를 의미한다.In this case,? Denotes a term,
Figure pat00002
Denotes a weight vector of the k-th report.
Figure pat00003
Denotes the number of words in the k-report, and ω k (n) denotes the n-th occurrence frequency in the k-report. K denotes the total number of reports, and μ denotes different weights of the two parts in Equation (1).

다음으로, 추출부(120)는 KL 발산(Kullback-Leibler divergence)을 이용하여 유사한 버그 리포트를 검색할 수 있다.Next, the extracting unit 120 can search for a similar bug report using KL (Kullback-Leibler divergence).

더 자세하게는, KL 발산은 새로운 버그 리포트(즉, 쿼리)와 버그 저장소에 기 저장된 버그 리포트 사이에 유사도를 계산하기 위해 사용되는 것으로서, 두 확률 분포의 차이를 계산하는 데에 사용하는 함수이다. 이때, KL 발산이 높을수록 유사도는 낮은 것을 의미한다.More specifically, KL divergence is a function used to compute the difference between two probability distributions, which is used to calculate the similarity between a new bug report (ie, query) and a bug report pre-stored in the bug repository. At this time, the higher the KL divergence, the lower the similarity.

즉, 이하 수학식 2는 KL 발산을 이용한 유사도 계산법을 나타낸다.That is, Equation (2) below represents a method of calculating the degree of similarity using KL divergence.

Figure pat00004
Figure pat00004

이때,

Figure pat00005
는 쿼리 q에서 용어 ω가 나타나는 확률을 의미하고,
Figure pat00006
는 버그 리포트 k에서 용어 ω가 나타나는 확률을 의미한다.At this time,
Figure pat00005
Denotes the probability that the term? Appears in the query q,
Figure pat00006
Means the probability that the term ω appears in the bug report k.

따라서, 추출부(120)는 앞서 살펴본 벡터로 표현된 상기 전처리된 새로운 버그 리포트(smoothed UM)와 상기 버그 저장소에 기 저장된 버그 리포트 사이에 KL 발산(Kullback-Leibler divergence)을 이용함으로써, 상기 유사한 버그 리포트를 검색하여 추출할 수 있다.Accordingly, the extracting unit 120 uses the KLL (Kullback-Leibler divergence) between the pre-processed new bug report (smoothed UM) and the bug report previously stored in the bug repository, The report can be retrieved and extracted.

모델링부(130)는 상기 추출된 유사한 버그 리포트를 기반으로 선정된 후보 개발자의 활동 정보(이때, 활동 정보는 개발자가 버그 정정 시 참여한 활동 정보로서, 코멘트 수와 커밋 횟수를 의미함)를 이용하여, 가중치 벡터를 가진 다중 개발자 네트워크(MDN, Multi-Developer Network)를 모델링한다.The modeling unit 130 uses the extracted activity information of the candidate developer based on the similar bug report (in this case, the activity information is activity information that the developer participated in bug correction, which means the number of comments and the number of commits) , And a multi-developer network (MDN) with a weight vector.

즉, 모델링부(130)는 가중치 벡터를 가진 다중 개발자 네트워크(MDN, Multi-Developer Network)를 모델링할 때, 상기 활동 정보로서, 개발자가 버그 정정에 참여한 활동 정보를 나타내는 코멘트(comments) 수와 커밋(commits) 수를 이용할 수 있다.That is, when modeling a multi-developer network (MDN) having a weight vector, the modeling unit 130 may include, as the activity information, the number of comments indicating the activity information in which the developer participated in the bug correction, commits can be used.

또한, 모델링부(130)는 상기 추출된 유사한 버그 리포트를 정정한 개발자와 상기 수신한 새로운 버그 리포트의 일부 요소(component)가 동일한 리포트를 정정한 개발자를 기반으로 선정된 상기 후보 개발자의 활동 정보를 이용함으로써, 가중치 벡터를 가진 다중 개발자 네트워크(MDN)를 모델링할 수 있다. 이에 대한 보다 자세한 설명은 다음과 같다.In addition, the modeling unit 130 may be configured to generate the activity information of the candidate developer selected on the basis of the developer who corrected the extracted similar bug report and the developer who corrected the same report with some elements of the received new bug report , A multi-developer network (MDN) having a weight vector can be modeled. A more detailed explanation is as follows.

본 발명에서는 보다 적절한 버그 정정 개발자를 추천하기 위하여 다중 개발자 네트워크(MDN, Multi-Developer Network) 기법을 제안한다.In the present invention, a multi-developer network (MDN) technique is proposed to recommend a more suitable bug correction developer.

다중 개발자 네트워크는 하나의 활동(예를 들어, 코멘트 활동)에서 개발자들의 행동을 분석하는데 사용되는 향상된 소셜 네트워크(improved social network)를 의미하며, 다중 개발자 네트워크는(MDN)에는 코멘트 활동을 하는 개발자들과 소스 코드 변경 과정 사이의 관계가 반영된다.A multi-developer network refers to an improved social network used to analyze the behavior of developers in one activity (eg, comment activity), while a multi-developer network (MDN) And the source code change process.

소셜 네트워크와 비교하였을 때, MDN은 개발자의 코멘트 활동(comment activities) 뿐만 아니라, 그들이 소스 코드를 변경하는 과정에서 행한 의소소통 활동(communication activities)을 고려한다.When compared to social networks, MDN considers not only the developer's comment activities, but also the communication activities they have done in the course of modifying the source code.

모델링부(130)는 MDN을 모델링하기 위하여, 먼저 후보 개발자를 추출할 수 있다. 이때, 버그 리포트에서 소프트웨어 컴포넌트(component) 필드는 다른 필드들보다 더 중요한 것으로 나타난 바 있기 때문에, 모델링부(130)는 후보 개발자를 추출할 때, 추출부(120)에서 추출된 유사한 버그 리포트를 정정한 적이 있는 개발자들 뿐만 아니라, 수신한 새로운 버그 리포트와 같은 컴포넌트를 가지는 버그 리포트를 정정한 적이 있는 개발자들을 추출한다.In order to model the MDN, the modeling unit 130 may first extract a candidate developer. At this time, since the software component field is more important than the other fields in the bug report, the modeling unit 130 corrects the similar bug report extracted by the extracting unit 120 when extracting the candidate developer Extracts developers who have fixed bug reports with components, such as received new bug reports, as well as those who have done so.

그런 다음, 모델링부(130)는 수학식 3과 같이 두 개발자 집합의 교차점을 만든다. 즉, 이하 수학식 3은 후보 개발자 D의 개념을 나타낸다.Then, the modeling unit 130 creates an intersection of two sets of developers as shown in Equation (3). That is, Equation (3) below represents the concept of the candidate developer D.

Figure pat00007
Figure pat00007

이때, Dsim은 새로운 버그를 이용한 유사한 버그 리포트로부터 추출된 개발자들의 집합을 의미하고, Dcomp은 새로운 버그와 같은 컴포넌트(즉, 구성 요소)를 가진 버그 리포트로부터 추출된 개발자들의 집합을 의미한다. 이에 따라 모델링부(130)는 두 개발자 집합의 교차점으로부터 후보 개발자들 D를 추출하게 된다.At this time, D sim means a set of developers extracted from a similar bug report using a new bug, and D comp means a set of developers extracted from a bug report having a new bug-like component (ie, component). Accordingly, the modeling unit 130 extracts the candidate developers D from the intersections of the two developer sets.

다음으로, 모델링부(130)는 많은 개발자들 D의 리스트를 형성하기 위하여, 후보 개발자들 D의 코멘트 수와 커밋 수를 추출할 수 있다. 더 자세히 살펴보면 다음과 같다. 모델링부(130)는 MDN을 다음과 같이 정의할 수 있으며, 우선 개념에 대해 자세히 설명한 후, 이후 실시예를 통해 이해를 돕기로 한다.Next, the modeling unit 130 may extract the number of comments and the number of commits of the candidate developers D to form a list of many developers D. More specifically, The modeling unit 130 can define the MDN as follows. First, the concept will be described in detail, and then the understanding will be provided through the following embodiments.

버그 저장소에 제출되고 있는 버그 리포트인 소프트웨어 제품 p의 MDN은 방향 그래프로 나타낸다. 이는 MDNp = (V, E)로 표현될 수 있으며, 여기에서 V는 개발자들의 집합을 의미하고, E는 소프트웨어 제품 p에 참여하는 개발자들 사이의 코멘트와 커밋을 포함한 관계의 집합을 의미한다.The MDN of the software product p, a bug report submitted to the bug repository, is represented by a directional graph. This can be expressed as MDN p = (V, E), where V is a set of developers and E is a set of relationships including comments and commits between developers participating in software product p.

그리고, 2차원 공간에서 MDN의 각 노드에는 개발자들의 이름이 표시될 수 있으며, 각 가장자리는 가중치 벡터(weight vector)를 가진다.In the two-dimensional space, the names of the developers can be displayed at each node of the MDN, and each edge has a weight vector.

모델링부(130)는 가중치 벡터를

Figure pat00008
로 정의할 수 있으며, 이하 수학식 4는 가중치 벡터의 정의를 나타낸다.The modeling unit 130 calculates a weight vector
Figure pat00008
, And Equation (4) represents the definition of the weight vector.

Figure pat00009
Figure pat00009

여기에서

Figure pat00010
는 MDN의 가장자리를 의미한다.
Figure pat00011
는 버그 수정 과정에 참여한 참여자(contributors)를 의미하고,
Figure pat00012
는 배정된 개발자, 즉 담당자(assignee)를 의미한다.From here
Figure pat00010
Means the edge of the MDN.
Figure pat00011
Means contributors participating in the bug fix process,
Figure pat00012
Means the assigned developer, or assignee.

Figure pat00013
는 담당자(
Figure pat00014
)한테, 참여자(
Figure pat00015
)에 의해 변경된 커밋 수를 의미하고,
Figure pat00016
은 담당자(
Figure pat00017
)한테, 참여자(
Figure pat00018
)에 의해 달린(posted) 코멘트 수를 의미한다. 즉, MDN은, V=D이고, 각 가중치 벡터가
Figure pat00019
인 것을 포함하는, 몇가지 조건을 가지게 된다.
Figure pat00013
The person in charge (
Figure pat00014
), Participant (
Figure pat00015
), ≪ / RTI >< RTI ID = 0.0 >
Figure pat00016
The person in charge (
Figure pat00017
), Participant (
Figure pat00018
The number of comments posted by the user. That is, MDN is V = D and each weight vector is
Figure pat00019
, And so on.

도 3은 본 발명의 일 실시예에 따른 MDN 기반의 버그 선별 알고리즘을 나타낸 도면이다.3 is a diagram illustrating an MDN based bug selection algorithm according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 MDN 기반의 버그 선별 과정은 다음과 같다. 먼저, Step 1에서 모델링부(130)는 각 개발자들의 코멘트 수와 커밋 수를 추출(extract)한다. 이때, A, B, C, D는 개발자들을 나타내며, 개발자의 가장자리에 표시된 (1, 7), (3, 4) 등과 같은 벡터들은 해당 개발자에 의한 코멘트 수 및 커밋 수를 나타낸다.Referring to FIG. 3, an MDN-based bug selection process according to an embodiment of the present invention is as follows. First, in Step 1, the modeling unit 130 extracts the number of comments and the number of commits of each developer. In this case, A, B, C, and D represent developers, and the vectors such as (1, 7), (3, 4) and so on displayed on the developer's edge indicate the number of comments and the number of commits by the developer.

다음으로 Step 2에서 추천부(140)는 각 개발자들의 랭킹 점수(ranking score)를 계산(compute)한다. 이때, 랭킹 점수는 후보 개발자들의 추천 순위를 연산하는 것으로서, 수학식 5를 이용하여 계산할 수 있다. 즉, 이하 수학식 5는 개발자들의 추천 순위(즉, 랭킹 점수)를 연산하는 계산법을 나타낸다.Next, in step 2, the recommendation unit 140 compiles a ranking score of each developer. In this case, the ranking score calculates the recommendation rank of the candidate developers, and can be calculated using Equation (5). That is, Equation (5) below represents a calculation method for calculating a recommendation rank of developers (i.e., a ranking score).

Figure pat00020
Figure pat00020

다음, 마지막으로 Step 3에서 추천부(140)는 Step 2에서 연산된 후보 개발자들의 추천 순위를 기반으로 수신한 새로운 버그 리포트를 정정할 적절한 개발자를 추천한다.Next, finally, in step 3, the recommender 140 recommends a suitable developer to correct the received new bug report based on the recommendation rank of the candidate developers calculated in the step 2.

즉, 추천부(140)는 모델링부(130)에서 모델링된 다중 개발자 네트워크(MDN)를 이용하여 상기 후보 개발자들의 추천 순위(즉, 랭킹 점수)를 연산하고, 상기 연산된 추천 순위를 기반으로 상기 수신한 새로운 버그 리포트를 정정할 개발자를 추천할 수 있다.That is, the recommendation unit 140 calculates the recommendation rank (i.e., ranking score) of the candidate developers using the multi-developer network (MDN) modeled by the modeling unit 130, You can recommend a developer to correct the received new bug report.

예를 들어, 도 3에서 개발자 D는 버그 리포트에 9번 커밋(자세하게는 A와 3번, B와 3번, C와 3번)하고, 개발자들을 위해 15번 코멘트(A에게는 5번, B에게는 4번, C에게는 6번)를 남긴 것을 알 수 있다.For example, in FIG. 3, Developer D commits 9 times in the bug report (A and 3, B and 3 and C and 3 times in detail), 15 comments for developers (5 for A, 4 times, and 6 times for C).

이에 따라, 개발자 D는 수학식 5의 계산법에 의하여, 랭킹 점수가 "((0.33+0.33+0.33) * (0.33+0.27+0.40)) = 0.99", 즉 0.99이며, 이는 개발자 A, B, C, D 사이에서 가장 높은 랭킹 점수를 거두었음을 알 수 있다. 한편, 개발자 C는 "(0.22 * 0.40) = 0.09", 즉 랭킹 점수가 0.09로서, 개발자들 사이에서 두번째로 높은 랭킹 점수를 거두었다.Accordingly, the developer D has a ranking score of "0.99 (0.33 + 0.33 + 0.33) * (0.33 + 0.27 + 0.40) = 0.99" , And D, respectively. Developer C, on the other hand, scored the second highest ranking among developers with "(0.22 * 0.40) = 0.09", ie, ranking score of 0.09.

즉, 추천부(140)는, 수학식 5를 통해 얻은 랭킹 점수(즉, 추천 순위)를 기반으로 하여, 후보 개발자들 A, B, C, D 중에서 랭킹 점수가 가장 높은 개발자 D를, 상기 수신한 새로운 버그 리포트를 정정할 개발자로서, 1순위로 추천할 수 있다.That is, the recommendation unit 140 selects the developer D having the highest ranking score among the candidate developers A, B, C, and D based on the ranking score (i.e., the recommended ranking) As a developer to fix a new bug report, we can recommend it as a first rank.

이에 따라, 본 발명은 새로운 버그가 제출되었을 때 MDN 기반의 버그 선별 알고리즘을 사용함으로써, 새로운 버그를 해결하기 위한 가장 적합한 개발자를 추천하는 것이 가능하다.Accordingly, by using the MDN-based bug selection algorithm when a new bug is submitted, the present invention can recommend the most suitable developer to solve a new bug.

이하에서는 상기에 자세히 설명된 내용을 기반으로 본 발명의 동작 흐름도를 간단히 설명하기로 한다.Hereinafter, an operational flow diagram of the present invention will be briefly described based on the details described above.

도 4는 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법에 대한 동작 흐름도이다.4 is a flowchart illustrating a bug correction developer recommendation method based on a multi-developer network according to an exemplary embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법은 먼저, 전처리부(110)에 의하여, 수신한 새로운 버그 리포트를 전처리한다(S410).Referring to FIG. 4, in the multi-developer network based bug correction developer recommendation method according to the embodiment of the present invention, the preprocessing unit 110 preprocesses the received new bug report (S410).

이때, 전처리부(110)는 새로운 버그 리포트를 수신하면, 상기 수신한 새로운 버그 리포트를 기반으로 토큰화(Tokenization), 스태밍(stemming), 정지 단어(stop words) 제거 등을 포함하는 전처리를 수행한다.At this time, upon receiving a new bug report, the preprocessing unit 110 performs preprocessing including tokenization, stemming, stop words, etc. based on the received new bug report do.

또한, 전처리부(110)는 상기 전처리된 새로운 버그 리포트를 벡터화할 수 있으며, 벡터화한 모델은 smoothed UM으로 표현될 수 있다. 이는 상기에 자세히 설명했으므로 이를 참조하기로 한다.Also, the preprocessing unit 110 may vectorize the preprocessed new bug report, and the vectorized model may be represented by smoothed UM. This has been described in detail above and will be referred to here.

다음으로, 본 발명은 추출부(120)에 의하여, 버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 추출한다(S420).Next, in operation S420, the extraction unit 120 extracts a bug report similar to the preprocessed new bug report from the bug report stored in the bug repository.

이때, 추출부(120)는 버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 검색한 후, 상기 검색된 유사한 버그 리포트를 추출하게 된다. 그리고, 추출부(120)는 유사한 버그 리포트를 추출하기 위하여, 버그 리포트를 확률 벡터로 바꾸기 위한 smoothed UM을 이용할 수 있으며, 또한 새로운 버그 리포트와 기 저장된 버그 리포트 사이의 유사도를 계산하기 위하여 KL 발산(Kullback-Leibler divergence)을 이용할 수 있다. 이는 상기에 자세히 설명했으므로 이를 참조하기로 한다.At this time, the extracting unit 120 searches for a bug report similar to the preprocessed new bug report in the bug report stored in the bug storage, and then extracts the retrieved similar bug report. In order to extract a similar bug report, the extracting unit 120 may use the smoothed UM to convert the bug report into a probability vector, and further, to calculate the similarity between the new bug report and the previously stored bug report, Kullback-Leibler divergence). This has been described in detail above and will be referred to here.

다음으로, 본 발명은 모델링부(130)에 의하여, 상기 추출된 유사한 버그 리포트를 기반으로 선정된 후보 개발자의 활동 정보를 이용하여, 가중치 벡터를 가진 다중 개발자 네트워크(MDN)를 모델링한다(S430).Next, the modeling unit 130 models the multi-developer network (MDN) having the weight vector by using the activity information of the candidate developer selected on the basis of the extracted similar bug report (S430) .

이때, 모델링부(130)는 MDN을 모델링할 때, 상기 활동 정보로서, 개발자가 버그 정정에 참여한 활동 정보를 나타내는 코멘트(comments) 수와 커밋(commits) 수를 이용할 수 있다. 또한, 모델링부(130)는 상기 추출된 유사한 버그 리포트를 정정한 개발자와 상기 수신한 새로운 버그 리포트의 일부 요소(component)가 동일한 리포트를 정정한 개발자를 기반으로 선정된 상기 후보 개발자의 활동 정보를 이용함으로써, MDN을 모델링할 수 있다. 이는 상기에 자세히 설명했으므로 이를 참조하기로 한다.At this time, when modeling the MDN, the modeling unit 130 may use, as the activity information, the number of comments and the number of commits indicating the activity information on which the developer participated in the bug correction. In addition, the modeling unit 130 may be configured to generate the activity information of the candidate developer selected on the basis of the developer who corrected the extracted similar bug report and the developer who corrected the same report with some elements of the received new bug report The MDN can be modeled. This has been described in detail above and will be referred to here.

다음으로, 본 발명은 추천부(140)에 의하여, 상기 모델링된 다중 개발자 네트워크를 이용하여 상기 후보 개발자의 추천 순위(즉, 랭킹 점수)를 연산하고, 상기 연산된 추천 순위를 기반으로 상기 수신한 새로운 버그 리포트를 정정할 개발자를 추천할 수 있다.Next, according to the present invention, the recommendation unit 140 calculates a recommendation rank (i.e., ranking score) of the candidate developer using the modeled multi-developer network, and based on the calculated recommendation rank, You can recommend a developer to fix a new bug report.

이때, 개발자들의 추천 순위(즉, 랭킹 점수)는 상기 수학식 도 5를 참조하여 연산할 수 있으며, 이에 대한 설명은 상기에 자세히 설명되어 있으므로, 이를 참조하기로 한다.At this time, the recommendation rank of the developers (i.e., the ranking score) can be calculated with reference to the above Equation (5), and the description thereof will be described in detail hereinabove.

본 발명은 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법을 통해, 복잡한 소프트웨어에서 발생하는 많은 버그를 정정하기 위한 보다 적절한 버그 정정 개발자를 추천할 수 있으며, 이에 따라, 소프트웨어의 품질을 향상시키고 개발의 시간 및 비용을 절감할 수 있는 효과가 있다.
The present invention can recommend a more appropriate bug correction developer for correcting a large number of bugs occurring in complex software through a bug correction developer recommendation method based on a multi developer network, And the cost can be reduced.

본 발명의 일 실시 예에 따른 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.A bug-correcting developer recommendation method based on a multi-developer network according to an exemplary embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described with reference to particular embodiments, such as specific elements, and specific embodiments and drawings. However, it should be understood that the present invention is not limited to the above- And various modifications and changes may be made thereto by those skilled in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the embodiments described, and all of the equivalents or equivalents of the claims, as well as the following claims, belong to the scope of the present invention .

100: 다중 개발자 네트워크 기반의 버그 정정 개발자 추천
110: 전처리부 120: 추출부
130: 모델링부 140: 추천부
100: Bug fix based on multi-developer network
110: preprocessor 120:
130: Modeling unit 140: Recommendation unit

Claims (9)

수신한 새로운 버그 리포트를 전처리하는 전처리부;
버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 추출하는 추출부;
상기 추출된 유사한 버그 리포트를 기반으로 선정된 후보 개발자의 활동 정보를 이용하여, 다중 개발자 네트워크를 모델링하는 모델링부; 및
상기 모델링된 다중 개발자 네트워크를 이용하여 상기 후보 개발자의 추천 순위를 연산하고, 상기 연산된 추천 순위를 기반으로 상기 수신한 새로운 버그 리포트를 정정할 개발자를 추천하는 추천부;
를 포함하는 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템.
A pre-processing unit for pre-processing the received new bug report;
An extracting unit for extracting a bug report similar to the preprocessed new bug report in the bug report stored in the bug storage;
A modeling unit for modeling a multi-developer network using activity information of a candidate developer selected based on the extracted similar bug report; And
A recommendation unit for calculating a recommendation rank of the candidate developer using the modeled multi-developer network, and recommending a developer to correct the received new bug report based on the calculated recommendation rank;
A developer recommendation system that fixes a bug based on a multi - developer network.
제1항에 있어서,
상기 추출부는
벡터로 표현된 상기 전처리된 새로운 버그 리포트와 상기 버그 저장소에 기 저장된 버그 리포트 사이에 KL 발산(Kullback-Leibler divergence)을 이용함으로써 상기 유사한 버그 리포트를 추출하는
다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템.
The method according to claim 1,
The extracting unit
Extracts the similar bug report by using KLB (Kullback-Leibler divergence) between the pre-processed new bug report represented by the vector and the bug report previously stored in the bug repository
Bug Correction Developer recommendation system based on multi developer network.
제1항에 있어서,
상기 모델링부는
상기 활동 정보로서, 개발자가 버그 정정에 참여한 활동 정보를 나타내는 코멘트(comments) 수와 커밋(commits) 수를 이용하는
다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템.
The method according to claim 1,
The modeling unit
As the activity information, the number of comments and commits indicating the activity information in which the developer participated in the bug correction is used
Bug Correction Developer recommendation system based on multi developer network.
제1항에 있어서,
상기 모델링부는
상기 추출된 유사한 버그 리포트를 정정한 개발자와 상기 수신한 새로운 버그 리포트의 일부 요소가 동일한 리포트를 정정한 개발자를 기반으로 선정된 상기 후보 개발자의 활동 정보를 이용하는
다중 개발자 네트워크 기반의 버그 정정 개발자 추천 시스템.
The method according to claim 1,
The modeling unit
The developer who has corrected the extracted similar bug report and the activity information of the candidate developer selected based on the developer who has corrected the same report by a part of the received new bug report
Bug Correction Developer recommendation system based on multi developer network.
수신한 새로운 버그 리포트를 전처리하는 단계;
버그 저장소에 기 저장된 버그 리포트에서 상기 전처리된 새로운 버그 리포트와 유사한 버그 리포트를 추출하는 단계;
상기 추출된 유사한 버그 리포트를 기반으로 선정된 후보 개발자의 활동 정보를 이용하여, 다중 개발자 네트워크를 모델링하는 단계; 및
상기 모델링된 다중 개발자 네트워크를 이용하여 상기 후보 개발자의 추천 순위를 연산하고, 상기 연산된 추천 순위를 기반으로 상기 수신한 새로운 버그 리포트를 정정할 개발자를 추천하는 단계;
를 포함하는 다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법.
Pre-processing the received new bug report;
Extracting a bug report similar to the preprocessed new bug report in a bug report previously stored in the bug repository;
Modeling a multi-developer network using activity information of a candidate developer selected based on the extracted similar bug report; And
Computing a recommendation rank of the candidate developer using the modeled multi-developer network, and recommending a developer to correct the received new bug report based on the calculated recommendation rank;
A developer recommendation method based on a multi-developer network that includes bug fixes.
제5항에 있어서,
상기 추출하는 단계는
벡터로 표현된 상기 전처리된 새로운 버그 리포트와 상기 버그 저장소에 기 저장된 버그 리포트 사이에 KL 발산(Kullback-Leibler divergence)을 이용함으로써 상기 유사한 버그 리포트를 추출하는
다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법.
6. The method of claim 5,
The extracting step
Extracts the similar bug report by using KLB (Kullback-Leibler divergence) between the pre-processed new bug report represented by the vector and the bug report previously stored in the bug repository
Developer recommendation method based on multi - developer network.
제5항에 있어서,
상기 모델링하는 단계는
상기 활동 정보로서, 개발자가 버그 정정에 참여한 활동 정보를 나타내는 코멘트(comments) 수와 커밋(commits) 수를 이용하는
다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법.
6. The method of claim 5,
The modeling step
As the activity information, the number of comments and commits indicating the activity information in which the developer participated in the bug correction is used
Developer recommendation method based on multi - developer network.
제5항에 있어서,
상기 모델링하는 단계는
상기 추출된 유사한 버그 리포트를 정정한 개발자와 상기 수신한 새로운 버그 리포트의 일부 요소가 동일한 리포트를 정정한 개발자를 기반으로 선정된 상기 후보 개발자의 활동 정보를 이용하는
다중 개발자 네트워크 기반의 버그 정정 개발자 추천 방법.
6. The method of claim 5,
The modeling step
The developer who has corrected the extracted similar bug report and the activity information of the candidate developer selected based on the developer who has corrected the same report by a part of the received new bug report
Developer recommendation method based on multi - developer network.
제5항 내지 제8항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 5 to 8.
KR1020150008190A 2015-01-16 2015-01-16 System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network KR101697992B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150008190A KR101697992B1 (en) 2015-01-16 2015-01-16 System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150008190A KR101697992B1 (en) 2015-01-16 2015-01-16 System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network

Publications (2)

Publication Number Publication Date
KR20160088730A true KR20160088730A (en) 2016-07-26
KR101697992B1 KR101697992B1 (en) 2017-01-19

Family

ID=56680930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150008190A KR101697992B1 (en) 2015-01-16 2015-01-16 System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network

Country Status (1)

Country Link
KR (1) KR101697992B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102273219B1 (en) * 2020-03-06 2021-07-06 주식회사 코딩로봇연구소 System and method for recommending occupational group for software developer

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120069388A (en) 2010-12-20 2012-06-28 엠디에스테크놀로지 주식회사 System for categorozing static software bug and automating report grneration and method therefor
KR101390220B1 (en) * 2012-11-07 2014-04-30 서울시립대학교 산학협력단 Method for recommending appropriate developers for software bug fixing and apparatus thereof
US20150006519A1 (en) * 2013-06-28 2015-01-01 Microsoft Corporation Automated problem inference from bug repositories

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120069388A (en) 2010-12-20 2012-06-28 엠디에스테크놀로지 주식회사 System for categorozing static software bug and automating report grneration and method therefor
KR101390220B1 (en) * 2012-11-07 2014-04-30 서울시립대학교 산학협력단 Method for recommending appropriate developers for software bug fixing and apparatus thereof
US20150006519A1 (en) * 2013-06-28 2015-01-01 Microsoft Corporation Automated problem inference from bug repositories

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Shivani Rao 외 2인. "An Incremental Update Framework for Efficient Retrieval from Software Libraries for Bug Localization." 20th Working Conference on Reverse Engineering, Oct 14-17, 2013 *
Tao Zhang 외 3인. ‘Role Analysis-based Automatic Bug Triage Algorithm’. Information Processing Society of Japan. 2012, pp.1-4* *

Also Published As

Publication number Publication date
KR101697992B1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
Chen et al. Neural symbolic reader: Scalable integration of distributed and symbolic representations for reading comprehension
CN109918489B (en) Multi-strategy fused knowledge question answering method and system
CN110288004B (en) System fault diagnosis method and device based on log semantic mining
CN109165291B (en) Text matching method and electronic equipment
CN111783518A (en) Training sample generation method and device, electronic equipment and readable storage medium
US10983786B2 (en) Automatically evaluating software project requirements
Winata et al. CAiRE_HKUST at semeval-2019 task 3: Hierarchical attention for dialogue emotion classification
CN109558482B (en) Parallelization method of text clustering model PW-LDA based on Spark framework
CN110597978A (en) Article abstract generation method and system, electronic equipment and readable storage medium
US20160132809A1 (en) Identifying and amalgamating conditional actions in business processes
CN110968664A (en) Document retrieval method, device, equipment and medium
CN109543175B (en) Method and device for searching synonyms
CN111190973A (en) Method, device, equipment and storage medium for classifying statement forms
CN113705207A (en) Grammar error recognition method and device
CN110347916B (en) Cross-scene item recommendation method and device, electronic equipment and storage medium
KR101697992B1 (en) System and Method for Recommending Bug Fixing Developers based on Multi-Developer Network
Kim et al. Predicting emotion in movie scripts using deep learning
CN111143533A (en) Customer service method and system based on user behavior data
KR101983477B1 (en) Method and System for zero subject resolution in Korean using a paragraph-based pivotal entity identification
CN112115362B (en) Programming information recommendation method and device based on similar code recognition
KR101691083B1 (en) System and Method for Bug Fixing Developers Recommendation and Bug Severity Prediction based on Topic Model and Multi-Feature
CN111427880B (en) Data processing method, device, computing equipment and medium
US11144712B2 (en) Dictionary creation apparatus, dictionary creation method, and non-transitory computer-readable storage medium for storing dictionary creation program
Li Feature and variability extraction from natural language software requirements specifications
CN111310442B (en) Method for mining shape-word error correction corpus, error correction method, device and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
FPAY Annual fee payment

Payment date: 20191202

Year of fee payment: 4