KR20240012835A - An integrated development environment system that analyzes the application source code and diagrams the work flow - Google Patents

An integrated development environment system that analyzes the application source code and diagrams the work flow Download PDF

Info

Publication number
KR20240012835A
KR20240012835A KR1020220090299A KR20220090299A KR20240012835A KR 20240012835 A KR20240012835 A KR 20240012835A KR 1020220090299 A KR1020220090299 A KR 1020220090299A KR 20220090299 A KR20220090299 A KR 20220090299A KR 20240012835 A KR20240012835 A KR 20240012835A
Authority
KR
South Korea
Prior art keywords
information
source code
schematic
integrated development
environment system
Prior art date
Application number
KR1020220090299A
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 KR1020220090299A priority Critical patent/KR20240012835A/en
Publication of KR20240012835A publication Critical patent/KR20240012835A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 어플리케이션 소스코드를 분석하여 업무흐름을 용이하게 파악할 수 있도록 도식화하는 통합개발환경 시스템에 관한 것이다. 본 발명의 실시예에 따른 통합개발환경(Integrated Development Environment) 시스템은, 프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공하는 것으로, 상기 어플리케이션의 상기 소스코드를 확득하고, 상기 소스코드를 파싱(oarsing)하고 분석하여 소스코드 분석정보를 생성하는 분석모듈과, 상기 분석모듈로부터 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 도식화모듈을 포함할 수 있다.The present invention relates to an integrated development environment system that analyzes application source code and diagrams it so that the work flow can be easily understood. The Integrated Development Environment system according to an embodiment of the present invention analyzes the source code of an application composed of a programming language, analyzes the nodes constituting the source code, and provides analysis and design information of the application. , an analysis module that obtains the source code of the application, parses and analyzes the source code to generate source code analysis information, and obtains the source code analysis information from the analysis module, It may include a schematic module that generates schematic information that schematizes the connection tree between the nodes based on the relationship between the constituting nodes.

Description

어플리케이션 소스코드를 분석하여 업무흐름을 도식화하는 통합개발환경 시스템{An integrated development environment system that analyzes the application source code and diagrams the work flow}An integrated development environment system that analyzes the application source code and diagrams the work flow}

본 발명은 어플리케이션 소스코드를 분석하여 업무흐름을 도식화하는 통합개발환경 시스템 및 통합개발방법에 관한 것이다. 보다 구체적으로, 어플리케이션을 이루는 프로그래밍 언어의 소스코드를 분석하여 어플리케이션 개발 완성 후 또는 작업 중에 소스코드의 흐름을 도식화하여 업무 흐름을 용이하게 파악할 수 있는 통합개발환경 시스템 및 통합개발방법에 관한 것이다.The present invention relates to an integrated development environment system and integrated development method that diagrams the workflow by analyzing application source code. More specifically, it relates to an integrated development environment system and integrated development method that can easily understand the work flow by analyzing the source code of the programming language that makes up the application and diagramming the flow of the source code after completing application development or during work.

IT(Information Technology)의 증대로 인해 대부분의 비즈니스가 온라인 중심으로 변화했다. 이에 따라 기업의 시스템들은 보다 더 높은 부하를 처리할 수 있어야 했고, 장애 상황에서도 비즈니스에는 영향을 최소화할 수 있도록 지금도 계속해서 고도화되고 있다. Due to the increase in IT (Information Technology), most businesses have shifted to an online focus. Accordingly, corporate systems had to be able to handle higher loads, and they continue to be upgraded to minimize the impact on business even in the event of a failure.

우리나라 소프트웨어 개발자들이 개발과정에서 분석 및 설계에 활용할만한 방법론이 부족하고, 기존 방법론들로 산출물 간의 연관관계 및 체계가 미흡하다.Korean software developers lack methodologies that can be used for analysis and design during the development process, and existing methodologies lack relationships and systems between outputs.

또한 이렇게 단순 나열된 산출물은 발주자에게 산출물 적정성을 검증할 수 있는 기준으로서의 역할을 하지 못하고 있는 실정이다.In addition, these simply listed outputs do not serve as a standard for the orderer to verify the adequacy of the output.

이를 완화하기 위해 한국정보화진흥원은 <CBD SW개발 표준 산출물 가이드>를 통해 객체지향 및 CBD 개발의 분석, 설계 구현 및 시험 단계별 산출물을 제시하였다.In order to alleviate this problem, the National Information Society Agency presented outputs for each stage of analysis, design implementation, and testing of object-oriented and CBD development through the <CBD SW Development Standard Output Guide>.

이를 통해 표준이 정해지고 프로젝트에서는 이 표준을 토대로 산출물 양식을 수정하거나 추가하여 사용하고 있다.Through this, a standard is established, and the project uses this standard by modifying or adding output forms.

프레임워크에서 제공하는 통합개발환경(Integerated Development Environment)는 산출물 중 소스 코드에 중점을 두어 도식화하여 보여주는 기능을 제공해준다. 또한 소스 코드를 분석을 토대로 산출물을 내보냄으로써 설계 단계에서의 산출물과 쉽게 비교할 수 있으며, 설계 - 구현 사이에서 일어나는 괴리감을 줄일 수 있다.The Integrated Development Environment provided by the framework focuses on the source code of the output and provides a graphical representation function. Additionally, by exporting output based on source code analysis, it is possible to easily compare output from the design stage and reduce the gap between design and implementation.

대한민국 등록특허공보 10-2233894호Republic of Korea Patent Publication No. 10-2233894

본 발명이 해결하고자 하는 과제는 어플리케이션 소스코드를 분석하여 업무흐름을 도식화하는 통합개발환경 시스템 및 통합개발방법을 제공하는 것으로, 어플리케이션을 이루는 프로그래밍 언어의 소스코드를 분석하여 어플리케이션 개발 완성 후 또는 작업 중에 소스코드의 흐름을 도식화하여 업무 흐름을 용이하게 파악할 수 있는 통합개발환경 시스템 및 통합개발방법을 제공하는 것을 목적으로 한다.The problem that the present invention aims to solve is to provide an integrated development environment system and integrated development method that diagrams the work flow by analyzing the application source code. By analyzing the source code of the programming language that makes up the application, the application can be developed after completion or during work. The purpose is to provide an integrated development environment system and integrated development method that can easily understand the work flow by diagramming the flow of source code.

본 발명의 다른 목적 및 이점은 하기의 발명의 상세한 설명, 청구범위 및 도면에 의해 보다 명확하게 된다.Other objects and advantages of the present invention will become clearer from the following detailed description, claims, and drawings.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 통합개발환경 시스템은 프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공하는 것으로, 상기 어플리케이션의 상기 소스코드를 획득하고, 상기 소스코드를 파싱(oarsing)하고 분석하여 소스코드 분석정보를 생성하는 분석모듈과, 상기 분석모듈로부터 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 도식화모듈을 포함할 수 있다.The integrated development environment system according to an embodiment of the present invention to solve the above technical problem analyzes the source code of an application composed of a programming language, analyzes the nodes constituting the source code, and provides analysis and design information of the application. By doing so, an analysis module that acquires the source code of the application, parses and analyzes the source code to generate source code analysis information, and obtains the source code analysis information from the analysis module, It may include a schematic module that generates schematic information diagramming the connection tree between the nodes based on the relationship between the nodes constituting the code.

상기 프로그래밍 언어는 객체지향언어이다.The programming language is an object-oriented language.

상기 프로그래밍 언어는, 자바(JAVA), 자바스크립트(JAVAscript), 파이썬(Python), C++ 중 어느 하나이다.The programming language is any one of Java, JavaScript, Python, and C++.

상기 분석모듈은 프로그래밍 언어 편집부와 소스코드 분석부를 포함할 수 있다.The analysis module may include a programming language editing unit and a source code analysis unit.

상기 프로그래밍 언어 편집부는 상기 프로그래밍 언어에서 상기 소스코드를 추출한다.The programming language editing unit extracts the source code from the programming language.

상기 소스코드 분석부는 상기 소스코드를 파싱하여 상기 소스코드 분석정보를 생성하되, 상기 소스코드 분석정보에는 추상 구문 트리(Abstract Syntax Tree, AST) 정보가 포함된다.The source code analysis unit parses the source code and generates the source code analysis information, and the source code analysis information includes abstract syntax tree (AST) information.

상기 도식화 모듈은 정보수신부, 도식화정보 생성부, 뷰생성부 및 정보출력부를 포함할 수 있다.The schematic module may include an information reception unit, a schematic information generation unit, a view creation unit, and an information output unit.

상기 정보수신부는 상기 분석모듈로부터 상기 소스코드 분석정보를 전송받는다.The information receiver receives the source code analysis information from the analysis module.

상기 도식화정보 생성부는 상기 소스코드 분석정보의 각 노드에 대응하는 도식화노드 데이터를 포함할 수 있다.The schematic information generating unit may include schematic node data corresponding to each node of the source code analysis information.

상기 도식화정보 생성부는 상기 소스코드 분석정보의 각 노드와 상기 도식화도드 데이터를 매칭시켜, 상기 노드들 간의 연결트리를 도식화한 상기 도식화정보를 생성한다.The schematic information generating unit matches each node of the source code analysis information with the schematic node data and generates the schematic information that schematizes the connection tree between the nodes.

상기 뷰생성부는 상기 도식화정보를 사용자에게 디스플레이하도록 오버뷰, 플로우뷰, 아웃라인뷰로 생성한다.The view generator generates an overview, flow view, and outline view to display the schematic information to the user.

상기 오버뷰는 기본정보, 멤버필드정보, 메소드정보를 디스플레이한다.The overview displays basic information, member field information, and method information.

상기 플로우뷰는 흐름/소스 정보, 작업용 메뉴툴바, 노드 보이기/숨기기 기능을 제공한다.The flow view provides flow/source information, a menu toolbar for work, and a node show/hide function.

상기 아웃라인뷰는 노드트리정보와 실행 흐름정보를 디스플레이한다.The outline view displays node tree information and execution flow information.

상기 소스코드와 상기 도식화정보를 기반으로 도식화 이미지를 포함하는 산출물정보를 생성하고 제공하는 산출물모듈을 더 포함할 수 있다.It may further include a product module that generates and provides output information including a schematic image based on the source code and the schematic information.

상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 통합개발방법은, 프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드 들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공하는 것으로, 분석모듈이 상기 어플리케이션의 상기 소스코드를 확득하고, 획득된 상기 소스코드를 파싱(parsing)하고 분석하여 소스코드 분석정보를 생성하는 단계와, 도식화 모듈이 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 단계를 포함할 수 있다.The integrated development method according to an embodiment of the present invention to solve the above technical problem analyzes the source code of an application composed of a programming language, analyzes the nodes constituting the source code, and provides analysis and design information of the application. In this way, the analysis module obtains the source code of the application, parses and analyzes the obtained source code to generate source code analysis information, and the schematic module acquires the source code analysis information. , It may include generating schematic information diagramming the connection tree between the nodes based on the relationship between the nodes constituting the source code.

상기 분석모듈은 프로그래밍 언어 편집부와 소스코드 분석부를 포함할 수 있다.The analysis module may include a programming language editing unit and a source code analysis unit.

상기 소스코드 분석정보를 생성하는 단계는, 상기 프로그래밍 언어 편집부에서 상기 프로그래밍 언어로부터 상기 소스코드를 추출하는 단계와, 상기 소스코드 분석부에서 상기 소스코드를 파싱하여 상기 소스코드 분석정보를 생성하는 단계를 포함하되, 상기 소스코드 분석 정보에는 추상 구문 트리(Abstract Syntax Tree, AST)정보가 포함된다.The step of generating the source code analysis information includes extracting the source code from the programming language in the programming language editing unit, and generating the source code analysis information by parsing the source code in the source code analysis unit. Including, the source code analysis information includes abstract syntax tree (AST) information.

상기 도식화 모듈은 정보수신부, 도식화정보 생성부, 뷰생성부 및 정보출력부를 포함한다.The schematic module includes an information reception unit, a schematic information generation unit, a view creation unit, and an information output unit.

상기 도식화정보 생성부에는 상기 소스코드 분석정보의 각 노드에 대응하는 도식화노드 데이터가 포함된다.The schematic information generating unit includes schematic node data corresponding to each node of the source code analysis information.

상기 도식화정보를 생성하는 단계는, 상기 도식화정보 생성부에서 상기 소스코드 분석정보의 각 노드와 상기 도식화노드 데이터를 매칭시키는 단계와, 상기 노드들 간의 연결트리를 도식화하는 단계를 포함한다.The step of generating the schematic information includes matching each node of the source code analysis information with the schematic node data in the schematic information generation unit, and diagramming a connection tree between the nodes.

상기 소스코드와 상기 도식화정보를 기반으로 도식화 이미지를 포함하는 산출물정보를 생성하고 제공하는 단계를 더 포함한다.It further includes generating and providing output information including a schematic image based on the source code and the schematic information.

본 발명에 의할 경우, 어플리케이션 소스코드를 분석하여 업무흐름을 도식화하는 통합개발환경 시스템 및 통합개발방법을 제공되는 것으로, 어플리케이션을 이루는 프로그래밍 언어의 소스코드를 분석하여 어플리케이션 개발 완성 후 또는 작업 중에 소스코드의 흐름을 도식화하여 업무 흐름을 용이하게 파악할 수 있는 통합개발환경 시스템 및 통합개발방법이 제공된다.According to the present invention, an integrated development environment system and an integrated development method are provided that analyze the application source code and diagram the work flow. By analyzing the source code of the programming language that makes up the application, the source code is developed after completion of application development or during work. An integrated development environment system and integrated development method that can easily understand the work flow by diagramming the flow of code are provided.

도 1은 본 발명의 실시예에 따른 통합개발환경 시스템을 예시적으로 나타내는 것이다.
도 2는 통합개발환경 시스템의 분석모듈을 예시적으로 나타내는 것이고,
도 3은 통합개발환경 시스템의 도식화 모듈을 예시적으로 나타내는 것이다.
도 4는 본 발명의 실시예에 따른 통합개발환경 시스템을 예시적으로 나타내는 것이다.
도 5는 뷰생성부에서 생성되는 오버뷰를 예시적으로 나타낸 것이다.
도 6은 뷰생성부에서 생성되는 플로우뷰를 예시적으로 나타낸 것이다.
도 7은 도식화노드 데이터를 예시적으로 나타낸 것이다.
도 8은 뷰생성부에서 생성되는 아웃라인뷰를 예시적으로 나타낸 것이다.
도 9는 본 발명의 실시예에 따른 통합개발방법의 순서도를 예시적으로 나타낸 것이다.
Figure 1 exemplarily shows an integrated development environment system according to an embodiment of the present invention.
Figure 2 exemplarily shows the analysis module of the integrated development environment system,
Figure 3 exemplarily shows a schematic module of the integrated development environment system.
Figure 4 exemplarily shows an integrated development environment system according to an embodiment of the present invention.
Figure 5 exemplarily shows an overview generated in the view creation unit.
Figure 6 shows an example of a flow view created in the view creation unit.
Figure 7 exemplarily shows schematic node data.
Figure 8 shows an example of an outline view created in the view creation unit.
Figure 9 exemplarily shows a flowchart of an integrated development method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 아래 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 상세히 설명한다. 도면에 관계없이 동일한 부재번호는 동일한 구성요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and will be implemented in various different forms. The present embodiments only serve to ensure that the disclosure of the present invention is complete and that common knowledge in the technical field to which the present invention pertains is not limited. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Specific details for implementing the present invention will be described in detail with reference to the drawings attached below. Regardless of the drawings, the same reference numerals refer to the same elements, and “and/or” includes each and all combinations of one or more of the mentioned items.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for describing embodiments and is not intended to limit the invention. As used herein, singular forms also include plural forms, unless specifically stated otherwise in the context. As used in the specification, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other elements in addition to the mentioned elements.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used with meanings that can be commonly understood by those skilled in the art to which the present invention pertains. Additionally, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless clearly specifically defined.

이하, 본 발명의 일 실시예에 따른 통합개발환경 시스템 및 어플리케이션 통합개발방법을 설명한다. Hereinafter, an integrated development environment system and application integrated development method according to an embodiment of the present invention will be described.

도 1은 본 발명의 실시예에 따른 통합개발환경 시스템을 예시적으로 나타내는 것이고, 도 2는 통합개발환경 시스템의 분석모듈을 예시적으로 나타내는 것이고, 도 3은 통합개발환경 시스템의 도식화 모듈을 예시적으로 나타내는 것이고, 도 4는 본 발명의 실시예에 따른 통합개발환경 시스템을 예시적으로 나타내는 것이고, 도 5는 뷰생성부에서 생성되는 오버뷰를 예시적으로 나타낸 것이고, 도 6은 뷰생성부에서 생성되는 플로우뷰를 예시적으로 나타낸 것이고, 도 7은 도식화노드 데이터를 예시적으로 나타낸 것이고, 도 8은 뷰생성부에서 생성되는 아웃라인뷰를 예시적으로 나타낸 것이고, 도 9는 본 발명의 실시예에 따른 통합개발방법의 순서도를 예시적으로 나타낸 것이다.Figure 1 exemplarily illustrates an integrated development environment system according to an embodiment of the present invention, Figure 2 exemplarily illustrates an analysis module of the integrated development environment system, and Figure 3 illustrates a schematic module of the integrated development environment system. Figure 4 exemplarily shows an integrated development environment system according to an embodiment of the present invention, Figure 5 exemplarily shows an overview generated in the view creation unit, and Figure 6 shows an overview generated in the view creation unit. FIG. 7 exemplarily illustrates the generated flow view, FIG. 7 exemplarily illustrates schematic node data, FIG. 8 exemplarily illustrates the outline view generated in the view creation unit, and FIG. 9 illustrates the implementation of the present invention. This is an exemplary flowchart of the integrated development method according to the example.

먼저, 도 1을 참고하면, 본 발명의 일 실시예에 따른 통합개발환경(Integrated Development Environment, IDE) 시스템은 프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공할 수 있다.First, referring to FIG. 1, the Integrated Development Environment (IDE) system according to an embodiment of the present invention analyzes the source code of an application composed of a programming language, analyzes the nodes constituting the source code, and Application analysis and design information can be provided.

이를 위해, 통합개발환경 시스템(100)은 상기 어플리케이션의 상기 소스코드를 확득하고, 상기 소스코드를 파싱(oarsing)하고 분석하여 소스코드 분석정보를 생성하는 분석모듈(110)과, 상기 분석모듈(110)로부터 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 도식화 모듈(120)을 포함할 수 있다.To this end, the integrated development environment system 100 includes an analysis module 110 that obtains the source code of the application, parses and analyzes the source code to generate source code analysis information, and the analysis module ( It may include a schematic module 120 that obtains the source code analysis information from 110) and generates schematic information diagramming the connection tree between the nodes based on the relationship between the nodes constituting the source code.

본 발명에서 프로그래밍 언어는 어플리케이션 구축의 근간이 되는 요소로써, 객체지향언어 (Object Oriented Language, OOL)이다. 객체지향언어란 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만드는 프로그래밍 언어이다. 본 발명에서 사용가능 한 언어는 자바(JAVA), 자바스크립트(JAVAscript), 파이썬(Python), C++ 중 어느 하나이다. 다만, 설명의 편의상 이하에서는 본 발명의 프로그래밍 언어를 자바(JAVA)라 가정한다.In the present invention, the programming language is an object-oriented language (OOL), which is a fundamental element of application construction. An object-oriented language is a programming language that creates a program with multiple objects and allows them to interact with each other. The language that can be used in the present invention is any one of Java, JavaScript, Python, and C++. However, for convenience of explanation, it is assumed below that the programming language of the present invention is Java.

도 2를 참고하면, 통합개발환경 시스템(100)의 분석모듈(110)은 프로그래밍 언어 편집부(111)와 소스코드 분석부(113)를 포함할 수 있다. 프로그래밍 언어 편집부(111)와 소스코드 분석부(113)는 물리적으로 분리되어 있을 수 있으나, 물리적으로 분리되지 않고, 소프트웨어적인 기능상으로 상호 분리될 수 있다. 또한, 시스템 구성에 따라서는 프로그래밍 언어 편집부(111)와 소스코드 분석부(113)를 합체하여 구성할 수도 있다. 한편, 프로그래밍 언어 편집부(111)와 소스코드 분석부(113)가 물리적 또는 기능적으로 분리되어 있는 경우, 프로그래밍 언어 편집부(111)와 소스코드 분석부(113)는 상호 통신하는 프로그램 모듈을 내장할 수 있다.Referring to FIG. 2, the analysis module 110 of the integrated development environment system 100 may include a programming language editing unit 111 and a source code analysis unit 113. The programming language editing unit 111 and the source code analysis unit 113 may be physically separated, but may not be physically separated, but may be separated from each other in terms of software functionality. Additionally, depending on the system configuration, the programming language editing unit 111 and the source code analysis unit 113 may be combined. On the other hand, if the programming language editing unit 111 and the source code analysis unit 113 are physically or functionally separated, the programming language editing unit 111 and the source code analysis unit 113 may embed program modules that communicate with each other. there is.

프로그래밍 언어 편집부(111)는 자바스크립트 소스 코드를 로딩하는 기능을 수행할 수 있다. 이에 의해, 프로그래밍 언어 편집부(111)는 프로그래밍 언어에서 소스코드를 추출한다.The programming language editing unit 111 may perform a function of loading JavaScript source code. Accordingly, the programming language editing unit 111 extracts the source code from the programming language.

소스코드 분석부(113)는 추출 및 로딩된 소스코드를 파싱(parsing)하여 소스코드 분석정보를 생성 한다. 여기서, 소스코드 분석정보에는 추상구문트리(Abstract Syntax Tree, AST) 정보가 포함된다. 즉, 소스코드 분석부(113)는 소스코드를 파싱하여 추상 구문 트리(AST: Abstract Syntax Tree)로 구성된 소스코드 분석정보를 생성한다. 분석모듈(110)에서 생성된 소스코드 분석정보는 후술할 도식화 모듈(120)로 전송된다.The source code analysis unit 113 generates source code analysis information by parsing the extracted and loaded source code. Here, the source code analysis information includes Abstract Syntax Tree (AST) information. That is, the source code analysis unit 113 parses the source code and generates source code analysis information consisting of an abstract syntax tree (AST). The source code analysis information generated in the analysis module 110 is transmitted to the schematic module 120, which will be described later.

도 3을 참고하면, 통합개발환경 시스템(100)의 도식화 모듈(120)은 정보수신부(121), 도식화정보 생성부(123), 뷰생성부(125) 및 정보출력부(127)를 포함할 수 있다. 정보수신부(121), 도식화정보 생성부(123), 뷰생성부(125) 및 정보출력부(127)는 물리적으로 분리되어 있을 수 있으나, 물리적으로 분리되지 않고, 소프트웨어적인 기능상으로 상호 분리될 수 있다.Referring to FIG. 3, the schematic module 120 of the integrated development environment system 100 may include an information reception unit 121, a schematic information generation unit 123, a view generation unit 125, and an information output unit 127. You can. The information receiving unit 121, the schematic information generating unit 123, the view generating unit 125, and the information output unit 127 may be physically separated, but are not physically separated, and may be separated from each other in terms of software functionality. there is.

또한, 시스템 구성에 따라서는 정보수신부(121), 도식화정보 생성부(123), 뷰생성부(125) 및 정보출력부(127)를 합체하여 구성할 수도 있다. 한편, 정보수신부(121), 도식화정보 생성부(123), 뷰생성부(125) 및 정보출력부(127) 가 물리적 또는 기능적으로 분리되어 있는 경우, 정보수신부(121), 도식화정보 생성부(123), 뷰생성부(125) 및 정보출력부(127)는 상호 통신하는 프로그램 모듈을 내장할 수 있다.In addition, depending on the system configuration, the information receiving unit 121, the schematic information generating unit 123, the view generating unit 125, and the information output unit 127 may be combined to form a configuration. On the other hand, when the information receiving unit 121, the diagramming information generation unit 123, the view generating unit 125, and the information output unit 127 are physically or functionally separated, the information receiving unit 121, the diagramming information generating unit ( 123), the view creation unit 125, and the information output unit 127 may contain program modules that communicate with each other.

정보수신부(121)는 분석모듈(110)로부터 소스코드 분석정보를 전송 받는다. 정보수신부(121)는 전송 받은 소스코드 분석정보를 일시적으로 저장하기 위한 메모리장치를 구비할 수 있다. 또한, 정보수신부(121)는 일시적으로 소스코드 분석정보를 저장하기 위해 시스템큐(queue) 또는 시스템스택 (stack)으로 구성될 수도 있다.The information receiving unit 121 receives source code analysis information from the analysis module 110. The information receiving unit 121 may be provided with a memory device to temporarily store the received source code analysis information. Additionally, the information receiving unit 121 may be configured as a system queue or system stack to temporarily store source code analysis information.

정보수신부(121)가 수신한 소스코드 분석정보는 도식화정보 생성부(123)로 전송된다.The source code analysis information received by the information receiving unit 121 is transmitted to the schematic information generating unit 123.

도식화정보 생성부(123)는 소스코드 분석정보 내의 함수에 관하여 제어 흐름도를 생성할 수 있다. 또한, 도식화정보 생성부(123)는 제어 흐름도를 구성하는 각 노드에 상응하는 변수들 및 함수의 자료형들을 각각 식별할 수 있다.The schematic information generator 123 may generate a control flow diagram regarding functions within the source code analysis information. Additionally, the schematic information generator 123 can identify the data types of variables and functions corresponding to each node constituting the control flow diagram.

통상적으로, 제어 흐름도(control flow graph)는 프로그램에서 실행되는 구문(statements), 명령에 (instructions) 내지 함수의 호출(function calls)을 논리적인 순서대로 연결한 그래프이다.Typically, a control flow graph is a graph that connects statements, instructions, or function calls executed in a program in a logical order.

프로그램은 변수나 상수를 선언하는 선언 구문, 연산을 수행하는 실행 구문과 프로그램의 제어 흐름(control flow)을 결정하는 제어문 등으로 구성된다. 제어문은 무조건 분기, 조건 분기, 루프, 서브루틴, 리턴, 중지와 같은 구문들이다.A program consists of declaration statements that declare variables or constants, execution statements that perform operations, and control statements that determine the control flow of the program. Control statements are statements such as unconditional branch, conditional branch, loop, subroutine, return, and stop.

제어문과 제어문 사이의 선언 구문들 또는 실행 구문들이 노드(node)로 표현된다면, 제어문은 노드와 노드 사이의 연결 관계를 나타내는 브랜치(branch)로 표현될 수 있다. 제어 흐름도는 이렇게 프로그램의 실행에 따른 제어 흐름을 노드들과 브랜치들로 표현할 수 있다. 제어 흐름도는 개발 자에 따라 다양하게 도출될 수 있는데, 어셈블리어 수준의 소스 코드로부터 제어 흐름도를 생성할 수도 있고, 고급의 프로그래밍 언어로 된 소스 코드로부터 추상 문법 트리의 형태로 제어 흐름도를 생성할 수도 있다.If declaration statements or execution statements between control statements are expressed as nodes, control statements can be expressed as branches that represent the connection relationship between nodes. A control flow diagram can express the control flow according to the execution of a program using nodes and branches. Control flow diagrams can be derived in various ways depending on the developer. Control flow diagrams can be generated from source code at the assembly language level, or control flow diagrams can be generated in the form of an abstract grammar tree from source code in a high-level programming language. .

한편, 변수의 생존 범위에 관한 정보는 어떤 노드에서 변수가 선언되거나, 연산자에 의해 연산에 이용되거나 연산의 결과에 의해 변경되는지 알 수 있는 정보이고, 제어 흐름도의 각 노드는 그 노드에 속하는 구문에서 선언된 변수 또는 사용된 변수를 가질 수 있다. Meanwhile, information about the survival range of a variable is information that allows you to know at which node the variable is declared, used in an operation by an operator, or changed by the result of an operation, and each node in the control flow diagram is displayed in the statement belonging to that node. It can have declared variables or used variables.

자바(JAVA)의 자료형은 크게 기본(primitive) 자료형과 복합(composite) 자료형, 특수(special) 자료 형으로 구분된다. 기본 자료형에는 수(number), 문자열(string), 논리형(boolean) 자료형이 있고, 복합 자료형에는 객체(object)와 배열(array)이 있으며, 특수 자료형으로 널(null)과 비정의(undefined) 자료형이 있다.Data types in Java are largely divided into primitive data types, composite data types, and special data types. Basic data types include number, string, and boolean data types. Complex data types include object and array. Special data types include null and undefined. There is a data type.

한편, 복잡하게 얽힌 종속적인 관계를 가지는 변수들과 함수들의 자료형들은 예를 들어 분할 정복 알고리즘(Divide and Conquer Algorithm)을 이용하여 연쇄적으로 추론될 수 있다.Meanwhile, the data types of variables and functions with complex dependent relationships can be serially inferred using, for example, the divide and conquer algorithm.

즉, 상수 값의 할당이나 상수 값들의 연산 결과의 할당에 의해 쉽게 자료형이 추론되지 않는 변수들과 함수들에 관하여, 함수 호출 구문과 변수의 값 할당 구문을 나누고 서로의 종속성을 파악하면 연쇄 추론 순서가 결정될 수 있다. 결정된 순서에 따라 자료형들이 추론될 수 있다.In other words, for variables and functions whose data types cannot be easily inferred by assignment of constant values or assignment of operation results of constant values, chain inference order can be established by dividing function call syntax and variable value assignment syntax and identifying their dependencies. can be decided. Data types can be inferred according to the determined order.

한편, 함수 결과는 함수에 사용된 인자가 함수 결과 값에 영향을 미치는 경우, 함수에 사용된 인 자가 함수 결과값에 영향을 미치지 않는 경우, 또는 함수 인자가 없는 경우를 고려하여 추론될 수 있다.Meanwhile, the function result can be inferred by considering the cases where the arguments used in the function affect the function result value, the cases where the arguments used in the function do not affect the function result value, or the case where there are no function arguments.

함수 결과 값의 자료형은 함수에 사용된 인자가 함수 결과 값에 영향을 미치는 경우에는, 그러한 인자들의 자료형 및 그 변화를 먼저 고려하여, 비록 연쇄 추론이 필요하겠지만, 추론될 수 있다. If the arguments used in the function affect the function result value, the data type of the function result value can be inferred by first considering the data types of those arguments and their changes, although chain inference may be necessary.

함수 결과 값의 자료형은 함수에 사용된 인자가 함수 결과 값에 영향을 미치지 않는 경우나 함수 인자가 없는 경우는, 연쇄 추론이 필요하지 않고, 함수 자체의 연산을 통해 추론될 수 있다.The data type of the function result value does not require chain inference if the arguments used in the function do not affect the function result value or if there are no function arguments, and can be inferred through the operation of the function itself.

소스코드 분석정보는 상술한 체계를 모두 포함하고 있고, 이중 도식화정보 생성부(123)는 소스코드 분석정보중 노드를 중심으로 어플리케이션의 흐름을 도식화할 수 있다.The source code analysis information includes all of the above-described systems, and the schematic information generation unit 123 can diagram the flow of the application centered on the nodes among the source code analysis information.

이를 위해, 도식화정보 생성부(123)는 소스코드 분석정보에 포함된 각 노드에 대응하는 도식화노드 데이터(도 7참고)를 포함할 수 있다. 도식화노드 데이터는 도식화정보 생성부(123)에 저장될 수도 있고, 도식화정보 생성부(123) 외부에 분리된 저장부에 별도로 저장될 수도 있다. 외부에 저장 될 경우, 도식화정보 생성부(123)는 도식화노드 데이터를 호출하여 사용할 수 있다. To this end, the schematic information generating unit 123 may include schematic node data (see FIG. 7) corresponding to each node included in the source code analysis information. The schematic node data may be stored in the schematic information generation unit 123, or may be separately stored in a separate storage unit outside the schematic information generation unit 123. When stored externally, the schematic information generation unit 123 can call and use the schematic node data.

도식화정보 생성부(123)는 소스코드 분석정보의 각 노드와 상기 도식화노드 데이터를 매칭시켜, 상기 노드들 간의 연결트리를 도식화하여 도식화정보를 생성할 수 있다. The schematic information generator 123 may match each node of the source code analysis information with the schematic node data, and generate schematic information by diagramming the connection tree between the nodes.

예를 들어, 도 7을 참고 하면, 소스코드 분석정보에 포함된 노드가 조건문인 ‘if’에 해당하는 경우, 도 7에 예시된 도식화노드 데이터에서 if에 해당하는 노드이미지를 찾아, if에 해당하는 노드를 if의 도식화 이미지로 매칭 시키는 것이다. 또한, 소스코드 분석정보에 포함된 노드가 For반복문인 ‘for’에 해당하는 경우, 도 7에 예시된 도식화노드 데이터중 for에 해당하는 노드이미지를 찾아, for에 해당하는 노드를 for의 도식화 이미지로 매칭시키는 것이다.For example, referring to Figure 7, if the node included in the source code analysis information corresponds to the conditional statement 'if', find the node image corresponding to if in the schematic node data illustrated in Figure 7 and correspond to if. Matching the node with the schematic image of if. In addition, if the node included in the source code analysis information corresponds to 'for', a For loop statement, find the node image corresponding to for among the schematic node data illustrated in Figure 7, and convert the node corresponding to for into the schematic image of for. It is matched with .

이와 같은 방식으로, 소스코드 분석정보에 포함된 각각의 노드를 도식화노드 데이터의 노드이미지로 매칭시키고, 매칭이 완료되면, 소스코드 분석정보를 노드이미지가 연결트리로 도식화된 도식화정보로 생성된다. 이에 의해, 도식화정보 생성부(123)는 소스코드 분석정보의 각 노드가 도식화된 도식화정보를 생성하는 것이다.In this way, each node included in the source code analysis information is matched with the node image of the schematic node data, and when matching is completed, the source code analysis information is generated as schematic information in which the node image is schematized as a connection tree. Accordingly, the diagram information generating unit 123 generates diagram information in which each node of the source code analysis information is diagrammed.

계속해서, 도식화정보가 뷰생성부(125)로 전달된다. 뷰생성부(125)는 도식화정보를 사용자에게 디스플레이하도록 오버뷰, 플로우뷰, 아웃라인뷰로 생성한다. 뷰생성부(125)는 도식화정보를 이용하여 사용자 인터페이스를 제공하는 것으로, 개발자들은 뷰생성부에 의해 디스플레이되는 오버뷰, 플로우뷰, 아웃라인뷰를 통해, 어플리케이션의 실행 흐름, 설계 구조 등을 파악할 수 있다.Subsequently, schematic information is transmitted to the view creation unit 125. The view generator 125 generates schematic information as an overview, flow view, and outline view to display it to the user. The view generator 125 provides a user interface using schematic information, and developers can understand the execution flow and design structure of the application through the overview, flow view, and outline view displayed by the view generator. there is.

또한, 본 발명의 통합개발환경 시스템(100)은 완성된 어플리케이션에도 적용가능하나, 설계 및 코딩 작업 중인 어플리케이션에도 적용가능 하다. 즉, 본 발명의 통합개발환경 시스템(100)은 실시간으로 작성중인 어플리케이션 코드의 노드를 도식화하여 개발자에게 제공할 수 있다. In addition, the integrated development environment system 100 of the present invention can be applied not only to completed applications, but also to applications in progress of design and coding. In other words, the integrated development environment system 100 of the present invention can diagram the nodes of the application code being written in real time and provide it to the developer.

이에 의해, 개발자는 실시간으로 어플리케이션의 실행 흐름을 체크할 수 있어, 개발 및 코딩 상의 오류가 있다고 판단되는 경우, 실시간으로 작업 중인 어플리케이션의 설계를 수정할 수 있다. 즉, 본 발명의 통합 개발환경 시스템(100)은 어플리케이션 개발에 획기적인 기여를 할 수 있다.As a result, developers can check the execution flow of the application in real time, and if it is determined that there are errors in development and coding, they can modify the design of the application they are working on in real time. In other words, the integrated development environment system 100 of the present invention can make a groundbreaking contribution to application development.

도 5를 참고하면, 뷰생성부(125)는 오버뷰를 제공한다. 오버뷰는 기본정보(501), 멤버필드정보(502), 메소드정보(503)를 제공할 수 있다. 이는 도 5에 예시적인 창으로 나타나 있다. 한편, 기본정보 (501)에서는 작성된 클래스의 기본 정보 또는 패키지 정보를 확인할 수 있다. 멤버필드정보(502) 에서는 클래스가 가지고 있는 멤버 필드 목록을 확인할 수 있다. 메소드정보(503)에서는 클래스가 가지고 있는 메소드 목록을 확인할 수 있다.Referring to FIG. 5, the view generator 125 provides an overview. The overview can provide basic information (501), member field information (502), and method information (503). This is shown as an example window in Figure 5. Meanwhile, in basic information 501, you can check the basic information or package information of the created class. In member field information 502, you can check the list of member fields that the class has. In method information 503, you can check the list of methods that the class has.

한편, 오버뷰의 메소드 목록 중 보고자 하는 메소드를 더블 클릭하면 후술할 플로우뷰를 통해 해당 메소드가 도식화된 것을 확인할 수 있다. 이때, 플로우뷰는 사용자가 필요 혹은 불필요한 정보를 필터링하여 볼 수 있으며, 노드이미지를 더블클릭 할 경우 소스로 이동하여 구현체를 바로 확인 할 수도 있다.Meanwhile, if you double-click the method you want to view among the method list in the overview, you can see that the method is diagrammed through the flow view, which will be described later. At this time, the flow view allows the user to filter and view necessary or unnecessary information, and when double-clicking the node image, the user can go to the source and check the implementation immediately.

도 6을 참고하면, 뷰생성부(125)는 플로우뷰를 제공한다. 플로우뷰는 흐름/소스 정보(601), 작업용 메뉴툴바(602), 노드 보이기/숨기기 기능, 기본정보(603), 뷰어(604)를 제공할 수 있다.Referring to FIG. 6, the view generator 125 provides a flow view. Flow View can provide flow/source information (601), work menu toolbar (602), node show/hide function, basic information (603), and viewer (604).

흐름/소스 정보(601)를 통해 소스에 대한 흐름도 및 소스 코드를 확인할 수 있다.You can check the flow chart and source code for the source through flow/source information 601.

작업용 메뉴툴바(602)는 작업 공간 상단에 위치하고, 사용자의 편의를 위한 메뉴가 위치할 수 있다. 노드 보이기/숨기기 기능은 작업 공간에서 특정 노드(if, switch, for, while, do-while, 사용자 코드 영역, getBean)를 숨길 수 있는 기능을 제공한다. 이미지 내보내기는 작업 공간에서 작성된 플 로우(flow)를 이미지로 내보내기 할 수 있다. 인쇄는 작업 공간에서 작성된 플로우를 인쇄하여 출력물로 내보내기 할 수 있다. 노드 모두 펼치기/접기는 모든 노드에 대해서 펼치기/접기 기능을 제공한다. Zoom은 작업 공간의 보기 배율을 조절할 수 있다.The work menu toolbar 602 is located at the top of the work space, and a menu for user convenience may be located. The node show/hide function provides the ability to hide specific nodes (if, switch, for, while, do-while, user code area, getBean) in the workspace. Image export allows you to export the flow created in the workspace as an image. Printing allows you to print the flow created in the workspace and export it as a printout. Expand/Collapse All Nodes provides the expand/collapse function for all nodes. Zoom allows you to adjust the viewing magnification of your workspace.

기본 정보(603) 메뉴에서는 메소드에 대한 접근제어자, 논리 이름, 메소드 이름, 입/출력 타입을 간단하게 확인할 수 있으며, 뷰어(604)에서는 상단 탭에 따라 흐름/소스 코드를 확인 할 수 있다.In the basic information (603) menu, you can easily check the access controller, logical name, method name, and input/output type for the method, and in the viewer (604), you can check the flow/source code according to the top tab.

도 7을 참고하면, 뷰생성부(125)는 아웃라인뷰를 제공한다. 아웃라인뷰는 노드트리정보(801)와 실행 흐름정보(802)를 디스플레이할 수 있다. 노드트리정보(801)는 각 노드들을 노드이미지로 변환하여 연결트리로 표현한다. 실행 흐름정보(802)는 어플리케이션 흐름도 상의 현 실행 위치를 표현한다.Referring to FIG. 7, the view generator 125 provides an outline view. The outline view can display node tree information 801 and execution flow information 802. Node tree information 801 converts each node into a node image and expresses it as a connection tree. Execution flow information 802 expresses the current execution position on the application flowchart.

도 3을 참고하면, 생성된 도식화정보는 정보출력부(127)를 통해 도식화 모듈(120)의 외부로 전송된다. 예를 들어, 도식화정보는 정보출력부(127)를 통해 산출물모듈(130)로 전송될 수 있다.Referring to FIG. 3, the generated schematic information is transmitted to the outside of the schematic module 120 through the information output unit 127. For example, schematic information may be transmitted to the output module 130 through the information output unit 127.

도 4를 참고하면, 본 발명의 통합개발환경 시스템(100)은 소스코드와 상기 도식화정보를 기반으로 도식화 이미지를 포함하는 산출물정보를 생성하고 제공하는 산출물모듈(130)을 더 포함할 수 있다.Referring to FIG. 4, the integrated development environment system 100 of the present invention may further include a product module 130 that generates and provides output information including a schematic image based on source code and the schematic information.

즉, 산출물모듈(130)은 전달받은 모델을 통해 소스코드, 도식화된 노드이미지를 담고 있는 도식화 정보, 컴포넌트 설계서, 컴포넌트 프로그램 설계서 등 4가지 정보를 포함하는 산출물정보를 생성하고 이를 내보낼 수 있다. 여기서, 컴포넌트 설계서는 서비스, Bean, DBIO, IO 클래스를 정의하며, 컴포넌트 프로그램 설계서는 서비스, Bean의 메소드에서 처리할 내용을 정의한다. 산출물정보는 스프레드시트 형식으로 출력될 수 있다. 예를 들어, 산출물정보는 Microsoft사의 Excel프로그램에서 런칭 가능한 *.xlsx"형식으로 출력될 수 있다.In other words, the output module 130 can generate and export output information including four types of information, such as source code, schematic information containing schematic node images, component design, and component program design, through the received model. Here, the component design document defines services, beans, DBIO, and IO classes, and the component program design document defines content to be processed in the service and bean methods. Output information can be output in spreadsheet format. For example, output information can be output in *.xlsx" format, which can be launched in Microsoft's Excel program.

다음으로, 본 발명의 일 실시예에 따른 통합개발(Integrated Development)방법을 설명한다. 이전 실시예의 통합개발환경 시스템과 본 실시예의 통합개발방법에 공통 기술된 구성요소는 실질적으로 동일한 기능 및 효과를 갖는 바, 반복되는 설명은 생략하기로 한다.Next, an integrated development method according to an embodiment of the present invention will be described. Components commonly described in the integrated development environment system of the previous embodiment and the integrated development method of the present embodiment have substantially the same functions and effects, so repeated descriptions will be omitted.

본 발명의 통합개발방법은 프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공할 수 있다.The integrated development method of the present invention can analyze the source code of an application composed of a programming language, analyze nodes constituting the source code, and provide analysis and design information of the application.

도 9를 참고하면, 본 발명의 통합개발방법은, 분석모듈(110)이 상기 어플리케이션의 상기 소스코드를 확득하고, 획득된 상기 소스코드를 파싱(oarsing)하고 분석하여 소스코드 분석정보를 생성하는 단계(S11, S12)와, 도식화 모듈(120)이 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구 성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 단계(S13)를 포함할 수 있다.Referring to Figure 9, in the integrated development method of the present invention, the analysis module 110 obtains the source code of the application, parses and analyzes the obtained source code, and generates source code analysis information. Steps (S11, S12), and the schematic module 120 obtains the source code analysis information and generates schematic information that diagrams the connection tree between the nodes based on the relationship between the nodes constituting the source code. It may include step S13.

