KR20060079690A - Component-based programming automation process using templates and patterns - Google Patents

Component-based programming automation process using templates and patterns Download PDF

Info

Publication number
KR20060079690A
KR20060079690A KR1020050000150A KR20050000150A KR20060079690A KR 20060079690 A KR20060079690 A KR 20060079690A KR 1020050000150 A KR1020050000150 A KR 1020050000150A KR 20050000150 A KR20050000150 A KR 20050000150A KR 20060079690 A KR20060079690 A KR 20060079690A
Authority
KR
South Korea
Prior art keywords
program
template
screen
pattern
component
Prior art date
Application number
KR1020050000150A
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 KR1020050000150A priority Critical patent/KR20060079690A/en
Publication of KR20060079690A publication Critical patent/KR20060079690A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Abstract

본 발명은 템플릿과 패턴을 이용하여 컴포넌트 기반의 프로그래밍을 자동화하는 방법에 관한 것으로서,프로그램의 구성요소인 표준 화면 구성, 공통 스크립트, 참조할 컴포넌트 정보, 이미지 파일, 표준 디렉토리 구성 등을 미리 템플릿으로 생성하여 관리하는 단계와 프로그래밍 과정에서 반복적이고 재사용할 수 있는 프로그램 코드 패턴을 미리 생성하고 관리하는 단계(a); 상기 단계(a)에서 제공된 템플릿을 이용해 작성할 프로그램의 프로젝트를 자동으로 구성하는 단계(b); 상기 단계(b)에서 생성된 프로젝트의 실행환경을 설정하는 단계(c); 상기 단계(a)에서 제공된 템플릿을 이용하여 프로그램 화면과 업무로직을 처리하는 컴포넌트 클래스를 자동으로 생성하는 단계(d); 프로그램에서 처리하는 데이터를 저장하기위해 미리 구축한 데이터베이스의 테이블과 필드를 프로그램 화면의 컨트롤과 서로 연결시키고 데이터의 속성을 설정하는 데이터 바인딩 단계(e); 사용자가 프로그램 화면에 입력한 데이터에 대해 적합성 검사를 자동화하기위해서 적합성 검사식을 작성하는 단계(f); 상기 단계(d)에서 생성된 프로그램 화면과 업무로직 컴포넌트 클래스에 상기 단계(a)에서 생성된 프로그램 패턴을 적용하여 필요한 코드를 자동으로 생성하는 단계(g); 상기 단계(g)에 프로그램 코드를 추가하여 작성하는 단계(h); 상기 단계(a-h)를 통해 완성된 프로그램 화면과 업무로직 컴포넌트를 서로 연결하여 프로그램 화면에서 입력된 데이터를 수집하여 업무로직 컴포넌트에 파라메터로 전달하여 처리하도록 하고 처리된 결과는 다시 프로그램 화면에 반환하여 결과를 보여주는 단계(i)를 포함하는 것을 특징으로 한다. The present invention relates to a method for automating component-based programming using a template and a pattern. The present invention relates to a standard screen configuration, common script, component information to be referred to, image file, and standard directory configuration, which are components of a program, as templates. (A) generating and managing a program code pattern which can be repeated and reused in a management step and a programming process in advance; (B) automatically constructing a project of a program to be created using the template provided in step (a); (C) setting an execution environment of the project generated in the step (b); (D) automatically generating a component class for processing a program screen and a business logic using the template provided in the step (a); (E) a data binding step of linking tables and fields of a database previously constructed to store data processed by a program with controls on a program screen and setting properties of the data; (F) creating a conformance check expression for automating a conformity check on data input by a user on a program screen; (G) automatically generating necessary code by applying the program pattern generated in the step (a) to the program screen and the business logic component class generated in the step (d); (H) adding and writing a program code to the step (g); By connecting the completed program screen and the work logic component through the above step (ah), the data input from the program screen is collected, transferred to the work logic component as parameters, and the processed results are returned to the program screen. It characterized in that it comprises a step (i) showing.

본 발명의 방법에 따르면, 템플릿과 패턴을 이용하면 개발 공정이 간소화되고 개발 작업의 편리성이 제공되며, 자동화된 코딩 방법으로 프로그램의 개발 시간이 절감되며, 개발 경험이 적은 초보자라도 본 발명을 이용하여 원하는 프로그램을 손쉽게 개발할 수 있으며, 제대로 만들어진 템플릿과 패턴은 프로그램의 품질을 향상시키고, 안정적이고 견고한 프로그램을 개발할 수 있도록 한다. According to the method of the present invention, the use of templates and patterns simplifies the development process, provides convenience of development work, reduces the development time of the program by an automated coding method, and uses the present invention even for beginners with little development experience. You can easily develop the program you want, and well-designed templates and patterns improve the quality of the program and allow you to develop stable and robust programs.

프로그램, 자동화, 컴포넌트, 패턴, 템플릿, 데이터 바인딩, 적합성검사, 자동생성, 클래스, 객체Program, Automation, Component, Pattern, Template, Data Binding, Conformance Check, Auto Generation, Class, Object

Description

템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍 자동화 방법 {Component-Based Programming Automation Process using Templates and Patterns} Component-Based Programming Automation Process using Templates and Patterns}

도1은 본 발명의 바람직한 실시예에 따른 프로그램 작성 자동화 방법의 전체 흐름도 1 is an overall flowchart of a program creation automation method according to a preferred embodiment of the present invention.

도2는 본 발명의 바람직한 실시예에 따른 템플릿 관리 단계의 흐름도 2 is a flowchart of a template management step according to a preferred embodiment of the present invention.

도2a는 본 발명의 바람직한 실시예에 따른 템플릿 관리 화면의 예시도 2A is an exemplary diagram of a template management screen according to a preferred embodiment of the present invention.

도2b는 본 발명의 바람직한 실시예에 따른 템플릿 편집 화면의 예시도 2B is an exemplary view of a template editing screen according to a preferred embodiment of the present invention.

도3는 본 발명의 바람직한 실시예에 따른 패턴 관리 단계의 흐름도 3 is a flowchart of a pattern management step according to a preferred embodiment of the present invention.

도3a는 본 발명의 바람직한 실시예에 따른 패턴 관리 화면의 예시도 3A is an exemplary view of a pattern management screen according to a preferred embodiment of the present invention.

도3b는 본 발명의 바람직한 실시예에 따른 패턴 편집 화면의 예시도 3B is an exemplary view of a pattern editing screen according to a preferred embodiment of the present invention.

도3c는 본 발명의 바람직한 실시예에 따른 패턴을 이용해 소스코드를 자동 생성하는 화면의 예시도 Figure 3c is an illustration of a screen for automatically generating a source code using a pattern according to a preferred embodiment of the present invention

도4는 본 발명의 바람직한 실시예에 따른 실행환경설정 단계의 흐름도 4 is a flowchart of an execution environment setting step according to a preferred embodiment of the present invention.

도4a는 본 발명의 바람직한 실시예에 따른 실행환경설정 화면의 예시도 4A is an exemplary diagram of an execution environment setting screen according to a preferred embodiment of the present invention.

도5는 본 발명의 바람직한 실시예에 따른 데이터 바인딩 단계의 흐름도 5 is a flowchart of a data binding step according to a preferred embodiment of the present invention.

도5a는 본 발명의 바람직한 실시예에 따른 프로그램 화면에 대한 데이터 바인딩 화면의 예시도 5A is an exemplary diagram of a data binding screen for a program screen according to a preferred embodiment of the present invention.

도5b는 본 발명의 바람직한 실시예에 따른 멀티 그리드 컨트롤에 대한 데이터 바인딩 화면의 예시도 5B is an exemplary diagram of a data binding screen for a multi-grid control according to a preferred embodiment of the present invention.

도6는 본 발명의 바람직한 실시예에 따른 적합성검사식 설정 단계의 흐름도 Figure 6 is a flow chart of the conformance check formula setting step according to a preferred embodiment of the present invention

도6a는 본 발명의 바람직한 실시예에 따른 적합성검사식 설정 화면의 예시도 Figure 6a is an illustration of a conformance test formula setting screen according to a preferred embodiment of the present invention

도7은 본 발명의 바람직한 실시예에 따른 업무로직 컴포넌트 클래스의 유형과 관계 예시도 Figure 7 illustrates the type and relationship of the business logic component class according to an embodiment of the present invention

도8은 본 발명의 바람직한 실시예에 따른 엔티티 클래스를 자동 생성하는 화면의 예시도 8 is an exemplary diagram of a screen for automatically generating an entity class according to an embodiment of the present invention.

본 발명은 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화하는 방법에 관한 것으로, 더욱 상세하게는 템플릿을 미리 제공하여 사용자가 원하는 템플릿을 선택하면 템플릿의 구성 정보를 이용하여 어플리케이션의 프로젝트를 자동으로 구성하고, 프로그램 표준 화면 구성과 업무로직 컴포넌트 클래스의 소스 코드를 자동적으로 생성하여 주고, 미리 구축한 데이터베이스의 테이블과 필드를 프로그램 화면의 컨트롤과 서로 연결시켜 데이터의 속성을 설정하여주는 데이터 바인딩을 통해 데이터의 입력제어와 표시를 자동화하고, 프로그램 화면에 입력된 데이터의 적합성 검사를 자동화하기 위해 적합성 검사식을 설정하고, 프로그램 코드 패턴을 미리 제공하여 사용자가 원하는 패턴을 선택하면 선택한 패턴의 구성정보를 이용하여 프로그램 소스코드를 자동으로 생성해 주는 방법에 관한 것이다. The present invention relates to a method for automating component-based programming using a template and a pattern. More specifically, when a user selects a desired template by providing a template in advance, the project of the application is automatically configured using the template configuration information. It automatically generates the program standard screen composition and source code of business logic component class, and connects the tables and fields of the pre-built database with the control of the program screen to set data properties. Set the conformance check formula to automate the input control and display of the program, and the conformity check of the data entered on the program screen, and provide the program code pattern in advance to use the configuration information of the selected pattern. By pro Ram source code relates to a method that will be generated automatically.

현재의 정보기술은 많은 발전을 해왔다. 특히 프로그램의 구조는 많은 변화가 있었다. 모든 기능을 하나의 프로그램으로 구현하는 단일통합형 프로그램(Monolithic Program)에서, 공통의 기능을 라이브러리 형태로 모듈화하여 프로그램을 구현하는 라이브러리 지향 프로그램으로, 기능구현 로직과 관련 데이터를 클래스로 캡슐화하여 개발하는 객체지향 프로그램(Object Oriented Program)으로, 클래스의 모음을 실행 가능한 독립 컴포넌트로 분리하여 개발하는 컴포넌트 기반 프로그램으로, 컴포넌트를 서버에 분산시켜 이를 서로 연계하여 개발하는 분산 컴포넌트 프로그램 방식으로 발전하여 왔다. 상기한 정보기술 발전의 궁극적인 방향은 재사용과 자동화를 통해 소프트웨어 개발의 생산성을 향상시키고 표준화된 기술을 기반으로 분산된 시스템 간의 유기적인 통합을 용이하게 할 수 있도록 하여 개발된 시스템(H/W, S/W포함)의 총소유비용(TCO : Total Cost of Ownership)을 절감할 수 있도록 하는 데 있다. 그러나, 정보기술의 구조가 복잡해지면서 기술구조의 위험요소와 성능저해 요소 등이 증가하게 되어 사전에 문제의 요소들을 파악하여 기술구조의 적용방법과 범위를 설정해야 하며, 프로그램 개발하는 과정도 복잡해져 이를 단순화시키고 표준화시켜야 하며, 적용 업무도 과거에 비해 거대해지고 요구사항도 복잡해져 분석과 설계의 방법이 중요하게 되었다. 이러한 복잡한 상황으로 인해 개발 생산성은 과거에 비해 결코 좋아지지 않고 있으며 또한 개발된 소프트웨어의 품질도 좋아지지 않고 있다. 이는 미국의 Standish Group이 발표한 통계에 잘 나타나 있다. 통계에 의하면 전체 소프트웨어 개발 프로젝트 중에서 성공한 프로젝트는 16%에 불과하며 31%가 실패했고 나머지 53%는 기간이 지연되었거나 비용이 초과되었다는 것이 다. 이는 정보기술 자체의 문제보다는 기술을 적용하는 방법에 따라서 상이한 결과가 나타난다는 것을 의미한다. The current information technology has developed a lot. In particular, the structure of the program has changed a lot. In a monolithic program that implements all functions in one program, a library-oriented program that implements a program by modularizing common functions into a library. An object that develops function encapsulation logic and related data into classes. As an object oriented program, a component-based program that separates a collection of classes into executable independent components and has developed into a distributed component program method in which components are distributed to a server and connected to each other. The ultimate direction of the development of information technology is to improve the productivity of software development through reuse and automation and to facilitate the organic integration among distributed systems based on standardized technology (H / W, It is to reduce the total cost of ownership (TCO) of S / W). However, as the structure of information technology becomes more complicated, the risk factors and performance deterioration factors of the technology structure increase, so it is necessary to identify the problem factors in advance and set the method and scope of application of the technology structure. Simplified and standardized, application tasks are larger and more complex than ever before, and the methods of analysis and design become important. Due to this complex situation, development productivity is never improved compared to the past, and the quality of the developed software is not improved. This is illustrated by statistics published by the Standish Group in the United States. Statistics show that only 16% of all software development projects were successful, 31% failed, and the remaining 53% were delayed or costly. This means that different results are produced depending on how the technology is applied rather than the problem of information technology itself.

종래의 프로그램 개발 방법은 개발 표준에 대한 지침을 문서로 작성하여 이를 개발자에게 교육시켜 개발자가 개발표준지침문서에 따라 프로그램의 구성요소들을 작성하여 어플리케이션의 프로젝트를 구성하고 프로그램 화면을 구성하고 업무로직 컴포넌트 클래스를 생성하도록 하고있다. 현재 몇 가지 툴에서 템플릿을 제공하지만 템플릿이 고정적이며 새롭게 추가/수정하여 각 개발자에 배포할 수 없어 개발 작업에 적용하지 못하고있다. 또한 미리 구축한 데이터베이스의 테이블과 필드를 프로그램 화면의 컨트롤과 서로 연결시켜 데이터를 입력제어하고 표시하는 작업을 일일이 코딩으로 구현하고 있으며, 프로그램 화면에 입력된 데이터의 적합성 검사도 일일이 코딩으로 구현하고있다. The conventional program development method is to document the guidelines for the development standard and educate the developer so that the developer writes the components of the program according to the development standard guidelines document to compose the application project, compose the program screen, and work logic component. To create a class. Although some tools currently provide templates, the templates are fixed and cannot be added to the development work because new templates can be added / modified and distributed to each developer. In addition, coding and control of the data and input of the program screen are implemented by coding by connecting the tables and fields of the pre-built database to the control of the program screen. .

그러나, 상술한 종래의 방법은 소프트웨어의 규모가 점차 거대해지고 이를 개발하기위해 많은 개발자가 참여하여 서로 협업을 통해 작업이 이루어지는 현실 상황과, 프로그램 개발이 많은 경험을 요하는 작업이면서 개개인의 능력에 따라 그 결과물이 달라지는 개인 의존도가 큰 경향이 있는 특성으로 인해 효율적인 소프트웨어 개발이 이루어지지 못하고있다. 우선 템플릿을 자유롭게 추가/수정하여 개발자 간에 공통으로 배포할 수 있는 기능을 제공하지 못하므로 템플릿을 개발 작업에 적용하지 못하고 있으며, 문서로 제공되는 개발표준지침은 개발자의 이해도 차이로 인해 개발이 표준에 맞게 일관되게 이루어지리라고 보장할 수 없고, 같은 기능이라 하더라도 개발자의 능력에 따라 서로 다르게 코딩이 이루어질 수 있으며 프로그램의 성능도 서로 다르게 나타날 수 있고, 프로그램 작성 시 단순 반복적인 작업이 여전히 계속되고 있다. 또한 개발 후 유지보수 시에도 코드를 작성하는 스타일이 개발자 간에 다른 관계로 새롭게 다시 개발하는 것과 거의 다를 바가 없게 되었다. 이러한 문제점은 개발 생산성과 소프트웨어의 품질을 떨어뜨려 결국 총소유비용(TCO)을 절감할 수 없도록 하는 문제점을 발생시키고있다. However, the above-described conventional method is large and the size of the software is gradually increased, and many developers are involved in the development of the situation in which the work is carried out through collaboration with each other, and the program development requires a lot of experience and the ability of each individual. As a result, there is a tendency that the individual dependence on the result is largely prevented the efficient software development. First of all, the template cannot be applied to development work because it cannot freely add / modify the template and can be distributed among developers, and the development standard guideline provided in the document is the standard for development due to the difference of developer's understanding. It can't be guaranteed to be consistent, and even the same function can be coded differently according to the developer's ability, the performance of the program can be different, and simple and repetitive tasks are still going on. . In addition, the style of writing code during development and maintenance is almost the same as that of re-development because of the different relationship between developers. This problem leads to a reduction in development productivity and software quality, resulting in a loss of total cost of ownership (TCO).

