KR100946763B1 - Method and device for generating of code - Google Patents

Method and device for generating of code Download PDF

Info

Publication number
KR100946763B1
KR100946763B1 KR1020080071783A KR20080071783A KR100946763B1 KR 100946763 B1 KR100946763 B1 KR 100946763B1 KR 1020080071783 A KR1020080071783 A KR 1020080071783A KR 20080071783 A KR20080071783 A KR 20080071783A KR 100946763 B1 KR100946763 B1 KR 100946763B1
Authority
KR
South Korea
Prior art keywords
information
level
code
component
generating
Prior art date
Application number
KR1020080071783A
Other languages
Korean (ko)
Other versions
KR20100010758A (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 KR1020080071783A priority Critical patent/KR100946763B1/en
Publication of KR20100010758A publication Critical patent/KR20100010758A/en
Application granted granted Critical
Publication of KR100946763B1 publication Critical patent/KR100946763B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

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

Abstract

코드 생성 방법 및 장치가 개시된다. 본 발명의 일 실시예에 따르면, 코드 생성 장치가 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하는 방법에 있어서, 개발하고자 하는 모듈에 대한 각 레벨(level)을 인식하기 위해 계층적으로 그래프 정보를 입력받는 단계; 상기 그래프 정보를 파싱하여 각 레벨별 구성 정보를 추출하는 단계-상기 레벨별 구성 정보는 동작되는 동작 레벨에 대한 정보, 상기 동작 레벨에서 동작될 복수의 컴포넌트에 대한 정보 및 상기 컴포넌트가 동작될 계층에 대한 정보를 포함함; 및 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 상기 레벨별 구성 정보를 이용하여 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성하는 단계를 포함하는 코드 생성 방법이 제공될 수 있다. 스위치 개념을 이용하여 자가 적응 모듈에서 각 단계별 컴포넌트를 활성화/비활성화하여 시스템의 리소스 사용량을 줄일 수 있다.A method and apparatus for generating code is disclosed. According to an embodiment of the present invention, in a method of generating a code of a module operated by a code generating device as a part of a computer system, the graph information is hierarchically to recognize each level of a module to be developed. Receiving an input; Parsing the graph information to extract configuration information for each level, wherein the configuration information for each level includes information on an operation level to be operated, information about a plurality of components to be operated at the operation level, and a layer to which the component is to be operated. Contains information about; And generating a template code to activate a plurality of components in a plurality of hierarchies according to each level by using the received replacement component information, code structure information, and configuration information for each level. . Using the switch concept, self-adapting modules can enable / disable components at each level to reduce system resource usage.

코드, code, 생성 Code, code

Description

코드 생성 방법 및 장치{Method and device for generating of code}Method and device for generating of code

본 발명은 코드 자동화에 관한 것으로, 보다 상세하게 자가 적응 모듈을 위한 코드를 생성하는 방법 및 장치에 관한 것이다. The present invention relates to code automation, and more particularly, to a method and apparatus for generating code for a self-adaptive module.

컴퓨팅 환경이 점점 복잡해지면서 시스템에서 발생할 수 있는 문제들을 분석하고 그것을 해결하는 것이 점점 어려워지고 있다. 시스템에서 발생되는 문제를 해결하는 방법은 인간이 직접 시스템을 관리하여 해결하는 방법과 시스템 스스로가 문제를 인식하고 해결하는 방법이 존재한다.As computing environments become more complex, it becomes increasingly difficult to analyze and solve problems that may arise in a system. There are ways to solve the problems that occur in the system, and there are ways for the humans to manage and solve the system by themselves.

인간이 직접 시스템을 관리하는 방식에서는 다양한 컴퓨터 시스템을 효율적으로 관리할 수 있는 전문가의 필요성이 증가하고 있지만, 이용 가능한 인적 자원과 효과적인 비용관리의 측면에서 볼때 인간에 의한 시스템의 관리는 명확한 제약이 있다. 또한 전체 시스템의 오류 중 약 40%가 관리자에 의한 오류에 의한 것으로 전문 관리자에 의존하는 현재 시스템의 관리 방식은 개선되어야 할 필요가 있다. In the way that humans manage their own systems, there is an increasing need for professionals who can efficiently manage a variety of computer systems. However, in terms of available human resources and effective cost management, there are certain limitations in the management of systems by humans. . In addition, about 40% of the total system errors are caused by errors of managers, and the current system management method that relies on expert managers needs to be improved.

인간 중심의 시스템 관리 방식을 개선하기 위한 방법으로 자가치유에 관한 연구가 중요한 이슈가 되고 있다. 자가 치유 연구는 시스템의 문제를 스스로 인식, 진단하여 문제에 대한 전략을 적용하여 시스템이 자율적으로 복구하도록 하는 것이다. 오늘날 중대한 시스템(critical system)들은 목표 시스템의 신뢰성, 강건성, 가용성 확보를 위해 추가적인 자가 적응 모듈의 설계와 비용이 고려되고 있다. 그러나 시스템 내부에 존재하는 자가 적응 모듈로 인해 성능이 저하되는 문제가 발생하고 있다.Research on self-healing has become an important issue as a way to improve human-centered system management. Self-healing research is to recognize and diagnose a system's problems by itself and apply a strategy to the system so that the system can recover autonomously. Critical systems today are considering the design and cost of additional self-adaptive modules to ensure the reliability, robustness and availability of the target system. However, there is a problem that the performance is degraded by the self-adaptation module present in the system.

본 발명은 스위치 개념을 이용하여 자가 적응 모듈에서 각 단계별 컴포넌트를 활성화/비활성화하여 시스템의 리소스 사용량을 줄일 수 있는 코드 생성 방법 및 장치를 제공하기 위한 것이다.An object of the present invention is to provide a method and apparatus for generating code that can reduce resource usage of a system by activating / deactivating components of each step in a self-adaptive module using a switch concept.

또한, 본 발명은 자가 적응 모듈을 개발하기 위한 각 단계별 컴포넌트들이 계층적으로 정의된 목표 그래프를 이용하여 자가 적응 모듈에 상응하는 템플릿 코드를 생성할 수 있는 코드 생성 방법 및 장치를 제공하기 위한 것이다.In addition, the present invention is to provide a method and apparatus for generating a code that can generate a template code corresponding to the self-adaptive module using a target graph hierarchically defined for each step component for developing a self-adaptive module.

본 발명의 일 측면에 따르면, 코드 생성 장치가 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하는 방법이 제공된다.According to one aspect of the present invention, a method is provided wherein a code generation device generates code of a module operated as part of a computer system.

본 발명의 일 실시예에 따르면, 코드 생성 장치가 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하는 방법에 있어서, 개발하고자 하는 모듈에 대한 각 레벨(level)을 인식하기 위해 계층적으로 그래프 정보를 입력받는 단계; 상기 그래프 정보를 파싱하여 각 레벨별 구성 정보를 추출하는 단계-상기 레벨별 구성 정보는 동작되는 동작 레벨에 대한 정보, 상기 동작 레벨에서 동작될 복수의 컴포넌트에 대한 정보 및 상기 컴포넌트가 동작될 계층에 대한 정보를 포함함; 및 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 상기 레벨별 구성 정보를 이용하여 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성하는 단계를 포함하는 코드 생성 방법이 제공될 수 있다.According to an embodiment of the present invention, in a method of generating a code of a module operated by a code generating device as a part of a computer system, the graph information is hierarchically to recognize each level of a module to be developed. Receiving an input; Parsing the graph information to extract configuration information for each level, wherein the configuration information for each level includes information on an operation level to be operated, information about a plurality of components to be operated at the operation level, and a layer to which the component is to be operated. Contains information about; And generating a template code to activate a plurality of components in a plurality of hierarchies according to each level by using the received replacement component information, code structure information, and configuration information for each level. .

상기 그래프 정보는 XMI(XML meta interface) 기반의 랭귀지로 기술된다.The graph information is described in a language based on XML meta interface (XMI).

상기 계층적으로 그래프 정보를 입력받는 단계는, 각 레벨에 대한 정보를 입력받는 단계; 상기 레벨에 포함되는 컴포넌트에 대한 정보를 입력받는 단계; 상기 컴포넌트가 동작되는 계층에 대한 정보를 입력받는 단계; 및 상기 레벨, 컴포넌트 및 계층에 대한 연결 정보를 입력받는 단계를 포함할 수 있다.The step of receiving graph information hierarchically includes: receiving information on each level; Receiving information about a component included in the level; Receiving information on a layer in which the component is operated; And receiving connection information about the level, component, and layer.

상기 코드 구조 정보는 상기 템플릿 코드를 생성하기 위해 필요한 각 레벨별 구성 정보에 매핑된 키워드들이다.The code structure information is keywords mapped to configuration information for each level required to generate the template code.

각 레벨별 구성 정보를 추출하는 단계는, 각각의 레벨 정보를 파싱하여 동작 레벨 정보로써 추출하는 단계; 및 상기 레벨 정보의 하위에 연결된 계층 정보 및 컴포넌트 정보를 파싱하여 각각의 레벨 정보에 상응하는 복수의 컴포넌트 정보 및 계층 정보를 각각 추출하는 단계를 포함하되, 상기 동작 레벨 정보, 상기 계층 정보 및 컴포넌트 정보를 레벨별 구성 정보로써 출력할 수 있다.Extracting the configuration information for each level includes parsing and extracting the respective level information as operation level information; And extracting a plurality of component information and layer information corresponding to each level information by parsing the layer information and the component information connected below the level information, wherein the operation level information, the layer information, and the component information are extracted. Can be output as configuration information for each level.

상기 템플릿 코드에 상기 컴포넌트에 대한 기능 정보를 입력받아 개발하고자 하는 모듈을 생성하는 단계를 더 포함할 수 있다.The method may further include generating a module to be developed by receiving function information about the component in the template code.

템플릿 코드를 생성하는 단계는, 상기 각 레벨별 구성 정보 및 상기 코드 구조 정보를 이용하여 각 레벨에 따라 복수의 계층에서 활성화되는 복수의 컴포넌트에 대한 코드를 생성하는 단계; 및 상기 대체 컴포넌트 정보 및 상기 코드 구조 정보를 이용하여 오류가 발생한 컴포넌트를 대체하기 위한 컴포넌트에 대한 코드를 생성하는 단계를 포함할 수 있다.Generating template code may include generating code for a plurality of components activated in a plurality of hierarchies according to each level by using the configuration information for each level and the code structure information; And generating code for a component for replacing a component in which an error occurs using the replacement component information and the code structure information.

본 발명의 다른 실시예에 따르면, 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하는 방법을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, 개발하고자 하는 모듈에 대한 각 레벨(level)을 인식하기 위해 계층적으로 그래프 정보를 입력받는 단계; 상기 그래프 정보를 파싱하여 각 레벨별 구성 정보를 추출하는 단계-상기 레벨별 구성 정보는 동작되는 동작 레벨에 대한 정보, 상기 동작 레벨에서 동작될 복수의 컴포넌트에 대한 정보 및 상기 컴포넌트가 동작될 계층에 대한 정보를 포함함; 및 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 상기 레벨별 구성 정보를 이용하여 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성하는 단계를 수행하는 프로그램을 기록한 기록매체가 제공될 수 있다.According to another embodiment of the present invention, a program of instructions, which are executable by a digital processing apparatus for performing a method of generating code of a module operated as a part of a computer system, is tangibly embodied. Claims [1] A recording medium recording a program that can be read, comprising: receiving graph information hierarchically to recognize each level of a module to be developed; Parsing the graph information to extract configuration information for each level, wherein the configuration information for each level includes information on an operation level to be operated, information about a plurality of components to be operated at the operation level, and a layer to which the component is to be operated. Contains information about; And generating a template code to activate a plurality of components in a plurality of hierarchies according to each level by using the received replacement component information, code structure information, and the configuration information for each level. Can be.

본 발명의 다른 측면에 따르면, 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하기 위한 코드 생성 장치가 제공된다.According to another aspect of the invention, there is provided a code generation device for generating code of a module operated as part of a computer system.

본 발명의 일 실시예에 따르면, 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하기 위한 코드 생성 장치에 있어서, 개발하고자 하는 모듈에 대한 각 레벨을 인식하기 위해 필요한 정보들을 계층적으로 입력받아 그래프 정보를 생성하는 정보 생성부; 상기 그래프 정보를 파싱하여 각 레벨별 구성 정보를 추출하는 파싱부-상기 레벨별 구성 정보는 동작되는 동작 레벨에 대한 정보, 상기 동작 레벨에서 동작될 복수의 컴포넌트에 대한 정보 및 상기 컴포넌트가 동작될 계층에 대한 정보를 포함함; 및 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 상기 레벨별 구성 정보를 이용하여 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성하는 템플릿 생성부를 포함하는 코드 생성 장치가 제공될 수 있다.According to an embodiment of the present invention, in a code generating apparatus for generating a code of a module operated as a part of a computer system, a graph is obtained by hierarchically receiving information necessary for recognizing each level of a module to be developed. An information generator for generating information; A parser for parsing the graph information to extract configuration information for each level. The configuration information for each level includes information on an operation level at which the level is operated, information about a plurality of components to be operated at the operation level, and a layer at which the component is operated. Contains information about; And a template generation unit configured to generate a template code to activate a plurality of components in a plurality of hierarchies according to each level by using the received replacement component information, code structure information, and the configuration information for each level. have.

상기 정보 생성부는 각 레벨에 대한 정보를 입력받고, 상기 레벨의 하위 정보로써 상기 레벨에 포함되는 컴포넌트에 대한 정보를 입력받으며, 상기 컴포넌트가 동작되는 계층에 대한 정보를 입력받아 상기 컴포넌트와 상기 레벨 사이에 위치시키고, 상기 레벨, 컴포넌트 및 계층에 대한 연결 관계를 입력받고, 상기 입력된 연결 관계, 상기 레벨, 상기 컴포넌트 및 상기 계층에 대한 정보를 이용하여 상기 그래프 정보를 생성할 수 있다.The information generation unit receives information on each level, receives information on a component included in the level as lower information of the level, and receives information on a layer in which the component operates, between the component and the level. It is located in the, and receives the connection relationship for the level, component and layer, and can generate the graph information by using the information about the input connection relationship, the level, the component and the layer.

상기 파싱부는, 각각의 레벨 정보를 파싱하여 동작 레벨 정보로써 추출하고, 상기 레벨 정보의 하위에 연결된 계층 정보 및 컴포넌트 정보를 파싱하여 각각의 레벨 정보에 상응하는 복수의 컴포넌트 정보 및 계층 정보를 각각 추출하되, 상기 동작 레벨 정보, 상기 계층 정보 및 컴포넌트 정보를 레벨별 구성 정보로써 출력할 수 있다.The parsing unit parses and extracts each level information as operation level information, and parses hierarchical information and component information connected under the level information to extract a plurality of component information and hierarchical information corresponding to each level information, respectively. However, the operation level information, the layer information, and the component information may be output as configuration information for each level.

상기 템플릿 코드에 상기 컴포넌트에 대한 기능 정보를 입력받아 개발하고자 하는 모듈을 생성하는 모듈 생성부를 더 포함할 수 있다.The module code may further include a module generator for generating a module to be developed by receiving function information of the component.

상기 템플릿 생성부는, 상기 각 레벨별 구성 정보 및 상기 코드 구조 정보를 이용하여 각 레벨에 따라 복수의 계층에서 활성화되는 복수의 컴포넌트에 대한 코드를 생성하고, 상기 대체 컴포넌트 정보 및 상기 코드 구조 정보를 이용하여 오류가 발생한 컴포넌트를 대체하기 위한 컴포넌트에 대한 코드를 생성할 수 있다.The template generation unit generates codes for a plurality of components activated in a plurality of hierarchies according to each level by using the configuration information for each level and the code structure information, and uses the substitute component information and the code structure information. You can generate code for the component to replace the component that caused the error.

본 발명에 따른 코드 생성 방법 및 장치를 제공함으로써, 스위치 개념을 이용하여 자가 적응 모듈에서 각 단계별 컴포넌트를 활성화/비활성화하여 시스템의 리소스 사용량을 줄일 수 있는 효과가 있다.By providing a code generation method and apparatus according to the present invention, it is possible to reduce the resource usage of the system by activating / deactivating each step component in the self-adaptive module using the switch concept.

또한, 본 발명은 자가 적응 모듈을 개발하기 위한 각 단계별 컴포넌트들이 계층적으로 정의된 목표 그래프를 이용하여 자가 적응 모듈에 상응하는 템플릿 코드를 생성할 수 있는 효과도 있다.In addition, the present invention has an effect that can generate a template code corresponding to the self-adaptive module using a target graph hierarchically defined for each step component for developing the self-adaptive module.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발 명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and technical scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

우선, 이해와 설명의 편의를 도모하기 위해 도 1a를 참조하여 자가 적응 아키텍쳐에 대해 간략하게 설명하기로 한다. First, the self-adaptive architecture will be briefly described with reference to FIG. 1A for convenience of understanding and description.

도 1a은 본 발명의 일 실시예에 따른 자가 적응 모듈을 각 계층을 설명하기 위해 예시한 블록도이며, 도 1b 및 도 1c는 본 발명의 일 실시예에 따른 각 레벨별로 활성화되는 컴포넌트를 예시한 도면이다.1A is a block diagram illustrating a self-adaptive module according to an embodiment of the present invention for explaining each layer, and FIGS. 1B and 1C illustrate components that are activated at each level according to an embodiment of the present invention. Drawing.

자가 적응 모듈의 오류를 탐지하기 위한 시스템의 블록도를 예시한 도면이다. A diagram illustrating a block diagram of a system for detecting an error of a self-adaptive module.

본 발명의 실시예에 따른 자가 적응 시스템은 시스템이 자체적으로 문제를 인식하고, 각 상황에 적응할 수 있도록 시스템 자체를 변화시킬 수 있도록 추가적인 모듈을 부착한 시스템이다.The self-adaptive system according to an embodiment of the present invention is a system in which an additional module is attached to change the system itself so that the system recognizes a problem and adapts to each situation.

예를 들어, 이메일을 보내는 경우 MS 워드 등의 매크로가 동작하여 시스템의 포트를 불법적으로 활성화한다고 가정하자. 이때, 자가 적응 시스템은 매크로에 의해 시스템의 포트가 불법적으로 활성화되는 것을 감지하고 해당 포트가 활성화되지 않도록 조치를 취할 수 있다. 이와 같이, 본 발명의 실시예에 따른 자가 적응 시스템은 시스템 개발 단계에서 예상치 못했던 문제(또는 오류)를 해결하기 위해 별도의 추가적인 모듈을 부착할 수 있다.For example, suppose that a macro such as MS Word is activated when sending an e-mail to illegally activate a port of a system. At this time, the self-adaptive system may detect that a port of the system is illegally activated by a macro and take measures to prevent the corresponding port from being activated. As such, the self-adaptive system according to the embodiment of the present invention may attach a separate additional module to solve an unexpected problem (or error) at the system development stage.

본 발명의 실시예에 따른 자가 적응 시스템은 시스템이 자체적으로 문제를 인식하고, 각 상황에 적응할 수 있도록 시스템 자체를 변화시킬 수 있도록 추가적인 모듈을 부착한 시스템이다. The self-adaptive system according to an embodiment of the present invention is a system in which an additional module is attached to change the system itself so that the system recognizes a problem and adapts to each situation.

도 1a에서 보여지는 바와 같이, 자가 적응 모듈은 프루브 계층(probe layer), 게이지 계층(gauge layer), 제어 계층(control layer) 및 실행 계층(execution layer)를 포함한다. 자가 적응 모듈에 포함되는 각각의 계층은 독립적으로 동작된다. 즉, 하나의 계층의 동작이 완료된 후 다른 계층이 동작되는 것이 아니라 각각의 계층이 병렬적으로 연결되어 필요한 컴포넌트들을 로딩하여 독립적으로 동작된다. As shown in FIG. 1A, the self-adaptive module includes a probe layer, a gauge layer, a control layer and an execution layer. Each layer included in the self adaptation module operates independently. That is, after the operation of one layer is completed, the other layers are not operated, but each layer is connected in parallel and loaded independently to load necessary components.

프루브 계층(probe layer)은 대상 시스템을 감시하는 기능을 수행한다. 또한, 프루브 계층의 감시를 통해 수집된 정보는 프루브 버스(probe bus)를 통해게이지 계층으로 전달된다. The probe layer monitors the target system. In addition, the information collected through the monitoring of the probe layer is transmitted to the gauge layer through the probe bus.

그리고, 게이지 계층(gauge layer)은 프루브 계층에 의해 수집된 정보를 분석하여 시스템의 현재 상태에 대한 상태 정보를 생성하여 제어 계층으로 출력한다.The gauge layer analyzes the information collected by the probe layer, generates state information on the current state of the system, and outputs the state information to the control layer.

제어 계층(controller layer)은 분석된 상태 정보를 통해 시스템에 적용할 전략(또는 정책)를 결정하여 이에 따른 제어 명령을 실행 계층으로 출력한다.The controller layer determines a strategy (or policy) to be applied to the system based on the analyzed state information and outputs a control command accordingly to the execution layer.

이에 따라, 실행 계층(effecter layer)은 제어 계층의 제어 명령에 따라 기능을 수행한다.Accordingly, the effector layer performs a function according to the control command of the control layer.

도 1a은 화상 회의 시스템에서의 파일 전송시의 오류 탐지를 위한 자가 적응 모듈의 구조를 예시한 것으로, 자가 적응 모듈이 탑재되는 시스템이 상이해지는 경우 각 계층에 포함되는 컴포넌트들이 상이해질 수 있음은 당연하다.FIG. 1A illustrates a structure of a self-adaptive module for error detection during file transfer in a videoconferencing system, and it is natural that components included in each layer may be different when a system in which the self-adaptive module is mounted is different. Do.

도 1a에서 보여지는 바와 같이, 각 계층은 n개의 컴포넌트를 포함할 수 있다. 본 명세서에서 컴포넌트는 하나의 기능을 수행하는 최소 단위의 프로세스로 정의하기로 한다. 각 계층에 포함되는 n개의 컴포넌트는 각 계층에서 동시에 동작 활성화되지 않는다. As shown in FIG. 1A, each layer may include n components. In the present specification, a component is defined as a minimum unit process that performs one function. The n components included in each layer are not activated at the same time in each layer.

따라서, 본 발명에 따른 코드 생성 장치는 각 계층에 포함된 각각의 컴포넌트들이 동일 계층 또는 다른 계층 여부에 상관없이 각 레벨(level)에 따라 동시에 동작 활성화되도록 당해 자가 적응 모듈을 생성할 수 있다.Accordingly, the code generation apparatus according to the present invention may generate the self-adaptive module such that each component included in each layer is simultaneously activated and operated according to each level regardless of whether the same layer or another layer is present.

이에 따라, 도 1b 및 도 1c에서 도시된 바와 같이, 각 레벨(level)에 따라 복수의 컴포넌트가 포함되는 계층에 상관없이 활성화될 수 있다.Accordingly, as shown in FIGS. 1B and 1C, each level may be activated regardless of a layer including a plurality of components.

예를 들어, 도 1b는 제1 레벨(level)에 상응하여 활성화되는 복수의 컴포넌트를 예시한 것이며, 도 1c는 제2 레벨(level)에 상응하여 활성화되는 복수의 컴포넌트를 예시한 것이다. 이에 따라, 복수의 계층에서 동시에 복수의 컴포넌트가 활성화되도록 하여 자원을 효율적으로 이용할 수 있는 이점이 있다.For example, FIG. 1B illustrates a plurality of components activated in correspondence with a first level, and FIG. 1C illustrates a plurality of components activated in correspondence with a second level. Accordingly, there is an advantage that resources can be efficiently used by activating a plurality of components simultaneously in a plurality of layers.

도 2는 본 발명의 일 실시예에 따른 코드 생성 장치의 내부 기능 구성을 나타낸 블록도이며, 도 3은 본 발명의 일 실시예에 따른 그래프 구조를 예시한 도면이고, 도4는 본 발명의 일 실시예에 따른 그래프 정보를 예시한 도면이며, 도 5는 본 발명의 일 실시예에 따른 코드 구조 정보를 예시한 도면이고, 도 8 및 도 9는 본 발명의 다른 실시예에 따른 템플릿 코드의 일부분을 예시한 도면이다.2 is a block diagram illustrating an internal functional configuration of a code generating apparatus according to an embodiment of the present invention, FIG. 3 is a diagram illustrating a graph structure according to an embodiment of the present invention, and FIG. 4 is a diagram of the present invention. 5 is a diagram illustrating graph information according to an embodiment, FIG. 5 is a diagram illustrating code structure information according to an embodiment of the present invention, and FIGS. 8 and 9 are part of a template code according to another embodiment of the present invention. Figure is an illustration.

이하에서 설명되는 코드 생성 장치(200)에 의해 생성되는 모듈은 컴퓨터 시스템의 일부분일 수 있다. The module generated by the code generation device 200 described below may be part of a computer system.

도 2를 참조하면, 본 발명에 따른 코드 생성 장치(200)는 정보 생성부(210), 파싱부(215), 템플릿 생성부(220) 및 모듈 생성부(225)를 포함하여 구성된다.2, the code generation apparatus 200 according to the present invention includes an information generator 210, a parser 215, a template generator 220, and a module generator 225.

정보 생성부(210)는 사용자로부터 정보를 입력받기 위해 그래픽 유저 인터페이스(GUI: graphic user interface)를 제공한다. 그리고, 정보 생성부(210)는 개발하고자 하는 모듈의 각 레벨(level)을 인식하기 위해 필요한 그래프 정보를 입력받 는다. 여기서, 그래프 정보는 계층적으로 각 레벨 및 레벨에 대한 하위 정보들이 연결되어 있다.The information generator 210 provides a graphic user interface (GUI) to receive information from a user. The information generator 210 receives graph information necessary for recognizing each level of the module to be developed. Here, the graph information is hierarchically connected to lower levels for each level and level.

이해와 설명의 편의를 도모하기 위해 3을 참조하여 그래프 구조를 이용하여 그래프 정보에 대해 설명하기로 한다. 본 발명에 따른 그래프 정보는 도 3에 예시된 바와 같은 그래프 구조에 따라 외부로부터 입력받을 수 있다. 그리고, 그래프 정보는 코드 생성 장치(200) 내부적으로 XMI(XML meta-interface) 기반 랭귀지(language)로 기술되어 저장되거나 변환되어 파싱부(215)로 출력된다. For the convenience of understanding and explanation, the graph information will be described using the graph structure with reference to 3. The graph information according to the present invention may be input from the outside according to the graph structure illustrated in FIG. 3. In addition, the graph information is described and stored in the code generation apparatus 200 as an XML meta-interface (XMI) based language, or converted and output to the parser 215.

그래프 구조는 도 3에 예시된 바와 같이, 루트 노드부터 리프 노드까지 계층적 구조로 구성된다. 여기서, 최상위 루트 노드는 개발하고자 하는 모듈의 목표에 대한 정보가 포함된다. 그리고, 루트 노드는 하위 노드로써 복수의 레벨 노드를 포함할 수 있다. 레벨 노드는 당해 모듈을 개발하기 위해 필요한 각 단계들을 정의한 것이다. As illustrated in FIG. 3, the graph structure is hierarchical structure from the root node to the leaf node. Here, the top root node contains information about the goal of the module to be developed. The root node may include a plurality of level nodes as lower nodes. The level node defines each of the steps necessary to develop the module.

예를 들어, 목표 노드에 정의된 정보가 파일 전송 중 오류 탐지라고 가정하자. 이에 대한 각 레벨(level)은 예를 들어, 리스트를 체크하는 단계, 송수신된 정보들을 체크하는 레벨들이 정의될 수 있다. 이와 같은 각각의 레벨은 목표 노드의 하위에 레벨 노드로써 표현된다. 또한, 각 레벨노드는 하위 노드로써 하나 이상의 작업 노드를 포함할 수 있다.For example, suppose the information defined on the target node is error detection during file transfer. Each level thereof may be defined, for example, by checking a list and checking levels of transmitted and received information. Each such level is represented as a level node below the target node. In addition, each level node may include one or more work nodes as child nodes.

작업 노드는 각 레벨 노드에서 정의된 각 레벨을 실행하기 위해 필요한 작업들이 정의된다. 예를 들어, 임의의 레벨 노드가 허가된 주소인지를 판단하는 레벨이 정의되어 있다고 가정하자. 작업 노드는 주로 리스트를 체크하는 작업이 정의될 수 있다. 이와 같은 각 작업에 대한 정보는 레벨 노드의 하위에 작업 노드에 정의된다. 또한, 작업 노드는 당해 작업 노드에 정의된 작업을 실행하기 위한 하나 이상의 컴포넌트가 하위 노드에 연결된다. 본 명세서에서 컴포넌트는 하나의 기능을 수행하는 최소의 단위인 것으로 정의하기로 한다.Job nodes define the jobs required to run each level defined at each level node. For example, suppose a level is defined that determines whether any level node is an authorized address. Job nodes can be defined mainly for checking the list. Information about each of these tasks is defined in the task node below the level node. In addition, a work node has one or more components connected to subordinate nodes for executing a work defined in the work node. In the present specification, a component is defined as being a minimum unit that performs one function.

그리고, 각 컴포넌트 노드가 포함되는 모듈의 계층(layer)에 대한 정보가 컴포넌트 노드와 작업 노드 사이에 포함된다.In addition, information about a layer of a module including each component node is included between the component node and the work node.

이와 같이, 도 3에 예시된 그래프 구조를 GUI 형태로 제공하여 각 노드에 대한 정보(예를 들어, 각 노드, 각 노드의 내용 정보(예를 들어, 명칭 및 속성 정보) 및 연결정보)를 입력받을 수 있다. 본 명세서에서는 해당 그래프 구조에 따라 입력된 정보들을 통칭하여 그래프 정보라 칭하기로 한다.As such, the graph structure illustrated in FIG. 3 is provided in the form of a GUI to input information about each node (for example, each node, content information (for example, name and attribute information) and connection information of each node). I can receive it. In this specification, information input according to a corresponding graph structure will be collectively referred to as graph information.

또한, 그래프 정보는 전술한 바와 같이, 외부에서는 GUI 형태의 그래프 구조를 이용하여 입력되나 내부적으로는 XML 기반 랭귀지 형태로 변환되어 파싱부(215)로 출력할 수 있다.In addition, as described above, the graph information may be input from the outside using a graph structure in a GUI form, but may be converted into an XML-based language internally and output to the parser 215.

도 4에 본 발명에 따른 그래프 정보가 예시되어 있다. 그래프 정보는 각 노드를 엘리먼트(element)로써 기술한다. 그리고, 각 노드의 내용 정보 및 연결 정보는 각 요소 정보의 속성 정보로서 기술한다. 이는 당업자에게 자명한 사항이므로 이에 대한 별도의 설명은 생략하기로 한다.In figure 4 graph information according to the invention is illustrated. The graph information describes each node as an element. The content information and the connection information of each node are described as attribute information of each element information. Since this is obvious to those skilled in the art, a separate description thereof will be omitted.

다시 도 2를 참조하여, 파싱부(215)는 정보 생성부(210)로부터 입력된 XMI 형태의 그래프 정보를 XMI 파싱 원칙에 따라 해석하여 각 레벨별 구성 정보를 추출하여 출력한다. 여기서, 각 레벨별 구성 정보는 각 레벨에 대한 레벨 정보, 각 레 벨에서 활성화되는 복수의 컴포넌트 정보 및 각 컴포넌트가 동작되는 계층 정보를 포함할 수 있다. Referring again to FIG. 2, the parser 215 interprets graph information of the XMI type input from the information generator 210 according to the XMI parsing principle, and extracts and outputs configuration information for each level. Here, the configuration information for each level may include level information for each level, a plurality of component information activated at each level, and hierarchical information for operating each component.

예를 들어, 파싱부(215)는 XMI 형식의 그래프 정보에 각 엘리먼트 이름을 인덱스로 하여 당해 그래프 정보를 해석할 수 있다. For example, the parser 215 may interpret the graph information by using each element name as an index in the graph information of the XMI format.

템플릿 생성부(220)는 외부로부터 대체 컴포넌트 정보 및 코드 구조 정보를 입력받는다. 그리고, 템플릿 생성부(220)는 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 각 레벨별 구성 정보를 이용하여 템플릿 코드를 생성한다. 여기서, 대체 컴포넌트 정보는 모듈에 포함된 컴포넌트가 외부 요인에 의해 발생된 에러로 인해 정상적으로 동작하지 못하는 경우, 이를 대체하여 동작될 대체 컴포넌트에 대한 정보가 포함된다. 여기서, 대체 컴포넌트 정보는 XMI 기반의 랭귀지로 기술될 수 있음은 당연하다.The template generator 220 receives replacement component information and code structure information from the outside. The template generator 220 generates a template code using the received replacement component information, code structure information, and configuration information for each level. Here, when the component included in the module does not operate normally due to an error caused by an external factor, information about the substitute component to be operated by replacing the component is included. Here, it is a matter of course that the alternative component information may be described in an XMI-based language.

또한, 코드 구조 정보는 당해 템플릿 코드를 생성하기 위해 필요한 모든 키워드들이 포함된다. 도 5에 코드구조 정보가 예시되어 있다. 도 5에 예시된 바와 같이, 코드 구조 정보는 각 컴포넌트의 이름, 각 레벨이름, 각 계층 이름, 컴포넌트 개수, 각 계층별 컴포넌트 생성을 위한 키워드 등이 포함될 수 있다. 물론, 이외에도 코드 구조 정보는 도 5에 예시된 바와 같이, 템플릿 코드를 생성하기 위해 필요한 모든 키워드들이 포함된다.In addition, the code structure information includes all keywords necessary for generating the template code. Code structure information is illustrated in FIG. 5. As illustrated in FIG. 5, the code structure information may include a name of each component, each level name, each layer name, the number of components, a keyword for generating a component for each layer, and the like. Of course, in addition to the code structure information, as shown in Figure 5, includes all the keywords necessary to generate the template code.

보다 상세하게 템플릿 생성부(220)는 코드 구조 정보 및 각 레벨별 구성 정보를 이용하여 각각의 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 동시에 활성화되도록 템플릿 코드를 생성할 수 있다. 이로 인해, 이후 개발된 모듈은 각 레 벨에 따라 복수의 계층에서 동시에 복수의 컴포넌트가 활성화되어 시스템의 자원을 효율적으로 이용할 수 있게 된다. In more detail, the template generation unit 220 may generate template code to simultaneously activate a plurality of components in a plurality of hierarchies according to each level by using code structure information and configuration information for each level. As a result, the modules developed later can activate a plurality of components at the same time in a plurality of layers according to each level to efficiently use the resources of the system.

템플릿 생성부(220)는 코드 구조 정보 및 각 레벨별 구성 정보를 이용하여 개발하고자 하는 모듈에 상응하는 템플릿 코드를 생성할 수 있다. The template generator 220 may generate template code corresponding to a module to be developed using code structure information and configuration information for each level.

또한, 템플릿 생성부(220)는 코드 구조 정보 및 각 레벨별 구성 정보를 이용하여 모듈의 오류를 감시하기 위한 코드가 템플릿 코드에 포함되어 생성된다. In addition, the template generation unit 220 is generated by including the code for monitoring the error of the module using the code structure information and configuration information for each level in the template code.

예를 들어, 템플릿 생성부(220)는 그래프 정보에서 획득된 레벨 정보를 이용하여 상태 모니터를 생성할 수 있다. 여기서, 상태 모니터는 모듈이 어떠한 단계에 있는지를 파악하는 기능을 수행한다. 그리고, 템플릿 생성부(220)는 계층 정보 및 컴포넌트 정보를 이용하여 신호 모니터를 생성하고, 각 컴포넌트 정보를 이용하여 구성 모니터 및 컴포넌트 저장소를 생성할 수 있다. 여기서, 신호 모니터는 각 레벨별로 동작하는 컴포넌트의 동작 개시 신호를 분석하는 기능을 수행한다. 그리고, 상태 모니터에서 레벨이 지났음을 인지했을 때 신호 모니터는 동작 스위치 정보를 이용하여 각 컴포넌트들의 동작 개시 신호를 분석할 수 있다. 여기서, 동작 스위치 정보는 각 레벨별 각 컴포넌트의 동작(또는 활성화) 여부에 대한 정보를 포함한다. For example, the template generator 220 may generate a state monitor using the level information obtained from the graph information. Here, the status monitor performs the function of identifying which stage the module is in. The template generator 220 may generate a signal monitor using hierarchical information and component information, and generate a configuration monitor and a component repository using each component information. Here, the signal monitor performs a function of analyzing an operation start signal of a component operating for each level. When the level monitor recognizes that the level has passed, the signal monitor may analyze the operation start signals of the respective components using the operation switch information. Here, the operation switch information includes information on whether the operation (or activation) of each component of each level.

도 8 및 도 9는 본 발명의 일 실시예에 따른 템플릿 코드의 일부분을 예시한 것이다. 예를 들어, 동작 스위치 정보에 포함되는 컴포넌트가 하나인 경우 템플릿 코드는 도 8과 같이 생성될 수 있다. 그리고, 동작 스위치 정보에 포함되는 컴포넌트가 두개인 경우 템플릿 코드는 도 9와 같이 생성될 수 있다. 8 and 9 illustrate a portion of template code according to an embodiment of the present invention. For example, when there is only one component included in the operation switch information, the template code may be generated as shown in FIG. 8. When two components are included in the operation switch information, the template code may be generated as shown in FIG. 9.

또한, 동작 스위치 정보는 각 레벨별로 생성될 수도 있다. 예를 들어, 그래 프 정보에 포함된 레벨이 하나이면, 템플릿 생성부(220)는 하나의 동작 스위치 정보를 생성할 수 있다. 그러나 만일 그래프 정보에 포함된 레벨이 두개이면, 템플릿 생성부(220)는 두개의 동작 스위치 정보를 생성할 수 있다.모듈 생성부(225)는 템플릿 생성부(220)에 의해 생성된 템플릿 코드에 각 컴포넌트에 대한 기능 정보를 외부로부터 입력받아 최종적으로 개발하고자 하는 모듈을 생성하는 기능을 수행한다.In addition, the operation switch information may be generated for each level. For example, if there is only one level included in the graph information, the template generator 220 may generate one operation switch information. However, if there are two levels included in the graph information, the template generator 220 may generate two operation switch information. The module generator 225 may be configured to generate template code generated by the template generator 220. Performs a function to create a module to be finally developed by receiving function information about each component from the outside.

종래에는 각 레벨에 상관없이 각 계층에 포함된 모든 컴포넌트가 활성화되어 자원이 비효율적으로 이용되는 문제점이 있었다. 그러나 본 발명과 같이, 모듈의 동작 인식을 위해 각 레벨 단위로 구분한 후 이를이용하여 코드를 자동 생성해줌으로써 이후에 개발된 모듈의 경우 자원을 효율적으로 이용하도록 할 수 있는 이점이 있다.Conventionally, all components included in each layer are activated irrespective of each level so that resources are inefficiently used. However, as in the present invention, the module is divided into units for each level to recognize the operation of the module, and the code is automatically generated by using the module. Thus, in the case of a later developed module, it is possible to efficiently use resources.

도 6은 본 발명의 일 실시예에 따른 템플릿 코드의 일부분을 예시한 도면이다. 도 6에서 보여지는 바와 같이, 코드 생성 장치(200)는 코드구조 정보 및 각 레벨별 구성 정보를 이용하여 템플릿 코드를 생성할 수 있다. 도 6과 같이, 템플릿 코드는 각 컴포넌트에 대한 기능 정보는 기술되지 않음을 알 수 있다. 본 명세서에서는 템플릿 코드가 자바 기반 기술의 랭귀지를 이용하여 생성되는 것을 가정하여 예시하였으나 이외의 랭귀지(예를 들어, c, c++ 등)로 생성될 수도 있음은 당연하다.6 is a diagram illustrating a portion of template code according to an embodiment of the present invention. As shown in FIG. 6, the code generating apparatus 200 may generate a template code by using code structure information and configuration information for each level. As shown in FIG. 6, it can be seen that the template code does not describe the function information for each component. In the present specification, the template code is assumed to be generated using a language of Java-based technology. However, the template code may be generated in other languages (eg, c, c ++, etc.).

도 7은 본 발명의 일 실시예에 따른 코드 생성 장치가 개발하고자 하는 모듈에 대한 코드를 생성하는 방법을 나타낸 순서도이다. 이하에서 설명되는 각각의 단계는 코드 생성 장치(200)의 각각의 내부 구성 요소에 의해 수행되어지나 이해와 설명의 편이를 도모하기 위해 코드 생성 장치로 통칭하여 설명하기로 한다. 7 is a flowchart illustrating a method of generating a code for a module to be developed by a code generating apparatus according to an embodiment of the present invention. Each step described below is performed by each internal component of the code generating apparatus 200, but will be collectively described as a code generating apparatus in order to facilitate understanding and explanation.

단계 710에서 코드 생성 장치(200)는 미리 설정된 그래프 구조에 따라 그래프 정보를 입력받는다. 그리고, 코드 생성 장치(200)는 입력받은 그래프 정보를XMI 기반 기술의 형태로 변환하여 저장 영역에 저장한다.In operation 710, the code generating apparatus 200 receives graph information according to a preset graph structure. In addition, the code generating apparatus 200 converts the received graph information into a form of XMI-based technology and stores it in a storage area.

예를 들어, 코드 생성 장치(200)는 전술한 바와같이, 그래프 정보를 입력받기 위한 GUI를 출력할 수 있다. 그리고, 코드 생성 장치(200)는 출력된 GUI를 통해 외부(예를 들어, 사용자)로부터 그래프 정보를 입력받을 수 있다. 전술한 바와 같이, 그래프 정보는 복수의 노드, 각 노드에 대한 내용 정보(예를 들어, 명칭 및 속성정보) 및 각 노드에 대한 연결 정보를 포함할 수 있다.For example, as described above, the code generating apparatus 200 may output a GUI for receiving graph information. The code generating apparatus 200 may receive graph information from an external (eg, a user) through the output GUI. As described above, the graph information may include a plurality of nodes, content information (eg, name and attribute information) for each node, and connection information for each node.

단계 715에서 코드 생성 장치(200)는 그래프 정보를 미리 정해진 XMI 해석 원칙에 따라 해석하여 각 레벨별 구성 정보를 추출한다. 여기서, 각 레벨별 구성 정보는 전술한 바와 같이, 동작 레벨 정보, 각 동작 레벨 정보에 포함되는 복수의 컴포넌트 정보, 각 컴포넌트 정보에 상응하는 계층 정보를 포함할 수 있다.In operation 715, the code generating apparatus 200 extracts configuration information for each level by analyzing the graph information according to a predetermined XMI analysis principle. Here, the configuration information for each level may include operation level information, a plurality of component information included in each operation level information, and hierarchical information corresponding to each component information, as described above.

단계 720에서 코드 생성 장치(200)는 외부로부터 대체 컴포넌트 정보 및 코드 구조 정보를 입력받는다. 본 명세서에서는 코드 구조 정보를 외부로부터 입력받는 것을 가정하여 이를 중점으로 설명하고 있으나 저장 영역에 미리 저장되어 있을 수 있음은 당연하다. 코드 구조 정보가 저장 영역에 저장되어 있는 경우, 코드 생 성 장치(200)는 갱신된 코드 구조 정보를 입력받아 저장된 코드 구조 정보를 갱신하여 저장할 수 있음은 당연하다.In operation 720, the code generating apparatus 200 receives replacement component information and code structure information from an external source. In the present specification, the code structure information is assumed to be input from the outside, and the description thereof will be focused on the above. However, it may be stored in the storage area in advance. When the code structure information is stored in the storage area, the code generator 200 may receive the updated code structure information and update and store the stored code structure information.

단계 725에서 코드 생성 장치(200)는 입력된 대체 컴포넌트 정보와 코드 구조 정보 및 각 레벨별 구성 정보를 이용하여 템플릿 코드를 생성한다. 보다 상세하게 코드 생성 장치(200)는 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성할 수 있다.In operation 725, the code generating apparatus 200 generates a template code by using input replacement component information, code structure information, and configuration information for each level. In more detail, the code generating apparatus 200 may generate a template code to activate a plurality of components in a plurality of layers according to each level.

단계 730에서 코드 생성 장치(200)는 생성된 템플릿 코드에 각 컴포넌트에 대한 각각의 기능 정보를 외부로부터 입력받아 최종적으로 개발하고자 하는 모듈을 생성한다.In operation 730, the code generating apparatus 200 receives the respective function information about each component from the generated template code from the outside and finally generates a module to be developed.

또한, 본 발명의 실시예에 따른 모듈 생성을 위한 코드 자동화 방법은 구현 방법에 따라 소프트웨어의 형태로 구현될 수도 있음은 당연하다.In addition, it is obvious that the code automation method for generating a module according to an embodiment of the present invention may be implemented in the form of software according to an implementation method.

도 10은 본 발명의 실시예에 따른 코드 생성 장치를 이용한 경우와 일반적인 경우의 코드 생성에 따른 LOC 및 클래스 수를 비교한 그래프이다.10 is a graph comparing the number of LOCs and classes according to code generation in a case of using a code generation device according to an embodiment of the present invention and in a general case.

도 10에서 보여지는 바와 같이, 본 발명에 실시예에 따른 코드 생성 장치를 이용하여 템플릿 코드를 생성함으로써 개발자에 의해 작성되는 코드의 라인 및 클래스 수가 종래의 방법에 비해 현저하게 줄어든 것을 알 수 있다. 즉, 본 발명의 실시예에 따른 코드 생성 장치를 이용하여 템플릿 코드를 자동으로 생성하여 줌으로써 개발자의 불필요한 노력을 현저하게 감소시켜 줄 수 있다.As shown in FIG. 10, it can be seen that the number of lines and classes of code written by a developer is remarkably reduced in comparison with the conventional method by generating template code using the code generating apparatus according to the embodiment of the present invention. In other words, by automatically generating the template code using the code generation device according to an embodiment of the present invention, unnecessary effort of the developer can be significantly reduced.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.

도 1a은 본 발명의 일 실시예에 따른 자가 적응 모듈을 각 계층을 설명하기 위해 예시한 블록도.1A is a block diagram illustrating a self-adaptive module for explaining each layer in accordance with an embodiment of the present invention.

도 1b 및 도 1c는 본 발명의 일 실시예에 따른 각 레벨별로 활성화되는 컴포넌트를 예시한 도면.1B and 1C illustrate components that are activated for each level according to an embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 코드 생성 장치의 내부 기능 구성을 나타낸 블록도.2 is a block diagram showing an internal functional configuration of a code generation device according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 그래프 구조를 예시한 도면.3 illustrates a graph structure according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 그래프 정보를 예시한 도면.4 is a diagram illustrating graph information according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 코드 구조 정보를 예시한 도면.5 is a diagram illustrating code structure information according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 템플릿 코드의 일부분을 예시한 도면.6 illustrates a portion of template code according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 코드 생성 장치가 개발하고자 하는 모듈에 대한 코드를 생성하는 방법을 나타낸 순서도.7 is a flowchart illustrating a method of generating a code for a module to be developed by a code generating apparatus according to an embodiment of the present invention.

도 8 및 도 9는 본 발명의 다른 실시예에 따른 템플릿 코드의 일부분을 예시한 도면.8 and 9 illustrate portions of template code according to another embodiment of the invention.

도 10은 본 발명의 실시예에 따른 코드 생성 장치를 이용한 경우와 일반적인 경우의 코드 생성에 따른 LOC 및 클래스 수를 비교한 그래프.FIG. 10 is a graph comparing the number of LOCs and classes according to code generation in a case of using a code generation device according to an embodiment of the present invention and in a general case. FIG.

Claims (15)

코드 생성 장치가 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하는 방법에 있어서,A method for generating code of a module operated by a code generating device as part of a computer system, 개발하고자 하는 모듈에 대한 각 레벨(level)을 인식하기 위해 계층적으로 그래프 정보를 입력받는 단계;Receiving graph information hierarchically to recognize each level of a module to be developed; 상기 그래프 정보를 파싱하여 각 레벨별 구성 정보를 추출하는 단계-상기 레벨별 구성 정보는 동작되는 동작 레벨에 대한 정보, 상기 동작 레벨에서 동작될 복수의 컴포넌트에 대한 정보 및 상기 컴포넌트가 동작될 계층에 대한 정보를 포함함; 및Parsing the graph information to extract configuration information for each level, wherein the configuration information for each level includes information on an operation level to be operated, information about a plurality of components to be operated at the operation level, and a layer to which the component is to be operated. Contains information about; And 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 상기 레벨별 구성 정보를 이용하여 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성하는 단계를 포함하는 코드 생성 방법.And generating a template code to activate a plurality of components in a plurality of hierarchies according to each level by using inputted replacement component information, code structure information, and configuration information for each level. 제1 항에 있어서,According to claim 1, 상기 그래프 정보는 XMI(XML meta interface) 기반의 랭귀지로 기술되는 것을 특징으로 하는 코드 생성 방법.The graph information is code generation method, characterized in that described in XMI (XML meta interface) based language. 제1 항에 있어서,According to claim 1, 상기 계층적으로 그래프 정보를 입력받는 단계는,Receiving the graph information hierarchically, 각 레벨에 대한 정보를 입력받는 단계;Receiving information on each level; 상기 레벨에 포함되는 컴포넌트에 대한 정보를 입력받는 단계;Receiving information about a component included in the level; 상기 컴포넌트가 동작되는 계층에 대한 정보를 입력받는 단계; 및Receiving information on a layer in which the component is operated; And 상기 레벨, 컴포넌트 및 계층에 대한 연결 정보를 입력받는 단계를 포함하는 것을 특징으로 하는 코드 생성 방법.And receiving connection information about the level, component, and layer. 제1 항에 있어서,According to claim 1, 상기 코드 구조 정보는 상기 템플릿 코드를 생성하기 위한 각 레벨별 구성 정보에 매핑된 키워드들인 것을 특징으로 하는 코드 생성 방법.The code structure information is a code generation method, characterized in that the keywords mapped to the configuration information for each level for generating the template code. 제1 항에 있어서,According to claim 1, 각 레벨별 구성 정보를 추출하는 단계는,Extracting the configuration information for each level, 각각의 레벨 정보를 파싱하여 동작 레벨 정보로써 추출하는 단계; 및Parsing each level information and extracting it as operation level information; And 상기 레벨 정보의 하위에 연결된 계층 정보 및 컴포넌트 정보를 파싱하여 각각의 레벨 정보에 상응하는 복수의 컴포넌트 정보 및 계층 정보를 각각 추출하는 단계를 포함하되,Parsing hierarchical information and component information connected under the level information to extract a plurality of component information and hierarchical information corresponding to each level information, respectively. 상기 동작 레벨 정보, 상기 계층 정보 및 컴포넌트 정보를 레벨별 구성 정보로써 출력하는 것을 특징으로 하는 코드 생성 방법And outputting the operation level information, the layer information, and component information as configuration information for each level. 제1 항에 있어서,According to claim 1, 상기 템플릿 코드에 상기 컴포넌트에 대한 기능 정보를 입력받아 개발하고자 하는 모듈을 생성하는 단계를 더 포함하는 코드 생성 방법.And generating a module to be developed by receiving the function information of the component in the template code. 제1 항에 있어서,According to claim 1, 템플릿 코드를 생성하는 단계는,Generating template code 상기 각 레벨별 구성 정보 및 상기 코드 구조 정보를 이용하여 각 레벨에 따라 복수의 계층에서 활성화되는 복수의 컴포넌트에 대한 코드를 생성하는 단계; 및Generating codes for a plurality of components activated in a plurality of layers according to each level by using the configuration information for each level and the code structure information; And 상기 대체 컴포넌트 정보 및 상기 코드 구조 정보를 이용하여 오류가 발생한 컴포넌트를 대체하기 위한 컴포넌트에 대한 코드를 생성하는 단계를 포함하는 것을 특징으로 하는 코드 생성 방법.And generating code for a component for replacing a component in which an error occurs by using the replacement component information and the code structure information. 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 컴퓨터 시스템의 일부분으로 동작되는 모듈의 코드를 생성하는 방법을 수행하는 디지털 처리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,A program is tangibly embodied in a program of instructions that can be executed by a digital processing apparatus that performs a method of generating code of a module operated as part of a computer system, and a recording medium recording a program that can be read by the digital processing apparatus. To 개발하고자 하는 모듈에 대한 각 레벨(level)을 인식하기 위해 계층적으로 그래프 정보를 입력받는 단계;Receiving graph information hierarchically to recognize each level of a module to be developed; 상기 그래프 정보를 파싱하여 각 레벨별 구성 정보를 추출하는 단계-상기 레벨별 구성 정보는 동작되는 동작 레벨에 대한 정보, 상기 동작 레벨에서 동작될 복 수의 컴포넌트에 대한 정보 및 상기 컴포넌트가 동작될 계층에 대한 정보를 포함함; 및Parsing the graph information and extracting configuration information for each level, wherein the configuration information for each level includes information on an operation level to be operated, information about a plurality of components to be operated at the operation level, and a layer in which the component is to be operated. Contains information about; And 입력받은 대체 컴포넌트 정보와 코드 구조 정보 및 상기 레벨별 구성 정보를 이용하여 각 레벨에 따라 복수의 계층에서 복수의 컴포넌트가 활성화되도록 템플릿 코드를 생성하는 단계를 수행하는 프로그램을 기록한 기록매체.And generating a template code to activate a plurality of components in a plurality of hierarchies according to each level by using the received replacement component information, code structure information, and configuration information for each level.
KR1020080071783A 2008-07-23 2008-07-23 Method and device for generating of code KR100946763B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080071783A KR100946763B1 (en) 2008-07-23 2008-07-23 Method and device for generating of code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080071783A KR100946763B1 (en) 2008-07-23 2008-07-23 Method and device for generating of code

Publications (2)

Publication Number Publication Date
KR20100010758A KR20100010758A (en) 2010-02-02
KR100946763B1 true KR100946763B1 (en) 2010-03-11

Family

ID=42085351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080071783A KR100946763B1 (en) 2008-07-23 2008-07-23 Method and device for generating of code

Country Status (1)

Country Link
KR (1) KR100946763B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102612934B1 (en) * 2023-09-13 2023-12-12 한화시스템(주) System, server and method for automatically generating stacked code based on tree structure infomation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062567A (en) * 2001-10-16 2004-07-07 텐실리카 인코포레이티드 Automatic instruction set architecture generation
KR20070000732A (en) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 Asadal : system for providing feature-oriented software product line engineering environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040062567A (en) * 2001-10-16 2004-07-07 텐실리카 인코포레이티드 Automatic instruction set architecture generation
KR20070000732A (en) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 Asadal : system for providing feature-oriented software product line engineering environment

Also Published As

Publication number Publication date
KR20100010758A (en) 2010-02-02

Similar Documents

Publication Publication Date Title
Papadopoulos et al. Model-based synthesis of fault trees from matlab-simulink models
US8539475B2 (en) API backward compatibility checking
JP2021535477A (en) Systems and methods for optimizing control flow graphs for functional safety using fault tree analysis
Kirchhof et al. Montithings: Model-driven development and deployment of reliable iot applications
CN103336705A (en) Automatic transcoding and semantic adaptation between scripting and workflow systems
WO2007035808A1 (en) Server application state
EP1236110A1 (en) A method for isolating a fault from error messages
US20130018692A1 (en) Apparatus, method, and computer program product for scenario-based identification of complete safety-based requirements specification
US8001424B2 (en) System and method for fault mapping of exceptions across programming models
Tahvili et al. ESPRET: A tool for execution time estimation of manual test cases
US20140372803A1 (en) Apparatus and method for analyzing abnormal states of component-based system
EP2972801A2 (en) Executable guidance experiences based on implicitly generated guidance models
US8099628B2 (en) Software problem identification tool
Wu et al. Techniques of maintaining evolving component-based software
DeVries et al. Run-time monitoring of self-adaptive systems to detect n-way feature interactions and their causes
JP2010015240A (en) Verification system and verification device
KR100946763B1 (en) Method and device for generating of code
Tosi et al. Towards autonomic service-oriented applications
JP7172986B2 (en) Configuration management device, configuration management method, and configuration management program
KR20110067418A (en) System and method for monitoring and evaluating a self-healing system
KR20050066511A (en) Input management apparatus and method thereof
US11537308B2 (en) Information processing system, information processing device, storage medium, and information processing method of detecting destruction of data due to file transfer
CN114546836A (en) Public component library automatic testing method and device based on push-down automaton guidance
Lee et al. Goal-based automated code generation in self-adaptive system
Ganesan et al. Architecture compliance checking at run-time

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130111

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140106

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee