KR102213959B1 - Method for verifying safety source code based on crowdsourcing - Google Patents

Method for verifying safety source code based on crowdsourcing Download PDF

Info

Publication number
KR102213959B1
KR102213959B1 KR1020180169673A KR20180169673A KR102213959B1 KR 102213959 B1 KR102213959 B1 KR 102213959B1 KR 1020180169673 A KR1020180169673 A KR 1020180169673A KR 20180169673 A KR20180169673 A KR 20180169673A KR 102213959 B1 KR102213959 B1 KR 102213959B1
Authority
KR
South Korea
Prior art keywords
source code
pattern
database
source
crowdsourcing
Prior art date
Application number
KR1020180169673A
Other languages
Korean (ko)
Other versions
KR20200079944A (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 KR1020180169673A priority Critical patent/KR102213959B1/en
Publication of KR20200079944A publication Critical patent/KR20200079944A/en
Application granted granted Critical
Publication of KR102213959B1 publication Critical patent/KR102213959B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

본 개시의 일 특징에 의하면, 소스코드 안정성 확보 시스템 상의 컴퓨팅 장치에서 수행되는 크라우드소싱 기반 소스코드 안정성 확보 방법이 제공된다. 본 개시의 방법은 소스코드를 입력 받고, 상기 소스코드에 대한 복수의 리뷰어의 리뷰결과를 기초로 소스코드 패턴 데이터베이스를 구축하는 단계; 및 상기 소스코드 패턴 데이터베이스에 기초하여 분석대상 소스코드에 대해 수정을 제안하는 단계를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 상기 소스코드 패턴 데이터베이스를 구축하는 단계는, 사용자로부터 제1 소스코드를 입력받아 데이터베이스에 저장하는 단계; 상기 제1 소스코드를 복수의 리뷰어에게 공개하고, 상기 복수의 리뷰어 각각으로부터 상기 제1 소스코드를 분석한 결과인 제2 소스코드를 수신하여 상기 데이터베이스에 저장하는 단계; 및 상기 제1 소스코드를 패턴화하고 상기 제2 소스코드를 패턴화하여 서로 연관시켜 상기 데이터베이스에 저장하는 단계를 포함할 수 있다.
According to one feature of the present disclosure, a method for securing source code stability based on crowdsourcing performed in a computing device on a system for securing source code stability is provided. The method of the present disclosure includes the steps of receiving a source code and constructing a source code pattern database based on review results of a plurality of reviewers for the source code; And suggesting a modification of the source code to be analyzed based on the source code pattern database.
According to an embodiment of the present disclosure, the step of constructing the source code pattern database includes: receiving a first source code from a user and storing it in the database; Publishing the first source code to a plurality of reviewers, receiving a second source code, which is a result of analyzing the first source code from each of the plurality of reviewers, and storing it in the database; And patterning the first source code, patterning the second source code, and storing the patterned second source code in the database.

Description

크라우드소싱 기반 소스코드 안정성 확보 방법{METHOD FOR VERIFYING SAFETY SOURCE CODE BASED ON CROWDSOURCING}How to secure source code stability based on crowdsourcing {METHOD FOR VERIFYING SAFETY SOURCE CODE BASED ON CROWDSOURCING}

본 발명은 소프트웨어 안정성 확보 방법에 관한 것으로, 보다 구체적으로는 크라우드소싱 기반의 소스코드 안정성 확보 방법에 관한 것이다.The present invention relates to a method for securing software stability, and more specifically, to a method for securing source code stability based on crowdsourcing.

소프트웨어는 현장 모니터링, 위험 감지 및 분석, 위험 경보 및 전파, 현장 대응, 안전 교육 등에 활용됨으로써 재난을 예방하고, 재난으로 발생한 피해를 최소화하며, 재난으로부터의 신속한 복구를 위해 광범위하게 사용되고 있다. 미국, 유럽, 일본 등 주요 선진국에서는 각 국에 심각한 피해를 주는 재해나 재난사고 예방과 대응을 위한 지능형 재난방재 시스템 개발을 적극적으로 전개하고 있으며, 최근에는 드론과 로봇을 이용하여 재난을 방지하거나 재난 현장에 투입하기 위한 연구개발이 활발하게 이루어 지고 있다.Software is widely used to prevent disasters, minimize damage caused by disasters, and quickly recover from disasters by being used for on-site monitoring, risk detection and analysis, risk warning and propagation, on-site response, and safety training. Major advanced countries such as the United States, Europe, and Japan are actively developing intelligent disaster prevention systems to prevent and respond to disasters or disasters that cause serious damage to each country. Recently, drones and robots are used to prevent or prevent disasters. R&D to be put into the field is being actively conducted.

한편, 소프트웨어 자체가 재난 안전사고의 원인이 될 수도 있다. 에너지 관리시스템의 소프트웨어 오류로 인해 세계 최고 수준의 전력망과 기술을 가진 미국에서 역사상 최대 규모의 정전 사고가 발생한 바 있고, 자동차 전자제어장치(Electronic control unit)에 내장된 소프트웨어 결함에 의해 급발진 사고가 발생한 적도 있다. 이렇듯 자동차, 철도, 항공, 전력, 국방, 의료, 금융, 통신 등의 부분에서 소프트웨어의 의존도가 높아짐에 따라 소프트웨어 오류로 인한 인명, 재난의 피해 범위와 규모가 확대되고 있어, 소프트웨어의 안전(Software safety)을 체계적으로 관리해야 하는 필요성이 대두되고 있다.On the other hand, the software itself may be the cause of a disaster safety accident. The largest power outage accident in history occurred in the United States, which has the world's best power grid and technology due to a software error in the energy management system, and a sudden accident occurred due to a software defect built into the electronic control unit of a vehicle. There are enemies. As the dependence on software increases in automobiles, railroads, aviation, electric power, defense, medical care, finance, and telecommunications, the extent and scale of damage caused by software errors and disasters are expanding. ), the need to manage systematically is emerging.

IoT 및 산업 전반에 소프트웨어가 확산되면서 소프트웨어 결함 및 장애로 인한 인명살상이나 재난 손실의 위험이 증가됨에 따라 소프트웨어 안전진단의 중요성이 날로 부각되고 있으나, 소프트웨어 안전진단은 현재 소수의 도메인 소프트웨어 안전진단 전문가들의 경험을 기반으로 수행되어 있어 소프트웨어 산업 확산 속도에 크게 못미치고 있는 상황이다.With the spread of software across IoT and industries, the importance of software safety diagnosis is increasing day by day as the risk of death or disaster loss due to software defects and failures increases.However, software safety diagnosis is currently conducted by a small number of domain software safety diagnosis experts. As it is performed based on experience, it is far below the speed of spreading the software industry.

소프트웨어의 안전 확보 및 검증 체계는 도메인 전문가의 경험이 중요시 되는 분야로 소프트웨어 산업 확산 속도에 부흥하는 안전공학 전문가 확보가 쉽지 않은 상황이다. 따라서, 안전분석 지식 습득 및 도메인 경험 축적을 위해 적은 훈련 비용으로 소프트웨어 안전 진단을 수행할 수 있는 보조 기술이 필요하다. 더하여, 도메인 전문가들이 소프트웨어 안전 진단을 수행하는 경우 위험분석에서 가장 중요한 위험요소 도출 누락과 같은 휴먼 에러(human error)가 발생할 수 있는 문제점이 존재한다.The safety security and verification system of software is a field in which the experience of domain experts is important, and it is difficult to secure safety engineering experts who are revitalizing the spread of the software industry. Therefore, there is a need for an assistive technology capable of performing software safety diagnosis at a low training cost in order to acquire safety analysis knowledge and accumulate domain experience. In addition, when domain experts perform software safety diagnosis, there is a problem in that human errors such as omission of the most important risk factors in risk analysis may occur.

본 발명의 과제는 소프트웨어 위험성을 확인할 수 있는 효율적인 소프트웨어 안전진단을 제공해주는 소스코드 안정성 확보 방법을 제공하는 것이다.An object of the present invention is to provide a method of securing source code stability that provides efficient software safety diagnosis that can confirm software risk.

본 발명의 다른 과제는 크라우드소싱 기반으로 다수의 사용자가 소프트웨어를 구성하는 위험요소를 분석하여 가장 중요한 위험요소 도출 누락과 같은 휴먼 에러 없이 소프트웨어 안전진단을 제공해주는 소스코드 안정성 확보 방법을 제공하는 것이다.Another object of the present invention is to provide a method of securing source code stability that provides software safety diagnosis without human error such as omission of derivation of the most important risk factors by analyzing risk factors constituting software by multiple users based on crowdsourcing.

본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들에 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems that are not mentioned will be clearly understood by those skilled in the art from the following description.

본 개시의 일 특징에 의하면, 소스코드 안정성 확보 시스템 상의 컴퓨팅 장치에서 수행되는 크라우드소싱 기반 소스코드 안정성 확보 방법이 제공된다. 본 개시의 방법은 소스코드를 입력 받고, 상기 소스코드에 대한 복수의 리뷰어의 리뷰결과를 기초로 소스코드 패턴 데이터베이스를 구축하는 단계; 및 상기 소스코드 패턴 데이터베이스에 기초하여 분석대상 소스코드에 대해 수정을 제안하는 단계를 포함할 수 있다. According to one feature of the present disclosure, a method for securing source code stability based on crowdsourcing performed in a computing device on a system for securing source code stability is provided. The method of the present disclosure includes the steps of receiving a source code and constructing a source code pattern database based on review results of a plurality of reviewers for the source code; And suggesting a modification of the source code to be analyzed based on the source code pattern database.

본 개시의 일 실시예에 따르면, 상기 소스코드 패턴 데이터베이스를 구축하는 단계는, 사용자로부터 제1 소스코드를 입력받아 데이터베이스에 저장하는 단계; 상기 제1 소스코드를 복수의 리뷰어에게 공개하고, 상기 복수의 리뷰어 각각으로부터 상기 제1 소스코드를 분석한 결과인 제2 소스코드를 수신하여 상기 데이터베이스에 저장하는 단계; 및 상기 제1 소스코드를 패턴화하고 상기 제2 소스코드를 패턴화하여 서로 연관시켜 상기 데이터베이스에 저장하는 단계를 포함할 수 있다. According to an embodiment of the present disclosure, the step of constructing the source code pattern database includes: receiving a first source code from a user and storing it in the database; Publishing the first source code to a plurality of reviewers, receiving a second source code resulting from analyzing the first source code from each of the plurality of reviewers, and storing it in the database; And patterning the first source code, patterning the second source code, and storing the patterned second source code in the database.

본 개시의 일 실시예에 따르면, 상기 소스코드 패턴 데이터베이스를 구축하는 단계는, 상기 사용자로부터 상기 제2 소스코드의 수용여부를 수신하는 단계; 및 상기 제2 소스코드가 수용된 경우, 상기 제1 소스코드와 수정된 제1 소스코드를 연관시켜 저장하는 단계를 더 포함할 수 있다. According to an embodiment of the present disclosure, the building of the source code pattern database includes: receiving from the user whether or not to accept the second source code; And when the second source code is accepted, storing the first source code in association with the modified first source code.

본 개시의 일 실시예에 따르면, 상기 방법은 상기 제2 소스코드에 대해서, 개발 코드 수정 제안시의 우선순위를 설정하는 단계를 더 포함하고, 상기 제2 소스코드의 우선순위는 제2 소스코드의 패턴의 유사도를 판단하여 가장 다수의 유사한 형태로 수정된 코드에 가장 높은 우선순위를 부여할 수 있다. According to an embodiment of the present disclosure, the method further comprises the step of setting a priority when a development code modification is proposed for the second source code, and the priority of the second source code is the second source code. It is possible to give the highest priority to the code modified in the most similar form by determining the similarity of the pattern of.

본 개시의 일 실시예에 따르면, 상기 방법은 설계자로부터 분석대상 소스코드를 수신하고 패턴화하는 단계; 상기 분석대상 소스코드의 패턴과 상기 제1 소스코드의 패턴의 유사여부를 판단하는 단계; 및 유사한 패턴이 있는 경우, 상기 제1 소스코드의 패턴 중 상기 유사한 패턴과 관련되는 상기 제2 소스코드의 패턴을 검색하여 상기 설계자에게 상기 분석대상 소스코드를 상기 제2 소스코드로 수정하도록 제안하는 단계를 더 포함할 수 있다. According to an embodiment of the present disclosure, the method includes receiving and patterning a source code to be analyzed from a designer; Determining whether the pattern of the source code to be analyzed is similar to the pattern of the first source code; And if there is a similar pattern, search for a pattern of the second source code related to the similar pattern among the patterns of the first source code, and propose to the designer to modify the analysis target source code into the second source code. It may further include a step.

본 개시의 일 실시예에 따르면, 상기 분석대상 소스코드에 대해 패턴 데이터베이스를 구축하는 단계를 더 포함할 수 있다. According to an embodiment of the present disclosure, it may further include building a pattern database for the source code to be analyzed.

본 개시의 다른 특징에 의하면, 하나 이상의 컴퓨터 판독가능 명령어를 저장한 컴퓨터 판독가능 기록매체로서, 상기 하나 이상의 컴퓨터 판독가능 명령어는, 컴퓨터에 의해 실행될 경우, 상기 컴퓨터로 하여금 전술한 방법들 중 어느 하나의 방법을 수행하도록 하는, 컴퓨터 판독가능 기록 매체가 제공된다.According to another feature of the present disclosure, a computer-readable recording medium storing one or more computer-readable instructions, wherein the one or more computer-readable instructions, when executed by a computer, cause the computer to cause any one of the above-described methods. A computer-readable recording medium is provided to perform the method of.

본 발명의 실시예들에 따른 크라우드소싱 기반 소스코드 안정성 확보 방법에 따르면, 소프트웨어 안전진단을 효율적으로 제공해주는 효과가 제공된다.According to the method for securing source code stability based on crowdsourcing according to embodiments of the present invention, an effect of efficiently providing software safety diagnosis is provided.

본 발명의 실시예들에 따른 크라우드소싱 기반 소스코드 안정성 확보 방법에 따르면, 다수의 사용자가 소프트웨어를 구성하는 위험요소를 분석하여 가장 중요한 위험요소 도출 누락과 같은 휴먼 에러(human error) 없이 소프트웨어 안전진단을 제공해주는 효과가 제공된다.According to the method for securing source code stability based on crowdsourcing according to embodiments of the present invention, software safety diagnosis without human errors such as omission of derivation of the most important risk factors by analyzing risk factors constituting software by multiple users The effect is provided.

본 발명의 실시예들에 따른 크라우드소싱 기반 소스코드 안정성 확보 방법에 따르면, 전문인력의 노하우 및 지식에 의존하지 않고, 타 전문가들을 통해 공개된 범위에서 빠르게 위험분석 또는 테스트케이스 설계 결과 위험요인의 누락을 빠르게 인지하고 반영할 수 있는 효과가 제공된다. According to the method of securing source code stability based on crowdsourcing according to embodiments of the present invention, risk factors are omitted as a result of rapid risk analysis or test case design within the range disclosed by other experts without relying on the know-how and knowledge of experts. It provides an effect to quickly recognize and reflect.

본 발명의 실시예들에 따른 크라우드소싱 기반 소스코드 안정성 확보 방법에 따르면, 사용자가 위험분석 또는 테스트케이스 설계 시 추가로 필요한 위험요인을 알고 수정 반영하여 적용함으로 교육의 효과가 제공된다. According to the method for securing source code stability based on crowdsourcing according to the embodiments of the present invention, the effect of education is provided by the user knowing and applying the additional risk factors required for risk analysis or test case design.

도 1는 본 발명의 일 실시예에 따라 크라우드소싱 기반 소스코드 안정성 확보하기 위한 서버의 예시적인 구성을 도시한 도면이다.
도 2는 (4-(3+2))의 추상구문트리의 예시를 도시한다.
도 3은 본 발명의 일 실시예에 따라 크라우드소싱 기반 소스코드 안정성 확보하기 위한 데이터베이스 구축하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따라 크라우드소싱 기반 소스코드 안정성을 분석하는 흐름도이다.
1 is a diagram showing an exemplary configuration of a server for securing stability of a crowdsourcing-based source code according to an embodiment of the present invention.
2 shows an example of an abstract syntax tree of (4-(3+2)).
3 is a flowchart of building a database for securing source code stability based on crowdsourcing according to an embodiment of the present invention.
4 is a flowchart illustrating a crowdsourcing-based source code stability analysis according to an embodiment of the present invention.

본 발명의 이점들과 특징들 그리고 이들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해 질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 본 실시예들은 단지 본 발명의 개시가 완전하도록 하며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려 주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and a method of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various forms different from each other, and the present embodiments only make the disclosure of the present invention complete, and those skilled in the art to which the present invention pertains. It is provided to inform the person of the scope of the invention completely, and the invention is only defined by the scope of the claims.

본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로 본 발명을 한정하려는 의도에서 사용된 것이 아니다. 예를 들어, 단수로 표현된 구성 요소는 문맥상 명백하게 단수만을 의미하지 않는다면 복수의 구성 요소를 포함하는 개념으로 이해되어야 한다. 또한, 본 발명의 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐이고, 이러한 용어의 사용에 의해 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성이 배제되는 것은 아니다.The terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present invention. For example, a constituent element expressed in the singular should be understood as a concept including a plurality of constituent elements, unless the context clearly means only the singular. In addition, in the specification of the present invention, terms such as'include' or'have' are only intended to designate the presence of features, numbers, steps, actions, components, parts, or a combination thereof described in the specification. The use of the term does not exclude the possibility of the presence or addition of one or more other features, numbers, steps, actions, components, parts, or combinations thereof.

본 명세서에 기재된 실시예에 있어서 '모듈' 혹은 '부'는 적어도 하나의 기능이나 동작을 수행하는 기능적 부분을 의미하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.In the embodiments described herein, a'module' or'unit' means a functional part that performs at least one function or operation, and may be implemented as hardware or software, or a combination of hardware and software.

또한, 복수의 '모듈' 혹은 복수의 '부'는 특정한 하드웨어로 구현될 필요가 있는 '모듈' 혹은 '부'를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.In addition, a plurality of'modules' or a plurality of'units' may be integrated into at least one module and implemented as at least one processor except for the'module' or'unit' that needs to be implemented with specific hardware.

덧붙여, 다르게 정의되지 않는 한 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미가 있는 것으로 해석되어야 하며, 본 발명의 명세서에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning of the context of the related technology, and interpreted as an ideal or excessively formal meaning unless explicitly defined in the specification of the present invention. It doesn't work.

크라우드소싱 기반으로 다수의 사용자가 스펙 설계 문서를 토대로 시스템의 테스트케이스 설계 또는 결함수분석법(Fault Tree Anlysis: FTA) 등의 위험 분석을 수행하면 해당 문서의 구조, 내용, 실제 설계된 안전 요소를 데이터베이스화하여 이후에 유사 문서를 기반으로 위험 분석 또는 테스트케이스 설계 시 자동으로 위험 요인을 제안할 수 있다. Based on crowdsourcing, when multiple users perform risk analysis such as system test case design or Fault Tree Analysis (FTA) based on the specification design document, the structure, contents, and actual designed safety factors of the document are databaseized. Therefore, risk factors can be automatically suggested later when risk analysis or test case design is based on similar documents.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. However, in the following description, when there is a possibility that the subject matter of the present invention may be unnecessarily obscure, detailed descriptions of widely known functions or configurations will be omitted.

도 1는 본 발명의 일 실시예에 따라 크라우드소싱 기반 소스코드 안정성 확보하기 위한 서버의 예시적인 구성을 도시한 도면이다.1 is a diagram showing an exemplary configuration of a server for securing stability of a crowdsourcing-based source code according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 예시적인 실시예에서, 서버(100)는 소스코드 패턴화 모듈(110), 소스코드 패턴 관리 모듈(120), 소스코드 패턴 순위 관리 모듈(130), 소스코드 패턴 비교 모듈(140), 소스코드 수정 제안 모듈(150), 수정 관리 모듈(160)을 포함할 수 있다. As shown in Fig. 1, in an exemplary embodiment, the server 100 includes a source code patterning module 110, a source code pattern management module 120, a source code pattern ranking management module 130, and a source code pattern. A comparison module 140, a source code modification proposal module 150, and a modification management module 160 may be included.

본 개시의 예시적인 실시예에서, 소스코드 패턴화 모듈(110)은 소스코드를 패턴화하도록 구성될 수 있다. 일 실시예에서, 소스코드의 패턴화는 일반적인 추상구문트리(Abstract Syntax Tree: AST)를 이용한 구문 분석 기법을 사용할 수 있다.In an exemplary embodiment of the present disclosure, the source code patterning module 110 may be configured to pattern the source code. In one embodiment, patterning of the source code may use a syntax analysis technique using a general abstract syntax tree (AST).

도 2는 (4-(3+2))의 추상구문트리의 예시를 도시한다. Figure 2 shows an example of an abstract syntax tree of (4-(3+2)).

본 기술분야의 당업자는 추상구문트리 외에도 소스코드를 패턴화할 수 있는 다양한 기법을 활용할 수 있을 것이므로 이에 대한 상세한 설명은 생략하기로 한다. Those skilled in the art will be able to use various techniques for patterning source codes in addition to the abstract syntax tree, and thus a detailed description thereof will be omitted.

본 개시의 예시적인 실시예에서, 소스코드 패턴 관리 모듈(120)은 소스코드의 패턴을 기록, 조회, 수정 삭제 등을 관리하고 요청받은 특정 소스코드 패턴에 대해 저장된 소스코드 패턴의 유사도를 계산하도록 구성될 수 있다. 일 실시예에서, 소스코드 패턴의 유사도는 편집 거리 알고리즘(Edit Distance Algorithm)을 사용하여 계산할 수 있다. 여기서, 편집 거리 알고리즘은 대상 문자열을 삽입, 삭제, 변경을 몇 번 하여 원본에 유사하게 만들수 있는 지를 계산하는 기법으로 원본과 같은 경우 0, 원본과 다를 수록 거리가 늘어나도록 계산될 수 있다. In an exemplary embodiment of the present disclosure, the source code pattern management module 120 manages recording, inquiry, correction and deletion of the pattern of the source code, and calculates the similarity of the stored source code pattern for the specific source code pattern requested. Can be configured. In one embodiment, the similarity of the source code pattern may be calculated using an Edit Distance Algorithm. Here, the edit distance algorithm is a technique that calculates how many times a target string can be inserted, deleted, and changed to make it similar to the original. It can be calculated to be 0 in the case of the original and to increase the distance as the original is different.

다른 실시예에서, 소스코드 패턴의 유사도는 트리 편집 거리 알고리즘을 사용할 수 있다. 트리 편집 거리 알고리즘은 편집 거리 알고리즘과 유사하게 한 트리를 다른 트리로 변환하는 노드 편집 작업의 최소비용순서를 의미하며, 이를 이용하여 유사도를 계산할 수 있다. 구체적으로, 트리 편집 거리 알고리즘은 노드의 삭제, 삽입, 변경에 비용(cost)을 할당하고, 각 연산이 몇 번이 필요한지를 계산하여 전체 비용의 합으로 계산할 수 있다. In another embodiment, the similarity of the source code pattern may use a tree edit distance algorithm. Similar to the edit distance algorithm, the tree edit distance algorithm refers to the least cost order of the node edit process for converting one tree into another tree, and the similarity can be calculated using this. Specifically, the tree editing distance algorithm can be calculated as the sum of the total costs by allocating a cost to deletion, insertion, and modification of nodes, and calculating how many times each operation is required.

본 개시의 일 실시예에서 소스코드 패턴 관리 모듈(120)은 원본 소스코드 또는 수정 소스코드의 패턴을 모두 관리할 수 있다. In an embodiment of the present disclosure, the source code pattern management module 120 may manage all patterns of the original source code or the modified source code.

본 개시의 예시적인 실시예에서, 소스코드 패턴 순위 관리 모듈(130)은 수정 소스코드의 패턴 유사도를 판단하여, 가장 다수의 유사한 형태로 수정된 코드부터, 다른 형태로 수정된 코드까지 개발 코드 수정 제안시 높은 우선순위의 코드 패턴을 먼저 제안하도록 구성될 수 있다. In an exemplary embodiment of the present disclosure, the source code pattern ranking management module 130 determines the pattern similarity of the modified source code, and modifies the development code from the most modified code to the code modified in other forms. When proposing, it may be configured to first suggest a code pattern of high priority.

본 개시의 예시적인 실시예에서, 소스코드 패턴 비교 모듈(140)은 분석대상 소스코드가 원본 소스코드와 유사한 부분이 있는지를 비교하도록 구성된다. 일 실시예에서, 원본 소스코드의 패턴과 분석대상 소스코드의 패턴을 비교하여 유사한 패턴이 있는지를 비교하도록 구성된다. In an exemplary embodiment of the present disclosure, the source code pattern comparison module 140 is configured to compare whether the source code to be analyzed has a similar part to the original source code. In one embodiment, it is configured to compare a pattern of an original source code with a pattern of a source code to be analyzed to see if there is a similar pattern.

본 개시의 예시적인 실시예에서, 소스코드 수정 제안 모듈(150)은 분석대상 소스코드와 제1 소스코드가 유사한 패턴이 있는 경우, 데이터베이스로부터 그와 관련된 제2 소스코드 패턴을 검색하여 수정을 제안하도록 구성된다. 설계자는 제안을 받아들여 수정 소스코드 패턴을 적용할지, 그대로 둘지 혹은 자기만의 방법으로 수정할 지를 판단할 수 있다. In an exemplary embodiment of the present disclosure, when the source code to be analyzed and the first source code have a similar pattern, the source code modification proposal module 150 searches for a second source code pattern related thereto from the database and proposes modification. Is configured to The designer can accept the proposal and decide whether to apply the modified source code pattern, leave it as it is, or modify it in his own way.

본 개시의 예시적인 실시예에서, 소스코드 수정 관리 모듈(160)은 소스코드 수정 제안 모듈(150)에서 제안한 방법을 설계자가 적용하였는지 여부를 확인하여, 분석대상 소스코드에 대해 소스코드 패턴화, 수정 소스코드 패턴화 및 순위를 산정하고 데이터베이스에 저장하도록 구성될 수 있다. In an exemplary embodiment of the present disclosure, the source code modification management module 160 checks whether the designer has applied the method proposed by the source code modification proposal module 150, and patterning the source code for the source code to be analyzed, It can be configured to pattern and rank modified source code and store it in a database.

도 3은 본 발명의 일 실시예에 따라 크라우드소싱 기반 소스코드 안정성 확보하기 위한 데이터베이스 구축하는 흐름도이다. 3 is a flowchart of building a database for securing source code stability based on crowdsourcing according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 예시적인 실시예에서, 데이터베이스 구축은 사용자로부터 제1 소스코드를 입력받아 데이터베이스에 저장하는 단계(S301)로부터 시작된다. 일 실시예에서, 데이터베이스 구축은 제1 소스코드 자체를 저장할 수 있거나, 또는 소스코드 패턴화 모듈(110)을 통해 제1 소스코드를 패턴화하여 저장할 수 있다. 일 실시예에서, 패턴화는 추상구문트리 등의 기법을 사용할 수 있으나 이에 한정되는 것은 아니다. As shown in Fig. 3, in an exemplary embodiment, the database construction starts from a step S301 of receiving a first source code from a user and storing it in the database. In one embodiment, the database construction may store the first source code itself, or may pattern and store the first source code through the source code patterning module 110. In one embodiment, patterning may use a technique such as an abstract syntax tree, but is not limited thereto.

다음으로 단계(S303)에서, 복수의 리뷰어로부터 제1 소스코드에 대한 리뷰 결과를 수신하여 사용자에게 전달할 수 있다. Next, in step S303, a review result for the first source code may be received from a plurality of reviewers and transmitted to the user.

다음으로 단계(S305)에서, 사용자로부터 복수의 리뷰어들 각각의 리뷰 결과 수용여부를 수신하고, 이를 기초로 소스코드 패턴 관리 모듈(120)은 제1 소스코드의 패턴을 관리할 수 있다. 예컨대, 소스코드 패턴 관리 모듈(120)은 제1 소스코드를 기록하고, 이력을 조회하고, 사용자로부터의 리뷰 결과 수용여부를 기초로 제1 소스코드의 패턴이 수정되었는지 삭제되었는지 등의 관리를 할 수 있다. 또한, 소스코드 패턴 관리 모듈(120)은 특정 소스코드 패턴에 대해서 제1 소스코드의 패턴과의 유사도를 계산할 수 있다. 일 실시예에서, 유사도 계산은 편집 거리 알고리즘 또는 트리 편집 거리 알고리즘을 사용할 수 있으나 이에 한정되는 것은 아니다. Next, in step S305, whether or not to accept the review result of each of the plurality of reviewers is received from the user, and based on this, the source code pattern management module 120 may manage the pattern of the first source code. For example, the source code pattern management module 120 records the first source code, searches the history, and manages whether the pattern of the first source code has been modified or deleted based on whether the user's review result is accepted. I can. Also, the source code pattern management module 120 may calculate a degree of similarity with the pattern of the first source code with respect to the specific source code pattern. In an embodiment, the similarity calculation may use an edit distance algorithm or a tree edit distance algorithm, but is not limited thereto.

다음으로 단계(S307)에서, 사용자가 리뷰 결과를 수용하여 수정사항을 반영하여 제1 소스코드를 수정한 경우, 수정 소스코드인 제2 소스코드에 대해서 패턴화하여 저장할 수 있다. 일 실시예에서, 소스코드 패턴화 모듈(110)을 통해 제2 소스코드를 패턴화하여 저장할 수 있다. 일 실시예에서, 소스코드 패턴 관리 모듈(120)은 제2 소스코드의 패턴을 관리할 수 있는데, 예컨대, 제2 소스코드를 기록하고, 이력을 조회하고, 수정하고, 삭제할 수 있다. Next, in step S307, when the user accepts the review result and modifies the first source code by reflecting the modifications, the second source code, which is the modified source code, may be patterned and stored. In an embodiment, the second source code may be patterned and stored through the source code patterning module 110. In one embodiment, the source code pattern management module 120 may manage the pattern of the second source code, for example, record the second source code, inquire, modify, and delete the history.

다음으로 단계(S309)에서, 소스코드 패턴 순위 관리 모듈(130)은 제2 소스코드 패턴에 대해 개발 코드 수정 제안시의 우선순위를 정할 수 있다. 예컨대, 소스코드 패턴 순위 관리 모듈(130)은 제2 소스코드의 패턴의 유사도를 판단하여 가장 다수의 유사한 형태로 수정된 코드에 가장 높은 우선순위를 부여하는 등 소정의 기준에 따라 개발 코드 수정 제안시의 우선순위를 부여할 수 있다. Next, in step S309, the source code pattern priority management module 130 may determine the priority of the second source code pattern when a development code modification is proposed. For example, the source code pattern priority management module 130 determines the degree of similarity of the pattern of the second source code and gives the highest priority to the modified code in a number of similar forms. City priorities can be given.

도 4는 본 발명의 일 실시예에 따라 크라우드소싱 기반 소스코드 안정성을 분석하는 흐름도이다. 4 is a flowchart illustrating a crowdsourcing-based source code stability analysis according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 예시적인 실시예에서, 크라우드소싱 기반 소스코드 안정성을 분석은 설계자로부터 분석대상 소스코드를 입력받아 패턴화하는 단계(S401)로부터 시작된다. As shown in FIG. 4, in an exemplary embodiment, the analysis of crowdsourcing-based source code stability begins with a step S401 of receiving an analysis target source code from a designer and patterning it.

다음으로 단계(S403)에서, 패턴 비교 모듈(140)은 분석대상 소스코드의 패턴 중 데이터베이스에 저장된 패턴, 즉 제1 소스코드의 패턴과 유사한 패턴이 있는지 비교할 수 있다. Next, in step S403, the pattern comparison module 140 may compare whether there is a pattern stored in the database among the patterns of the source code to be analyzed, that is, a pattern similar to the pattern of the first source code.

만약, 유사한 패턴이 있는 경우, 단계(S405)에서, 수정 제안 모듈(150)은 제1 소스코드의 패턴과 관련되어 리뷰어들이 수정한 소스코드의 패턴, 즉 제2 소스코드의 패턴을 검색하여 설계자에게 분석대상 소스코드를 제2 소스코드로 수정하도록 제안할 수 있다. If there is a similar pattern, in step S405, the modification proposal module 150 searches for the pattern of the source code modified by the reviewers in relation to the pattern of the first source code, that is, the pattern of the second source code, It can be suggested to modify the source code to be analyzed to the second source code.

단계(S407)에서 사용자 수정 관리 모듈(160)은 설계자로부터 분석대상 소스코드의 수정여부에 관한 정보(제안한 제2 소스코드의 적용, 미적용, 설계자 직접 수정)를 수신하고, 다음 단계(S409)로, 분석대상 소스코드에 대해서 제1 소스코드를 처리한 절차를 유사하게 진행하여 데이터베이스를 업데이트할 수 있다. 예컨대, 소스코드 패턴화 모듈(110)을 통해 분석대상 소스코드를 패턴화하여 저장, 복수의 리뷰어로부터 분석대상 소스코드에 대한 리뷰 결과를 수신하여 패턴화하여 저장하고, 소스코드 패턴 관리 모듈(120)은 분석대상 소스코드의 패턴을 기록하고, 조회하고, 사용자로부터의 리뷰 결과 수용여부를 기초로 분석대상 소스코드의 패턴이 수정되었는지 삭제되었는지 등의 관리하고, 소스코드 패턴 순위 관리 모듈(130)은 제2 소스코드 패턴에 대해 개발 코드 수정 제안시의 우선순위를 정할 수 있다. In step S407, the user modification management module 160 receives information about whether or not the source code to be analyzed has been modified from the designer (the proposed second source code was applied, not applied, and the designer directly modified), and the next step (S409). , The database can be updated by similarly performing a procedure of processing the first source code for the source code to be analyzed. For example, the source code to be analyzed is patterned and stored through the source code patterning module 110, and review results for the source code to be analyzed are received from a plurality of reviewers and patterned and stored, and the source code pattern management module 120 ) Records and inquires the pattern of the source code to be analyzed, manages whether the pattern of the source code to be analyzed has been modified or deleted based on the acceptance of the review result from the user, and the source code pattern ranking management module 130 May determine the priority of the development code modification proposal for the second source code pattern.

이상에서 설명한 바와 같이 본 발명은 데이터베이스를 구축하여 안정성 여부를 확인하므로 위험요소를 판단할 때 누락의 실수 및 위험을 예방할 수 있고, 수정해야할 소스코드의 우선순위를 제시하므로써 사용자에게 빠른 식별이 가능하게 되어 집중해서 위험을 분석해야 할 함수 또는 모듈이 무엇인지 빠르게 확인이 가능하다.As described above, the present invention establishes a database to check whether it is stable, so that errors and risks of omission can be prevented when determining a risk factor, and by presenting the priority of the source code to be corrected, it is possible to quickly identify the user. It is possible to quickly identify which functions or modules need to be focused and analyzed for risk.

본원에 기술된 다양한 기술들은 하드웨어 또는 소프트웨어 또는, 가능할 경우, 두 가지 모두의 조합에 연계하여구현될 수 있다. 따라서, 반복적인 동적 및 정적 소프트웨어 분석에 대한 방법 및 장치, 또는 이것의 특정한 양태나 부분은 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계 판독가능 저장 매체와 같은 유형의 매체(tangible media) 내에 포함된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있으며, 프로그램 코드가 컴퓨터와 같은 기계에 로드되고 기계에 의해 실행될 때, 그 기계는 반복적으로, 동적 및 정적으로 소프트웨어를 분석하기 위한 장치가 된다.The various techniques described herein may be implemented in connection with hardware or software or, if possible, a combination of both. Thus, a method and apparatus for iterative dynamic and static software analysis, or a specific aspect or portion thereof, may include tangible media such as a floppy diskette, CD-ROM, hard drive, or any other machine-readable storage medium. ) Can take the form of program code (i.e. instructions) contained within, and when the program code is loaded into a machine such as a computer and executed by the machine, the machine is a device for repetitively, dynamically and statically analyzing software Becomes.

더하여, 프로그램(들)은 어셈블리나 기계 언어로 구현될 수 있다. 어느 경우에서도, 언어는 컴파일되거나 해석된 언어일 수 있고, 결합된 반복적인 동적 및 정적 소프트웨어 분석은, 전기적 배선이나 케이블링을 통하는 것, 광섬유를 통하는 것, 또는 임의의 다른 형태의 전송을 통하는 것과 같이, 소정의 전송 매체를 통해 전송되는 프로그램 코드 형태로 구현된 통신을 통해 실시될 수 있으며, 프로그램 코드가 EPROM, 게이트웨이 PLD(programmable logic device), 클라이언트 컴퓨터, 또는 이와 비슷한 것과 같은 기계로 수신되고 로드되어, 기계에 의해 실행될 때, 그 기계는 반복적인 동적 및 정적 소프트웨어 분석을 위한 장치가 된다. 범용 프로세서 상에서 구현된다면, 프로그램 코드는 프로세서와 결합되어 반복적인 동적 및 정적 소프트웨어 분석의 기능을 호출하도록 동작하는 독특한 장치를 제공할 것이다. 추가로, 반복적인 동적 및 정적 소프트웨어 분석에 관련하여 이용되는 임의의 저장 기술은 언제나 하드웨어와 소프트웨어의 조합일 수 있다.In addition, the program(s) can be implemented in assembly or machine language. In either case, the language can be a compiled or interpreted language, and the combined iterative dynamic and static software analysis is that through electrical wiring or cabling, through fiber optics, or through any other form of transmission. Likewise, it can be implemented through communication implemented in the form of program code transmitted through a predetermined transmission medium, and the program code is received and loaded by a machine such as an EPROM, a gateway programmable logic device (PLD), a client computer, or similar. Thus, when executed by a machine, the machine becomes a device for iterative dynamic and static software analysis. If implemented on a general purpose processor, the program code will be combined with the processor to provide a unique device that operates to invoke the functions of repetitive dynamic and static software analysis. Additionally, any storage technique used in connection with repetitive dynamic and static software analysis can always be a combination of hardware and software.

소프트웨어 분석이 다양한 도면의 예시적인 실시예와 관련하여 기술되어져 [0089] 왔지만, 다른 유사한 실시예들이 이용될 수 있고, 또는 본 발명을 벗어나지 않고서 반복적인 동적 및 정적 소프트웨어 분석의 동일한 기능을 수행하기 위한 수정 및 추가가, 설명된 실시예들에 대해 만들어질 수 있다는 것이 이해되어야 한다. 그러므로, 본원에 기술된 소프트웨어 분석은 어떤 단일 실시예로 한정되어서는 아니되며, 첨부 청구항에 따른 범위 및 범주안에서 이해되어야 한다.Although software analysis has been described in connection with the exemplary embodiments of the various figures, other similar embodiments may be used, or to perform the same function of repetitive dynamic and static software analysis without departing from the present invention. It should be understood that modifications and additions may be made to the described embodiments. Therefore, the software analysis described herein is not to be limited to any single embodiment, but is to be understood within the scope and scope of the appended claims.

100: 서버
110: 소스코드 패턴화 모듈
120: 소스코드 패턴 관리 모듈
130: 소스코드 패턴 순위 관리 모듈
140: 소스코드 패턴 비교 모듈
150: 소스코드 수정 제안 모듈
160: 수정 관리 모듈
100: server
110: source code patterning module
120: source code pattern management module
130: source code pattern ranking management module
140: source code pattern comparison module
150: Source code modification proposal module
160: Modification Management Module