본 발명의 목적은, 상기한 종래기술의 문제점을 해결하기위한 것으로서, 프로그램의 구성요소인 표준 화면 구성, 공통 스크립트, 참조할 컴포넌트 정보, 이미지 파일, 표준 디렉토리 구성 등을 미리 템플릿으로 제공하여 사용자가 원하는 템플릿을 선택하면 템플릿의 구성 정보를 이용하여 어플리케이션의 프로젝트를 자동으로 구성하고 프로그램 표준 화면 구성과 업무로직 컴포넌트 클래스의 소스 코드를 자동적으로 생성하여 주고, 미리 구축한 데이터베이스의 테이블과 필드를 프로그램 화면의 컨트롤과 서로 연결시켜 데이터의 속성을 설정하는 데이터 바인딩을 통해 데이터의 입력제어와 표현을 자동화하고, 프로그램 화면에 입력된 데이터의 적합성 검사를 자동화하기 위해 적합성 검사식을 설정하고, 프로그램 코드 패턴을 미리 제공하여 사용자가 원하는 패턴을 선택하면 선택한 패턴의 구성정보를 이용하여 프로그램 소스코드를 자동으로 생성하는 방법을 제공함으로 프로그래밍을 표준화 함으로서 에러를 줄여 품질을 보장하고 단순화하여 생산성을 높이는 것이다.
An object of the present invention is to solve the above-mentioned problems of the prior art, and provides the user with a template in advance by providing a standard screen configuration, common script, component information to be referred to, image file, standard directory configuration, etc. If you select the template you want, you can use the template configuration information to automatically configure the application project, automatically configure the program standard screen and generate the source code of the business logic component class, and display the table and fields of the pre-built database. Data binding, which connects with the control of the data and sets the properties of the data, automates the input control and representation of the data, sets the conformance check expression to automate the conformity check of the data entered on the program screen, and sets the program code pattern. Provided in advance for use Will increase productivity by selecting the desired pattern reduces errors by standardizing programming by providing a method of automatically generating a program source code, using the configuration information of the selected pattern ensures the quality and simplicity.

상기한 바와 같은 목적을 달성하기 위한 본 발명은, 템플릿과 패턴을 이용하여 컴포넌트 기반의 프로그래밍을 자동화하는 방법에 관한 것으로서, 프로그램의 구성요소인 표 준화면 구성, 공통 스크립트, 참조할 컴포넌트 정보, 이미지 파일, 표준 디렉토리 구성 등을 미리 템플릿으로 생성하여 관리하는 단계와 프로그래밍 과정에서 반복적이고 재사용할 수 있는 프로그램 코드 패턴을 미리 생성하고 관리하는 단계(a); 상기 단계(a)에서 제공된 템플릿을 이용해 작성할 프로그램의 프로젝트를 자동으로 구성하는 단계(b) 상기 단계(b)에서 생성된 프로젝트의 실행환경을 설정하는 단계(c) 상기 단계(a)에서 제공된 템플릿을 이용하여 프로그램 화면과 업무로직을 처리하는 컴포넌트 클래스를 자동으로 생성하는 단계(d) 프로그램에서 처리하는 데이터를 저장하기위해 미리 구축한 데이터베이스의 테이블과 필드를 프로그램 화면의 컨트롤과 연결시키고 데이터의 속성을 설정하는 데이터 바인딩 단계(e) 사용자가 프로그램 화면에 입력한 데이터에 대해 적합성 검사를 자동화하기위해서 적합성 검사식을 작성하는 단계(f) 상기 단계(d)에서 생성된 프로그램 화면과 업무로직 컴포넌트 클래스에 상기 단계(a)에서 생성된 프로그램 패턴을 적용하여 필요한 코드를 자동으로 생성하는 단계(g) 상기 단계(g)에 프로그램 코드를 추가하여 작성하는 단계(h) 상기 단계(a-h)를 통해 완성된 프로그램 화면과 업무로직 컴포넌트를 서로 연결하여 프로그램 화면에서 입력된 데이터를 수집하여 업무로직 컴포넌트에 파라메터로 전달하여 처리하도록 하고 처리된 결과는 다시 프로그램 화면에 반환하여 결과를 보여주는 단계(i)를 포함하는 것을 특징으로 한다. The present invention for achieving the object as described above, relates to a method for automating component-based programming using a template and a pattern, the standard screen configuration, common script, component information to be referred to, image, the components of the program Generating and managing a file, a standard directory structure, and the like as a template in advance and generating and managing a program code pattern that can be repeated and reused in a programming process in advance; Automatically constructing a project of a program to be created using the template provided in step (a) (b) setting an execution environment of the project created in step (b) (c) template provided in step (a) (D) Automatically create a component class that processes the program screen and business logic by using (d) Connect the table and fields of the database that has been built in advance to store the data processed by the program with the control of the program screen and (E) creating a conformance check expression for automating conformance check on the data entered by the user on the program screen (f) program screen and work logic component class generated in step (d) Apply the program pattern generated in step (a) to automatically generate the necessary code Step (g) adding the program code to the step (g) to create (h) connecting the program screen and the work logic components completed through the step (ah) to collect the data input from the program screen It is characterized in that it comprises the step (i) to pass to the business logic component as a parameter to process and return the processed result back to the program screen to show the result.

이하, 첨부된 도면을 참조하여 본 발명을 더욱 상세하게 설명한다. Hereinafter, with reference to the accompanying drawings will be described in more detail the present invention.

도 1은 본 발명의 바람직한 실시예에 따른 프로그래밍 자동화 방법의 전체 흐름도를 도시한 것이다. 도 1에 도시한 바와 같이, 우선 개발에 필요한 표준지침을 따르는 새로운 템플릿과 패턴을 생성하거나 기존의 템플릿과 패턴을 수정하여 이를 저장소에 관리 하는 작업을 한다(11). 1 shows an overall flow diagram of a programming automation method according to a preferred embodiment of the present invention. As shown in FIG. 1, first, a new template and pattern is generated according to standard guidelines required for development, or an existing template and pattern is modified and managed in a repository (11).

도 2는 템플릿을 생성하거나 수정하여 관리하는 하는 방법에 대한 흐름도를 도시한 것이다. 여기서 템플릿이란 어플리케이션을 구성하는데 필요한 요소들을 배치하고 구조화시킨 것을 의미하며, 더욱 상세하게는 프로그램 화면 구성, 공통 스크립트, 참조할 컴포넌트 정보, 이미지 파일, 표준 디렉토리 구성, 컴포넌트 클래스 구성 등을 포함하고 이를 구조화시킨 것을 의미한다. 도 2a는 템플릿을 생성하고 관리하는 기능을 사용자에게 제공하는 일례를 도시한 것이다. 도 2a에 도시한 바와 같이, 템플릿을 분류하고 편집하는 기능을 개괄적으로 도시한 것이 사용자에게 제공된다. 현재 등록된 템플릿은 사용자가 관리하기 쉽도록 분류한대로 목록으로 보여주고(21), 템플릿은 어플리케이션의 배치와 구조화를 위한 프로젝트 템플릿과 각 구성요소들의 배치와 구조화를 위한 프로젝트 구성항목 템플릿으로 대분류하고, 이를 VB,C#,C++,Java 등의 언어별로 다시 중분류하고, 이를 다시 프로그램 기능별로 소분류하는 것이 바람직하다(22). 템플릿에 대한 분류는 사용자의 필요에 따라 자유롭게 분류할 수 있으며 프로젝트 템플릿에는 웹 어플리케이션을 만들기 위한 템플릿, 윈도우 기반 어플리케이션을 만들기 위한 템플릿, 자바 기반 어플리케이션을 만들기 위한 템플릿, 배치 프로그램을 만들기 위한 템플릿, 데몬 프로그램을 만들기 위한 템플릿, 업무기능 컴포넌트를 만들기 위한 클래스 라이브러리 템플릿 등으로 분류하는 것이 바람직하며, 프로젝트 구성항목 템플릿에는 단일 레코드 처리를 위한 화면 템플릿, 멀티 레코드 처리를 위한 화면 템플릿, 1:N관계의 마스터-디테일 처리를 위한 화면 템플릿, 팝업 처리를 위한 화면 템플릿, 파일 업로드와 다운로드 처리를 위한 화면 템플릿, N:N관계의 데이터 처리를 위한 화면 템플릿, 그 래프 처리를 위한 화면 템플릿, 업무기능 컴포넌트의 클래스 템플릿 등으로 분류하는 것이 바람직하다. 분류된 템플릿을 배치하고 구조화하기위해 구성내용을 편집(23)하고, 필요한 구성요소 파일을 편집(24)한다. 도 2b는 템플릿을 배치하고 구조화하는 편집기능을 사용자에게 제공하는 일례를 도시한 것이다. 도 2b에 도시한 바와 같이, 템플릿은 사용자에 의해 선택되었을 때 자동으로 배치하기위해서는 위저드(Wizard)스크립트와 구성요소 파일로 구성되고, 다국어 지원을 위해서는 언어별로 별도의 디렉토리로 분리되어 관리되는 것이 바람직하고 템플릿의 구조화는 디렉토리 구성을 의미하며 사용자가 필요에 따라 변경이 가능하다. 구성요소 파일은 표준지침을 준수하는 프로그램 코드가 존재하게 된다. 새로 생성되거나 수정된 템플릿은 사용자가 저장할 수 있도록 한다(25). 템플릿의 분류에 따라 프로젝트 템플릿이면(26) 프로젝트 템플릿 저장소(27)에 저장하고 아니면 프로젝트 템플릿 구성항목 저장소(28)에 저장한다. 또한 상기 단계(21)에서 템플릿의 목록을 보여주기 위해서는 템플릿ID, 템플릿명, 템플릿 설명, 템플릿 위치, 템플릿 생성시 프로젝트명 또는 구성파일의 기본 파일명 등의 정보도 함께 저장하는 것이 바람직하다. 새로 생성되거나 수정된 템플릿을 모든 개발자와 공유하기위해 배포 파일을 생성하는 기능을 제공하고(29), 배포 범위는 사용자에 의해 전체 또는 일부분의 템플릿을 선택할 수 있으며 배포를 용이하게 하기 위해서는 하나의 배포파일로 압축하여 생성되는 것이 바람직하고, 배포된 템플릿 압축 파일은 각 사용자가 자신의 컴퓨터에 설치하는 작업이 별도로 필요하다. 상기에서 생성한 템플릿을 이용하면, 프로젝트 템플릿을 이용하여 어플리케이션의 구조를 자동으로 구성하고, 여기에 필요한 프로젝트 구성항목 템플릿을 이용하여 프로그램 구성요소를 자동으로 생성하여 추 가하는 방식으로 프로그래밍 작업공정을 단순화 시킬 수 있다. 2 is a flowchart illustrating a method of managing a template by creating or modifying the template. Here, the template refers to the arrangement and structure of the elements necessary to compose the application, and more specifically, includes the program screen configuration, common scripts, component information to refer to, image file, standard directory configuration, component class configuration, and the like. I mean. 2A illustrates an example of providing a user with a function of creating and managing a template. As shown in Fig. 2A, the user is provided with an overview of the function of classifying and editing a template. The currently registered templates are displayed as a list classified for easy management by users (21), and templates are largely classified into project template for deploying and structuring an application and project configuration item templates for placing and structuring each component. It is preferable to classify these again according to languages such as VB, C #, C ++, and Java, and then classify them again according to program functions (22). The classification of templates can be freely classified according to the user's needs. Project templates include templates for creating web applications, templates for creating windows-based applications, templates for creating Java-based applications, templates for creating batch programs, and daemon programs. It is preferable to classify it into a template for creating a function, a class library template for creating a business function component, etc. The project configuration item template includes a screen template for single record processing, a screen template for multi-record processing, and a master of 1: N relationship. Screen templates for detail processing, screen templates for pop-up processing, screen templates for file upload and download processing, screen templates for N: N relationship data processing, screen templates for graph processing, and business function components. It is preferably classified as class templates. Edit the configuration (23) and edit the required component file (24) to place and structure the classified template. 2B illustrates an example of providing a user with an editing function for placing and structuring a template. As shown in FIG. 2B, the template is composed of a wizard script and component files for automatic placement when the template is selected by the user, and is preferably managed separately in a separate directory for each language for multilingual support. The structure of the template means the organization of the directory and can be changed by the user as needed. Component files contain program code that conforms to the standard guidelines. The newly created or modified template can be saved by the user (25). If it is a project template according to the classification of the template (26) it is stored in the project template repository (27) or otherwise stored in the project template configuration item repository (28). In addition, in order to show the list of templates in the step 21, it is preferable to store information such as a template ID, a template name, a template description, a template location, a project name or a basic file name of a configuration file when the template is generated. Provides the ability to create a distribution file to share newly created or modified templates with all developers (29), and the distribution scope allows users to select all or part of the template and to distribute a single template to facilitate deployment. It is preferable to generate a compressed file, and distributed template compressed files need to be installed by each user on their own computer. The template created above simplifies the programming process by automatically constructing the structure of the application using the project template and automatically generating and adding program components using the required project configuration item template. You can.

도 3은 패턴을 생성하거나 수정하여 관리하는 방법에 대한 흐름도를 도시한 것이다. 여기서 패턴이란 반복적으로 사용되는 프로그램 코드의 일부분을 의미하며, 더욱 상세하게는 코딩 스타일과 실제 프로그램 코드를 포함하며 텍스트로 표현되는 모든 것을 패턴화할 수 있다. 등록된 패턴은 사용자가 관리하기 쉽도록 분류한대로 목록으로 보여주고(31), 새로운 패턴을 등록하거나 수정하는 패턴 편집 작업(31a)과 등록된 패턴을 프로그래밍에서 사용하기위해 자동 생성하는 작업(31b)과 등록된 패턴을 모든 개발자와 공유하기위해 배포하는 작업(31c)으로 구성된다. 도 3a는 새로운 패턴을 등록하거나 수정하고 관리하는 기능을 사용자에게 제공하는 일례를 도시한 것이다. 도 3a에 도시한 바와 같이, 패턴을 분류하고 편집하는 기능을 개괄적으로 도시한 것이 사용자에게 제공된다. 패턴은 VB, C#, J#, C++, JAVA, DBMS, WEB 등 프로그래밍에 적용되는 언어별로 대분류하고, 표준으로 미리 제공되는 고정적인 패턴과 프로젝트 또는 사용자 단위로 정의하여 사용할 수 있는 사용자정의 패턴으로 다시 중분류하고, 이를 다시 저장, 삭제, 조회, 이벤트처리 등 프로그램 기능별로 소분류하는 것이 바람직하다(32a). 패턴에 대한 분류는 사용자의 필요에 따라 자유롭게 분류할 수 있으며 분류된 패턴 데이터를 편집(33a)하고, 패턴의 사용 환경에 따라 변화의 요소를 적용하여 패턴 자동 생성시에 변화의 요소를 사용자로부터 입력 받아 패턴을 생성할 수 있도록 패턴에 정규 식(Regular Expression)을 적용(34a)하는 기능을 제공한다. 패턴의 정규 식(Regular Expression)을 패턴을 항상 고정적으로만 사용하는 것이 아니라 개발자의 선택에 따라서 패턴의 내용을 변화할 수 있도록 하는 위저드(Wizard)기능을 구현하는데 필수적인 요소이다. 도 3b 는 상기 단계(33a,34a)의 기능을 사용자에게 제공하는 일례를 도시한 것으로, 도 3b에 도시한 바와 같이, 패턴을 구분하기 위한 ID와 패턴에 대한 설명과 패턴의 변화 요소를 표현하기 위한 정규 식(Regular Expression)과 패턴 데이터로 구성되고, 패턴 정규 식(Regular Expression)은 정규 식(Regular Expression)을 구분하기위한 정규 식(Regular Expression)ID와 자동 생성시 위저드(Wizard)에 의해 표시되는 정규 식(Regular Expression)에 대한 설명과 정규 식(Regular Expression)에 대한 기본 값 등으로 구성된다. 정규 식(Regular Expression)에 대한 기본값은 패턴 자동 생성 시에 위저드(Wizard)에서 입력되는 정규 식(Regular Expression)의 기본 값을 의미하며 사용자로부터 입력되는 부분을 최소화시키기 위해 필요하다. 패턴을 자동 생성하는 위저드는 패턴의 정규 식(Regular Expression)을 사용자로부터 입력받은 정규 식(Regular Expression) 값으로 변한하여 최종 패턴 데이터를 생성한다. 새롭게 등록하거나 수정된 패턴은 사용자가 저장할 수 있도록 한다(35a). 정규 식(Regular Expression)이 적용된 패턴 데이터와 패턴 정규 식(Regular Expression) 정보를 포함한 구성정보를 패턴 저장소(37)에 저장하고, 상기 단계(31)에서 패턴의 목록을 보여주기 위해서는 패턴ID, 패턴설명, 패턴분류 등의 정보를 별도의 패턴 카탈로그 저장소(38)에 저장하는 것이 바람직하다. 패턴 카탈로그 저장소는 패턴을 검색하기 위한 색인으로도 사용된다. 도 3c는 등록된 패턴을 프로그래밍에서 사용하기위해 자동 생성하는 작업(31b)을 제공하는 기능을 사용자에게 제공하는 일례를 도시한 것이다. 도 3c에 도시한 바와 같이, 패턴을 자동 생성하기위한 위저드 기능을 개괄적으로 도시한 것이 사용자에게 제공된다. 사용자가 상기 단계(31)에서 표시된 등록된 패턴 목록에서 원하는 패턴을 한 개 이상 선택(32b) 하면 패턴 저장소(37)에서 선택된 패턴의 구성 정보를 이용하여 패턴 정규 식(Regular Expression)에 대한 설명을 표시하고 패턴 정규 식(Regular Expression) 값은 사용자가 입력할 수 있도록 표시하고(33b), 사용자는 패턴 정규 식(Regular Expression)에 대한 값을 입력하고(34b), 패턴 자동 생성을 위한 위저드(Wizard)는 패턴 데이터에 설정된 정규 식(Regular Expression)을 상기 단계(34b)에서 사용자가 입력한 정규 식(Regular Expression) 값으로 변환하여 원하는 최종 패턴을 생성하고(35b), 생성된 패턴은 사용자가 원하는 프로그램 위치에 자동 복사하여 준다(36b). 새로 등록되거나 수정된 패턴을 모든 개발자와 공유하기위해 배포 파일을 생성하는 기능을 제공하고(31c), 배포 범위는 사용자에 의해 전체 패턴 또는 일부분 패턴을 선택할 수 있으며 배포를 용이하게 하기 위해서는 하나의 배포파일로 압축하여 생성되는 것이 바람직하고, 배포된 패턴 압축 파일은 각 사용자가 자신의 컴퓨터에 설치하는 작업이 별도로 필요하다. 상기에서 기술한 바와 같이 패턴에 의한 작업은 프로그래밍의 반복적인 작업을 단순화하고 일관된 프로그래밍 스타일을 유지할 수 있도록 한다. 3 is a flowchart illustrating a method of creating or modifying and managing a pattern. Here, the pattern means a part of program code that is used repeatedly, and more specifically, it can pattern everything represented by text including a coding style and actual program code. The registered patterns are displayed as a list classified for easy management by the user (31), a pattern editing operation (31a) for registering or modifying a new pattern, and an operation for automatically generating the registered pattern for use in programming (31b). And distribute the registered pattern to all developers to share it (31c). 3A illustrates an example of providing a user with a function of registering, modifying, and managing a new pattern. As shown in Fig. 3A, the user is provided with an overview of the function of classifying and editing patterns. Patterns are largely categorized by language applied to programming such as VB, C #, J #, C ++, JAVA, DBMS, WEB, etc., and they are classified into fixed patterns that are provided as standard and custom patterns that can be defined and used by project or user unit. Then, it is desirable to sub-classify each program function such as storing, deleting, inquiring, and event processing (32a). The classification of patterns can be freely classified according to the needs of the user. The classified pattern data can be edited (33a), and the change factors are inputted from the user when the pattern is automatically generated by applying the change factors according to the usage environment of the pattern. It provides a function to apply a regular expression (34a) to a pattern so as to generate a pattern. Regular expressions of patterns are not essential to using patterns all the time, but are essential elements for implementing a wizard function that allows the content of a pattern to be changed according to a developer's choice. FIG. 3B illustrates an example of providing the user with the functions of steps 33a and 34a. As shown in FIG. 3B, an ID for identifying a pattern, a description of the pattern, and a change element of the pattern are represented. Consists of regular expression and pattern data for regular expression, and pattern regular expression is represented by regular expression ID to distinguish regular expression and wizard during automatic generation. It consists of the description of regular expressions and the default values for regular expressions. The default value for Regular Expression is the default value of Regular Expression that is input from Wizard when pattern is automatically generated and is required to minimize the input from the user. The wizard that automatically generates the pattern generates the final pattern data by changing the regular expression of the pattern into a regular expression value input from the user. The newly registered or modified pattern may be stored by the user (35a). In order to show the list of patterns in the pattern storage 37, the configuration information including the pattern data to which the regular expression is applied and the pattern regular expression information is stored in the pattern storage 37, and the pattern ID and the pattern It is preferable to store information such as description and pattern classification in a separate pattern catalog storage 38. The pattern catalog repository is also used as an index to search for patterns. FIG. 3C shows an example of providing a user with the functionality of providing a task 31b for automatically generating a registered pattern for use in programming. As shown in FIG. 3C, the user is provided with an overview of the wizard function for automatically generating a pattern. When the user selects one or more desired patterns (32b) from the list of registered patterns displayed in step 31 above, a description of the pattern regular expression is performed using the configuration information of the pattern selected in the pattern storage 37. Display and pattern regular expression values for user input (33b), users enter values for pattern regular expressions (34b), and wizards for automatic pattern generation ) Converts a regular expression set in the pattern data into a regular expression value input by the user in step 34b to generate a desired final pattern (35b), and the generated pattern is generated by the user. Automatic copy to program location (36b). Provides the ability to create a distribution file to share newly registered or modified patterns with all developers (31c), and the distribution scope can be selected by the user in full or partial pattern. It is preferable that the file is generated by compressing the file, and the distributed pattern compressed file needs to be separately installed by each user on their own computer. As described above, working with patterns makes it possible to simplify the repetitive tasks of programming and maintain a consistent programming style.

프로그램 개발에 필요한 템플릿과 패턴을 미리 생성하여 개발자에게 제공한 다음에는, 제공된 템플릿을 이용하여 작성할 프로그램의 프로젝트를 자동으로 구성하는 작업을 한다(12). 템플릿에 등록된 위저드는 템플릿의 구성정보를 이용하여 템플릿과 동일한 구조로 프로젝트를 자동으로 생성하여준다. 프로젝트를 구성한 다음에는 프로그램 실행에 대한 환경을 설정하는 작업을 한다(13). 도 4는 프로그램의 실행 환경을 설정하는 방법에 대한 흐름도를 도시한 것이며, 도 4a는 실행 환경을 설정하는 기능을 사용자에게 제공하는 일례를 도시한 것으로, 도 4a에 도시한 바와 같이, 실행환경 정보에는 프로젝트 를 구분하기위한 프로젝트ID와 사용할 데이터베이스 종류, 데이터베이스에 접근하기위한 방식, 접속문자열, 프로그램을 사용할 회사명, 데이터베이스 접속을 위한 데이터소스 정보, 프로그램을 개발자 모드 또는 서비스 모드로 설정할지 여부, 접속문자열을 텍스트로 관리할지 이를 숨기기 위해 별도의 실행모듈에서 관리할지 등이 있다. 개발자가 이를 관리하기 쉽도록 상기의 실행환경 정보를 화면에 표시하여 주고(41), 사용자가 이를 병결할 수 있도록 하고(42), 설정한 환경 정보는 별도의 환경정보 저장소(45)에 XML 형태로 저장(43)하는 것이 바람직하다. 설정된 환경 정보는 업무기능 컴포넌트에서 데이터베이스를 접근하여 데이터를 처리하고자 할 때 이용되며, 정보는 관리하기 쉽고 프로그램에서 접근하기 쉽도록 XML형태로 저장되는 것이 바람직하다. After generating a template and a pattern necessary for program development in advance and providing it to a developer, a task of automatically constructing a project of a program to be created using the provided template is performed (12). The wizard registered in the template automatically creates a project with the same structure as the template using the template's configuration information. After configuring the project, we set up the environment for program execution (13). 4 is a flowchart illustrating a method of setting an execution environment of a program, and FIG. 4A illustrates an example of providing a user with a function of setting an execution environment. As shown in FIG. 4A, execution environment information is shown. The project ID to identify the project, the type of database to use, the method to access the database, the connection string, the company name to use the program, the data source information for the database connection, whether to set the program to developer mode or service mode, You can manage strings as text or in separate executables to hide them. The execution environment information is displayed on the screen so that the developer can easily manage it (41), so that the user can connect it (42), and the set environment information is stored in an XML form in a separate environment information repository 45. It is preferable to store 43 as. The configured environment information is used to process data by accessing the database from the business function component, and the information is preferably stored in XML so that it can be easily managed and accessed by the program.

프로그램에 대한 실행환경을 설정한 다음에는, 미리 제공된 템플릿을 이용하여 작성할 프로그램 화면을 자동으로 생성하는 작업을 한다(14). 프로그램의 화면 유형에 맞는 템플릿을 사용자가 선택하면 템플릿에 등록된 위저드에 의해 템플릿과 동일한 구조로 프로젝트에 자동으로 추가가 되며, 추가된 프로그램 화면은 목적에 맞게 편집하여 완성을 하는 작업이 별도로 필요하다. After setting the execution environment for the program, a task of automatically generating a program screen to be created using a template provided in advance is performed (14). If the user selects a template suitable for the screen type of the program, the wizard registered in the template is automatically added to the project with the same structure as the template, and the added program screen needs to be separately edited and completed according to the purpose. .

템플릿을 이용해 프로그램 화면을 생성한 다음에는, 프로그램 화면에서 처리하는 데이터를 저장하기위해 미리 구축한 데이터베이스의 테이블과 필드를 프로그램 화면의 컨트롤과 서로 연결시키고 데이터의 속성을 설정하는 데이터 바인딩 작업을 한다(15). After creating a program screen using a template, data binding is performed by linking the tables and fields of the pre-built database with the controls of the program screen and setting the data properties to store data processed by the program screen. 15).

