KR102004489B1 - A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it - Google Patents

A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it Download PDF

Info

Publication number
KR102004489B1
KR102004489B1 KR1020190007264A KR20190007264A KR102004489B1 KR 102004489 B1 KR102004489 B1 KR 102004489B1 KR 1020190007264 A KR1020190007264 A KR 1020190007264A KR 20190007264 A KR20190007264 A KR 20190007264A KR 102004489 B1 KR102004489 B1 KR 102004489B1
Authority
KR
South Korea
Prior art keywords
developer
test
slope
unit
error
Prior art date
Application number
KR1020190007264A
Other languages
Korean (ko)
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 KR1020190007264A priority Critical patent/KR102004489B1/en
Application granted granted Critical
Publication of KR102004489B1 publication Critical patent/KR102004489B1/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/10Office automation; Time management
    • G06Q10/105Human resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Third-party assisted
    • G06Q30/0619Neutral agent

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to a developer recommendation outsourcing system for automatically analyzing capability of a developer using a code output thereof and recommending a developer based on the same, which analyzes whether developers write a source according to a standard development guideline in a step before or after a process of compiling and building a source code in a cloud-based development environment, so as to calculate an error rate, which analyzes whether developers create how many unit test codes which can be tested, so as to calculate a test rate, and which combines the error rate and the test rate to automatically search for a developer corresponding to a development environment requested by a client and a level desired by the client and to recommend the developer. According to the present invention, the error rate calculated by using results of static analysis and the test rate for the unit test codes written by a developer himself are combined to search for a developer corresponding to a development environment desired by a client and a level desired by the client from a DB, and to recommend the developer, and thus it is possible to recommend a developer suitable for conditions of a client relatively accurately in a customizable manner, thereby increasing satisfaction of a client.

Description

