KR102511568B1 - Method for automatically source-code generation based on service scenario - Google Patents

Method for automatically source-code generation based on service scenario Download PDF

Info

Publication number
KR102511568B1
KR102511568B1 KR1020210041643A KR20210041643A KR102511568B1 KR 102511568 B1 KR102511568 B1 KR 102511568B1 KR 1020210041643 A KR1020210041643 A KR 1020210041643A KR 20210041643 A KR20210041643 A KR 20210041643A KR 102511568 B1 KR102511568 B1 KR 102511568B1
Authority
KR
South Korea
Prior art keywords
source code
component
service scenario
database
development
Prior art date
Application number
KR1020210041643A
Other languages
Korean (ko)
Other versions
KR20220135655A (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 KR1020210041643A priority Critical patent/KR102511568B1/en
Publication of KR20220135655A publication Critical patent/KR20220135655A/en
Application granted granted Critical
Publication of KR102511568B1 publication Critical patent/KR102511568B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

본 개시의 일 특징에 의하면, 서비스 시나리오에서 개발 명세서를 작성하고, 작성된 개발 명세서의 문장을 기반으로 인공지능 자연어 처리를 사용하여 의미와 개체가 매칭되는 소스 코드를 자동으로 생성하는 시스템이 제공된다. 본 개시의 방법은 서비스 시나리오를 문장 단위로 입력 받고, 상기 각 문장에 대한 자연어 처리를 통한 의도와 개체를 추출하는 단계; 의미와 개체의 패턴을 데이터베이스 상에 저장된 컴포넌트 기반의 소스와 매핑하는 단계; 상기 소스 코드를 기반으로 상기 추출된 개체를 기본으로 입력 데이터, 출력 데이터, 기능 요소에 대한 명칭을 부여하고, 소스 코드 수정이 가능한 코드 수정 시스템에 소스 코드를 제공하는 단계를 포함할 수 있다.According to one feature of the present disclosure, there is provided a system for creating a development specification in a service scenario and automatically generating source codes matching meanings and entities using artificial intelligence natural language processing based on sentences of the written development specification. The method of the present disclosure includes the steps of receiving a service scenario sentence by sentence and extracting an intent and entity through natural language processing for each sentence; mapping semantic and object patterns with component-based sources stored in the database; The method may include giving names to input data, output data, and function elements based on the extracted entity based on the source code, and providing the source code to a code modification system capable of modifying the source code.

Figure 112021037677344-pat00001
Figure 112021037677344-pat00001

Description

서비스 시나리오 기반 소스 코드 자동 생성 방법 {METHOD FOR AUTOMATICALLY SOURCE-CODE GENERATION BASED ON SERVICE SCENARIO}How to automatically generate source code based on service scenario {METHOD FOR AUTOMATICALLY SOURCE-CODE GENERATION BASED ON SERVICE SCENARIO}

본 발명은 소프트웨어 개발 시 서비스 시나리오를 기반으로 입력된 각 문장에서 의도와 개체를 추출하여 이를 기반으로 컴포넌트 소스 코드와 기본이 되는 골격 소스 코드(skeleton code)를 생성하는 소스 코드 생성 방법에 관한 것이다.The present invention relates to a source code generation method for extracting an intent and an object from each input sentence based on a service scenario during software development and generating a component source code and a basic skeleton code based thereon.

4차 산업의 추축이 되는 인공지능 기술이 발전되고 있으며 특히, 인공지능 분야에서도 언어를 처리하는 NLP(Natural Language Processing) 관련 인공지능이 비약적으로 발전하고 있다. 2020년 6월 1일 Open-AI가 GPT-2를 아카이브(arXiv)에 공개하면서 많은 기대와 서비스가 나올 것으로 예상된다. 현재 자연어 처리 기술은 대화형 처리에 많이 사용되어지며, 인간과 컴퓨터의 교감을 위한 연구개발이 활발하게 이루어 지고 있다.Artificial intelligence technology, which is the pivot of the 4th industry, is developing, and especially in the field of artificial intelligence, NLP (Natural Language Processing) related artificial intelligence is developing rapidly. On June 1, 2020, as Open-AI released GPT-2 to the archive (arXiv), many expectations and services are expected to come out. Currently, natural language processing technology is widely used in interactive processing, and research and development for human-computer interaction is being actively conducted.

소프트웨어의 개발 방법론적으로 과거의 폭포수 모델(Waterfall Model)에서 현재 애자일 소프트웨어 개발(Agile software development) 방법으로 변경되면서 오프라인에서 온라인 중심의 형상 관리와 소스 코드 수정, 소프트웨어 제품의 배포가 이루어지고 있으며, 특히, 온라인 중심의 개발에 있어, 형상 관리 시스템이나 온라인 IDE(Integrated Development Environment)에 대한 제품개발이 활발하게 이루어지고 있다.As the software development methodology changes from the waterfall model of the past to the current agile software development method, configuration management, source code modification, and distribution of software products are being performed offline and online. , Product development for the configuration management system or online IDE (Integrated Development Environment) is being actively carried out in online-oriented development.

TDD(Test Driven Develop) 기반 개발 방법론은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나로 개발자는 소프트웨어의 요구사항을 자동화된 테스트 케이스를 작성한다. 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 작성한 코드를 표준에 맞도록 리팩토링하는 과정을 거쳐 최종 소프트웨어 제품에 반영하는 방법이며 이는 빠르고 안정성을 확보하는 소프트웨어 개발 방법으로 사용되어지고 있다.TDD (Test Driven Develop)-based development methodology is one of the software development processes that repeat very short development cycles, and developers create automated test cases for software requirements. Generate minimal code to pass that test case. It is a method of refactoring the written code to conform to the standard and reflecting it in the final software product, which is used as a software development method that secures speed and stability.

본 발명의 과제는 소프트웨어 개발에 있어서 서비스 시나리오부터 개발 명세서를 도출하는 과정부터 기본 골격이 되는 소스 코드를 생성하기까지 많은 시간이 소요된다. 따라서 서비스 시나리오부터 테스트 단위를 기본으로 소스 코드의 기본 골격을 생성하여 소프트웨어 개발 효율성을 높이는 방법을 제공하는 것이다.The task of the present invention is that in software development, it takes a lot of time from the process of deriving a development specification from a service scenario to generating a source code that serves as a basic skeleton. Therefore, it is to provide a way to increase the efficiency of software development by generating the basic skeleton of the source code based on the test unit from the service scenario.

본 발명의 다른 과제는 컴포넌트 기반의 소스 코드를 데이터베이스에 저장하고, 상기 소스 코드의 의도와 개체를 매칭하여 검색하고, 이를 소스 코드의 기본 골격에 적용하고, 상기 소스 코드의 의도와 개체에 대해 명칭을 부여하고, 소스 코드를 재사용하여 소프트웨어 개발의 편의성을 제공하는 것이다.Another object of the present invention is to store component-based source code in a database, search by matching the intent and object of the source code, apply it to the basic skeleton of the source code, and name the intent and object of the source code. and reuse the source code to provide convenience in software development.

본 개시의 일 특징에 의하면, 서비스 시나리오에서 개발 명세서를 작성하고, 작성된 개발 명세서의 문장을 기반으로 인공지능 자연어 처리를 사용하여 의미와 개체가 매칭되는 소스 코드를 자동으로 생성하는 시스템이 제공된다. 본 개시의 방법은 서비스 시나리오를 문장 단위로 입력 받고, 상기 각 문장에 대한 자연어 처리를 통한 의도와 개체를 추출하는 단계; 의미와 개체의 패턴을 데이터베이스 상에 저장 된 컴포넌트 기반의 소스와 매핑하는 단계; 상기 소스 코드를 기반으로 상기 추출된 개체를 기본으로 입력 데이터, 출력 데이터, 기능 요소에 대한 명칭을 부여하고, 소스 코드 수정이 가능한 코드 수정 시스템에 소스 코드를 제공하는 단계를 포함할 수 있다.According to one feature of the present disclosure, there is provided a system for creating a development specification in a service scenario and automatically generating source codes matching meanings and entities using artificial intelligence natural language processing based on sentences of the written development specification. The method of the present disclosure includes the steps of receiving a service scenario sentence by sentence and extracting an intent and entity through natural language processing for each sentence; mapping meanings and object patterns with component-based sources stored in the database; The method may include giving names to input data, output data, and function elements based on the extracted entity based on the source code, and providing the source code to a code modification system capable of modifying the source code.

본 개시의 일 실시 예에 따르면, 서비스 시나리오를 기반으로 입력된 개발 명세의 문장을 입력 받고, 자연어 처리를 통한 의도와 개체를 추출하는 단계는 사용자로부터 서비스 시나리오를 입력 받아 데이터 베이스에 저장하는 단계; 데이터베이스에서 문장 별로 딥러닝 알고리즘을 통한 자연어 처리 단계에서 문장의 의도를 예측하고 주요 단어의 개체를 추출하는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, the step of receiving a sentence of a development specification input based on a service scenario and extracting an intent and an object through natural language processing includes receiving a service scenario from a user and storing the input in a database; In the natural language processing step through a deep learning algorithm for each sentence in the database, the step of predicting the intent of the sentence and extracting the object of the main word may be included.

본 개시의 일 실시 예에 따르면, 자연어 처리를 통해 추출된 의도와 개체 명칭을 기준으로 데이터베이스에 저장된 컴포넌트 기반 소스 코드의 의도와 개체 명칭 태그를 검색하여 매칭 컴포넌트 기반의 소스 코드를 찾는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, the step of finding a matching component-based source code by searching intent and object name tags of component-based source code stored in a database based on the intent and object name extracted through natural language processing. can

본 개시의 일 실시 예에 따르면, 자연어 처리를 통해 추출된 의도와 개체 명칭을 기준으로 데이터베이스 상에 저장된 단어사전을 기반으로 의도를 매칭되는 단어사전과 개체 명칭을 검색하여 의미와 동일한 소스 코드에 추가되는 기준이 될 명칭 부여를 포함할 수 있다.According to an embodiment of the present disclosure, based on the intent and object name extracted through natural language processing, a word dictionary and object name matching the intent are searched based on a word dictionary stored in a database and added to the same source code as the meaning. It may include naming that will be the criterion to be.

본 개시의 일 실시 예에 따르면, 상기 검색된 컴포넌트의 소스 코드에 의도와 개체 명칭이 변환된 단어를 병합하여 새로운 소스 코드를 자동으로 생성하도록 하는 단계를 포함할 수 있다.According to an embodiment of the present disclosure, a step of automatically generating a new source code by merging a word obtained by converting an intention and an entity name into the source code of the searched component may be included.

본 개시의 일 실시 예에 따르면, 자동으로 생성된 소스 코드는 사용자에게 개발에 필요한 소스 코드를 제공되는 단계; 사용자는 제공된 소스 코드를 수정하는 단계; 소스 코드를 수정하여 시스템에 저장하는 단계가 포함된다.According to an embodiment of the present disclosure, the automatically generated source code is provided to the user with the source code required for development; Users can modify the provided source code; Modifying the source code and saving it to the system is included.

본 개시의 다른 특징에 의하면, 저장된 소스 코드는 컴퓨터 상에서 자동으로 입력과 출력에 대한 결과를 자동으로 테스트하고 이를 형상관리를 위한 소스 코드 저장소에 저장되는 기능이 제공된다.According to another feature of the present disclosure, the stored source code is provided with a function of automatically testing the result of input and output on a computer and storing it in a source code repository for configuration management.

본 발명의 실시예들에 따른 서비스 시나리오 기반 소스 코드 자동 생성 방법에 따르면, 사용자는 서비스 시나리오를 문장단위로 소스 코드가 생성되어 반복되어지는 개발업무에 시간 단축효과가 제공된다.According to the method of automatically generating source codes based on service scenarios according to the embodiments of the present invention, a time saving effect is provided to a user for repetitive development work by generating source codes for service scenarios in sentence units.

본 발명의 실시예들에 따른 서비스 시나리오 기반 소스 코드 자동 생성 방법에 따르면, 자동으로 생성되어지는 소스 코드의 명명 규칙은 소스 코드를 작성하는 작성자가 공통으로 사용되어지는 규칙을 사용하여 개발된 소스 코드의 가독성을 확보하여 유지보수 관리의 용이성이 제공된다.According to the method of automatically generating source code based on service scenarios according to embodiments of the present invention, the naming rule of the automatically generated source code is a source code developed using a rule commonly used by a writer who writes the source code. Easy maintenance and management is provided by securing readability.

본 발명의 실시예들에 따른 서비스 시나리오 기반 소스 코드 자동 생성 방법에 따르면, 자동으로 생성되어지는 소스 코드는 입력과 출력을 기반의 단위 테스트를 기반으로 개발되어지면 단위테스트 결과에 따라 작성되어지는 소스의 동작 시간, 컴퓨터 CPU 점유율, 메모리 사용량에 대한 분석 역할이 제공된다.According to the method of automatically generating source codes based on service scenarios according to embodiments of the present invention, the automatically generated source codes are developed based on unit tests based on input and output and are created according to the unit test results. Analysis of operating time, computer CPU share, and memory usage are provided.

본 발명의 실시예들에 따른 서비스 시나리오 기반 소스 코드 자동 생성 방법에 따르면, 시나리오 기반으로 문장별 기능 리스트로 나누어지며, 자동으로 생성되어지는 코드를 기반으로 개발 업무 분배 효율성이 제공된다.According to the method of automatically generating source codes based on service scenarios according to embodiments of the present invention, function lists for each sentence are divided based on scenarios, and development task distribution efficiency is provided based on automatically generated codes.

본 발명의 실시예들에 따른 서비스 시나리오 기반 소스 코드 자동 생성 방법에 따르면, 자동으로 생성된 소스 코드와 개발에 필요한 기능 내용을 함께 제공되어 개발에 효율성이 높아지며, 작성된 소스 코드가 컴포넌트 데이터베이스에 재등록되어 소스 코드의 재사용이 가능하도록 제공된다.According to the method of automatically generating source code based on service scenarios according to embodiments of the present invention, the automatically generated source code and functional contents necessary for development are provided together to increase efficiency in development, and the created source code is re-registered in the component database. It is provided so that the reuse of the source code is possible.

도 1은 본 발명의 일 실시예에 따라 서비스 시나리오 기반 소스 코드 자동 생성 방법을 구성하기 위한 서버의 예시적인 구성을 도시한 블록도이다.
도 2는 딥러닝 알고리즘 기반 자연어 처리(Natural Language Processing) 중 GPT-2의 개념을 도시한 블록도이다.
도 3은 본 발명의 일 실시예에 따라 서비스 시나리오 기반 소스 코드를 자동으로 생성하는 절차를 도시한 흐름도이다.
1 is a block diagram showing an exemplary configuration of a server for configuring a method for automatically generating source code based on a service scenario according to an embodiment of the present invention.
2 is a block diagram illustrating the concept of GPT-2 among deep learning algorithm-based natural language processing.
3 is a flowchart illustrating a procedure for automatically generating service scenario-based source code according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 일 실시예에 대하여 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 서비스 시나리오에서 소스 코드 자동 생성 방법을 개략적으로 보여주고 있다.1 schematically shows a method for automatically generating source codes in a service scenario according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 소스 코드 자동 생성 시스템은 서비스를 기획한 고객 또는 그 고객으로부터 기획 의도를 전달 받은 상담자가 소스 코드 자동 생성 시스템에 접속하여 시나리오를 입력하면 소스 코드를 자동으로 생성하는 소스 코드 자동 생성 장치(100)를 포함할 수 있다.As shown in FIG. 1, in the automatic source code generation system according to an embodiment of the present invention, when a customer who plans a service or a counselor who has received a planning intention from the customer accesses the automatic source code generation system and inputs a scenario. It may include an automatic source code generation device 100 that automatically generates source code.

소스 코드 자동 생성 장치(100)는 입력된 개발 명세서로부터 함수 단위의 기본 골격 소스 코드를 자동으로 생성하는 장치를 일컫는 것으로서, 예컨대, 유무선 통신망을 통해 접속 가능한 서버의 형태로 구현될 수 있다.The automatic source code generation device 100 refers to a device that automatically generates a basic skeleton source code of a function unit from an input development specification, and may be implemented in the form of a server accessible through a wired or wireless communication network, for example.

참고로, 이러한 소스 코드 자동 생성 장치(100)가 서버의 형태로 구현되는 경우에는, 예컨대, 웹 서버, 데이터베이스 서버, 프록시 서버 등의 형태로 구현될 수 있으며, 네트워크 부하 분산 메커니즘, 내지 서비스 장치가 인터넷 또는 다른 네트워크 상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로도 구현될 수 있다.For reference, when the source code automatic generation device 100 is implemented in the form of a server, it may be implemented in the form of, for example, a web server, database server, proxy server, etc., and a network load balancing mechanism or service device One or more of a variety of software capable of operating on the Internet or other networks may be installed, and through this, a computerized system may be implemented.

이하에서는 소스 코드 자동 생성 장치(100)의 구성과 동작 방식에 대해 보다 구체적으로 설명하기로 한다.Hereinafter, the configuration and operating method of the automatic source code generation device 100 will be described in more detail.

도 1은 본 발명의 일 실시예에 따른 소스 코드 자동 생성 장치(100)의 구성을 보여주고 있다.1 shows the configuration of an apparatus 100 for automatically generating source code according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 소스 코드 자동 생성 장치(100)는 서비스 기획자의 서비스 시나리오를 입력 받는 서비스 시나리오 입력 모듈(110), 입력된 문장을 처리하는 자연어 처리 모듈(120), 기존에 발굴된 컴포넌트 소스 코드를 등록하여 관리하는 컴포넌트 소스 코드 데이터 관리 모듈(130), 등록된 컴포넌트 소스 코드와 비교하여 매칭하는 컴포넌트 소스 코드 매칭 모듈(140), 매칭된 컴포넌트 소스 코드에 자동 생성된 컴포넌트 소스 코드를 삽입하는 자동 소스 코드 생성 모듈(150), 자동 생성된 소스 코드에 대해 수정하는 소스 코드 수정 모듈(160)을 포함하는 구성을 가질 수 있다.As shown in FIG. 1, the automatic source code generation device 100 according to an embodiment of the present invention includes a service scenario input module 110 that receives a service scenario of a service planner, and a natural language processing module that processes input sentences. 120, a component source code data management module 130 that registers and manages previously discovered component source codes, a component source code matching module 140 that compares and matches registered component source codes, and matches component source codes It may have a configuration including an automatic source code generation module 150 for inserting the automatically generated component source code and a source code modification module 160 for modifying the automatically generated source code.

이하에서는 소스 코드 자동 생성 장치(100) 내 각 구성에 대해 보다 구체적으로 설명하기로 한다.Hereinafter, each component of the automatic source code generation device 100 will be described in more detail.

서비스 시나리오 입력 모듈(110)은 서비스 시나리오를 문장 단위로 입력을 받는 기능을 수행한다.The service scenario input module 110 performs a function of receiving an input of a service scenario in sentence units.

보다 구체적으로, 사전 정의된 형식 요소를 기반으로 개발 명세서에서 필요한 의도와 개체를 추출할 수 있도록 입력을 받게 된다.More specifically, it receives input to extract the necessary intents and entities from the development specification based on predefined form elements.

입력된 문장을 처리하는 자연어 처리 모듈(120)은 NLP(Natural Language Processing) 또는 GPT-2 (Generative Pre-Training of a Language Model-2)를 기반으로 하여 의도와 개체를 추출한다.The natural language processing module 120 processing the input sentence extracts an intent and object based on Natural Language Processing (NLP) or Generative Pre-Training of a Language Model-2 (GPT-2).

컴포넌트 소스 코드 데이터 관리 모듈(130)은 소스 코드 자동 생성 장치(100)를 이용하여 생성된 소스 코드 자동 생성 장치(100)의 컴포넌트 결과물을 등록하여 관리한다.The component source code data management module 130 registers and manages component results of the automatic source code generation apparatus 100 generated using the automatic source code generation apparatus 100 .

컴포넌트 소스 코드 매칭 모듈(140)은 컴포넌트 소스 코드 데이터 관리 모듈(130)에 의해 관리되는 컴포넌트를 대상으로 특징 정보와 문장 의도의 유사도를 비교하여 기존 컴포넌트 매칭 결과를 목록화 한다.The component source code matching module 140 compares similarities between feature information and sentence intent for the components managed by the component source code data management module 130 and lists existing component matching results.

자동 소스 코드 생성 모듈(150)은 자연어 처리 모듈(120)에 의해서 추출된 의도와 개체를 기반으로 하여 소스 코드를 매칭된 컴포넌트에 삽입한다.The automatic source code generation module 150 inserts the source code into the matched component based on the intent and entity extracted by the natural language processing module 120 .

소스 코드 수정 모듈(160)은 상기 자동 소스 코드 생성 모듈(150)에 의해 생성된 소스 코드에 개발자가 직접 수정할 수 있는 기능을 수행한다.The source code modification module 160 performs a function for a developer to directly modify the source code generated by the automatic source code generation module 150 .

도 3은 본 발명의 일 실시예에 따라 서비스 시나리오 기반 소스 코드 자동 생성 방법을 구축하기 위한 흐름도이다. 3 is a flowchart for constructing a method for automatically generating source code based on service scenarios according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 예시적인 실시예에서, 서비스 기획자의 서비스 시나리오로부터 문장 단위로 입력 받는 단계(S310)로부터 시작된다. 일 실시예에서, 입력받은 서비스 시나리오는 문장 자체와 사용자 구분 정보, 서비스 시나리오의 특징 정보를 포함하여 저장 할 수 있다. As shown in FIG. 3 , in an exemplary embodiment, the process starts from receiving an input in sentence units from a service scenario of a service planner (S310). In one embodiment, the input service scenario may be stored including the sentence itself, user classification information, and characteristic information of the service scenario.

다음으로 단계(S320)에서, 서비스 시나리오 입력 모듈(110)은 문장 정보를 기준으로 개발 명세서를 기능별로 분석하고, 분류하여 개발 명세서를 생성할 수 있다. Next, in step S320, the service scenario input module 110 may analyze and classify the development specification by function based on sentence information to generate the development specification.

다음으로 단계(S330)에서, 입력된 문장을 처리하는 자연어 처리 모듈(120)은 개발 명세서에서 자연어 처리를 통하여 의도와 개체를 추출하는 자연어 처리 인공지능 알고리즘이 포함되며, 자연어 처리를 위한 사전 학습 과정을 거쳐 인공지능 알고리즘 모델 생성하는 학습 과정을 포함할 수 있다. 추출된 의도와 개체는 개발 명세서의 정보 매칭하고, 의도와 매칭되는 개체 정보와 함께 데이터베이스에 저장 될 수 있다.Next, in step S330, the natural language processing module 120 for processing the input sentence includes a natural language processing artificial intelligence algorithm for extracting intentions and entities through natural language processing in the development specification, and a pre-learning process for natural language processing. It may include a learning process of generating an artificial intelligence algorithm model through. The extracted intent and object may be matched with the information of the development specification and stored in the database together with object information matching the intent.

다음으로 단계(S340)에서, 컴포넌트 소스 코드 데이터 관리 모듈(130)은 데이터베이스 상에 저장된 컴포넌트 소스 코드의 의도와 개체 정보와 입력된 문장을 처리하는 자연어 처리 모듈(120)에서 추출된 의도와 개체 정보를 유사도 비교를 통하여 컴포넌트 소스 코드를 검색할 수 있다. Next, in step S340, the component source code data management module 130 extracts the intent and object information of the component source code stored on the database and the natural language processing module 120 for processing the input sentence and the object information. component source code can be searched through similarity comparison.

다음으로 단계(S350)에서, 컴포넌트 소스 코드 데이터 관리 모듈(130)에 저장된 의도와 개체를 기준으로 구축되어 있던 데이터와 컴포넌트 소스 코드 데이터 관리 모듈(130)에 포함된 단어사전에서 소스 코드상 표기할 단어를 검색하고, 컴포넌트 소스 코드 매칭 모듈(140)에서 소스 코드의 파일명과 함수명, 변수명에 검색된 단어를 생성 할 수 있다Next, in step S350, the data built on the basis of the intent and object stored in the component source code data management module 130 and the word dictionary included in the component source code data management module 130 are marked on the source code. Words are searched, and the searched words can be generated in the file name, function name, and variable name of the source code in the component source code matching module 140.

다음으로 단계(S360)에서, 자동 소스 코드 생성 모듈(150)이 컴포넌트 소스 코드 매칭 모듈(140)에서 생성된 명칭과 컴포넌트 소스 코스에 파일명과 함수명을 부여하고, 새로운 소스 코드를 자동으로 생성할 수 있다. Next, in step S360, the automatic source code generation module 150 assigns a file name and function name to the name and component source course generated by the component source code matching module 140, and automatically generates a new source code. there is.

다음으로 단계(S370)에서, 자동 소스 코드 생성 모듈(150)이 생성한 소스 코드를 소스 코드 수정 모듈(160)을 사용하여 온라인으로 편집하고, 파일이나 데이터베이스로 저장할 수 있다. Next, in step S370, the source code generated by the automatic source code generation module 150 may be edited online using the source code modification module 160 and stored in a file or database.

지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였다. 그러나 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.So far, the present invention has been described in detail with reference to preferred embodiments. However, the present invention is not limited to the above-described embodiments, and various modifications or modifications can be made by anyone having ordinary knowledge in the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims below. The technical spirit of the present invention will extend to this possible scope.

100: 서버
110: 서비스 시나리오 입력 모듈
120: 자연어 처리 모듈
130: 컴포넌트 소스 코드 데이터 관리 모듈
140: 컴포넌트 소스 코드 매칭 모듈
150: 자동 소스 코드 생성 모듈
160: 소스 코드 수정 모듈
100: server
110: service scenario input module
120: natural language processing module
130: component source code data management module
140: component source code matching module
150: automatic source code generation module
160: source code modification module

Claims (2)

서비스 시나리오 기반 소스 코드 자동 생성 시스템 상의 컴퓨팅 장치에서 수행되는 소스 코드 자동 생성 방법으로서,
서비스 시나리오를 입력 받아 개발 명세서를 자동으로 생성하는 단계;
상기 개발 명세서로부터 컴포넌트 소스 코드 데이터베이스를 구축하는 단계; 및
상기 컴포넌트 소스 코드 데이터베이스에 기초하여 소스 코드 자동 생성하는 단계를 포함하고,
상기 개발 명세서를 생성하는 단계는,
서비스 시나리오를 명세서 형식의 문장 단위로 입력 받아 명세서 형식을 점검하고 명세서 요소를 제안하는 단계를 포함하고,
상기 컴포넌트 소스 코드 데이터베이스를 구축하는 단계는,
명세서 형식 문장에 대해 자연어 처리를 통하여 의도와 개체를 추출하는 단계; 및
상기 추출된 의도와 개체를 기반으로 하여 코드 명명 규칙을 자동 생산하고 저장하는 단계;
를 포함하고,
상기 소스 코드 자동 생성하는 단계는,
상기 추출된 의도와 개체에 대해 데이터베이스에 저장된 소스 코드를 검색, 비교하여 컴포넌트의 소스 코드를 매칭하는 단계;
상기 매칭된 컴포넌트의 소스 코드에 자동 생성된 컴포넌트 소스 코드를 삽입하고 저장하는 단계; 및
상기 저장된 소스 코드를 코드 수정 시스템을 이용하여 수정하고 저장하는 단계;
를 포함하는 소스 코드 자동 생성 방법.
A source code automatic generation method performed in a computing device on a service scenario-based source code automatic generation system,
Automatically generating development specifications by receiving service scenarios;
constructing a component source code database from the development specifications; and
Automatically generating source code based on the component source code database;
The step of generating the development specification,
Including the step of receiving the service scenario in sentence units of the specification format, checking the specification format, and suggesting specification elements,
The step of building the component source code database,
Extracting intention and object through natural language processing for specification format sentences; and
automatically generating and storing a code naming rule based on the extracted intent and entity;
including,
The step of automatically generating the source code,
matching source codes of components by searching and comparing source codes stored in a database for the extracted intent and entity;
inserting and storing the automatically generated component source code into the source code of the matched component; and
modifying and storing the stored source code using a code modification system;
How to automatically generate source code that includes.
삭제delete
KR1020210041643A 2021-03-31 2021-03-31 Method for automatically source-code generation based on service scenario KR102511568B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210041643A KR102511568B1 (en) 2021-03-31 2021-03-31 Method for automatically source-code generation based on service scenario

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210041643A KR102511568B1 (en) 2021-03-31 2021-03-31 Method for automatically source-code generation based on service scenario

Publications (2)

Publication Number Publication Date
KR20220135655A KR20220135655A (en) 2022-10-07
KR102511568B1 true KR102511568B1 (en) 2023-03-17

Family

ID=83595405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210041643A KR102511568B1 (en) 2021-03-31 2021-03-31 Method for automatically source-code generation based on service scenario

Country Status (1)

Country Link
KR (1) KR102511568B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102026839B1 (en) * 2018-12-07 2019-09-30 (주)투비소프트 Apparatus and method for providing software development service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102026839B1 (en) * 2018-12-07 2019-09-30 (주)투비소프트 Apparatus and method for providing software development service

Also Published As

Publication number Publication date
KR20220135655A (en) 2022-10-07

Similar Documents

Publication Publication Date Title
US11681877B2 (en) Systems and method for vocabulary management in a natural learning framework
US11093707B2 (en) Adversarial training data augmentation data for text classifiers
Leopold et al. Supporting process model validation through natural language generation
Ben Abdessalem Karaa et al. Automatic builder of class diagram (ABCD): an application of UML generation from functional requirements
US11189269B2 (en) Adversarial training data augmentation for generating related responses
Diamantopoulos et al. Software requirements as an application domain for natural language processing
Mariani et al. Semantic matching of gui events for test reuse: are we there yet?
Kashmira et al. Generating entity relationship diagram from requirement specification based on nlp
US20220414463A1 (en) Automated troubleshooter
Bashir et al. Modeling class diagram using nlp in object-oriented designing
Tahvili et al. Artificial Intelligence Methods for Optimization of the Software Testing Process: With Practical Examples and Exercises
Shilov et al. Machine learning for enterprise modeling assistance: an investigation of the potential and proof of concept
Bader et al. AI in software engineering at Facebook
US20220051126A1 (en) Classification of erroneous cell data
EP4258107A1 (en) Method and system for automated discovery of artificial intelligence and machine learning assets in an enterprise
KR102511568B1 (en) Method for automatically source-code generation based on service scenario
Asyrofi et al. Extraction Dependency Based on Evolutionary Requirement Using Natural Language Processing
Sinpang et al. Detecting ambiguity in requirements analysis using Mamdani fuzzy inference
US11853196B1 (en) Artificial intelligence driven testing
Feldman et al. A cognitive journey for requirements engineering
CN110928535A (en) Derivative variable deployment method, device, equipment and readable storage medium
Ahmed et al. The role of Natural Language Processing in requirement engineering
US20230061773A1 (en) Automated systems and methods for generating technical questions from technical documents
US20240070588A1 (en) Intelligent systems and methods for managing application portfolios
US11263269B2 (en) Expert-system translation of natural-language input into atomic requirements

Legal Events

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