Claims (7)

소스코드 안정성 확보 시스템 상의 컴퓨팅 장치에서 수행되는 크라우드소싱 기반 소스코드 안정성 확보 방법으로서,
소스코드를 입력 받고, 상기 소스코드에 대한 복수의 리뷰어의 리뷰결과를 기초로 소스코드 패턴 데이터베이스를 구축하는 단계; 및
상기 소스코드 패턴 데이터베이스에 기초하여 분석대상 소스코드에 대해 수정을 제안하는 단계를 포함하고
상기 소스코드 패턴 데이터베이스를 구축하는 단계는,
제1 사용자로부터 제1 소스코드를 입력받아 데이터베이스에 저장하는 단계;
상기 제1 소스코드를 복수의 리뷰어에게 공개하고, 상기 복수의 리뷰어 각각으로부터 상기 제1 소스코드를 분석한 결과인 복수의 제2 소스코드를 수신하여 상기 데이터베이스에 저장하는 단계; 및
상기 제1 소스코드를 패턴화하고 상기 복수의 제2 소스코드를 패턴화하여 서로 연관시켜 상기 데이터베이스에 저장하는 단계;
를 포함하고,
상기 소스코드 패턴 데이터베이스에 기초하여 분석대상 소스코드에 대해 수정을 제안하는 단계는
제2 사용자로부터 상기 분석대상 소스코드를 입력받는 단계;
상기 분석대상 소스코드를 패턴화하고 상기 분석대상 소스코드가 상기 데이터베이스에 저장된 상기 제1 소스코드 패턴과 유사한 패턴이 있는지 비교하는 단계;
유사한 패턴이 있는 경우, 상기 제2 사용자에게 상기 분석대상 소스코드를 상기 복수의 제2 소스코드로 수정하도록 제안하는 단계 ; 및
상기 제2 사용자로부터 상기 분석대상 소스코드의 수정여부에 관한 정보를 수신하여 상기 데이터베이스를 업데이트 하는 단계
를 포함하는 크라우드소싱 기반 소스코드 안정성 확보 방법.
A method of securing source code stability based on crowdsourcing performed in a computing device on the source code stability securing system,
Receiving a source code and building a source code pattern database based on review results of a plurality of reviewers for the source code; And
Proposing a modification to the analysis target source code based on the source code pattern database,
Building the source code pattern database,
Receiving a first source code from a first user and storing it in a database;
Publishing the first source code to a plurality of reviewers, receiving a plurality of second source codes, which are results of analyzing the first source code from each of the plurality of reviewers, and storing them in the database; And
Patterning the first source code, patterning the plurality of second source codes, and storing the plurality of second source codes in the database;
Including,
Proposing a modification to the analysis target source code based on the source code pattern database
Receiving the source code to be analyzed from a second user;
Patterning the analysis target source code and comparing whether or not the analysis target source code has a similar pattern to the first source code pattern stored in the database;
If there is a similar pattern, suggesting to the second user to modify the analysis target source code into the plurality of second source codes; And
Updating the database by receiving information on whether the source code to be analyzed has been modified from the second user
A method of securing source code stability based on crowdsourcing, including.
삭제delete 제1항에 있어서,
상기 소스코드 패턴 데이터베이스를 구축하는 단계는,
상기 제1 사용자로부터 상기 복수의 제2 소스코드의 수용여부를 수신하는 단계; 및
상기 복수의 제2 소스코드가 수용된 경우, 상기 제1 소스코드와 수정된 제1 소스코드를 연관시켜 저장하는 단계;
를 더 포함하는 크라우드소싱 기반 소스코드 안정성 확보 방법.
The method of claim 1,
Building the source code pattern database,
Receiving from the first user whether or not to accept the plurality of second source codes; And
When the plurality of second source codes are accepted, storing the first source code and the modified first source code in association with each other;
Crowdsourcing-based source code stability securing method further comprising.
제3항에 있어서,
상기 방법은 상기 복수의 제2 소스코드에 대해서, 개발 코드 수정 제안시의 우선순위를 설정하는 단계를 더 포함하고,
상기 복수의 제2 소스코드의 우선순위는 상기 복수의 제2 소스코드의 각각의 패턴 유사도를 판단하여 가장 다수의 유사한 형태로 수정된 코드에 가장 높은 우선순위를 부여 하는 것인 크라우드소싱 기반 소스코드 안정성 확보 방법.
The method of claim 3,
The method further comprises the step of setting a priority when a development code modification proposal is made for the plurality of second source codes,
The priority of the plurality of second source codes is a crowdsourcing-based source code that determines the similarity of each pattern of the plurality of second source codes and assigns the highest priority to the modified code in the most similar form. How to ensure stability.
삭제delete 삭제delete 하나 이상의 컴퓨터 판독가능 명령어를 저장한 컴퓨터 판독가능 기록매체로서, 상기 하나 이상의 컴퓨터 판독가능 명령어는, 컴퓨터에 의해 실행될 경우, 상기 컴퓨터로 하여금 제1항, 제3항, 및 제4항 중 어느 하나의 방법을 수행하도록 하는, 컴퓨터 판독가능 기록 매체.A computer-readable recording medium storing one or more computer-readable instructions, wherein the one or more computer-readable instructions, when executed by a computer, cause the computer to any one of claims 1, 3, and 4 A computer-readable recording medium to perform the method of.
KR1020180169673A 2018-12-26 2018-12-26 Method for verifying safety source code based on crowdsourcing KR102213959B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180169673A KR102213959B1 (en) 2018-12-26 2018-12-26 Method for verifying safety source code based on crowdsourcing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180169673A KR102213959B1 (en) 2018-12-26 2018-12-26 Method for verifying safety source code based on crowdsourcing