개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템{A DEVELOPER RECOMMENDED OUTSOURCING SYSTEM THAT AUTOMATICALLY ANALYZES THE DEVELOPER'S CODE OUTPUT AND RECOMMENDS THE DEVELOPER BASED ON IT}TECHNICAL FIELD [0001] The present invention relates to a developer recommended outsourcing system for automatically analyzing a developer's ability using a developer's code output and recommending a developer based on the developer's ability,

본 발명은 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템에 관한 것으로, 더욱 상세하게는 클라우드 환경에서 개발자가 업로드 한 소스 코드를 분석하여 고객이 의뢰한 개발환경과 고객이 원하는 수준에 해당하는 개발자를 추천할 수 있는 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템에 관한 것이다.The present invention relates to a developer recommended outsourcing system that automatically analyzes a developer's ability using a developer's code output and recommends a developer based on the analysis result. More specifically, the present invention analyzes a source code uploaded by a developer in a cloud environment, And a developer recommendation outsourcing system for automatically analyzing a developer's ability using a developer's code output that can recommend a developer who is requested by the client and recommending the developer based on the analysis result.

종래에는 헤드헌터들이 개발자의 경력 등을 참고하여 개발자를 추천하는 방식을 이용하고 있었다. 개발자의 경력이 오래되면 실제로 개발자의 개발능력과는 상관없이 개발능력이 중, 상 이상은 되는 것으로 판단하여 개발자를 추천하였다. 다시 말해서, 실제 개발자의 개발능력을 검증하기가 어려운 점이 있었다.In the past, head hunters used a method of recommending a developer by referring to a developer's career. When a developer has a long career, he / she recommends the developer because he / she thinks that his / In other words, it was difficult to verify the development capabilities of actual developers.

또한, 기존의 로컬 개발환경에서 최근에는 클라우드 기반으로 소프트웨어 개발환경이 바뀌고 있으며, 소프트웨어의 기능이 다양하고 복잡해지면서 여러 명의 개발자들이 하나의 프로젝트에 투입되어 개발자 각자가 개발한 모듈을 빌드하고 이를 하나로 모아서 배포하는 형태로 이루어지고 있다.In addition, in the existing local development environment, cloud-based software development environment is changing recently. As the functions of software become diverse and complex, several developers are put into one project to build modules developed by each developer, And the like.

이와 같은 클라우드 개발 환경에서는 협업이 중요해지면서 개발자의 개발능력을 객관적으로 평가할 수 있는 시스템이 더욱 중요해 지고 있다.In this type of cloud development environment, as collaboration becomes more important, a system that can objectively evaluate developer's development capability becomes more important.

기업들이 개발자를 채용하는 과정에서 서류심사와 면접만으로 평가하여 채용하고, 개발자를 투입하였을 때 개발자의 경력에 비해 코딩 능력이 현저히 떨어지는 문제가 발생하기도 한다.In the process of recruiting developers, companies evaluate and hire them only through document screening and interviews, and when they put in developers, there is a problem that the coding ability is significantly lower than the developer's career.

등록특허 제10-1764890호Patent No. 10-1764890

본 발명은 상기와 같은 문제점을 개선하기 위하여 발명된 것으로, 클라우드(cloud) 기반의 개발환경에서 소스코드를 컴파일하고 빌드하는 과정의 전 또는 후 단계에서 개발자들이 표준 개발 가이드라인에 맞게 소스를 작성했는지 여부를 분석하여 에러율을 산출하고, 테스트가 가능한 단위테스트(unit test) 코드를 얼마나 만들었는지 여부를 분석하여 테스트율을 산출한 후 이를 종합하여 고객이 의뢰한 개발환경과 고객이 원하는 수준에 해당하는 개발자를 자동으로 검색하여 추천하는 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템을 제공하기 위한 것이다.SUMMARY OF THE INVENTION The present invention has been made in order to solve the above-mentioned problems, and it is an object of the present invention to provide a method and apparatus for generating a source code in accordance with standard development guidelines in a cloud- And then calculates the error rate, analyzes how much unit test code that can be tested has been made, calculates the test rate, and then collects the test rate to determine the development environment requested by the customer and the level It is intended to provide a developer recommended outsourcing system that automatically analyzes a developer's ability by using a developer's code output to automatically search for a developer and recommends a developer based on the result.

상기와 같은 목적을 달성하기 위하여, 본 발명은 클라우드(cloud) 기반의 개발환경에서 여러 개발자들이 업로드 한 소스코드를 컴파일하고 빌드하는 과정의 전 또는 후 단계에서 개발자들이 표준 개발 가이드라인에 맞게 소스를 작성했는지 분석하는 정적분석(static analysis)을 수행하고, 소스코드의 특정 모듈이 의도된 대로 작동하는지 검증하는 단위테스트(unit test)를 수행하며, 빌드한 코드들을 통합하고 배포하는 개발통합서버; 상기 개발통합서버로부터 정적분석 결과를 받아서 소스 코드를 업로드한 개발자 정보, 업로드 일시, 해당 프로젝트의 이름 및 분석 결과에 해당하는 각 구문상 에러(syntax error)의 종류와 개수를 추출 후 코드에러검사부에 전달하고, 상기 개발통합서버로부터 단위테스트에 관련된 데이터를 받아서 테스트함수를 작성한 개발자 정보, 해당 프로젝트의 이름 및 테스트함수의 개수를 추출 후 테스트함수검사부에 전달하는 분석데이터추출부; 상기 개발통합서버로부터 정적분석 결과를 가져와서 각 결과 항목별 위험 수준에 따라 가중치를 차등 적용하여 에러 포인트(error point)를 계산하고, 에러 포인트를 해당 개발자가 지금까지 작성하여 업로드 한 총 코드수로 나눈 값에 해당하는 에러율(error rate)을 산출하는 코드에러검사부; 상기 개발통합서버로부터 단위테스트에 관련된 데이터를 가져와서 단위테스트를 수행하기 위해 개발자가 검증용으로 작성한 테스트함수의 개수를 소스코드의 총 실행함수의 개수로 나눈 값에 해당하는 테스트율(test rate)을 산출하는 테스트함수검사부; 및 상기 코드에러검사부가 산출한 에러율과 상기 테스트함수검사부가 산출한 테스트율을 종합하여 고객이 의뢰한 개발환경과 고객이 원하는 수준에 해당하는 개발자를 개발자DB에서 검색하여 추천하는 개발자추천부를 포함한다.In order to accomplish the above object, the present invention provides a method and system for managing a source code in a cloud-based development environment, A development integration server that performs a static analysis to analyze whether a specific module of the source code is executed, a unit test that verifies whether a specific module of the source code operates as intended, and integrates and distributes the built codes; Extracts the type and number of each syntax error corresponding to the developer information, the upload date and time, the name of the project, and the analysis result obtained by receiving the static analysis result from the development integration server and uploads the source code, An analysis data extracting unit for extracting the developer information which has received the data related to the unit test from the development integration server and created the test function, the name of the project and the number of the test functions, A static analysis result is obtained from the development integration server, an error point is calculated by applying a weight differently according to the risk level for each result item, and an error point is calculated as a total code number A code error checker for calculating an error rate corresponding to the divided value; A test rate corresponding to a value obtained by dividing the number of test functions created by the developer for verification into the number of total execution functions of the source code in order to fetch data related to unit tests from the development integration server and perform a unit test, A test function check unit for calculating a test function; And a developer recommendation unit for searching a developer DB for a developer corresponding to a level requested by the customer and a development environment commissioned by the customer in combination with the error rate calculated by the code error checker and the test rate calculated by the test function checker, .

상기 코드에러검사부는 상기 분석데이터추출부에서 전달받은 개발자의 프로젝트 마다 각 구문상 에러(syntax error)의 종류별 개수에 종류별 위험수준에 따른 가중치를 곱한 값들을 모두 더하여 에러 포인트를 계산하고, 에러 포인트를 해당 개발자가 지금까지 작성하여 업로드 한 총 코드수로 나눈 값에 해당하는 에러율(error rate)을 산출하고, 상기 테스트함수검사부는 상기 분석데이터추출부에서 전달받은 개발자의 프로젝트 마다 개발자가 검증용으로 작성한 테스트함수의 개수를 소스코드의 총 실행함수의 개수로 나눈 값에 해당하는 테스트율을 산출하는 것을 특징으로 한다.The code error checking unit may calculate error points by adding all the values obtained by multiplying the number of each type of syntax error by the weight according to the type of risk for each developer received from the analysis data extracting unit, The error rate corresponding to a value obtained by dividing the total code number uploaded and uploaded so far by the developer, and the test function checking unit determines whether or not the developer A test rate corresponding to a value obtained by dividing the number of test functions by the total number of execution functions of the source code is calculated.

상기 코드에러검사부는 개발자가 소스 코드를 업로드 할 때마다 사용된 프로그래밍 언어와 개발형태를 포함하는 개발환경 별로 에러율을 산출하고, 상기 코드에러검사부가 산출한 시간의 경과에 따른 에러율의 변화 정도를 이용하여 에러율에 대한 기울기를 산출하고 그래프를 이용하여 에러율에 대한 기울기를 시각화하는 기울기산출부를 더 포함하는 것을 특징으로 한다.Wherein the code error checking unit calculates an error rate for each development environment including a programming language and a development type used each time the developer uploads the source code and uses the degree of change of the error rate with the passage of time calculated by the code error checking unit And a slope calculating unit for calculating a slope with respect to an error rate and visualizing a slope with respect to an error rate using a graph.

상기 코드에러검사부가 산출한 개발환경 별 개발자들의 에러율과 상기 기울기산출부가 산출한 에러율에 대한 기울기 정보를 개발자평가DB에 저장하고, 개발자평가DB에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값을 비교하여 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이상으로 큰 경우는 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트하고, 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이하로 작은 경우는 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트하는 에러상대수준평가부를 더 포함하는 것을 특징으로 한다.The error rate of the developers of the development environment calculated by the code error checker and the slope information of the error rate calculated by the slope calculating unit are stored in the developer evaluation DB and the slope values of the error rates of the developers by the development environment stored in the developer evaluation DB are compared If the slope value of a specific developer is larger than the average slope value by a predetermined ratio or more, it is evaluated that the capability is relatively insufficient in the development environment and reported. When the slope value of a specific developer is smaller than a predetermined ratio And an error relative level evaluation unit for evaluating and reporting the capability as relatively superior in the corresponding development environment.

상기 에러상대수준평가부가 개발자평가DB에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값을 비교하여 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트 하거나, 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트 하거나, 능력이 부족과 우수 사이에 해당하는 것으로 평가하는 모든 경우 개발자평가DB에 각각 부족, 우수, 보통을 나타내는 등급으로 표시하여 평가 일시와 함께 기록하고, 개발자들의 개발환경 별 현재 시점부터 과거 일정 시간 동안의 부족, 우수, 보통의 변화 정도를 분석하여 개발자 자신의 절대적인 향상 정도를 리포트하는 에러절대수준평가부를 더 포함하는 것을 특징으로 한다.The error relative level evaluating unit compares the slope value with respect to the error rate of the developer of each development environment stored in the developer evaluation DB to evaluate or report the capability as relatively inadequate in the corresponding development environment, , Or if the evaluation shows that the ability is between the shortage and excellent, the developer evaluation DB records the shortage, excellent, and normal grades in the developer evaluation DB together with the evaluation date and time, And an absolute error level evaluation unit for analyzing the degree of shortage, excellentness, and normal change over a predetermined period of time and reporting the degree of absolute improvement of the developer himself / herself.

상기 테스트함수검사부는 개발자가 소스 코드를 업로드 할 때마다 사용된 프로그래밍 언어와 개발형태를 포함하는 개발환경 별로 테스트율을 산출하고, 상기 기울기산출부는 상기 테스트함수검사부가 산출한 시간의 경과에 따른 테스트율의 변화 정도를 이용하여 테스트율에 대한 기울기를 산출하고 그래프를 이용하여 테스트율에 대한 기울기를 시각화하는 것을 특징으로 한다.Wherein the test function checking unit calculates a test rate for each development environment including a programming language and a development mode used each time the developer uploads the source code, and the slope calculating unit calculates a test rate according to a time- The slope of the test rate is calculated using the degree of change of the rate, and the slope of the test rate is visualized by using the graph.

상기 테스트함수검사부가 산출한 개발환경 별 개발자들의 테스트율과 상기 기울기산출부가 산출한 테스트율에 대한 기울기 정보를 개발자평가DB에 저장하고, 개발자평가DB에 저장된 개발환경 별 개발자들의 테스트율에 대한 기울기 값을 비교하여 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이상으로 큰 경우는 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트하고, 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이하로 작은 경우는 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트하는 테스트상대수준평가부를 더 포함하는 것을 특징으로 한다.The slope information on the test rate calculated by the test function checker and the test rate calculated by the slope calculating unit is stored in the developer evaluation DB, and the slope of the test rate of the developers according to the development environment stored in the developer evaluation DB If the slope value of a specific developer is larger than the average slope value by more than a predetermined ratio, the performance is evaluated as being relatively superior in the development environment, and the slope value of the specific developer is compared with the average slope value at a predetermined ratio And a test relative level evaluating unit for evaluating and reporting that the capability is relatively insufficient in the development environment when the test result is small.

상기 코드에러검사부가 산출한 개발환경 별 개발자들의 에러율과 상기 기울기산출부가 산출한 에러율에 대한 기울기 정보를 개발자평가DB에 저장하고, 상기 테스트함수검사부가 산출한 개발환경 별 개발자들의 테스트율과 상기 기울기산출부가 산출한 테스트율에 대한 기울기 정보를 개발자평가DB에 저장하고, 상기 개발자추천부는 개발자평가DB에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값과 테스트율에 대한 기울기 값을 소정의 기준에 따라 종합하여 개발자의 개발환경 별로 등급을 산정하여 개발자DB에 저장하고, 고객이 의뢰한 개발환경과 고객이 원하는 등급 수준에 해당하는 개발자를 개발자DB에서 검색하여 추천하는 것을 특징으로 한다.Wherein the error rate of the developers of the development environment calculated by the code error checker and the slope information of the error rate calculated by the slope calculating unit are stored in the developer evaluation DB and the test rate of the developers of each development environment, Wherein the slope information for the test rate calculated by the calculating unit is stored in the developer evaluation DB, and the developer recommendation unit stores the slope value for the error rate and the slope value for the test rate, A developer for each developer's development environment is stored in the developer DB, and a developer corresponding to the development environment requested by the customer and the customer's desired grade level is searched and recommended in the developer DB.

상기와 같은 구성의 본 발명에 따르면, 다음과 같은 효과를 도모할 수 있다.According to the present invention having the above-described configuration, the following effects can be achieved.

우선, 클라우드 기반의 개발통합서버로부터 개발자들이 업로드 한 소스코드에 대한 정적분석 결과를 가져와서 항목별 위험 수준에 따라 가중치를 적용하여 에러율을 산출함으로써 표준 개발 가이드라인에 맞게 소스를 작성했는지 평가할 수가 있다. 이를 통해서 개발자가 해당 개발환경에서 얼마나 깔끔하게 코딩을 했는지를 평가할 수가 있다.First, static analysis results of source code uploaded by developers from cloud-based development integration server can be obtained, and we can calculate the error rate by applying weights according to the item-specific risk level to evaluate whether the source is written according to the standard development guidelines . This allows developers to evaluate how cleanly they code in their development environment.

또한, 클라우드 기반의 개발통합서버로부터 개발자들이 업로드 한 소스코드에 대한 단위테스트 데이터를 가져와서 개발자가 검증용으로 작성한 테스트함수의 개수를 이용하여 코드 테스트율을 산출함으로써 개발자가 검증용 단위테스트 코드를 얼마나 만들었는지를 평가할 수가 있다. 이를 통해서 개발자 스스로가 소스코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증을 하였는지를 평가할 수가 있다.Also, by taking the unit test data of the source code uploaded by the developers from the cloud-based development integration server, the developer calculates the code test rate by using the number of test functions created by the developer for verification, You can evaluate how much you have made. This allows developers to assess whether a particular module in the source code has verified that it works exactly as intended.

결국, 정적분석 결과를 이용하여 산출한 에러율과 개발자 스스로가 작성한 단위테스트 코드에 대한 테스트율을 종합하여 고객이 원하는 개발환경과 고객이 원하는 수준에 해당하는 개발자를 DB에서 검색하여 추천함으로써, 고객의 조건에 맞는 개발자를 비교적 정확하게 맞춤형으로 추천할 수가 있다.As a result, by combining the error rate calculated using the static analysis result and the test rate for the unit test code written by the developer himself / herself, You can recommend customized developers with relatively precise criteria.

본 발명에 의하면 개발자의 실력을 객관적으로 평가하여 고객이 원하는 수준의 개발자를 추천할 수가 있어 고객의 만족도를 높일 수가 있다.According to the present invention, the developer's ability can be objectively evaluated, and the customer can recommend the developer of a desired level, thereby increasing the satisfaction of the customer.

도 1은 본 발명에 따른 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템의 구성도
도 2는 본 발명에 따른 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템을 구성하는 개발자 분석 및 추천 시스템의 구체적인 기능 블록도
도 3은 본 발명에 따른 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템을 실행하여 에러율(error rate)의 기울기와 테스트율(test rate)의 기울기를 나타낸 그래프
1 is a block diagram of a developer recommended outsourcing system that automatically analyzes a developer's ability using a developer's code output according to the present invention and recommends a developer based on the analysis result
FIG. 2 is a detailed functional block diagram of a developer analysis and recommendation system constituting a developer recommendation outsourcing system that automatically analyzes a developer's ability using a developer's code output according to the present invention and recommends a developer based on the analysis result
FIG. 3 is a flow chart illustrating a method of automatically analyzing a developer's ability using a developer's code output according to an embodiment of the present invention and executing a developer recommended outsourcing system that recommends a developer based on the analyzed result, thereby calculating a slope of an error rate and a test rate Graph showing the slope of

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시 예를 참조하면 명확해질 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and how to accomplish them, will become apparent by reference to the embodiments described in detail below with reference to the accompanying drawings.

그러나, 본 발명은 이하에서 개시되는 실시 예로 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.However, the present invention is not limited to the embodiments disclosed below, but may be embodied in various forms.

본 명세서에서 본 실시 예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.The present embodiments are provided so that the disclosure of the present invention is thoroughly disclosed and that those skilled in the art will fully understand the scope of the present invention.

그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다.And the present invention is only defined by the scope of the claims.

따라서, 몇몇 실시 예에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.Thus, in some embodiments, well known components, well known operations, and well-known techniques are not specifically described to avoid an undesirable interpretation of the present invention.

또한, 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하고, 본 명세서에서 사용된(언급된) 용어들은 실시 예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다.In addition, throughout the specification, like reference numerals refer to like elements, and the terms (mentioned) used herein are intended to illustrate the embodiments and not to limit the invention.

본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함하며, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다.In this specification, the singular forms include plural forms unless the context clearly dictates otherwise, and the constituents and acts referred to as " comprising (or having) " do not exclude the presence or addition of one or more other constituents and actions .

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs.

또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다.Also, commonly used predefined terms are not ideally or excessively interpreted unless they are defined.

이하, 첨부된 도면을 참고로 본 발명의 바람직한 실시 예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

도 1 내지 도 3을 참고하면, 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템은 개발통합서버(100)와 개발자 분석 및 추천 시스템(200)을 포함한다. 개발통합서버(100)는 각 개발자가 컴퓨터(300)에서 개발한 소스코드를 업로드 하면 CI(지속적인 통합, Continuous Integration)과 CD(지속적인 배포, Continuous Delivery) 및 정적 분석(Static Analysis)을 수행한다. 예를 들어, 개발자가 소스 코드를 깃허브(Github)에 푸쉬하면 깃허브는 이를 개발통합서버(100)에 알려주며 개발통합서버(100)가 깃허브에서 해당 개발자의 소스 코드를 가져가서 분석을 수행하게 된다. 도 1에서는 깃허브를 도시하지 않았으나, 개발통합서버(100)는 개발자 컴퓨터(300)로부터 직접 소스코드를 업로드 받을 수도 있고, 깃허브를 통해서 받을 수도 있다.1 to 3, a developer recommendation outsourcing system that automatically analyzes a developer's ability using a developer's code output and recommends a developer based on the result is a development integration server 100, a developer analysis and recommendation system 200 ). The development integration server 100 performs CI (Continuous Integration), CD (Continuous Distribution), and static analysis (Static Analysis) when each developer uploads the source code developed by the computer 300. For example, when the developer pushes the source code to the Github, the target hub notifies the development integration server 100 that the development integration server 100 takes the developer's source code from the target hub and performs analysis . Although the feather hub is not shown in FIG. 1, the development integration server 100 can directly receive the source code from the developer computer 300 or through the feather hub.