상술한 바와 같이, 분석모듈(110)은 프로그래밍 언어 편집부(111)와 소스코드 분석부(113)를 포함할 수 있다. 소스코드 분석정보를 생성하는 단계는, 상기 프로그래밍 언어 편집부에서 상기 프로그래밍 언어로부터 상기 소스코드를 추출하는 단계(S11)와, 상기 소스코드 분석부(113)에서 상기 소스코드를 파싱하여 상기 소스코드 분석정보를 생성하는 단계(S12)를 포함할 수 있다. 여기서, 상기 소스코드 분석정보에는 추상 구문 트리(Abstract Syntax Tree, AST) 정보가 포함될 수 있다.As described above, the analysis module 110 may include a programming language editing unit 111 and a source code analysis unit 113. The step of generating source code analysis information includes extracting the source code from the programming language in the programming language editing unit (S11), and analyzing the source code by parsing the source code in the source code analysis unit 113. It may include a step of generating information (S12). Here, the source code analysis information may include abstract syntax tree (AST) information.

다음으로, 도식화 모듈(120)은 정보수신부(121), 도식화정보 생성부(123), 뷰생성부(125) 및 정보출력부(127)를 포함할 수 있다. 여기서, 도식화정보 생성부(123)에는 상기 소스코드 분석정보의 각 노드에 대응하는 도식화노드 데이터가 포함될 수 있다.Next, the schematic module 120 may include an information reception unit 121, a schematic information generator 123, a view generator 125, and an information output unit 127. Here, the schematic information generating unit 123 may include schematic node data corresponding to each node of the source code analysis information.

도식화정보를 생성하는 단계(S13)는, 상기 도식화정보 생성부에서 상기 소스코드 분석정보의 각 노드와 상기 도식화노드 데이터를 매칭시키는 단계와, 상기 노드들 간의 연결트리를 도식화하는 단계를 포함할 수 있다. 이에 의해, 소스코드 분석정보에 포함된 각각의 노드는 노드이미지로 변경될 수 있다. 이러한 노드이미지를 바탕으로 도식화된 연결트리가 생성되고, 도식화정보가 생성되는 것이다. The step of generating schematic information (S13) may include matching each node of the source code analysis information with the schematic node data in the schematic information generation unit, and diagramming a connection tree between the nodes. there is. As a result, each node included in the source code analysis information can be changed to a node image. Based on these node images, a schematic connection tree is created and schematic information is created.

계속해서, 소스코드와 도식화정보를 기반으로 도식화 이미지를 포함하는 산출물정보가 산출물모듈(130)에서 생성(S14)된다. 생성된 산출물정보는 스프레드시트 형식으로 사용자에게 제공될 수 있다.Subsequently, output information including a schematic image is generated in the output module 130 based on the source code and schematic information (S14). The generated output information can be provided to users in spreadsheet format.

이상 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above, the present invention is not limited to the above embodiments and can be manufactured in various different forms, and those skilled in the art will understand the technical idea of the present invention. It will be understood that it can be implemented in other specific forms without changing the essential features. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive.

100: 통합개발환경 시스템 110: 분석모듈
120: 도식화 모듈 111: 프로그래밍 언어 편집부
113: 소스코드 분석부 121: 정보수신부
123: 도식화정보 생성부 125: 뷰생성부
127: 정보출력부 130: 산출물모듈
100: Integrated development environment system 110: Analysis module
120: Schematic module 111: Programming language editing department
113: Source code analysis unit 121: Information reception unit
123: Schematic information generation unit 125: View generation unit
127: Information output unit 130: Output module

Claims (22)

프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공하는 통합개발환경(Integrated Development Environment) 시스템에 있어서,
상기 어플리케이션의 상기 소스코드를 확득하고, 상기 소스코드를 파싱(oarsing)하고 분석하여 소스코드 분석정보를 생성하는 분석모듈과,
상기 분석모듈로부터 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 도식화모듈을 포함하는, 통합개발환경 시스템.
In an Integrated Development Environment system that analyzes the source code of an application composed of a programming language, analyzes the nodes constituting the source code, and provides analysis and design information of the application,
an analysis module that obtains the source code of the application, parses and analyzes the source code, and generates source code analysis information;
An integrated development environment system comprising a schematic module that obtains the source code analysis information from the analysis module and generates schematic information that schematizes the connection tree between the nodes based on the relationship between the nodes constituting the source code.
제1 항에 있어서,
상기 프로그래밍 언어는 객체지향언어인 것을 특징으로 하는 통합개발환경 시스템.
According to claim 1,
An integrated development environment system, wherein the programming language is an object-oriented language.
제2 항에 있어서,
상기 프로그래밍 언어는, 자바(JAVA), 자바스크립트(JAVAscript), 파이썬(Python), C++ 중 어느 하나인 것을 특징으로 하는 통합개발환경 시스템.
According to clause 2,
The programming language is an integrated development environment system, characterized in that one of Java, JavaScript, Python, and C++.
제1 항에 있어서,
상기 분석모듈은 프로그래밍 언어 편집부와 소스코드 분석부를 포함하는 통합개발환경 시스템.
According to claim 1,
The analysis module is an integrated development environment system that includes a programming language editing unit and a source code analysis unit.
제4 항에 있어서,
상기 프로그래밍 언어 편집부는 상기 프로그래밍 언어에서 상기 소스코드를 추출하는 것을 특징으로 하는 통합개발환경 시스템.
According to clause 4,
An integrated development environment system, wherein the programming language editing unit extracts the source code from the programming language.
제4 항에 있어서,
상기 소스코드 분석부는 상기 소스코드를 파싱하여 상기 소스코드 분석정보를 생성하되,
상기 소스코드 분석정보에는 추상 구문 트리(Abstract Syntax Tree, AST) 정보가 포함된 것을 특징으로 하는 통합개발환경 시스템.
According to clause 4,
The source code analysis unit parses the source code and generates the source code analysis information,
An integrated development environment system, characterized in that the source code analysis information includes abstract syntax tree (AST) information.
제1 항에 있어서,
상기 도식화 모듈은 정보수신부, 도식화정보 생성부, 뷰생성부 및 정보출력부를 포함하는 통합개발환경 시스템.
According to claim 1,
The schematic module is an integrated development environment system including an information reception unit, a schematic information generation unit, a view creation unit, and an information output unit.
제7 항에 있어서,
상기 정보수신부는 상기 분석모듈로부터 상기 소스코드 분석정보를 전송받는 것을 특징으로 하는 통합개발환경 시스템.
According to clause 7,
The information receiver is an integrated development environment system characterized in that the source code analysis information is transmitted from the analysis module.
제7 항에 있어서,
상기 도식화정보 생성부는 상기 소스코드 분석정보의 각 노드에 대응하는 도식화노드 데이터를 포함하는 것을 특징으로 하는 통합개발환경 시스템.
According to clause 7,
The schematic information generation unit is an integrated development environment system characterized in that it includes schematic node data corresponding to each node of the source code analysis information.
제9 항에 있어서,
상기 도식화정보 생성부는 상기 소스코드 분석정보의 각 노드와 상기 도식화도드 데이터를 매칭시켜,
상기 노드들 간의 연결트리를 도식화한 상기 도식화정보를 생성하는 것을 특징으로 하는 통합개발환경 시스템.
According to clause 9,
The schematic information generation unit matches each node of the source code analysis information with the schematic node data,
An integrated development environment system characterized by generating the schematic information diagramming the connection tree between the nodes.
제7 항에 있어서,
상기 뷰생성부는 상기 도식화정보를 사용자에게 디스플레이하도록 오버뷰, 플로우뷰, 아웃라인뷰로 생성하는 것을 특징으로 하는 통합개발환경 시스템.
According to clause 7,
The view creation unit is an integrated development environment system characterized in that it generates an overview, flow view, and outline view to display the schematic information to the user.
제11 항에 있어서,
상기 오버뷰는 기본정보, 멤버필드정보, 메소드정보를 디스플레이하는 것을 특징으로 하는 통합개발환경 시스템.
According to claim 11,
The overview is an integrated development environment system characterized in that it displays basic information, member field information, and method information.
제11 항에 있어서,
상기 플로우뷰는 흐름/소스 정보, 작업용 메뉴툴바, 노드 보이기/숨기기 기능을 제공하는 것을 특징으로 하는 통합개발환경 시스템.
According to claim 11,
The flow view is an integrated development environment system characterized in that it provides flow/source information, a menu toolbar for work, and a node show/hide function.
제11 항에 있어서,
상기 아웃라인뷰는 노드트리정보와 실행 흐름정보를 디스플레이하는 것을 특징으로 하는 통합개발환경 시스템.
According to claim 11,
The outline view is an integrated development environment system characterized in that it displays node tree information and execution flow information.
제1 항에 있어서,
상기 소스코드와 상기 도식화정보를 기반으로 도식화 이미지를 포함하는 산출물정보를 생성하고 제공하는 산출물모듈을 더 포함하는 통합개발환경 시스템.
According to claim 1,
An integrated development environment system further comprising a product module that generates and provides output information including a schematic image based on the source code and the schematic information.
프로그래밍 언어로 구성된 어플리케이션의 소스코드를 분석하여 상기 소스코드를 구성하는 노드 들을 분석하고 상기 어플리케이션의 분석 및 설계정보를 제공하는 통합개발(Integrated Development)방법에 있어서,
분석모듈이 상기 어플리케이션의 상기 소스코드를 확득하고, 획득된 상기 소스코드를 파싱(parsing)하고 분석하여 소스코드 분석정보를 생성하는 단계와,
도식화 모듈이 상기 소스코드 분석정보를 획득하여, 상기 소스코드를 구성하는 노드들의 관계를 바탕으로 상기 노드들 간의 연결트리를 도식화한 도식화정보를 생성하는 단계를 포함하는, 어플리케이션 통합개발방법..
In the integrated development method of analyzing the source code of an application composed of a programming language, analyzing the nodes constituting the source code, and providing analysis and design information of the application,
An analysis module obtaining the source code of the application, parsing and analyzing the obtained source code, and generating source code analysis information;
An integrated application development method comprising the step of a schematic module acquiring the source code analysis information and generating schematic information diagramming a connection tree between the nodes based on the relationship between the nodes constituting the source code.
제16 항에 있어서,
상기 분석모듈은 프로그래밍 언어 편집부와 소스코드 분석부를 포함하는 어플리케이션 통합개발방법.
According to claim 16,
The analysis module is an application integrated development method including a programming language editing unit and a source code analysis unit.
제17항에 있어서,
상기 소스코드 분석정보를 생성하는 단계는,
상기 프로그래밍 언어 편집부에서 상기 프로그래밍 언어로부터 상기 소스코드를 추출하는 단계와, 상기 소스코드 분석부에서 상기 소스코드를 파싱하여 상기 소스코드 분석정보를 생성하는 단계를 포함하되,
상기 소스코드 분석 정보에는 추상 구문 트리(Abstract Syntax Tree, AST)정보가 포함되는 것을 특징으로 하는 어플리케이션 통합개발방법.
According to clause 17,
The step of generating the source code analysis information is,
Extracting the source code from the programming language in the programming language editing unit, and parsing the source code in the source code analysis unit to generate the source code analysis information,
An application integrated development method, characterized in that the source code analysis information includes abstract syntax tree (AST) information.
제16 항에 있어서,
상기 도식화 모듈은 정보수신부, 도식화정보 생성부, 뷰생성부 및 정보출력부를 포함하는 어플리케이션 통합개발방법.
According to claim 16,
The schematic module is an application integrated development method including an information reception unit, a schematic information generation unit, a view creation unit, and an information output unit.
제19 항에 있어서,
상기 도식화정보 생성부에는 상기 소스코드 분석정보의 각 노드에 대응하는 도식화노드 데이터가 포함되는 것을 특징으로 하는 어플리케이션 통합개발방법.
According to clause 19,
An application integrated development method, characterized in that the schematic information generation unit includes schematic node data corresponding to each node of the source code analysis information.
제20 항에 있어서,
상기 도식화정보를 생성하는 단계는,
상기 도식화정보 생성부에서 상기 소스코드 분석정보의 각 노드와 상기 도식화노드 데이터를 매칭시키는 단계와,
상기 노드들 간의 연결트리를 도식화하는 단계를 포함하는 어플리케이션 통합개발방법.
According to claim 20,
The step of generating the schematic information is,
Matching each node of the source code analysis information with the schematic node data in the schematic information generation unit;
An application integrated development method including the step of diagramming a connection tree between the nodes.
제16 항에 있어서,
상기 소스코드와 상기 도식화정보를 기반으로 도식화 이미지를 포함하는 산출물정보를 생성하고 제공하는 단계를 더 포함하는 어플리케이션 통합개발방법.

According to claim 16,
An application integrated development method further comprising generating and providing output information including a schematic image based on the source code and the schematic information.

KR1020220090299A 2022-07-21 2022-07-21 An integrated development environment system that analyzes the application source code and diagrams the work flow KR20240012835A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220090299A KR20240012835A (en) 2022-07-21 2022-07-21 An integrated development environment system that analyzes the application source code and diagrams the work flow

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220090299A KR20240012835A (en) 2022-07-21 2022-07-21 An integrated development environment system that analyzes the application source code and diagrams the work flow

Publications (1)

Publication Number Publication Date
KR20240012835A true KR20240012835A (en) 2024-01-30

Family

ID=89715291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220090299A KR20240012835A (en) 2022-07-21 2022-07-21 An integrated development environment system that analyzes the application source code and diagrams the work flow

Country Status (1)

Country Link
KR (1) KR20240012835A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102233894B1 (en) 2019-10-10 2021-03-30 에스케이텔레콤 주식회사 Network function and method for processing request using the same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102233894B1 (en) 2019-10-10 2021-03-30 에스케이텔레콤 주식회사 Network function and method for processing request using the same

Similar Documents

Publication Publication Date Title
US8091071B2 (en) Method and system for template-based code generation
US20040111702A1 (en) Method and apparatus for visual programming
US20060075305A1 (en) Method and system for source-code model-based testing
KR101099173B1 (en) System and method for building software suite
KR20110023755A (en) Integration environment generator
García-Domínguez et al. EUnit: a unit testing framework for model management tasks
US20210263834A1 (en) Code Generation Platform
US20070061780A1 (en) Enterprise resource planning system test framework
EP1662383A2 (en) Prescriptive architecture for application development
Tisi et al. Improving higher-order transformations support in ATL
US20140223413A1 (en) Method for visual manipulations of all kinds of programming objects
US20140229924A1 (en) Automatic configuration of project system from project capabilities
US20080256509A1 (en) Pattern-based programming system for automatic code generation
Freeman Essential TypeScript 5
US20050137839A1 (en) Methods, apparatus and programs for system development
Garcia et al. Bootstrapping mde development from ros manual code-part 2: Model generation
US20050251796A1 (en) Automatic identification and reuse of software libraries
CN117311683B (en) Code auxiliary system, code auxiliary processing method and device and electronic equipment
KR20240012835A (en) An integrated development environment system that analyzes the application source code and diagrams the work flow
Rahman et al. A DSL for importing models in a requirements management system
WO2008015110A2 (en) Methods, apparatus and computer programs for modelling computer programs
Meedeniya et al. SD2CPN: A model transformation tool for software design models
Funk et al. From uml to ansi-c-an eclipse-based code generation framework
Samson et al. Automatic generation of test oracles from component based software architectures
US20230281482A1 (en) Systems and methods for rule-based machine learning model promotion