도 5는 데이터를 바인딩하는 방법에 대한 흐름도를 도시한 것이다. 도 5a는 데이터 바인딩을 설정하는 기능을 사용자에게 제공하는 일례를 도시한 것이다. 도 5a에 도시한 바와 같이, 프로그램 화면에 표현된 모든 오브젝트에 대해 미리 구축된 데이터베이스의 테이블과 필드를 연결하는 작업을 지원하는 기능을 개괄적으로 도시한 것이 사용자에게 제공된다. 데이터 바인딩은 프로그램 화면에 표현된 모든 오브젝트에 대해 개별적으로 작업을 하므로 사용자가 바인딩 작업을 하기 쉽도록 프로그램 화면 표현된 모든 오브젝트를 나열하여 표시하고(51), 화면 오브젝트와 연결할 데이터베이스(57)의 테이블 목록과 각 테이블에 대한 필드 정보를 사용자가 바인딩 작업을 하기 쉽도록 표시한다(52). 데이터베이스에 접근하기위해 필요한 정보는 상기 단계(13)에서 설정한 실행환경정보를 이용하여 접속한다. 화면 오브젝트에 설정할 바인딩 정보에는 오브벡트의 ID, 오브젝트명, 오브젝트에 대한 타이틀, 오브젝트에 표시되는 데이터의 길이, 오브젝트의 값을 화면의 버퍼에 XML형태로 구조화되어 저장하기위해 필요한 데이터소스ID, 바인딩되는 칼럼D를 나타내는 데이터필드, 오브젝트에 표시되는 데이터의 타입, 화면에 표시되는 유형 및 칼라를 설정하기위해 미리 정의된 스타일쉬트 정보 등이 포함되며, 데이터베이스의 테이블에 대한 바인딩 정보에는 테이블ID, 테이블명 등이 포함되며, 데이터베이스의 필드에 대한 바인딩 정보에는 칼럼ID, 칼럼명, 칼럼의 데이터 타입 등이 포함된다. 데이터 바인딩 작업은 화면의 오브젝트에 해당 데이블의 칼럼을 사용자가 개별적으로 연결하는 작업으로, 오브젝트ID와 오브젝트명은 칼럼ID에 데이터 타입별로 미리 정의된 접두어를 붙여 설정되며, 오브젝트 타이틀은 칼럼명으로 설정되며, 오브젝트 데이터 길이는 칼럼의 데이터 타입에 정의된 데이터 길이로 설정되며, 오브젝트 데이터필드는 칼럼ID로 연결되며, 오브젝트 데이터 타입은 칼럼의 데이터 타입과 연결된다. 화면에 표현되는 오브젝트의 종류에는 오브젝트의 데이터를 단일 텍스트로 표현되는 오브젝트와 그리드 형태로 표현되는 오브젝트로 분류할 수 있다. 단일 텍스트로 표현되는 오브젝트 는 상기와 같은 방법으로 데이터 바인딩을 할 수 있지만 그리드 형태의 오브젝트는 그리드의 셀 단위로 데이터 바인딩을 하는 것이 바람직하다. 도 5b는 그리드 오브젝트를 데이터 바인딩하는 기능을 사용자에게 제공하는 일례를 도시한 것이다. 도 5b에 도시한 바와 같이, 프로그램 화면에 표현된 그리드 오브젝트에 대해 셀 단위로 미리 구축된 테이터베이스의 테이블과 필드를 연결하는 작업을 지원하는 기능을 개괄적으로 도시한 것이 사용자에게 제공되며 바인딩하는 작업은 상기의 단일 텍스트로 표현되는 오브젝트와 같은 방법으로 처리된다. 바인딩에 의해 설정되지않는 정보인 화면 오브젝트의 크기, 위치, 색상, 모양, 한영 여부, 필수입력 여부 등은 사용자가 별도로 설정하며, 오브젝트 데이터소스ID는 화면에 표현된 데이터소스 오브젝트를 사용자가 선택하여 설정하는 작업등이 추가로 필요하다(54). 작성된 데이터 바인딩 정보는 프로그램 화면 파일이 아닌 별도의 저장소에 관리하면 관리의 문제가 발생하므로 프로그램 화면에 정보 저장을 위한 데이터 컨테이너 오브젝트(58)를 만들고 데이터 컨테이너 오브젝트의 속성에 데이터 바인딩 정보가 저장(56)되도록 하여 프로그램 화면 파일과 동일한 파일에 저장되도록 한다(55). 데이터 바인딩은 프로그램 화면에서 데이터가 입력되는 형태인 숫자, 문자, 형식화된 양식, 입력가능 여부, 한영 여부 등을 자동적으로 제어하거나 표현할 수 있도록 한다. 5 shows a flowchart of a method of binding data. 5A illustrates an example of providing a user with the ability to set up data binding. As shown in Fig. 5A, the user is provided with an overview showing the function of supporting the operation of linking the fields and the tables of the pre-established database to all the objects represented on the program screen. Data binding works on all objects represented on the program screen individually, so that all objects represented on the program screen are listed and displayed (51), and tables in the database (57) to be connected to the screen objects to facilitate the user's binding. The list and field information for each table are displayed to facilitate binding by the user (52). Information necessary to access the database is accessed using the execution environment information set in step 13 above. The binding information to be set in the screen object includes the ID of the object, the name of the object, the title of the object, the length of the data displayed in the object, and the data source ID necessary to structure and store the object value in an XML format in the screen buffer. The data field representing the column D to be displayed, the type of data displayed on the object, the predefined style sheet information to set the type and color displayed on the screen, and the binding information for the table in the database include the table ID and the table. The name and the like are included. The binding information for the field of the database includes the column ID, the column name, and the data type of the column. The data binding task is to connect the columns of the table to the objects on the screen individually. The object ID and the object name are set by prefixing the column ID with a predefined prefix for each data type. The object title is set as the column name. The object data length is set to the data length defined in the data type of the column, the object data field is connected by the column ID, and the object data type is connected by the data type of the column. The types of objects represented on the screen may be classified into objects represented by a single text and objects represented by a grid. Objects represented by a single text can be data-bound in the same manner as described above, but grid-type objects are preferably bound by grid cells. 5B illustrates an example of providing a user with a function of data binding a grid object. As shown in FIG. 5B, the user is provided with an overview of a function of supporting the operation of linking a table and a field of a pre-established database in units of cells to a grid object represented on a program screen. Is handled in the same way as the object represented by the above single text. The size, position, color, shape, Korean-English, mandatory input, etc. of the screen object, which are not set by the binding, are set separately by the user.The object data source ID is selected by the user by selecting a data source object represented on the screen. Additional work is required (54). If the created data binding information is managed in a separate repository rather than a program screen file, management problems will occur. Therefore, create a data container object 58 for storing information on the program screen, and store the data binding information in an attribute of the data container object (56). (55) to store the same file as the program screen file. Data binding allows the user to automatically control or express numbers, characters, formatted forms, whether they can be input, and whether it is Korean or English.

데이터 바인딩을 설정한 다음에는, 프로그램 화면에 입력된 데이터가 올바르게 입력이 되었는지에 대한 검사를 자동화하기 위해 적합성 검사식을 설정하는 작업을 한다(16). 도 6은 적합성 검사식을 설정하는 방법에 대한 흐름도를 도시한 것이다. 도 6a는 적합성 검사식을 설정하는 기능을 사용자에게 제공하는 일례를 도시한 것이며, 도 6a에 도 시한 바와 같이, 프로그램 화면에 표현된 모든 오브젝트에 대해 적합성 검사식을 설정하는 작업을 지원하는 기능을 개괄적으로 도시한 것이 사용자에게 제공된다. 적합성 검사식 설정은 프로그램 화면에 표현된 모든 오브젝트에 대해 개별적으로 작업을 하므로 사용자가 적합성 검사식 설정 작업을 하기 쉽도록 프로그램 화면에 표현된 모든 오브젝트를 계층적으로 나열하여 표시하고(61), 사용자는 검사식을 새롭게 추가하고 미리 정의되어 제공되는 적합성 검사식 종류에서 원하는 검사식을 선택한다(62). 적합성 검사식 종류에는 프로그램 화면의 데이터를 저장할 때 데이터가 변경되었는지 여부를 검사하기 위한 데이터 변경 검사식, 프로그램 화면의 오브젝트 중 필수 입력 항목에 대해 입력 여부를 검사하기 위한 필수입력 검사식, 데이터 값의 크기를 비교(=,>,<,<>,>=,<=)하는 비교 검사식, 데이터 값의 범위를 검사하기위한 범위 검사식, 데이터 값을 정규 식(Regular Expression)에 의한 값과 비교하기위한 정규 식(Regular Expression)에 의한 검사식, 사용자가 직접 작성한 함수를 호출하여 검사하기위한 사용자정의 검사식 등으로 분류하는 것이 바람직하다. 상기 단계(62)에서 선택한 검사식에 설정해야 할 정보는 사용자가 설정하기 용이하도록 제공되어야 한다(63). 검사식별로 설정해야 할 정보는 서로 상이하며, 데이터 변경 검사식에는 프로그램 화면에 표현된 데이터소스 오브젝트의 ID와 그리드 오브젝트의 ID를 설정하여 오브젝트의 내부 데이터가 변경되었는지를 검사할 수 있도록 하고, 필수입력 검사식에는 데이터 바인딩 단계에서 설정한 필수입력 여부 정보를 이용하여 검사하므로 별도로 설정할 정보는 없고, 비교 검사식은 비교 연산자인 =,>,<,<>,>=,<= 중 하나를 설정하고 비교 값을 설정하도록 하고, 범위 검사식은 값의 범위를 설정하기 위해 최소값과 최대값을 설정하 고 비교 연산자를 설정하도록 하고, 정규 식(Regular Expression)에 의한 검사식에는 사용자가 원하는 계산식과 비교 연산자를 설정할 수 있도록 하고, 사용자정의 검사식에는 사용자가 직접 작성한 검사 함수를 호출할 수 있도록 함수명을 설정할 수 있도록 한다(64). 그리고, 모든 검사식에 공통으로 설정해야 할 정보에는 적합성 오류가 발생할 경우에 표시될 오류메시지에 대한 표현 방법으로 오류 메시지 내용, 오류 메시지의 칼러, 메시지를 표시할 오브젝트, 검사식 단위별로 오류 메시지를 표시할지 또는 발생한 전체 오류 메시지를 통합하여 하나의 메시지로 표현할지 등의 정보가 있다. 상기 단계(64)에서 작성된 적합성 검사식 정보는 화면 파일이 아닌 별도의 저장소에 관리하면 관리의 문제가 발생하므로 프로그램 화면에 정보 저장을 위한 데이터 컨테이너 오브젝트(67)를 만들고 데이터 컨테이너 오브젝트의 속성에 검사식 정보가 저장(66)되도록 하여 프로그램 화면 파일과 동일한 파일에 저장되도록 한다(65). 적합성 검사식은 프로그램 화면에 입력된 데이터의 적합성을 검사하는 작업을 일일이 코딩으로 구현하지 않고 자동적으로 처리할 수 있도록 한다. After the data binding is set, a conformance check expression is set to automate checking whether data entered on the program screen is correctly input (16). 6 is a flowchart illustrating a method of setting a conformance check equation. FIG. 6A illustrates an example of providing a user with a function of setting a conformance check expression, and as shown in FIG. 6A, a function of supporting a task of setting a conformance check expression for all objects represented on a program screen. An overview is provided to the user. The conformance check setup works on all objects represented on the program screen individually, so that all objects represented on the program screen are listed hierarchically so as to make it easier for the user to perform the conformance check setup (61). Adds a new test equation and selects a desired test equation from the predefined conformance test equation type (62). The conformity check expression type includes the data change check expression for checking whether the data has been changed when saving the data of the program screen, the required input check expression for checking the input for the required input items among the objects on the program screen, and the data value. Comparison check expression that compares the size (=,>, <, <>,> =, <=), range check expression to check the range of data values, and compares data values with values by regular expressions It is preferable to classify the expression into a regular expression for checking, and a user-defined check expression for calling and checking a function written by a user. Information to be set in the inspection formula selected in step 62 should be provided so as to be easy to set by the user (63). The information to be set for each inspection formula is different from each other.In the data change inspection formula, the ID of the data source object and the grid object expressed on the program screen can be set to check whether the internal data of the object has changed. There is no information to set separately because the input check expression is checked by using the required input information set in the data binding step. The comparison check expression sets one of the comparison operators =,>, <, <>,> =, <=. To set the comparison value, the range check expression sets the minimum and maximum values and sets the comparison operator to set the range of values. For the check expression by regular expression, the calculation expression and the comparison operator you want Set the function name and set the function name to call the user-written test function. (64). In addition, information to be set common to all test expressions includes error message contents, color of error message, object to display message, and error message by test expression unit as expression method of error message to be displayed when conformance error occurs. There is information such as whether to display or to express the entire error message that occurred and to express it as one message. If the conformity check expression information created in step 64 is managed in a separate storage rather than a screen file, a problem arises in management, so a data container object 67 for storing information on a program screen is created and inspected in the attributes of the data container object. Expression information is stored 66 so that it is stored in the same file as the program screen file (65). The conformity check formula can automatically check the conformity of the data entered into the program screen without any coding.

상기 단계(14,15,16)에 의해 템플릿을 이용하여 프로그램 화면을 작성한 다음에는 미리 제공된 템플릿을이용하여 업무로직을 작성할 컴포넌트를 생성하는 작업을 한다(17). 컴포넌트의 유형에 맞는 템플릿을 사용자가 선택하면 템플릿에 등록된 위저드에 의해 템플릿과 동일한 구조로 프로젝트에 자동으로 추가가 되며, 추가된 컴포넌트 클래스는 목적에 맞게 편집하여 완성을 하는 작업이 별도로 필요하다. 프로젝트 규모에 따라 컴포넌트의 개수는 상당히 많아지며, 컴포넌트가 클래스의 집합이므로 클래스의 수도 상당히 많아진다. 현재의 분산 컴포넌트 기술은 하나의 컴포넌트를 다수의 사용자에게 서 비스하는 형태이므로 컴포넌트 구성을 어떻게 하느냐가 시스템의 안정성과 성능에 상당한 영향을 미치고, 특히 수많은 컴포넌트의 클래스를 어떤 기준에 의해 분류하고 구성하느냐가 중요한 결정 사항이다. After the program screen is created using the template by the above steps (14, 15, and 16), a task of generating a component to create a business logic using a template provided in advance is performed (17). If the user selects a template suitable for the component type, the wizard registered in the template is automatically added to the project with the same structure as the template, and the added component class needs to be separately edited and completed according to the purpose. Depending on the size of the project, the number of components is quite large, and the number of classes is quite large because the components are collections of classes. Current distributed component technology is a form of serving one component to a large number of users, so how the component configuration has a significant impact on the stability and performance of the system, and in particular, how to classify and organize a large number of component classes. This is an important decision.

도 7은 컴포넌트 클래스의 유형과 서로 관계를 도시한 것이다. 도 7에 도시한 바와 같이, 컴포넌트 클래스는 컨트롤 오브젝트(71), 엔티티 오브젝트(72), 비즈니스 오브젝트(73), 데이터 액세스 오브젝트(74)로 분류하는 것이 바람직하다. 컨트롤 오브젝트는 프로그램 화면에서 호출되는 첫번째 클래스로 프로그램 화면에 의존적으로 데이터를 처리하는 클래스로 프로그램 호면 단위로 존재하며 이 클래스로부터 업무로직이 시작된다. 엔티티 오브젝트는 데이터베이스의 테이블에 데이터를 처리하는 로직을 구현하는 클래스로 테이블 단위로 존재한다. 프로그램 화면에서 입력된 데이터는 컨트롤 오브젝트로 전달되고, 이를 다시 엔티티 오브젝트에 전달되며, 엔티티 오브젝트는 전달된 데이터에 포함된 데이터 바인딩 정보를 이용하여 데이터베이스에 데이터를 처리하기 위한 SQL문을 자동으로 생성하여 데이터를 처리하도록 한다. 비즈니스 오브젝트는 공통 업무로직을 구현하는 클래스로 다수의 컨트롤 오브젝트에 의해 호출되어 사용되며 데이터베이스에 대한 처리는 엔티티 오브젝트를 통해 처리된다. 데이터 액세스 오브젝트는 데이터베이스에 접근하여 SQL문을 처리하는 클래스로 상기의 모든 오브젝트에서 호출하여 사용할 수 있다. 상기와 같은 분류와 관계는 컴포넌트의 재사용성과 안정성, 확장성, 유지보수성을 높이는 중요한 요소이다. 엔티티 오브젝트는 처리되는 방식이 정형화되어 있으므로 자동화 툴에 의해 자동으로 생성되도록 하는 것이 바람직하다. 도 8은 엔티티 클래스를 자동으로 생성하는 기능을 사용자에게 제공하는 일례를 도시한 것 이며, 도 8에 도시한 바와 같이 데이터베이스에 등록된 모든 데이블에 대해 테이블 단위로 엔티티 클래스를 자동으로 생성하는 작업을 지원하는 기능을 개괄적으로 도시한 것이 사용자에게 제공된다. 7 illustrates types of component classes and relationships with each other. As shown in FIG. 7, the component class is preferably classified into a control object 71, an entity object 72, a business object 73, and a data access object 74. The control object is the first class called in the program screen. It is a class that processes data depending on the program screen. It exists in the unit of program surface and business logic starts from this class. An entity object is a class that implements logic that processes data in a table in a database. The data input from the program screen is passed to the control object, which is then passed back to the entity object, and the entity object automatically generates an SQL statement for processing data in the database using data binding information included in the passed data. Process the data. Business objects are classes that implement common business logic. They are called and used by a number of control objects, and processing for the database is handled through entity objects. A data access object is a class that accesses a database and processes SQL statements. It can be called by all the above objects. Such classifications and relationships are important factors to increase the reusability, stability, scalability, and maintainability of components. Because entity objects are formalized in the way they are handled, it is desirable to allow them to be created automatically by automated tools. FIG. 8 illustrates an example of providing a user with a function of automatically generating an entity class, and as shown in FIG. 8, automatically generating an entity class in table units for all tables registered in a database. An overview of the functions supported is provided to the user.

상기 단계(14,17)에 의해 템플릿을 이용하여 프로그램 화면과 업무로직 컴포넌트를 작성한 다음에는, 미리 제공된 패턴을 이용하여 세부 프로그램을 작성하는 작업을 한다(18). 패턴을 적용하여 프로그래밍을 자동화하는 방법은 상기 단계(31b)에서 설명한 패턴 생성 작업과 동일하다. After the program screen and the work logic component are created using the template by the above steps (14, 17), a detailed program is created using the previously provided pattern (18). The method of automating the programming by applying the pattern is the same as the pattern generation operation described in step 31b.

프로그램에 코딩 패턴을 적용한 다음에는, 기타로 세부적으로 프로그램을 추가하고 수정하고 프로그램 화면과 업무로직 컴포넌트를 연결하는 작업(19) 등을 하여 프로그램을 최종 완성하는 작업이 별도로 필요하다. After applying the coding pattern to the program, it is necessary to separately complete the program by adding and modifying the program in detail and connecting the program screen and the work logic component (19).

본 발명의 방법에 따르면, 템플릿과 패턴을 이용하면 개발 공정이 간소화되고 개발 작업의 편리성이 제공되며, 자동화된 코딩 방법으로 프로그램의 개발 시간이 절감되며, 개발 경험이 적은 초보자라도 본 발명을 이용하여 원하는 프로그램을 손쉽게 개발할 수 있으며, 제대로 만들어진 템플릿과 패턴은 소프트웨어의 품질을 향상시키고 안정적이고 견고한 소프트웨어를 개발할 수 있도록 한다. 또한, 개발이 표준지침에 맞게 일관되게 이루어지도록 보장할 수 있으며, 개개인의 능력에 따라 그 결과물이 달라지는 문제가 해결될 수 있으며, 프로그래밍 자동화를 통해 단순 반복적인 프로그래밍 작업이 사라져 효율적인 개발이 이루어지며, 개발 후 유지보수 시에도 코드를 작성하는 스타일이 개발 자간에 차이가 없어져 유지보수가 용이해진다. 결국 소프트웨어에 대한 총소유비용 According to the method of the present invention, the use of templates and patterns simplifies the development process, provides convenience of development work, reduces the development time of the program by an automated coding method, and uses the present invention even for beginners with little development experience. You can easily develop the program you want, and well-designed templates and patterns improve the quality of the software and allow you to develop stable and robust software. In addition, it can ensure that the development is consistent with the standard guidelines, and the problem of the result being changed according to the individual's ability can be solved.Effective development is achieved by eliminating simple repetitive programming tasks through programming automation. Even after development, the style of writing code is not different among developers, making maintenance easier. Ultimately, total cost of ownership for the software

(TCO)을 절감할 수 있는 효과가 있다.It has the effect of reducing TCO.

Claims (7)

프로그래밍을 자동화하는 방법에 있어서 프로그램 구성요소를 템플릿으로 미리 생성하는 단계, 재사용할 수 있는 프로그램 코드 패턴을 미리 생성하는 단계, 생성된 템플릿으로 작성할 프로그램의 프로젝트를 자동으로 구성하는 단계, 구성된 프로그램의 실행 환경 설정 단계, 생성된 템플릿을 이용한 컴프넌트 클라스를 자동으로 생성하는 단계, 프로그램에서 처리하는 데이터를 저장하기 위한 데이터 바인딩 단계, 컴포넌트 클라스에 생성된 프로그램 패턴을 적용하여 코드를 자동으로 생성하는 단계를 특징으로 하는 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. A method of automating programming, comprising the steps of pre-generating program components into a template, pre-generating reusable program code patterns, automatically constructing a project of a program to be created from the generated template, and executing the configured program. Environment setting step, automatic generation of component class using generated template, data binding step for storing data processed by program, automatic generation of code by applying generated program pattern to component class How to automate component-based programming with featured templates and patterns. 제1항에 있어서 데이터 바인딩 단계에서 데이터 바인딩 후 입력 데이터의 적합성을 검사하기 위한 검사식 설정단계를 포함한 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. The method of claim 1, wherein the method of automating component-based programming using a template and a pattern comprises a step of setting a check expression for checking suitability of input data after data binding in a data binding step. 제1항에 있어서 컴포넌트 클라스에 생성된 프로그램 패턴을 적용하여 코드를 자동으로 생성하는 단계에서 프로그램 코드를 새로이 추가하여 작성하는 단계를 포함한 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. The method of claim 1, further comprising: adding and writing new program code in the step of automatically generating code by applying the generated program pattern to the component class. 제1항에 있어서 컴포넌트를 서로 연결하여 입력된 데이터를 수집, 업무로직 컴포넌트에 파라미터로 전달하여 처리하고 처리 결과를 프로그램 화면에 보여주는 단계로 이루 어진 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. The method of claim 1, wherein the components are connected to each other to collect input data, pass them as parameters to the work logic component, process them, and display the processing result on a program screen. . 제2항에 있어서 컴포넌트 클라스에 생성된 프로그램 패턴을 적용하여 코드를 자동으로 생성하는 단계에서 프로그램 코드를 새로이 추가하여 작성하는 단계를 포함한 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. The method of claim 2, further comprising: adding and writing new program code in the step of automatically generating code by applying the generated program pattern to the component class. 제2항에 있어서 컴포넌트를 서로 연결하여 입력된 데이터를 수집, 업무로직 컴포넌트에 파라미터로 전달하여 처리하고 처리 결과를 프로그램 화면에 보여주는 단계로 이루어진 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. The method of claim 2, wherein the components are connected to each other to collect input data, pass them as parameters to the work logic component, and process and display the processing results on a program screen. 제3항에 있어서 컴포넌트를 서로 연결하여 입력된 데이터를 수집, 업무로직 컴포넌트에 파라미터로 전달하여 처리하고 처리 결과를 프로그램 화면에 보여주는 단계로 이루어진 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍을 자동화 하는 방법. 4. The method of claim 3, wherein the components are connected to each other to collect input data, pass them as parameters to the work logic component, process them, and display the processing result on a program screen.
KR1020050000150A 2005-01-03 2005-01-03 Component-based programming automation process using templates and patterns KR20060079690A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050000150A KR20060079690A (en) 2005-01-03 2005-01-03 Component-based programming automation process using templates and patterns

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050000150A KR20060079690A (en) 2005-01-03 2005-01-03 Component-based programming automation process using templates and patterns

Publications (1)

Publication Number Publication Date
KR20060079690A true KR20060079690A (en) 2006-07-06

Family

ID=37171284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050000150A KR20060079690A (en) 2005-01-03 2005-01-03 Component-based programming automation process using templates and patterns

Country Status (1)

Country Link
KR (1) KR20060079690A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100842636B1 (en) * 2006-12-01 2008-06-30 삼성전자주식회사 Method for testing automatic and thereof test system
KR100860963B1 (en) * 2007-03-08 2008-09-30 삼성전자주식회사 Apparatus and method for developing software based on component
WO2009045918A3 (en) * 2007-09-28 2009-06-04 Microsoft Corp Intelligent editing of relational models
KR101149655B1 (en) * 2010-07-08 2012-05-25 동국대학교 산학협력단 Program design apparatus and method
KR101326985B1 (en) * 2011-09-27 2013-11-14 이메디정보기술(주) Method and apparatus for developing, distributing and executing object-wise dynamic compileless programs
KR101552914B1 (en) * 2007-01-30 2015-10-01 에스케이커뮤니케이션즈 주식회사 Web server application framework web application processing method using the framework and computer readable medium processing the method
KR102299746B1 (en) 2020-04-20 2021-09-08 최길주 System for automatically processing data of web baed heterogeneous database and method thereof

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100842636B1 (en) * 2006-12-01 2008-06-30 삼성전자주식회사 Method for testing automatic and thereof test system
KR101552914B1 (en) * 2007-01-30 2015-10-01 에스케이커뮤니케이션즈 주식회사 Web server application framework web application processing method using the framework and computer readable medium processing the method
KR100860963B1 (en) * 2007-03-08 2008-09-30 삼성전자주식회사 Apparatus and method for developing software based on component
WO2009045918A3 (en) * 2007-09-28 2009-06-04 Microsoft Corp Intelligent editing of relational models
KR101149655B1 (en) * 2010-07-08 2012-05-25 동국대학교 산학협력단 Program design apparatus and method
KR101326985B1 (en) * 2011-09-27 2013-11-14 이메디정보기술(주) Method and apparatus for developing, distributing and executing object-wise dynamic compileless programs
KR102299746B1 (en) 2020-04-20 2021-09-08 최길주 System for automatically processing data of web baed heterogeneous database and method thereof

Similar Documents

Publication Publication Date Title
US11620117B2 (en) Systems and methods for code clustering analysis and transformation
US11188319B2 (en) Systems and methods for entry point-based code analysis and transformation
US10127148B2 (en) Software test automation system and method
US11436006B2 (en) Systems and methods for code analysis heat map interfaces
US8196099B2 (en) Updating application design
CA2723933C (en) Methods and systems for developing, debugging, and executing data integration applications
US8392873B2 (en) Methods and apparatus for implementing model-based software solution development and integrated change management
US7562346B2 (en) Software componentization for building a software product
US20160170719A1 (en) Software database system and process of building and operating the same
US20120124550A1 (en) Facilitating database application code translation from a first application language to a second application language
KR20060079690A (en) Component-based programming automation process using templates and patterns
JP2011515755A (en) Development method and apparatus for reserved component container base software
US11461217B2 (en) Transferring data from a source complex variable to a target complex variable
US20080022258A1 (en) Custom database system and method of building and operating the same
US8631393B2 (en) Custom database system and method of building and operating the same
US20050108279A1 (en) Method and dynamic system for the mangement and production of technical documentation in a database
Andersson et al. Managing variability requirements and variation points for Software Product Lines A Case Study

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application