SW 공학에 있어 지속적인 통합(Continuous Integration)은 개발팀의 각 멤버에게 수정된 코드가 통합, 빌드(Build), 테스트가 제대로 되었는지 확인시켜주는 기술이다.Continuous integration in SW engineering is a technique that ensures that the modified code is integrated, built and tested by each member of the development team.

지속적인 배포(Continuous Delivery)는 코드가 모든 테스트를 통과하여 배포 가능한 품질을 갖도록 하는 것을 목표로 한다.Continuous Delivery aims to ensure that code passes all tests and has a distributable quality.

정적 분석(Static Analysis)은 코딩 규칙에 입각하며 버그를 줄여 코드의 품질을 향상시킬 수 있는 자동화된 분석이다. 개발통합서버(100)는 이 세가지 기술(CI, CD, 정적 분석)을 함께 적용함으로써 코드 품질을 향상시키고 개발 비용을 절감할 수 있으며 프로젝트 예측을 용이하게 할 수 있다.Static analysis is an automated analysis that can be based on coding rules and improve the quality of the code by reducing bugs. The development integration server 100 can improve the code quality, reduce the development cost, and facilitate project prediction by applying the three technologies (CI, CD, static analysis) together.

개발자 분석 및 추천 시스템(200)은 코드에러검사부(210), 테스트함수검사부(220), 분석데이터추출부(230) 및 개발자추천부(290)를 포함하고, 기울기산출부(240), 에러상대수준평가부(250), 에러절대수준평가부(260), 테스트상대수준평가부(270), 테스트절대수준평가부(280), 개발자DB(293) 및 개발자평가DB(295)를 더 포함할 수 있다.The developer analysis and recommendation system 200 includes a code error checking unit 210, a test function checking unit 220, an analysis data extracting unit 230 and a developer recommending unit 290. The developer analyzing and recommending system 200 includes a slope calculating unit 240, And a developer evaluation DB 295. The evaluation unit 250 further includes an error absolute level evaluation unit 260, a test relative level evaluation unit 270, a test absolute level evaluation unit 280, a developer DB 293, .

개발통합서버(100)와 개발자 분석 및 추천 시스템(200)의 기능을 구체적으로 살펴보면 다음과 같다.The functions of the development integration server 100 and the developer analysis and recommendation system 200 will be described in detail as follows.

개발통합서버(100)는 클라우드(cloud) 기반의 개발환경에서 여러 개발자들이 컴퓨터(300) 또는 기타 단말을 통해 업로드 한 소스코드를 컴파일하고 빌드하는 과정의 전 또는 후 단계에서 개발자들이 표준 개발 가이드라인에 맞게 소스를 작성했는지 분석하는 정적분석(static analysis)을 수행하고, 소스코드의 특정 모듈이 의도된 대로 작동하는지 검증하는 단위테스트(unit test)를 수행하며, 빌드한 코드들을 통합하고 배포한다.The development integration server 100 may allow developers to use the standard development guidelines or the standard development guidelines before or after the process of compiling and building source code that is uploaded by a plurality of developers through the computer 300 or other terminals in a cloud- Perform a static analysis to analyze whether the source is written according to the source code, perform a unit test to verify that the specific module of the source code works as intended, and integrate and distribute the built code.

정적분석을 통해 개발자가 해당 개발환경에서 얼마나 깔끔하게 코딩을 했는지를 평가할 수가 있다. 즉, 개발통합서버(100)는 각 개발환경 및 개발언어에 맞는 체크 함수를 가지고 개발자의 소스 코드에 대해 구문에러(syntax error)를 체크하여 치명적인 수정사항(Critical)이 얼마나 있는지, 경고(Warning)는 얼마나 있는지, 참조(Reference)는 얼마나 있는지 체크한다.Static analysis can be used to assess how cleanly the developer has coded in the development environment. That is, the development integration server 100 checks the syntax error of the developer's source code with a check function suitable for each development environment and development language to determine how many critical fixes (Critical) And how many references are there.

치명적인 수정사항(Critical)은 문제가 생길 여지가 많은 코드를 말하며, 경고(Warning)는 문제는 없지만 수정하면 좋은 코드를 말하고, 참조(Reference)는 문제가 없고 수정하지 않아도 되지만, 일반적인 규칙에 어긋나는 코드를 말한다.Critical refers to a lot of code that has a lot of problems, Warning has no problem but it tells you good code to fix, and Reference is no problem and you do not have to fix it. .

단위테스트(unit test)는 개발자가 코드를 검증하기 위하여 스스로 테스트하는 메소드 단위의 테스트를 말한다. 예를 들어, 자바에서 단위테스트는 Junit을 사용해서 수행할 수 있다. 다시 말해서, 소스코드의 특정 모듈이 의도된 대로 정확하게 동작하는지 개발자가 스스로 검증하는 절차를 단위테스트라고 한다.A unit test is a method-by-method test that developers themselves test to verify code. For example, unit tests in Java can be done using Junit. In other words, the process by which the developer self-tests whether a particular module in the source code works as intended is called a unit test.

결국, 정적분석을 통해 구문에러(syntax error)는 적게 나올수록 좋으며, 단위테스트는 많을수록 좋을 것이다.In the end, the less static the syntax error is, the better the better. The more unit tests, the better.

코드에러검사부(210)는 개발통합서버(100)로부터 정적분석 결과를 가져와서 각 결과 항목별 위험 수준에 따라 가중치를 차등 적용하여 에러 포인트(error point)를 계산하고, 에러 포인트를 해당 개발자가 지금까지 작성하여 업로드 한 총 코드수로 나눈 값에 해당하는 에러율(error rate)을 산출한다.The code error checking unit 210 obtains a static analysis result from the development integration server 100, calculates an error point by applying a weight differently according to the risk level for each result item, And an error rate corresponding to a value obtained by dividing by the total number of codes uploaded and uploaded.

예를 들면, 가중치는 다음과 같이 정의할 수 있다.For example, weights can be defined as follows.

치명적인 수정사항(Critical): 3 point - 문제가 생길 여지가 많은 코드Critical: 3 point - a lot of code that can cause problems

경고(Warning): 2 point - 문제는 없지만 수정하면 좋을 만한 코드Warning: 2 point - Code that does not have a problem but should be corrected

참조(Reference): 1 point - 문제가 없고, 수정하지 않아도 되지만, 일반적인 규칙에는 어긋나는 코드Reference: 1 point - no problem, no need to fix,

코드분석에 따라 나온 모든 결과물에 가중치를 곱한 총합을 에러포인트(error point)라고 하자.Let's say that the sum of all the output from the code analysis multiplied by the weight is the error point.

Figure 112019006802819-pat00001
Figure 112019006802819-pat00001

코드라인의 양이 많을수록 에러포인트가 많이 발생할 수 있다. 에러포인트를 전체 코드라인양(total code lines)에 따른 빈도수로 환산하면 작업양을 고려할 수 있어 좀더 객관화할 수 있다. 이것을 에러율(error rate)이라고 정의한다.The more code lines, the more error points can occur. Converting the error point to the frequency according to the total code lines allows the amount of work to be taken into account, making it more objective. This is defined as the error rate.

Figure 112019006802819-pat00002
Figure 112019006802819-pat00002

개발자에 대한 비교는 언어, 개발환경에 따라 error rate가 달리 나오게 된다. 각 언어의 특징상, 프레임워크의 특징상 error point가 적어질 수 있고, total code lines 수가 늘어나게 된다.Compared to the developer, the error rate varies depending on the language and the development environment. Due to the characteristics of each language, the error point can be reduced due to the characteristics of the framework, and the total number of code lines is increased.

이러한 특징을 고려해서 언어별, 사용 프레임워크별로 상대적인 평가를 하게 되면 객관적인 평가를 할 수 있게 된다. error rate는 모든 언어와 사용프레임워크를 동시에 놓고 단편적으로 비교할 수는 없지만, 직관적인 점수로서도 사용이 가능하다.Taking these characteristics into consideration, it is possible to perform an objective evaluation by making a relative evaluation by language and using framework. The error rate can be used as an intuitive score, although not all languages and usage frameworks can be compared at the same time.

테스트함수검사부(220)는 개발통합서버(100)로부터 단위테스트(unit test)에 관련된 데이터를 가져와서 단위테스트를 수행하기 위해 개발자가 검증용으로 작성한 테스트함수의 개수를 소스코드의 총 실행함수의 개수로 나눈 값에 해당하는 테스트율(test rate)을 산출한다.The test function checking unit 220 fetches the data related to the unit test from the development integration server 100 and outputs the number of test functions created by the developer for verification to the unit of the total execution function of the source code The test rate corresponding to the value divided by the number is calculated.

xUnit으로 통칭되는 테스트 프레임워크을 이용해서 개발자 스스로 코드에 대한 검증을 하도록 하고, 이에 대한 자동화 툴을 통해서 점수화 한다. 예를 들어, 자바에서는 Junit을 이용하여 개발자 스스로 코드에 대한 검증을 하도록 한다.Using the test framework, which is commonly referred to as xUnit, the developer himself / herself can verify the code and scoring it through an automated tool. For example, in Java, we use Junit to do our own verification of the code.

개발자가 테스트를 위해 만들어 놓은 xUnit 기반의 함수들에 대한 개수의 총합을 전체 함수의 총합으로 나눈 수치를 테스트율(Test Rate)이라고 한다.The test rate is the number of xUnit-based functions created by the developer for testing, divided by the sum of the total functions.

Figure 112019006802819-pat00003
Figure 112019006802819-pat00003

테스트율은 언어, 프레임워크의 영향을 받지 않고, 순수하게 개발자의 자동화된 테스트환경 구축의 노력만으로 만들어지는 수치이다.The test rate is not affected by the language and framework, but only by the efforts of the developer to build an automated test environment.

상기에서 살펴본 두 가지 지표는 개발자가 소스코드를 커밋(본 발명에서는 커밋을 업로드로 사용하였다)할 때 마다 생성이 된다. Error Rate는 개발이 진행될수록 낮은 점수를 지향해 나가야 하고, Test Rate는 높은 점수를 지향해 나가는 것이 전체 개발결과물에 좋은 결과를 줄 수 있다. The above two indicators are generated whenever the developer commits the source code (in the present invention, the commit is uploaded). As the development progresses, the Error Rate should be aimed at a low score, and the Test Rate toward high score can give good results to the whole development result.

개발자추천부(290)는 코드에러검사부(210)가 산출한 에러율과 테스트함수검사부(220)가 산출한 테스트율을 종합하여 고객이 의뢰한 개발환경과 고객이 원하는 수준에 해당하는 개발자를 개발자DB(293)에서 검색하여 추천한다.The developer recommendation unit 290 compiles the error rate calculated by the code error checking unit 210 and the test rate calculated by the test function checking unit 220 to collect the developer corresponding to the level requested by the customer and the development environment requested by the customer as a developer DB (293).

예를 들어, 고객은 고급개발자는 비용이 너무 비쌀 것 같고 중급 수준의 개발자로도 충분히 개발이 가능하다고 판단되는 경우 Java를 이용한 모바일 어플리케이션을 제작 의뢰하면서 중급 수준의 개발자를 요구할 수가 있다. 개발자추천부(290)는 코드에러검사부(210)가 산출한 에러율과 테스트함수검사부(220)가 산출한 테스트율을 종합하여 고객이 의뢰한 모바일 어플리케이션 환경에서 중급 수준에 해당하는 Java 프로그래머를 검색하여 추천할 수가 있다.For example, customers can demand mid-level developers by asking them to make mobile applications using Java if they think that the higher-level developers are too expensive and the mid-level developers can develop enough. The developer recommendation unit 290 searches the Java programmer corresponding to the intermediate level in the mobile application environment requested by the customer by combining the error rate calculated by the code error checking unit 210 and the test rate calculated by the test function checking unit 220 Can be recommended.

분석데이터추출부(230)는 개발통합서버(100)로부터 정적분석 결과를 받아서 소스 코드를 업로드한 개발자 정보, 업로드 일시, 해당 프로젝트의 이름 및 분석 결과에 해당하는 각 구문상 에러(syntax error)의 종류와 개수를 추출 후 코드에러검사부(210)에 전달하고, 개발통합서버(100)로부터 단위테스트(unit test)에 관련된 데이터를 받아서 테스트함수를 작성한 개발자 정보, 해당 프로젝트의 이름 및 테스트함수의 개수를 추출 후 테스트함수검사부(220)에 전달한다.The analysis data extracting unit 230 receives the static analysis result from the development integration server 100 and extracts the developer information that uploaded the source code, the upload date and time, the name of the project, and the syntax error The type and the number of the test results are extracted and then transmitted to the code error checking unit 210 and the data related to the unit test is received from the development integration server 100 to obtain the developer information, And transmits the extracted data to the test function checking unit 220.

코드에러검사부(210)는 분석데이터추출부(230)에서 전달받은 개발자의 프로젝트 마다 각 구문상 에러(syntax error)의 종류별 개수에 종류별 위험수준에 따른 가중치를 곱한 값들을 모두 더하여 에러 포인트를 계산하고, 에러 포인트를 해당 개발자가 지금까지 작성하여 업로드 한 총 코드수로 나눈 값에 해당하는 에러율(error rate)을 산출한다.The code error checking unit 210 calculates the error point by adding all values obtained by multiplying the number of each type of syntax error for each developer project received by the analysis data extracting unit 230 by the weight according to the risk level for each type , And calculates an error rate corresponding to a value obtained by dividing the error point by the total number of codes that the developer has so far created and uploaded.

테스트함수검사부(220)는 분석데이터추출부(230)에서 전달받은 개발자의 프로젝트 마다 개발자가 검증용으로 작성한 테스트함수의 개수를 소스코드의 총 실행함수의 개수로 나눈 값에 해당하는 테스트율을 산출한다.The test function checking unit 220 calculates a test rate corresponding to a value obtained by dividing the number of test functions created by the developer for verification by the number of total execution functions of the source code for each developer project transmitted from the analysis data extracting unit 230 do.

에러율(error rate)과 테스트율(test rate)을 산출하는 식은 상기에서 자세하게 살펴봤으므로 자세한 설명을 생략한다.Since the formula for calculating the error rate and the test rate has been described in detail above, a detailed description thereof will be omitted.

코드에러검사부(210)는 개발자가 소스 코드를 업로드 할 때마다 사용된 프로그래밍 언어와 개발형태를 포함하는 개발환경 별로 에러율을 산출한다.Each time the developer uploads the source code, the code error checking unit 210 calculates the error rate for each development environment including the programming language and the development type used.

개발환경은 개발형태, 언어, 서비스 프레임워크 등을 포함한다. 개발형태는 웹 어플리케이션, 게임 어플리케이션, 모바일 어플리케이션, 동영상 기반 서비스, 윈도우 어플리케이션, 리눅스 어플리케이션 등 다양한 것이 포함될 수 있으며, 언어는 Java, Java script, PHP, python, C# 등 다양한 것이 포함될 수 있다. 그리고 서비스 프레임워크는 스프링 프레임워크, Node.js 등이 포함될 수 있다.The development environment includes development type, language, and service framework. The development type can include various applications such as web application, game application, mobile application, video based service, window application, Linux application, and the language can include Java, Java script, PHP, python, C # and the like. The service framework may include a Spring framework, Node.js, and so on.

코드에러검사부(210)는 개발자가 소스 코드를 업로드 할 때 사용된 개발형태, 언어, 서비스 프레임워크 별로 에러율을 산출하기 때문에 각 개발자가 어떤 개발형태, 언어, 서비스 프레임워크에서 에러율이 높고 낮은지를 산출하여 기록할 수 있다.Since the code error checking unit 210 calculates the error rate for each type of development, language, and service framework used when the developer uploads the source code, each developer calculates which type of development, language, and service framework have high and low error rates Can be recorded.

기울기산출부(240)는 코드에러검사부(210)가 산출한 시간의 경과에 따른 에러율의 변화 정도를 이용하여 에러율에 대한 기울기를 산출하고 그래프를 이용하여 에러율에 대한 기울기를 시각화한다.The slope calculating unit 240 calculates the slope of the error rate using the degree of change of the error rate with the passage of time calculated by the code error checking unit 210 and visualizes the slope with respect to the error rate using the graph.

도 3(a)를 참고하면, 개발자가 소스 코드를 업로드 할 때마다 산출한 에러율의 변화 정도를 이용하여 에러율에 대한 기울기를 그래프로 나타낸 것을 볼 수가 있다. 기울기도 위에서 살펴본 에러율과 마찬가지로 개발자의 개발형태, 언어, 서비스 프레임워크 별로 산출한다.Referring to FIG. 3 (a), it can be seen that the slope of the error rate is graphically displayed by using the degree of change of the error rate calculated each time the developer uploads the source code. The slope is calculated by the developer's development type, language, and service framework as well as the error rate.

에러상대수준평가부(250)는 코드에러검사부(210)가 산출한 개발환경 별 개발자들의 에러율과 기울기산출부(240)가 산출한 에러율에 대한 기울기 정보를 개발자평가DB(295)에 저장하고, 개발자평가DB(295)에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값을 비교하여 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이상으로 큰 경우는 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트한다.The error relative level evaluating unit 250 stores the error rate of the developers of the development environment calculated by the code error checking unit 210 and the slope information of the error rate calculated by the slope calculating unit 240 in the developer evaluation DB 295, When the slope value of a specific developer is larger than a predetermined slope value by comparing the slope value with respect to the error rate of developers of each development environment stored in the developer evaluation DB 295, it is evaluated that the capability is relatively insufficient in the development environment And report it.

에러율에 대한 기울기 값이 크다는 것은 다른 개발자들과 비교하여 시간의 경과에 따라 에러율이 줄어들지 않고 있다는 의미이다.The large slope for the error rate means that the error rate is not decreasing over time as compared to other developers.

에러상대수준평가부(250)는 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이하로 작은 경우는 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트한다.If the slope value of a specific developer is smaller than the average slope value by a predetermined ratio or less, the error relative level evaluation unit 250 evaluates and reports that the capability is relatively superior in the development environment.

에러율에 대한 기울기 값이 작다는 것은 다른 개발자들과 비교하여 시간의 경과에 따라 에러율이 줄어들고 있다는 의미이다.The small slope of the error rate means that the error rate is decreasing over time as compared to other developers.

에러상대수준평가부(250)를 통해 해당 개발환경에서 다른 개발자들과 비교하여 해당 개발자의 상대적인 수준을 평가할 수 있다.The relative level estimating unit 250 can evaluate the relative level of the developer in comparison with other developers in the corresponding development environment.

에러절대수준평가부(260)는 에러상대수준평가부(250)가 개발자평가DB(295)에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값을 비교하여 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트 하거나, 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트 하거나, 능력이 부족과 우수 사이에 해당하는 것으로 평가하는 모든 경우 개발자평가DB(295)에 각각 부족, 우수, 보통을 나타내는 등급으로 표시하여 평가 일시와 함께 기록한다.The absolute error level evaluation unit 260 compares the slope value of the error rate of the developer of each development environment stored in the developer evaluation DB 295 with the error relative level evaluation unit 250 and evaluates that the capability is relatively insufficient in the corresponding development environment Or reports the evaluation of the ability as relatively superior in the corresponding development environment, or reports that the ability is evaluated as being between the shortage and excellent, the developer evaluation DB (295) And records it together with the evaluation date and time.

에러절대수준평가부(260)는 개발자평가DB(295)에 기록된 개발자들의 개발환경 별 과거 시점부터 현재 일정 시간 동안의 부족, 우수, 보통의 변화 정도를 분석하여 개발자 자신의 절대적인 향상 정도를 리포트한다.The absolute error level evaluation unit 260 analyzes the degree of shortage, excellentness, and normal change for a certain period of time from the past time point of each developer's development environment recorded in the developer evaluation DB 295, do.

예를 들어, 개발자가 특정 개발환경에서 3달전에는 '부족'상태였으나, 2달전 '보통'에서 최근에는 '우수'로 변화한 경우 개발자의 에러율이 절대적으로 향상되었음을 확인할 수가 있다.For example, if a developer was "short" three months ago in a particular development environment, but the developer changed from "normal" to "good" two months ago, you can see that the developer's error rate has improved dramatically.

테스트함수검사부(220)는 개발자가 소스 코드를 업로드 할 때마다 사용된 프로그래밍 언어와 개발형태를 포함하는 개발환경 별로 테스트율을 산출한다.Each time the developer uploads the source code, the test function checking unit 220 calculates the test rate for each development environment including the programming language and development mode used.

테스트함수검사부(220)는 개발자가 소스 코드를 업로드 할 때 사용된 개발형태, 언어, 서비스 프레임워크 별로 테스트율을 산출하기 때문에 각 개발자가 어떤 개발형태, 언어, 서비스 프레임워크에서 테스트율이 높고 낮은지를 산출하여 기록할 수 있다.Since the test function checking unit 220 calculates a test rate for each type of development, language, and service framework used when the developer uploads the source code, each developer has a high test rate and a low test rate Can be calculated and recorded.

기울기산출부(240)는 테스트함수검사부(220)가 산출한 시간의 경과에 따른 테스트율의 변화 정도를 이용하여 테스트율에 대한 기울기를 산출하고 그래프를 이용하여 테스트율에 대한 기울기를 시각화한다.The slope calculating unit 240 calculates the slope with respect to the test rate using the degree of change of the test rate with the passage of time calculated by the test function checking unit 220 and visualizes the slope with respect to the test rate using the graph.

도 3(b)를 참고하면, 개발자가 소스 코드를 업로드 할 때마다 산출한 테스트율의 변화 정도를 이용하여 테스트율에 대한 기울기를 그래프로 나타낸 것을 볼 수가 있다. 기울기도 위에서 살펴본 테스트율과 마찬가지로 개발자의 개발형태, 언어, 서비스 프레임워크 별로 산출한다.Referring to FIG. 3 (b), it can be seen that the slope of the test rate is shown graphically using the degree of change in the test rate calculated each time the developer uploads the source code. The slope is calculated by the developer's development type, language, and service framework as well as the test rate shown above.

테스트상대수준평가부(270)는 테스트함수검사부(220)가 산출한 개발환경 별 개발자들의 테스트율과 기울기산출부(240)가 산출한 테스트율에 대한 기울기 정보를 개발자평가DB(295)에 저장하고, 개발자평가DB(295)에 저장된 개발환경 별 개발자들의 테스트율에 대한 기울기 값을 비교하여 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이상으로 큰 경우는 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트한다.The test-relative-level evaluating unit 270 stores the test rate of the developers of the development environment and the inclination information of the test rate calculated by the inclination calculating unit 240 calculated by the test function checking unit 220 in the developer evaluation DB 295 If the slope value of a specific developer is larger than the average slope value by a predetermined ratio or more by comparing the slope value with respect to the test rate of developers of each development environment stored in the developer evaluation DB 295, Evaluate as excellent and report.

테스트율에 대한 기울기 값이 크다는 것은 다른 개발자들과 비교하여 시간의 경과에 따라 개발자 스스로가 코드에 대한 검증을 더욱 잘 하고 있다는 의미이다.The large slope of the test rate means that the developer is better at validating the code over time as compared to other developers.

테스트상대수준평가부(270)는 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이하로 작은 경우는 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트한다.When the inclination value of a specific developer is smaller than the average inclination value by a predetermined ratio or less, the test relative level evaluating unit 270 reports that the capability is relatively insufficient in the development environment and reports it.

테스트율에 대한 기울기 값이 작다는 것은 다른 개발자들과 비교하여 시간의 경과에 따라 개발자 스스로가 코드에 대한 검증을 게을리하고 있다는 의미이다.The small slope value for the test rate means that the developer himself neglects to verify the code over time as compared to other developers.

테스트상대수준평가부(270)를 통해 해당 개발환경에서 다른 개발자들과 비교하여 해당 개발자의 상대적인 수준을 평가할 수 있다.The relative level of the developer can be evaluated through comparison with the other developers in the corresponding development environment through the test relative level evaluation unit 270. [

테스트절대수준평가부(280)는 테스트상대수준평가부(270)가 개발자평가DB(295)에 저장된 개발환경 별 개발자들의 테스트율에 대한 기울기 값을 비교하여 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트 하거나, 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트 하거나, 능력이 부족과 우수 사이에 해당하는 것으로 평가하는 모든 경우 개발자평가DB(295)에 각각 부족, 우수, 보통을 나타내는 등급으로 표시하여 평가 일시와 함께 기록한다.The test absolute level evaluating unit 280 compares the slope of the test rate with the test rate of each developer of the development environment stored in the developer evaluation DB 295 by the test relative level evaluating unit 270 so that the capability is relatively low in the corresponding development environment Evaluation, and report, or reports that the ability is relatively superior in the development environment, or reports that the ability is evaluated as being between shortage and excellent, the developer evaluation DB 295 indicates the shortage, excellent, And record it together with the evaluation date and time.

테스트절대수준평가부(280)는 개발자평가DB(295)에 기록된 개발자들의 개발환경 별 과거 시점부터 현재 일정 시간 동안의 부족, 우수, 보통의 변화 정도를 분석하여 개발자 자신의 절대적인 향상 정도를 리포트한다.The test absolute level evaluation unit 280 analyzes the degree of shortage, excellentness, and normal change over a certain period of time from the past time of the developers recorded in the developer evaluation DB 295, do.

코드에러검사부(210)가 산출한 개발환경 별 개발자들의 에러율과 기울기산출부(240)가 산출한 에러율에 대한 기울기 정보를 개발자평가DB(295)에 저장한다.And stores the error rate of the developer of each development environment calculated by the code error checking unit 210 and the slope information of the error rate calculated by the slope calculating unit 240 in the developer evaluation DB 295.

테스트함수검사부(220)가 산출한 개발환경 별 개발자들의 테스트율과 기울기산출부(240)가 산출한 테스트율에 대한 기울기 정보를 개발자평가DB(295)에 저장한다.The developer evaluation DB 295 stores the developer's test rate calculated by the test function inspecting unit 220 and the slope information about the test rate calculated by the slope calculating unit 240. [

개발자추천부(290)는 개발자평가DB(295)에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값과 테스트율에 대한 기울기 값을 소정의 기준에 따라 종합하여 개발자의 개발환경 별로 등급을 산정하여 개발자DB(293)에 저장하고, 고객이 의뢰한 개발환경과 고객이 원하는 등급 수준에 해당하는 개발자를 개발자DB(293)에서 검색하여 추천한다.The developer recommendation unit 290 integrates the slope value for the error rate and the slope value with respect to the test rate of the developer for each development environment stored in the developer evaluation DB 295 according to a predetermined criterion, DB 293, and searches the developer DB 293 for a developer corresponding to the development environment requested by the customer and the level desired by the customer, and recommends the developer.

예를 들면, 개발환경 별 개발자들의 에러율에 대한 기울기 값을 10개 등급으로 구분하고, 테스트율에 대한 기울기 값을 10개 등급으로 구분할 수 있다. 개발환경 별로 개발자의 에러율에 대한 기울기 값과 테스트율에 대한 기울기 값을 더하여 평균을 구하고 이를 개발자DB(293)에 개발자의 개발환경 별 등급 값으로 저장한다. 개발자DB(293)에 저장된 등급을 기초로 고객이 원하는 등급 수준에 해당하는 개발자를 검색하여 추천할 수 있다.For example, you can divide the slope value for the error rate of developers by the development environment into 10 levels, and divide the slope value for the test rate into 10 levels. The slope value of the developer's error rate and the slope value of the test rate are added to each developer's development environment to obtain an average and stored in the developer DB 293 as the developer's development environment grade value. The developer corresponding to the grade level desired by the customer can be searched and recommended based on the grade stored in the developer DB 293. [

본 발명은 최종적으로 소스 코드를 업로드 할 때마다 각각의 에러율(error rate), 테스트율(test rate)의 누적분포도의 기울기를 통해서 개발자에 대한 실질적인 평가를 할 수 있다. The present invention can perform a practical evaluation of the developer through the slope of the cumulative distribution of the error rate and the test rate each time the source code is finally uploaded.

각각의 에러율(error rate), 테스트율(test rate)는 업로드가 진행될 때 마다 산출이 될 수 있기 때문에 개발자의 모든 업로드 횟수와 이때마다 얻어지는 에러율, 테스트율의 분포도에 따른 기울기를 구하고, 기울기의 변화방향 벡터를 통해서 개발자의 분야별 능력치를 확정할 수 있다.Since each error rate and test rate can be calculated each time the uploading process is performed, the developer calculates the slope of the upload rate, the error rate obtained at that time, and the distribution of the test rate, The directional vector can be used to determine the developer's field strengths.

도 3을 참고하면, 선형회귀 기법을 통하여 각각의 기울기를 구할 수 있으며, 기울기의 변화되는 방향은 개발자의 성장모델과도 직결될 수 있다. 에러율에 대한 기울기가 지속적으로 낮아지는 경우 개발에 대한 표준준수정도가 높아지고 있다고 판단할 수 있다. 테스트율에 대한 기울기가 지속적으로 높아지는 경우는 개발시에 테스트 코드에 대한 비중이 점차적으로 늘어가고 있다고 판단할 수 있다. 이 2 가지 지표를 통해서 개발자의 능력에 대한 향상 정도를 가늠할 수 있다.Referring to FIG. 3, each slope can be obtained through a linear regression technique, and the direction in which the slope changes can be directly linked to the developer's growth model. If the slope of the error rate is continuously lowered, it can be judged that the degree of adherence to standards for development is increasing. If the slope of the test rate is steadily increasing, the proportion of the test code is gradually increasing at the time of development. These two indicators provide an indication of the degree to which the developer has improved.

그리고, 본 발명의 기본적인 기술적 사상의 범주 내에서 당해 업계 통상의 지식을 가진 자에게 있어서는 다른 많은 변형 및 응용 또한 가능함은 물론이다.It will be apparent to those skilled in the art that many other modifications and applications are possible within the scope of the basic technical idea of the present invention.

100...개발통합서버
200...개발자 분석 및 추천 시스템
210...코드에러검사부
220...테스트함수검사부
230...분석데이터추출부
240...기울기산출부
250...에러상대수준평가부
260...에러절대수준평가부
270...테스트상대수준평가부
280...테스트절대수준평가부
290...개발자추천부
293...개발자DB
295...개발자평가DB
300...개발자 컴퓨터
400...고객 단말기
100 ... Development Integration Server
200 ... Developer Analysis and Recommendation System
210 ... code error check section
220 ... test function checker
230 ... analysis data extracting unit
240 ... slope calculating section
250 ... Error relative level evaluation unit
260 ... error absolute level evaluation unit
270 ... test relative level evaluation unit
280 ... test absolute level evaluation unit
290 ... developer recommendation department
293 ... Developer DB
295 ... developer evaluation DB
300 ... developer computer
400 ... Customer terminal

Claims (8)

클라우드(cloud) 기반의 개발환경에서 여러 개발자들이 업로드 한 소스코드를 컴파일하고 빌드하는 과정의 전 또는 후 단계에서 개발자들이 표준 개발 가이드라인에 맞게 소스를 작성했는지 분석하는 정적분석(static analysis)을 수행하고, 소스코드의 특정 모듈이 의도된 대로 작동하는지 검증하는 단위테스트(unit test)를 수행하며, 빌드한 코드들을 통합하고 배포하는 개발통합서버;
상기 개발통합서버로부터 정적분석 결과를 받아서 소스 코드를 업로드한 개발자 정보, 업로드 일시, 해당 프로젝트의 이름 및 분석 결과에 해당하는 각 구문상 에러(syntax error)의 종류와 개수를 추출 후 코드에러검사부에 전달하고, 상기 개발통합서버로부터 단위테스트에 관련된 데이터를 받아서 테스트함수를 작성한 개발자 정보, 해당 프로젝트의 이름 및 테스트함수의 개수를 추출 후 테스트함수검사부에 전달하는 분석데이터추출부;
상기 개발통합서버로부터 정적분석 결과를 가져와서 각 결과 항목별 위험 수준에 따라 가중치를 차등 적용하여 에러 포인트(error point)를 계산하고, 에러 포인트를 해당 개발자가 지금까지 작성하여 업로드 한 총 코드수로 나눈 값에 해당하는 에러율(error rate)을 산출하는 코드에러검사부;
상기 개발통합서버로부터 단위테스트에 관련된 데이터를 가져와서 단위테스트를 수행하기 위해 개발자가 검증용으로 작성한 테스트함수의 개수를 소스코드의 총 실행함수의 개수로 나눈 값에 해당하는 테스트율(test rate)을 산출하는 테스트함수검사부; 및
상기 코드에러검사부가 산출한 에러율과 상기 테스트함수검사부가 산출한 테스트율을 종합하여 고객이 의뢰한 개발환경과 고객이 원하는 수준에 해당하는 개발자를 개발자DB에서 검색하여 추천하는 개발자추천부를 포함하되,
상기 코드에러검사부는 상기 분석데이터추출부에서 전달받은 개발자의 프로젝트 마다 각 구문상 에러(syntax error)의 종류별 개수에 종류별 위험수준에 따른 가중치를 곱한 값들을 모두 더하여 에러 포인트를 계산하고, 에러 포인트를 해당 개발자가 지금까지 작성하여 업로드 한 총 코드수로 나눈 값에 해당하는 에러율(error rate)을 산출하고,
상기 테스트함수검사부는 상기 분석데이터추출부에서 전달받은 개발자의 프로젝트 마다 개발자가 검증용으로 작성한 테스트함수의 개수를 소스코드의 총 실행함수의 개수로 나눈 값에 해당하는 테스트율을 산출하며,
상기 코드에러검사부는 개발자가 소스 코드를 업로드 할 때 사용된 개발형태, 프로그래밍 언어, 서비스 프레임워크 별로 에러율을 산출하기 때문에 각 개발자가 어떤 개발형태, 언어, 서비스 프레임워크에서 에러율이 높고 낮은지를 산출하여 기록하며,
상기 코드에러검사부가 산출한 시간의 경과에 따른 에러율의 변화 정도를 이용하여 에러율에 대한 기울기를 산출하고 그래프를 이용하여 에러율에 대한 기울기를 시각화하는 기울기산출부를 더 포함하며,
상기 기울기산출부는 개발자의 개발형태, 프로그래밍 언어, 서비스 프레임워크 별로 에러율에 대한 기울기를 산출하고 시각화하며,
상기 코드에러검사부가 산출한 개발환경 별 개발자들의 에러율과 상기 기울기산출부가 산출한 에러율에 대한 기울기 정보를 개발자평가DB에 저장하고, 개발자평가DB에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값을 비교하여 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이상으로 큰 경우는 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트하고, 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이하로 작은 경우는 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트하는 에러상대수준평가부를 더 포함하고,
상기 에러상대수준평가부가 개발자평가DB에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값을 비교하여 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트 하거나, 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트 하거나, 능력이 부족과 우수 사이에 해당하는 것으로 평가하는 모든 경우 개발자평가DB에 각각 부족, 우수, 보통을 나타내는 등급으로 표시하여 평가 일시와 함께 기록하고, 개발자들의 개발환경 별 현재 시점부터 과거 일정 시간 동안의 부족, 우수, 보통의 변화 정도를 분석하여 개발자 자신의 절대적인 향상 정도를 리포트하는 에러절대수준평가부를 더 포함하며,
상기 테스트함수검사부는 개발자가 소스 코드를 업로드 할 때 사용된 개발형태, 프로그래밍 언어, 서비스 프레임워크 별로 테스트율을 산출하기 때문에 각 개발자가 어떤 개발형태, 언어, 서비스 프레임워크에서 테스트율이 높고 낮은지를 산출하여 기록하고,
상기 기울기산출부는 상기 테스트함수검사부가 산출한 시간의 경과에 따른 테스트율의 변화 정도를 이용하여 테스트율에 대한 기울기를 산출하고 그래프를 이용하여 테스트율에 대한 기울기를 시각화하며,
상기 기울기산출부는 개발자의 개발형태, 프로그래밍 언어, 서비스 프레임워크 별로 테스트율에 대한 기울기를 산출하고 시각화하며,
상기 테스트함수검사부가 산출한 개발환경 별 개발자들의 테스트율과 상기 기울기산출부가 산출한 테스트율에 대한 기울기 정보를 개발자평가DB에 저장하고, 개발자평가DB에 저장된 개발환경 별 개발자들의 테스트율에 대한 기울기 값을 비교하여 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이상으로 큰 경우는 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트하고, 특정 개발자의 기울기 값이 평균 기울기 값보다 소정의 비율 이하로 작은 경우는 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트하는 테스트상대수준평가부를 더 포함하고,
상기 테스트상대수준평가부가 개발자평가DB에 저장된 개발환경 별 개발자들의 테스트율에 대한 기울기 값을 비교하여 해당 개발환경에서 능력이 상대적으로 부족한 것으로 평가하여 리포트 하거나, 해당 개발환경에서 능력이 상대적으로 우수한 것으로 평가하여 리포트 하거나, 능력이 부족과 우수 사이에 해당하는 것으로 평가하는 모든 경우 개발자평가DB에 각각 부족, 우수, 보통을 나타내는 등급으로 표시하여 평가 일시와 함께 기록하고, 개발자들의 개발환경 별 과거 시점부터 현재 일정 시간 동안의 부족, 우수, 보통의 변화 정도를 분석하여 개발자 자신의 절대적인 향상 정도를 리포트하는 테스트절대수준평가부를 포함하는 것을 특징으로 하는 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템.
In the cloud-based development environment, perform static analysis to analyze whether the developers have written the source according to the standard development guidelines, either before or after the process of compiling and building the source code uploaded by several developers. A development integration server for performing a unit test for verifying whether a specific module of the source code is operating as intended, and integrating and distributing the built codes;
Extracts the type and number of each syntax error corresponding to the developer information, the upload date and time, the name of the project, and the analysis result obtained by receiving the static analysis result from the development integration server and uploads the source code, An analysis data extracting unit for extracting the developer information which has received the data related to the unit test from the development integration server and created the test function, the name of the project and the number of the test functions,
A static analysis result is obtained from the development integration server, an error point is calculated by applying a weight differently according to the risk level for each result item, and an error point is calculated as a total code number A code error checker for calculating an error rate corresponding to the divided value;
A test rate corresponding to a value obtained by dividing the number of test functions created by the developer for verification into the number of total execution functions of the source code in order to fetch data related to unit tests from the development integration server and perform a unit test, A test function check unit for calculating a test function; And
And a developer recommendation unit for searching a developer DB for a developer corresponding to a level requested by the customer and a development environment commissioned by the customer in combination with the error rate calculated by the code error check unit and the test rate calculated by the test function check unit,
The code error checking unit may calculate error points by adding all the values obtained by multiplying the number of each type of syntax error by the weight according to the type of risk for each developer received from the analysis data extracting unit, An error rate corresponding to a value obtained by dividing the total code number uploaded and uploaded by the developer so far,
The test function checking unit calculates a test rate corresponding to a value obtained by dividing the number of test functions created by the developer for verification by the number of total execution functions of the source code for each developer's project delivered from the analysis data extracting unit,
Since the code error checking unit calculates the error rate for each development type, programming language, and service framework used when the developer uploads the source code, each developer calculates the error rate of the development type, language, and service framework Record,
Further comprising a slope calculating unit for calculating a slope with respect to an error rate by using a degree of change of an error rate with an elapse of time calculated by the code error checking unit and visualizing a slope with respect to an error rate using a graph,
The inclination calculator calculates and visualizes the slope of the error rate for each developer's development type, programming language, and service framework,
The error rate of the developers of the development environment calculated by the code error checker and the slope information of the error rate calculated by the slope calculating unit are stored in the developer evaluation DB and the slope values of the error rates of the developers by the development environment stored in the developer evaluation DB are compared If the slope value of a specific developer is larger than the average slope value by a predetermined ratio or more, it is evaluated that the capability is relatively insufficient in the development environment and reported. When the slope value of a specific developer is smaller than a predetermined ratio And an error relative level evaluation unit for evaluating and reporting the capability as relatively superior in the development environment,
The error relative level evaluating unit compares the slope value with respect to the error rate of the developer of each development environment stored in the developer evaluation DB to evaluate or report the capability as relatively inadequate in the corresponding development environment, , Or if the evaluation shows that the ability is between the shortage and excellent, the developer evaluation DB records the shortage, excellent, and normal grades in the developer evaluation DB together with the evaluation date and time, An absolute error level evaluation unit for analyzing the degree of shortage, excellentness, and normal change over a predetermined period of time and reporting the degree of absolute improvement of the developer himself / herself,
Since the test function checking unit calculates the test rate for each development type, programming language, and service framework used when the developer uploads the source code, the developer can check the development rate, the language, and the service framework And then,
The slope calculating unit may calculate a slope with respect to the test rate using the degree of change of the test rate with the passage of time calculated by the test function check unit, visualize the slope with respect to the test rate using a graph,
The inclination calculator calculates and visualizes a slope of a test rate for each developer type, a programming language, and a service framework,
The slope information on the test rate calculated by the test function checker and the test rate calculated by the slope calculating unit is stored in the developer evaluation DB, and the slope of the test rate of each developer in the developer evaluation DB When the slope value of a specific developer is larger than the average slope value by more than a predetermined ratio, the performance is evaluated as being relatively superior in the development environment, and the slope value of the specific developer is compared with the average slope value at a predetermined ratio And a test relative level evaluating unit for evaluating and reporting that the capability is relatively insufficient in the development environment when it is small,
The test-relative-level evaluating unit compares the slope of the test rate with the test rate of each developer in the development environment stored in the developer evaluation DB to evaluate or report the capability as relatively inadequate in the corresponding development environment, In the case of evaluating and reporting, or evaluating that the ability is equivalent between lack and excellence, it is recorded in the developer evaluation DB as a score indicating lack, excellentness, and normal, and recorded together with the evaluation date and time. And a test absolute level evaluation unit for analyzing the degree of shortage, excellentness, and normal change over a predetermined period of time and reporting the absolute degree of improvement of the developer himself / herself, and automatically analyzing the developer's ability using the developer's code output Add developers based on this Recommend developers outsourcing system.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 청구항 1에 있어서,
상기 코드에러검사부가 산출한 개발환경 별 개발자들의 에러율과 상기 기울기산출부가 산출한 에러율에 대한 기울기 정보를 개발자평가DB에 저장하고,
상기 테스트함수검사부가 산출한 개발환경 별 개발자들의 테스트율과 상기 기울기산출부가 산출한 테스트율에 대한 기울기 정보를 개발자평가DB에 저장하고,
상기 개발자추천부는 개발자평가DB에 저장된 개발환경 별 개발자들의 에러율에 대한 기울기 값과 테스트율에 대한 기울기 값을 소정의 기준에 따라 종합하여 개발자의 개발환경 별로 등급을 산정하여 개발자DB에 저장하고, 고객이 의뢰한 개발환경과 고객이 원하는 등급 수준에 해당하는 개발자를 개발자DB에서 검색하여 추천하는 것을 특징으로 하는 개발자의 코드 결과물을 이용하여 개발자의 능력을 자동으로 분석하고 이를 기반으로 개발자를 추천하는 개발자 추천 아웃소싱 시스템.
The method according to claim 1,
Wherein the error rate of the developer of each development environment calculated by the code error checker and the slope information of the error rate calculated by the slope calculating unit are stored in the developer evaluation DB,
And the slope information about the test rate calculated by the test function testing unit and the test rate calculated by the slope calculating unit is stored in the developer evaluation DB,
The developer recommendation unit sums the slope value of the error rate and the slope value with respect to the test rate of each developer in the developer evaluation DB according to a predetermined criterion to calculate a rating for each developer's development environment and stores the rating in the developer DB, A developer who recommends a developer based on the developer's request based on the developer's ability to automatically analyze the developer's ability using the developer's code output, Recommended outsourcing system.
KR1020190007264A 2019-01-21 2019-01-21 A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it KR102004489B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190007264A KR102004489B1 (en) 2019-01-21 2019-01-21 A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190007264A KR102004489B1 (en) 2019-01-21 2019-01-21 A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it

Publications (1)

Publication Number Publication Date
KR102004489B1 true KR102004489B1 (en) 2019-07-26

Family

ID=67469596

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190007264A KR102004489B1 (en) 2019-01-21 2019-01-21 A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it

Country Status (1)

Country Link
KR (1) KR102004489B1 (en)

Cited By (3)

* 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
CN116957523A (en) * 2023-09-18 2023-10-27 山邮数字科技(山东)有限公司 Enterprise management system and method based on big data analysis
WO2024071455A1 (en) * 2022-09-26 2024-04-04 라쿠텐 심포니 코리아 주식회사 Providing task solution

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110097618A (en) * 2011-01-18 2011-08-31 방인성 Remote application development intermediation system for intermediating program's contract and development using client's virtual development configuration
KR101282024B1 (en) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 Co-working tool automation system
KR20140108474A (en) * 2013-02-28 2014-09-11 (주)트라이캣 Evaluation and recruit service for programmer
KR101764890B1 (en) 2016-01-11 2017-08-04 주식회사 생각공간 Method of providing programmer test service and server performing the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110097618A (en) * 2011-01-18 2011-08-31 방인성 Remote application development intermediation system for intermediating program's contract and development using client's virtual development configuration
KR20140108474A (en) * 2013-02-28 2014-09-11 (주)트라이캣 Evaluation and recruit service for programmer
KR101282024B1 (en) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 Co-working tool automation system
KR101764890B1 (en) 2016-01-11 2017-08-04 주식회사 생각공간 Method of providing programmer test service and server performing the same

Cited By (3)

* 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
WO2024071455A1 (en) * 2022-09-26 2024-04-04 라쿠텐 심포니 코리아 주식회사 Providing task solution
CN116957523A (en) * 2023-09-18 2023-10-27 山邮数字科技(山东)有限公司 Enterprise management system and method based on big data analysis

Similar Documents

Publication Publication Date Title
KR102004489B1 (en) A developer recommended outsourcing system that automatically analyzes the developer's code output and recommends the developer based on it
US20120016701A1 (en) Intelligent timesheet assistance
Felderer et al. Integrating risk-based testing in industrial test processes
Aranha et al. An estimation model for test execution effort
Conwell et al. Capability maturity models support of modeling and simulation verification, validation, and accreditation
US7743369B1 (en) Enhanced function point analysis
US20080071589A1 (en) Evaluating Development of Enterprise Computing System
Felderer et al. A multiple case study on risk-based testing in industry
CN1963852A (en) Method and system empoldered by automatic feedback adjusting information technology system
CN110188036A (en) A kind of method for testing software and device
Khan et al. Measuring cost of quality (CoQ) on SDLC projects is indispensible for effective software quality assurance
Bakota et al. Qualitygate sourceaudit: A tool for assessing the technical quality of software
US20060095312A1 (en) Method, system, and storage medium for using comparisons of empirical system data for testcase and workload profiling
Lamghari et al. A set of indicators for BPM life cycle improvement
Monschein et al. Enabling consistency between software artefacts for software adaption and evolution
US20230086361A1 (en) Automatic performance evaluation in continuous integration and continuous delivery pipeline
KR102004486B1 (en) Automated developer capability analysis system using developer's code output
AKTAŞ et al. An introduction to software testing methodologies
Schmid et al. A structured comparison of the corporate information security maturity level
KR101403685B1 (en) System and method for relating between failed component and performance criteria of manintenance rule by using component database of functional importance determination of nuclear power plant
Staron et al. Using models to develop measurement systems: a method and its industrial use
Olivieri Hardware and software readiness: A systems approach
Rangarajan et al. Product quality framework: a vehicle for focusing on product quality goals
CN110569199B (en) Automatic bill testing method and device
Hampp A cost-benefit model for software quality assurance activities

Legal Events

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