Publications (2)

Publication Number Publication Date
KR20200079944A KR20200079944A (en) 2020-07-06
KR102213959B1 true KR102213959B1 (en) 2021-02-09

Family

ID=71571422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180169673A KR102213959B1 (en) 2018-12-26 2018-12-26 Method for verifying safety source code based on crowdsourcing

Country Status (1)

Country Link
KR (1) KR102213959B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022124573A1 (en) * 2020-12-07 2022-06-16 주식회사 앰진시큐러스 Method for evaluating similarity of website on basis of menu structure and keyword in script

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071110A (en) * 2006-09-14 2008-03-27 Xanavi Informatics Corp Source record review supporting device
JP2009146207A (en) * 2007-12-14 2009-07-02 Mitsubishi Electric Corp Source code analysis support device
US20130332902A1 (en) * 2012-06-07 2013-12-12 Microsoft Corporation Visualized code review

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071110A (en) * 2006-09-14 2008-03-27 Xanavi Informatics Corp Source record review supporting device
JP2009146207A (en) * 2007-12-14 2009-07-02 Mitsubishi Electric Corp Source code analysis support device
US20130332902A1 (en) * 2012-06-07 2013-12-12 Microsoft Corporation Visualized code review

Also Published As

Publication number Publication date
KR20200079944A (en) 2020-07-06

Similar Documents

Publication Publication Date Title
WO2021053422A1 (en) Correspondence of external operations to containers and mutation events
KR102213959B1 (en) Method for verifying safety source code based on crowdsourcing
Panesar-Walawege et al. Using UML profiles for sector-specific tailoring of safety evidence information
Hamadah et al. A proposed virtual private cloud-based disaster recovery strategy
Lališ et al. Functional modeling in safety by means of foundational ontologies
KR20200079708A (en) Database construction system of ultra-high speed structural performance for optimal retrofit strategy of structure vulnerable to multi-hazard disaster
Barros et al. Supporting impact analysis: a semi-automated technique and associated tool
US10877471B2 (en) Method and apparatus for generating a fault tree for a failure mode of a complex system
CN105069366A (en) Account registration and management method and device
Fredericks Automatically hardening a self-adaptive system against uncertainty
KR20210097560A (en) Block chain transaction processing method
KR102287014B1 (en) Method for software hazard anaysis based on crowdsourcing
Silva et al. Performability models for designing disaster tolerant infrastructure-as-a-service cloud computing systems
Rafeh A proposed approach for safety management in medical software design
Silva A framework for availability, performance and survivability evaluation of disaster tolerant cloud computing systems
Yang et al. A combination method for integrated modular avionics safety analysis
Tadano et al. Automatic synthesis of SRN models from system operation templates for availability analysis
Nguyen An improved approach to traceability in the engineering of complex systems
Hollow et al. Approaches to certification of reconfigurable IMA systems
Tadano et al. Identification of minimal unacceptable combinations of simultaneous component failures in information systems
Admodisastro et al. An architecture analysis approach for supporting black-box software development
Chindamaikul et al. Automatic approach to prepare information for constructing an assurance case
Ye et al. Criticality analysis for cots software components
Nguyen Tran et al. Hazard Analysis Methods for Software Safety Requirements Engineering
Abbate et al. Using computational tree logic methods to analyze reachability in user documentation

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant