[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR100558952B1 - 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체 - Google Patents

인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체 Download PDF

Info

Publication number
KR100558952B1
KR100558952B1 KR1020050039776A KR20050039776A KR100558952B1 KR 100558952 B1 KR100558952 B1 KR 100558952B1 KR 1020050039776 A KR1020050039776 A KR 1020050039776A KR 20050039776 A KR20050039776 A KR 20050039776A KR 100558952 B1 KR100558952 B1 KR 100558952B1
Authority
KR
South Korea
Prior art keywords
interface screen
field
data input
design
name
Prior art date
Application number
KR1020050039776A
Other languages
English (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 KR1020050039776A priority Critical patent/KR100558952B1/ko
Application granted granted Critical
Publication of KR100558952B1 publication Critical patent/KR100558952B1/ko
Priority to JP2006069809A priority patent/JP4544473B2/ja
Priority to US11/413,939 priority patent/US7783678B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 사용자 인터페이스 화면을 먼저 설계하고 그 이후 생산 공정을 자동화하는 역공학 방식의 업무 프로그램 자동생산방법을 개시한다.
이를 통해 본 발명은 비즈니스 프로세스에 대한 이해와 설계능력을 갖춘 사람들의 역할범위를 최대한 확대하는 동시에 구현단계의 각 부분을 최대한 자동화하여 혁신적인 생산성과 함께 사용자 지향적인 고기능의 소프트웨어를 개발하는 생산체제를 구축하는데 목적을 두고 있다.
먼저, 사용자로부터 입력될 데이터의 항목명표시란 및 이에 상응하여 데이터가 입력될 데이터입력란, 및 기능 식별이 가능한 이벤트 버튼을 포함하는 업무 프로그램의 사용자 인터페이스 화면을 그래픽 유저 인터페이스로 생성한다. 그런 다음, 인터페이스 화면을 통해 입력되는 데이터가 저장될 DB명 및 테이블명을 각 인터페이스 화면 별로 설계자로부터 지정받는다. 이어서, 각 인터페이스 화면을 분석하여 항목명표시란의 항목명과 데이터입력란의 크기에 기초하여 테이블의 필드 설계 정보를 자동 추출한다. 그 이후에, 각 인터페이스 화면별로 분석된 필드 설계 정보와 각 인터페이스 화면별로 지정된 테이블명을 참조하여 테이블 별로 필드 구조를 정의한 데이터베이스 설계도(ERD)를 그래픽 인터페이스로 생성한다. 그리고 나서, 상기 데이터베이스 설계도에 표시된 테이블의 필드 구조를 참조하여 데이터베이스를 생성하기 위한 SQL 명령문을 자동으로 작성하고 실행하여 물리적 데이터베이스를 생성한다. 그런 다음, 상기 이벤트 버튼의 기능을 식별하여 버튼의 동작 과 연동하여 실행될 SQL 명령문을 자동으로 작성하고 버튼의 동작 이벤트와 연동시킨다.

Description

인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체{Method for automation of software manufacturing process based on graphic user interface design, and Computer readable medium having thereon computer executable instruction for performing the same}
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명에 따른 소프트웨어 자동생산방법의 흐름도.
도 2는 본 발명에 따른 소프트웨어 자동생산방법의 인터페이스 화면 설계 작업을 위한 GUI 저작시스템의 일실시예 도면.
도 3은 본 발명에 따른 소프트웨어 자동생산지원 저작시스템의 구성도.
도 4는 본 발명에 따른 데이터입력란의 테이블명 및 필드명 자동탐색 및 설정 프로그램의 흐름도.
도 5는 본 발명에 따른 데이터입력란의 테이블명 및 필드명 자동탐색 프로그램의 일실시예 도면.
도 6은 본 발명에 따른 데이터입력란의 필드명 및 필드길이 자동설정 프로그램의 일실시예 도면.
도 7은 본 발명에 따른 데이터입력란의 테이블명 일괄지정 프로그램의 일실시예 도면.
도 8은 본 발명에 따른 데이터베이스 설계도(ERD)의 자동설계 프로그램의 구성도.
도 9는 본 발명에 따른 ERD 자동설계 프로그램의 자동생성 DB정보 표시부 및 ERD 표시부에 대한 일실시예 도면.
도 10은 본 발명에 따른 테이블 생성을 위한 SQL 자동작성 및 실행 프로그램의 일실시예 도면.
도 11은 본 발명에 따른 테이블 생성을 위한 SQL 자동작성 및 실행 프로그램의 흐름도.
도 12는 본 발명에 따른 인터페이스 화면 분석 후 DB동작에 필요한 SQL을 자동생성하는 시스템의 일실시예 도면.
도 13은 본 발명에 따른 인터페이스 화면 분석 후 DB동작에 필요한 SQL을 자동생성하는 시스템의 구성도.
도 14는 본 발명에 따른 ERD 정보 변경시 인터페이스 화면이나 코드를 자동수정하는 프로그램의 구성도.
본 발명은 업무용 컴퓨터 프로그램을 개발하는 방법 및 저작시스템에 관한 것으로서, 프로그래밍 전문기술자가 아닌 실제 업무논리와 흐름을 이해하고 있는 사람이 신속하고 효율적으로 목적한 컴퓨터 프로그램을 개발할 수 있도록 하는, 프로세스 지식과 사용자 인터페이스 중심의 소프트웨어 자동생산방법 및 저작시스템에 대한 것이다.
컴퓨터 프로그램 즉, 소프트웨어의 개발에 있어서 표준화된 개발방법론은 1970년대 이후 폭포수 모형(Waterfall Model)의 패러다임을 토대로 한 '구조적 개발방법론'이 체계적으로 정립되면서 그 발전이 시작되었다.
상기 구조적 개발방법론은 분석-설계-구현-시험-유지보수로 이어지는 단계적인 구현단계를 체계화하였으며, 개발의 여러 단계마다 특화된 개발도구와 도형적 기법을 통해 복잡하고 난해한 개념이나 절차를 알아보기 쉽고 관리하기 쉽게 지원하였다. 또한 소프트웨어 개발의 논리적 측면과 물리적 측면을 분리하여 물리적 설계에 앞서 논리적 설계가 선행되어야 한다는 점을 강조했으며, 이렇게 두 과정으로 분리함으로써 실제 시스템의 구현에 들어가기 전에 이용자에게 시스템의 논리적 설계안을 제시하여 사전검토를 받을 수 있게 하였다.
한편, 구조적 개발방법론은 소프트웨어 개발방법에 있어서 체계를 잡아 주기는 하였지만, 80년대 이후 소프트웨어가 급격히 복잡해지고 사용자의 요구수준도 높아지면서 점점 한계에 부딪히게 되었다. 특히 과거에는 소프트웨어 개발이 단위모듈이나 단위프로그램을 개발하는 수준에 머물렀지만, 80년대 이후에는 기업의 전 사적 차원에서 정보시스템에 대한 요구가 생겨나고 기업의 전략적 측면까지 고려한 대형 프로젝트가 생겨나면서 기존의 구조적 개발방법론으로는 변화하는 환경에 도저히 적응할 수 없게 되었다.
이와 같은 요구에 따라 1981년 C. Finkelstein은 정보공학 (Information Engineering)이라는 용어를 제안했으며 J. Martin은 이 사상을 방법론으로 구체화한 정보공학 방법론을 정립하여 폭넓게 전파시켰다. 여기서, 정보공학의 정의는 '기업이나 기업의 핵심부문이 요구하는 정보시스템의 계획, 분석, 설계 및 구축에 필요한 정형화된 방법들의 응용'이다.
상기 정보공학적 개발방법론은 기업중심의 사상을 갖고 있기 때문에 기업정보와 기업의 업무절차에 초점을 맞추어 시스템 데이터와 자동화 절차들을 모형화하고 있다. 또한 계획-분석-설계-구축으로 이어지는 각 단계사이의 유연한 진행과 통합을 추구하였으며 방법론과 케이스 툴이 상호보완적인 역할을 충분히 할 수 있도록 하고 있다. 그래서 정보공학을 토대로 만들어진 다양한 상용방법론들은 대부분 자신의 방법론에 맞는 케이스 툴을 도입하거나 자체 개발하여, 방법론과 케이스 툴을 함께 공급하고 있다.
상기 정보공학적 개발방법론에 기초한 상용방법론은 다음의 절차를 기본적으로 따른다. 즉, 사용자 요구사항을 파악하고 그것을 도식화하는 분석단계 → 분석단계에서 만들어진 모델을 바탕으로 프로그램 구동에 필요한 데이터베이스 구조를 설계하는 단계 → 사용자 요구사항과 데이터베이스 구조에 맞는 화면 레이아웃을 상세하게 설계하는 단계 → 실제 코딩작업을 수행하여 실행프로그램을 구현하는 단 계 → 부분적으로 구현된 프로그램 및 시스템을 상향식으로 통합해나가는 단계 → 각 프로그램의 세부기능과 통합프로그램의 기능을 테스트하는 시험단계 → 테스트를 마친 시스템을 실제 운용환경으로 옮기고 사후관리를 수행하는 적용단계 등으로 구성된다.
상기 정보공학적 개발방법론은 구조적 개발방법론이 지닌 논리적 체계성의 바탕 위에서 기업의 정보시스템 구축이라는 대형 프로젝트를 지원할 수 있을 정도로 방대하게 설계되었고 각 단계별로 최적화된 케이스 툴이 함께 제공되는 실용성까지 갖추고 있다. 또한 프로젝트 관리의 측면까지 보강하여 8,90년대의 소프트웨어 개발, 정보시스템 구축에 있어서 대표적인 방법론으로 자리 잡았다.
그러나 정보공학적 개발방법론의 체계적이고 철저한 관리를 추구하는 특성은 지나치게 많은 시간과 비용을 요구하게 되었다. 또한 그 근간에서는 여전히 구조적 개발방법론의 패러다임을 토대로 하고 있기 때문에 시스템 개발의 유연성에 있어서도 많은 문제를 안고 있었다. 그래서 90년대 중반이후에는 이에 대한 대안으로서 객체지향 방법론, CBD 방법론 등의 개념이 등장하여 활발하게 연구되고 있지만 아직까지 충분히 실용화되었다고 보기는 힘든 것이 현실이다.
현재 대부분의 비즈니스용 컴퓨터 프로그램 및 소프트웨어 개발에서 사용되고 있는 정보공학적 방법론 체계 및 개발시스템들은 아직까지도 다음과 같이 많은 문제들을 안고 있다.
첫째. 복잡한 절차와 방대한 규모를 특징으로 하는 기존 소프트웨어 개발방법론의 낮은 실용성과 그로 인한 소프트웨어 개발 체계화의 어려움을 들 수 있다.
즉, 기존 개발방법론들은 대단히 복잡한 절차로 구성되어 있으며 요구하는 산출물의 양 또한 방대하다. 실제로 한국전자통신연구원(ETRI)에서 연구 개발하여 국내 대표적인 컴포넌트 기반 개발방법론으로 활용되고 있는 '마르미-III'의 경우 전체 4개 phase, 30개 activity, 96개 task로 구성되어 있으며 요구되는 산출물의 종류 또한 방대하다. 그리고 특정 태스크에서 작성된 산출물들이 다른 태스크에서 참조되고 수정되는 작업까지 고려한다면, 단순히 산출물의 수를 가지고 가늠할 수 있는 정도 이상의 작업량이 필요하다고 볼 수 있다.
이렇게 기존의 개발방법론이 복잡한 절차와 방대한 규모로 이루어진 이유는 최초 분석단계부터 데이터 구조와 프로세스 및 사용자 인터페이스 체계까지를 동시에 고려하면서 시스템을 구축해나가는 방식을 취하고 있기 때문이다. 그런데 이러한 방식은 개발방법론 자체가 개발자에게 입체적인 시각과 접근방식을 지닐 것을 요구하게 된다. 그리고 기존의 방법론들은 데이터와 프로세스라는 소프트웨어적인 영역뿐만 아니라 시스템을 구축할 기술적인 환경에 대해서까지 동시에 고려하고 있다. 이런 전제하에서는 정말 훌륭한 방법론이 등장해서 완벽하게 입체적인 접근 방법을 제시하고 단계별로 필요할 산출물 및 지침을 명확히 정의했다하더라도 그것은 이미 실용적인 경제성을 잃어버릴 정도로 복잡해져버리게 된다.
둘째. 분석 및 설계단계부터 데이터베이스 구조를 가장 우선적으로 고려하고 구현함으로 인해서 발생하는 구조적 비효율성 및 비현실성을 들 수 있다.
즉, 소프트웨어 개발과정에서 유연성이 가장 떨어지고, 문제가 생겼거나 추가사항이 생겼을 때 수정이 가장 어려운 부분은 데이터베이스와 관련된 부분이다. 데이터베이스의 구조에 조금이라도 변경사항이 생기면 그와 연계된 수많은 모듈들이 영향을 받게 되며, 이로 인해 공수가 극적으로 증가되기 때문이다. 따라서 상식적으로 생각하면 이렇게 유연성이 떨어지는 작업은 전체 공정상 후반부에서 이루어지는 것이 자연스럽다.
그런데 기존의 개발방법론에서는 데이터베이스와 관련된 부분이 전체 개발공정상에서 볼 때 상대적으로 앞부분에 위치하고 있었으며, 기본적인 전제 자체가 소프트웨어가 수행할 핵심기능을 비즈니스 및 업무기능 자동화에 두지 못하고 데이터 처리에 모든 관심을 집중시키고 있었다. 그래서 방법론상의 분석단계에서부터 프로세스 분석과 함께 데이터 모델링 작업이 이루어지며, 설계단계에서도 최종 처리 및 저장될 데이터베이스 구조를 물리적 차원까지 설계하는데 중점을 두고 이루어졌던 것이다. 즉 프로그램 소스 코딩 등 본격적인 구현 작업으로 들어가기 이전에 데이터 구조가 이미 확정되는 것이다.
위와 같은 방식이 지금까지는 너무나 당연한 것으로 여겨져 왔지만 사실 이런 방식은 두 개의 커다란 구조적 문제점을 안고 있다.
우선 분석단계부터 데이터 구조를 고려하는 것이 프로세스를 근본적으로 개선하고 혁신하는데 상당한 제약조건이 되고 있다는 점이다. 정보공학이 처음 등장하던 때에는 현업에서 일어나는 일을 분석하고 비효율적인 부분을 수정하여 사람이 하던 일을 정보기술로 대체하는 것이 정보시스템 개발의 본질이었다. 따라서 현행 프로세스와 데이터 구조를 개발자들이 이해하기 쉽게 전달해줄 필요가 있었으며 그를 위한 수단이 바로 다양한 모델링 기법들이었다. 이렇듯 과거에는 개발방법론이 현실을 그대로 모형화하는 것에 주안을 두었던 반면, 오늘날에는 현행 시스템이나 프로세스를 혁신하는 것이 중요한 이슈가 되고 있다.
다시 말해 진정한 프로세스 혁신이나 BPR을 추진하기 위해서는 기존 시스템이나 현장의 업무처리 절차 및 관행으로부터 한걸음 뒤로 떨어져서 IT라는 혁신적인 수단을 활용하여 보다 합리적인 프로세스만을 연구하고 발전시키는 것이 수요자들의 가장 중요한 요구가 되고 있다. 이러한 관점에서 본다면 분석, 설계 단계부터 현재 수행하는 구조에 상응하는 데이터 구조를 고려하면서, 동시에 프로세스의 개선가능성이나 효율성을 평가하면서 진행하는 것은 근본목적을 달성하는데 있어서 거의 불가능한 전제조건이라고 할 수 있다.
데이터 구조에 대한 고려를 지나치게 앞 단계부터 수행하는 방식이 가진 또 다른 구조적인 문제는 한 번 확정된 데이터베이스 구조를 변경하는 데는 엄청난 시행착오와 막대한 시간 및 노력이 들어가게 되며, 이에 따라 설계단계부터 테스트와 검증에 지나치게 많은 노력이 필요하다는 점이다. 앞에서도 언급했듯이 데이터 구조와 관련된 부분은 유연성이 매우 떨어져서 한 번 확정되면 수정하기가 매우 어렵다. 따라서 실제 구현단계로 들어가면 프로세스나 데이터구조에 문제점이 발견되거나 추가 요구사항이 생겨서 데이터베이스 구조상의 간단한 수정작업 하나를 수행하기 위해서, 해당되는 모듈의 화면 및 출력물 구조와 소스코드를 모두 고쳐야하며 이 모듈과 연계되어 작동하는 전후방 관련 모듈이나 상 하위 기능을 수행하는 모듈들을 모두 고쳐야하는 문제가 발생한다. 이처럼 단순한 수정작업조차도 매우 힘들기 때문에 그 이전단계에서 한 단계 한 단계 진행될 때마다 확실한 테스트와 검증 작업에 과도한 비용과 노력이 필요한 것이다. 그럼에도 불구하고 복잡한 산업현장을 반영하는 응용 소프트웨어는 필연적으로 이런 시행착오를 겪을 수밖에 없다.
셋째. 업무프로세스 설계자와 전문개발자의 역할이 명확히 구분되어 서로간의 커뮤니케이션에 많은 시간과 비용이 소모되며, 업무프로세스 전문가의 지식이 소프트웨어에 완전하게 반영되기 어렵다는 점을 들 수 있다.
즉, 기존 개발방법론은 컴퓨터 기술을 가진 개발자와 업무논리를 이해하고 있는 사용자의 역할을 명확히 나누고 있다. 이것은 개발자와 사용자는 가지고 있는 지식뿐만 아니라 시스템을 바라보는 관점에 있어서도 전혀 다르기 때문에 나타나는 당연한 결과이다.
먼저 지식의 측면에서 보면 개발자의 경우 업무논리를 제대로 알지 못하며 사용자의 경우 시스템을 구축할 정도의 개발능력이나 지식을 갖고 있지 못하다. 그리고 시스템을 바라보는 관점에 있어서도 두 주체는 큰 차이를 보인다. 소프트웨어 개발에 있어서 사용자는 시스템이 무엇(What)을 해줄 수 있는가의 관점에서 바라보며 개발자는 어떻게(How) 구현할 것인지의 관점에서 바라보게 된다.
따라서, 개발자들은 프로그램 개발 시 무엇을 어떻게 만들 것인가에 대해 사용자나 관련 전문가와 충분히 협의하면서 일을 진행해야 하며 이로 인해 분석-설계-개발로 이어지는 단계에 그토록 많고 복잡한 검토와 승인 및 테스트 절차가 포함될 수밖에 없는 것이다.
이러한 특성 때문에 분석-설계 단계에서는 커뮤니케이션이 대단히 중요한 요소가 되며 커뮤니케이션이 가장 활발하게 이루어지는 단계이기도 하다. 실제로 개 발자와 사용자 사이의 커뮤니케이션은 소프트웨어 개발 프로젝트에서 대단히 중요하면서도 성공적으로 수행하기 힘든 부분으로 꼽히고 있다.
그리고 소프트웨어 개발에 있어서 필수적인 두 영역(업무 프로세스에 대한 이해와 개발기술)을 이처럼 서로 다른 두 개의 주체가 분담하고 있다는 것은 비단 시스템의 분석-설계단계 뿐만 아니라 그 이후의 단계에서도 많은 문제점들을 야기하고 있다. 그렇기 때문에 소프트웨어 개발은 본질적으로 매우 어려운 작업이 되는 것이며 개발방법론 또한 복잡해지게 되는 것이다.
개발자와 사용자사이에 존재하는 이와 같은 갭을 매우고 커뮤니케이션의 효율성을 높이기 위해서 다양한 도구와 기법들이 연구, 개발되었다. DFD나 ERD, UML 등과 같이 분석 및 모델링 부분을 지원하는 도구들은 복잡한 현상을 추상화하여 이해하기 쉽도록 해주며, 개발자와 사용자간 커뮤니케이션의 불일치를 최소화하는데도 도움을 준다.
그리고 프로토 타입을 이용해 사용자 요구사항이 무엇인지 명확히 규명하고 개발자들 또한 요구사항에 대해 확실히 이해할 수 있도록 하는 것도 유용한 방법 중 하나이다. 그러나 프로토 타입은 완제품으로 가면서 많은 변화가 일어나게 되고, 사용자로 하여금 섣불리 완제품이 어떨 것이라는 오해를 불러일으킬 수 있으며, 다른 프로그램이나 시스템과의 교류 및 통합 등에 대한 결과가 쉽게 얻어지지 않는다는 문제점 또한 안고 있다.
결국 최종적으로 소프트웨어를 사용하게 될 사용자의 입장에서만 본다면 업무 프로세스에 대해서 본질적으로 이해하고 있는 업무프로세스 설계자가 설계에서 구체적인 구현작업까지 수행하는 것이 가장 이상적일 것이다. 그러나 기존의 개발방법과 개발시스템에서는 하드웨어나 운영체제를 제어하는 세세한 기능까지 모두 소스코드로 개발해야했으며 재사용성을 통해 소프트웨어 개발 생산성을 극대화하기 위해 고안된 컴포넌트 기반의 개발방법론에서도 각 컴포넌트들을 조합하고 사용자 인터페이스와 연계하는 작업들은 결국 전문개발자에 의해 수행되어야 했기 때문에 앞서 언급한 것처럼 업무프로세스 설계자의 역할을 근본적으로 확대하는 것인 사실상 불가능한 것이 지금까지의 현실이었다.
본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위하여 창안된 것으로서, 사람이해 주어야 할 필수적인 사항을 맨 처음 단계에서 대부분 설계해 주고 나면, 그 후 프로그램과 데이터베이스를 실제 구현하는 수많은 작업들은 모두 자동화하여, 구체적인 인터페이스 화면보다 데이터베이스 구조 등 추상적인 설계 작업을 먼저 수행함으로 인해서 발생되는 생산성 저하, 엄청난 시행착오와 시간과 비용의 소요, 설계자와 개발자간의 커뮤니케이션 문제 등을 해결하는 것을 목적으로 한다.
특히, 본 발명은 업무용 소프트웨어를 생산하는데 있어서 본질적인 경쟁력이라고 할 수 있는 비즈니스 프로세스에 대한 이해와 설계능력을 갖춘 사람들의 역할범위를 최대한 확대하는 동시에, 구현단계의 각 부분을 최대한 인공지능으로 자동화할 수 있도록 지원하는 저작시스템의 개발을 통해 과거의 방법론 및 체제와 비교할 때 혁신적으로 빠르면서도 사용자 지향적인 고기능의 소프트웨어를 개발하는 생산체제를 구축하는데 그 목적이 있다.
상기 기술적 과제를 달성하기 위한 본 발명은 사용자 인터페이스 화면을 먼저 설계하고 그 이후 생산 공정을 자동화하는 역공학 방식의 업무 프로그램 자동생산방법에 대한 것으로서, (a) 사용자로부터 입력될 데이터의 항목명표시란 및 이에 상응하여 데이터가 입력될 데이터입력란, 및 기능 식별이 가능한 이벤트 버튼을 포함하는 업무 프로그램의 사용자 인터페이스 화면을 그래픽 유저 인터페이스로 생성하는 단계; (b) 인터페이스 화면을 통해 입력되는 데이터가 저장될 DB명 및 테이블명을 각 인터페이스 화면 별로 설계자로부터 지정받는 단계; (c) 각 인터페이스 화면을 분석하여 항목명표시란의 항목명과 데이터입력란의 크기에 기초하여 테이블의 필드 설계 정보를 자동 추출하는 단계; (d) 각 인터페이스 화면별로 분석된 필드 설계 정보와 각 인터페이스 화면별로 지정된 테이블명을 참조하여 테이블 별로 필드 구조를 정의한 데이터베이스 설계도(ERD)를 그래픽 인터페이스로 생성하는 단계; (e) 상기 데이터베이스 설계도에 표시된 테이블의 필드 구조를 참조하여 데이터베이스를 생성하기 위한 SQL 명령문을 자동으로 작성하고 실행하여 물리적 데이터베이스를 생성하는 단계; 및 (f) 상기 이벤트 버튼의 기능을 식별하여 버튼의 동작과 연동하여 실행될 SQL 명령문을 자동으로 작성하고 버튼의 동작 이벤트와 연동시키는 단계;를 포함하는 것을 특징으로 한다.
바람직하게, 상기 (c) 단계는, (c1) 각 인터페이스 화면에 포함된 데이터입력란을 기준으로 항목명표시란의 탐색방향과 탐색범위를 설계자로부터 지정받는 단계; (c2) 지정된 탐색조건에 의해 각 데이터 입력란별로 항목명표시란에 기재된 항 목명을 추출하는 단계; (c3) 추출된 항목명을 필드명으로 지정하거나, 추출된 항목명을 소정의 기준에 따라 가공하여 필드명으로 지정하는 단계; (c4) 상기 데이터입력란의 크기를 계산하여 필드의 길이로 지정하는 단계; 및 (c5) 데이터입력란과 지정된 필드명을 서로 연계시키는 단계;를 포함한다. 여기서, 상기 가공은 추출된 항목명에서 공백 및 특수기호를 제거하는 것일 수 있다.
바람직하게, 상기 (c4) 단계는, 각 데이터입력란에 대해 현재 글꼴의 종류와 크기를 인식하여 데이터입력란에 입력할 수 있는 글자의 수를 계산하여 필드의 길이로 지정하는 단계이다.
본 발명의 (b) 단계에서 설계자가 선택한 인터페이스 화면 내의 소정 문자열이 테이블명으로 지정되는 것이 바람직하다. 이 때, 상기 소정 문자열은 인터페이스 화면의 제목일 수 있다.
바람직하게, 각 인터페이스 화면과 데이터베이스 설계도는 상호 동기화되어 있다. 이러한 경우, 설계자에 의해 인터페이스 화면에 포함된 항목명표시란 및/또는 데이터입력란의 추가, 삭제 또는 변경이 이루어지면, 상기 변경된 사항이 데이터베이스 구조도에 자동으로 반영된다. 나아가, 설계자에 의해 데이터베이스 구조도에 포함된 특정 테이블의 필드가 추가, 삭제, 또는 필드의 명칭 및/또는 속성이 변경되면, 상기 특정 테이블과 관련된 인터페이스 화면에서 항목명표시란 및/또는 데이터입력란의 추가, 삭제 또는 변경의 형태로 자동 반영된다.
본 발명에 있어서, 상기 이벤트 버튼의 기능은 데이터의 저장, 삭제, 앞레코드이동 및 뒷레코드이동을 포함하는 군에서 선택된 어느 하나 또는 이들의 조합일 수 있다.
상기와 같은 본 발명에 따른 소프트웨어 생산 공정 자동화 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함한다. 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk)-Rom, DVD(Digital Video Disk)-Rom, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이하 첨부된 도면을 참조로 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명의 실시예에 따른 '소프트웨어 자동생산방법'의 개략적인 흐름도이다.
도면에 도시된 바와 같이, 본 발명이 제시하는 소프트웨어 자동생산방법은 크게 6개의 세부단계(101~106)로 구성된다.
구체적으로, '최종 인터페이스 화면의 양식과 세부기능 설계 및 정의'단계(101)는 코딩 등 전문적인 소프트웨어 기술을 지니지 못한 사용자들(예컨대, 프로세스 분석가, 업무논리이해 실무자 등)이 누구나 쉽게 사용할 수 있는 GUI 방식의 개발 및 저작도구를 주로 사용하여 실제 엔드 유저(End-User)들이 사용하게 될 입출력 화면을 구성하는 디자인요소를 생성(도 2 참조)하고 해당 화면에서 이루어질 프로세스와 세부 처리기능들을 구현하기 위해 어플리케이션의 구체적인 기능들을 설계 및 정의하는 작업을 수행하는 단계이다.
'인터페이스 화면을 자동분석하여 DB설정을 위한 정보추출 및 지정'단계(102)는 앞서 단계(101)에서 설계, 생성한 인터페이스 화면상에서 실제로 엔드 유저들이 데이터를 입력해주어야 할 입력란들과 관계된 명칭(예컨대, 도 5의 '사용자 코드' 등)을 자동으로 탐색하여 인터페이스 화면을 구성하는 입력란들이 연결된 데이터베이스 필드명을 자동추출하고 이를 물리적인 데이터베이스의 필드명으로 사용하기 적합하도록 공백이나 특수문자를 제거한 뒤, 데이터입력란의 정보를 저장하게 될 데이터베이스 필드명으로 지정해주는 단계이다. 또한 이 단계에서는, 입력란들이 연결된 데이터베이스 테이블명 역시 테이블명칭 자동지정 프로그램(도 7 참조)을 활용하여 간편하게 일괄·자동지정하게 된다.
인터페이스 화면을 구성하는 데이터입력란들이 연결될 테이블명과 필드명이 지정된 이후에 '저장', '삭제', '앞레코드이동', '뒷레코드이동' 등의 기능을 하는 기능버튼을 생성하면, 본 발명이 제공하는 저작시스템에 의해 해당 기능의 수행을 위한 실행명령어 코드(SQL 문장 등)가 자동 생성된다. 이 과정이 '버튼의 기능을 분석하여 실행명령어 코드 자동 생성'단계(103)이다(도 12 참조).
인터페이스 화면을 설계한 다음에는 각 데이터입력란에 지정된 DB 설정정보(테이블명, 필드명, 자료형, 자료길이, 연결필드(Join 정보) 등)를 분석하여 데이터베이스 설계도(이하, ERD)를 생성해주어야 한다. 이 과정이 'DB 설정을 위한 정보를 분석하여 ERD 자동 생성'단계(104)이다(도 9 참조).
ERD가 만들어지고 나면, 해당 ERD의 내용에 맞는 물리적 데이터베이스 구조를 생성하기 위한 테이블 및 필드생성 SQL 문장을 작성해야한다. 역시 'ERD를 분석하여 물리적 DB 생성에 필요한 SQL 자동작성'단계(105)에서 본 발명의 저작시스템을 통해 자동으로 생성하게 된다(도 10 참조)
마지막 'SQL 명령을 실행하여 프로그램 운영에 필요한 물리적 DB 생성'단계(106)에서는 단계(105)에서 자동작성한 물리적 DB생성 SQL을 실행하여 실제로 활용할 물리적 데이터베이스 구조를 생성하게 된다.
위와 같은 과정을 거치게 되면, 기존의 프로그래밍 언어에 대한 지식이나 기술이 부족한 업무논리 이해자들이 최종사용자를 위한 인터페이스 화면만 설계한 뒤, 본 발명이 제공하는 방법론과 세부지원 저작시스템들을 활용하여 물리적 데이터베이스 생성까지를 포함한 완성된 응용 프로그램을 매우 빠르게 개발하여 이 상태에서 바로 실무에 적용할 수 있다.
도 2는 도 1에서 설명한 '소프트웨어 자동생산방법'의 각 세부단계들을 지원 하기 위한 본 발명의 실시예에 따른 저작시스템의 화면 예시도이다.
참조번호 201은 본 발명에서 제공하는 저작시스템의 메인프레임이며, 참조번호 203은 저작시스템에서 개발 중인 인터페이스 화면의 예이다. 참조번호 203과 같은 인터페이스 화면은 업무용 프로그램을 개발하는데 필요한 요소기능들을 표준객체화해서 제공되는 비즈니스 컴포넌트들(202)을 사용하여 설계 및 구현하게 된다.
도 3은 도 1을 참조하여 설명한 '소프트웨어 자동생산방법'의 각 세부단계들을 지원하기 위해 본 발명에서 제공하는 저작시스템의 주요 기능구성과 이들 간의 상관관계를 보여준다. 도 3을 구성하는 세부 구성요소들은 이후에 별도의 도면이나 도면의 일부로 추가적인 설명을 하게 될 것이며, 여기서는 개괄적인 기능과 도 1에서 설명한 생산방법과의 연관성을 위주로 설명하기로 한다.
업무용 프로그램의 인터페이스 화면을 설계할 때는 일반적으로 데이터입력란의 좌측이나 상측에 해당 데이터입력란에 저장할 정보를 나타내는 항목명표시란을 생성하며, 이 항목명이 데이터베이스의 필드명으로 사용되는 경우가 많다.
데이터입력란 명칭 탐색부(301)는 인터페이스 화면이 설계되면 각 데이터입력란의 좌측이나 상측을 자동으로 탐색하여 해당 데이터입력란의 항목명이 존재하는지 확인한다. 항목명이 존재하면 데이터베이스 필드명 조정부(302)에서 해당 항목명을 물리적 데이터베이스의 필드명으로 사용할 수 있도록 공백이나 특수문자를 제거한 뒤, 데이터베이스 필드명 자동설정부(304)로 전달한다.
데이터베이스 필드길이 표시부(303)는 인터페이스 화면 설계시 데이터입력란을 생성할 때 마우스를 드래그하여 데이터입력란의 길이를 조절하면, 해당 입력란 에 들어갈 수 있는 문자의 수를 자동으로 계산하여 화면상에 조그마한 툴팁으로 보여준다(도 6의 603 참조). 그리고 사용자가 드래그하던 마우스 버튼을 놓은 순간의 데이터입력란 길이를 자동으로 인식하여 데이터베이스 필드길이 자동설정부(305)로 전달한다.
한편, 인터페이스 화면을 설계할 때는 일반적으로 해당 화면의 명칭이 해당 화면을 구성하는 데이터입력란들의 공통적인 테이블명으로 사용되는 경우가 많다. 이러한 점을 감안하여 데이터베이스 테이블명 일괄지정부(306)에서는 인터페이스 화면을 구성하는 데이터입력란들의 테이블명으로 일괄지정하려는 항목명표시란을 설정하여, 해당 항목명(예컨대, 인터페이스 화면의 제목)을 모든 데이터입력란의 테이블명으로 일괄지정해 준다.
각 데이터입력란이 연결된 테이블명과 필드명 및 필드길이가 지정되면, 프로그램 실행 SQL 자동생성부(310)에서는 해당 정보들을 분석하여 인터페이스 화면에서 사용하고 있는 기능 이벤트버튼의 종류에 따라 프로그램 실행시 사용할 SQL 등의 문장을 자동으로 생성한다.
데이터베이스 설계도 자동일괄생성부(307)에서는 앞서 지정한 DB 설정정보(테이블명, 필드명, 자료형, 자료길이, 연결필드(Join 정보) 등)를 분석하여 ERD를 자동생성한다. 그리고, 데이터베이스 설계도 해석부(308)에서 이 ERD 정보를 분석하고 물리 데이터베이스 생성 SQL 작성부(309)에서 DB 생성을 위한 SQL 문장을 자동생성한다.
인터페이스 화면 설계와 관련 데이터베이스 생성이 완료된 이후에도 ERD 상 에서 변경사항이 있을 수 있다. 이 때, ERD 수정작업과 인터페이스 화면 수정작업을 모두 해야하는 번거로움을 없애고 항상 동기화된 상태를 유지하기 위해서 데이터베이스 설계도 및 인터페이스화면 동기화부(311)에서는 ERD 정보의 변경에 따라 인터페이스 화면의 데이터입력란 DB설정 정보를 자동으로 변경해주는 기능을 한다.
도4는 '인터페이스 화면을 구성하는 데이터입력란의 테이블명과 필드명을 항목명표시란 등을 탐색하여 자동으로 설정하는 프로그램부'의 논리적 흐름도이다.
먼저 설계자는 인터페이스 화면을 설계(401)한 뒤, 화면을 구성하는 항목명표시란 중에서 해당 화면의 데이터입력란의 테이블명으로 사용할 객체를 선택한다. 또한 데이터입력란의 제목을 어느 방향에서 자동 탐색할 것인지, 그리고 어떤 범위(가로인식범위 또는 세로인식범위)내에 있는 것을 제목으로 인식할 것인지에 대한 자동인식처리기준을 설정(402)한다.
설계자가 여기까지 작업을 한 뒤 해당 인터페이스 화면을 저장하게 되면, 데이터입력란의 테이블명 및 필드명 자동탐색 및 설정 프로그램은 먼저 설계자가 해당 인터페이스 화면의 데이터입력란에서 공통적인 테이블명으로 사용하도록 지정한 항목명표시란을 탐색(403)한 뒤, 인터페이스 화면을 구성하는 모든 구성객체들의 리스트를 작성(404)한다. 그리고 나서 단계 (405)에서 단계 (415)까지의 과정을 반복하면서 각 데이터 입력란의 테이블명과 필드명을 지정해주게 된다.
구체적으로, 인터페이스 화면을 구성하는 객체가 데이터입력란인지 확인(405)한다. 데이터입력란일 경우 앞에서 설계자가 테이블명으로 사용하기로 설정한 항목명표시란의 항목명을 해당 데이터입력란의 테이블명으로 설정(406)한다. 그리 고 단계 (402)에서 설정한 항목명 자동인식방향을 확인(407)한다. 인식방향이 세로인 경우 세로인식범위값에 의해 데이터입력란의 항목명을 탐색 및 확인(408)하고, 인식방향이 가로인 경우 가로인식범위값에 의해 데이터입력란의 항목명을 탐색 및 확인(409)한다. 그리고 화면구성객체 리스트에서 항목명표시란을 하나씩 탐색(410)하면서 해당 항목명표시란이 앞서 설정한 항목명 자동인식방향 및 인식범위값의 조건에 맞는지 확인(411)한다. 조건에 맞을 경우 해당하는 항목명표시란의 내부에 데이터입력란의 인덱스를 저장하여 항목명표시란과 데이터입력란을 연결(412)해준다. 그리고 항목명표시란의 항목명에서 실제 데이터베이스의 필드명으로 사용할 수 없는 공백과 특수문자를 제거(413)한 뒤, 단계 (412)에서 연결한 데이터입력란의 필드명으로 설정(414)해준다.
하나의 데이터입력란에 대해 위와 같이 단계(405)에서 단계(414)까지의 과정을 수행하고 나면, 단계(404)에서 작성한 화면구성객체 리스트에서 다음 객체를 탐색하여 존재하는 경우에는 데이터입력란인지 확인(405)하는 과정부터 다시 반복하고, 존재하지 않는 경우에는 프로그램을 종료한다.
도 5는 '데이터입력란의 테이블명 및 필드명 자동탐색 프로그램'의 일실시예를 보여주고 있는 도면이다.
도면에서 볼 수 있듯이, 일반적인 데이터입력 화면에서는 (501)과 같은 항목명표시란과 그에 대응되는 (502)와 같은 데이터입력란이 짝을 지어 존재하는 경우가 대부분이다. 도면에서 항목명표시란은 텍스트가 기입된 영역이고, 데이터입력란은 사각형 박스가 입력된 영역이다. 도 5의 프로그램 화면에서 설계자가 데이터입 력란의 제목인식방향(503)과 가로 및 세로인식범위값(504)을 설정하면, 도 4의 단계(407), (408) 및 (409)에서 데이터입력란의 테이블명 및 필드명을 자동으로 탐색하기 위한 기준정보로 활용하게 된다.
도 6은 '데이터입력란의 필드명 및 필드길이를 자동으로 설정하는 프로그램'의 일실시예이다.
도면에 도시된 바와 같이, 예를 들어 데이터입력란(602)에는 항목명표시란(601)의 항목명이 필드명으로 지정(604)된다. 또한 데이터입력란(602)을 실제로 생성하기 위해서 마우스를 드래그하면, 그 길이를 인식하여 선택된 글꼴(Font)의 종류와 크기 등을 고려하여 해당하는 길이에 입력할 수 있는 글자수를 실시간으로 저작시스템 화면상에 자동으로 보여준다(603 참조). 그리고 설계자가 특정한 길이에 맞추어 마우스버튼을 놓으면 그 순간에 화면상에 보여주었던 글자수를 해당 데이터입력란의 필드 길이로 자동설정(605)해주게 된다.
도 7은 '데이터입력란의 테이블명으로 사용할 제목표시란을 선택하고 해당 제목표시란의 제목을 해당 인터페이스 화면에 존재하는 모든 데이터입력란의 테이블명으로 일괄지정해주는 프로그램'의 일실시예를 보여주고 있는 도면이다.
도면에 도시된 바와 같이, 인터페이스 화면의 제목(701)에서 마우스 오른쪽 버튼을 클릭하여 해당 제목표시란을 테이블명으로 사용하겠다고 설정(702)하면, 해당 인터페이스 화면내부의 모든 데이터입력란에 대해서 테이블명을 제목표시란(701)의 제목으로 일괄지정(703)한다.
도 8은 'ERD 자동설계 프로그램' 내부의 진행절차를 보여주고 있는 흐름도이 다.
도면을 참조하면, 먼저 사용자가 미리 설계해놓은 특정 인터페이스 화면을 선택한 뒤, ERD 자동설계 기능을 작동하면, ERD 자동설계 프로그램은 인터페이스 화면을 구성하는 객체들의 리스트를 작성(801)한다. 그리고 이 리스트를 참조하여 화면구성객체를 하나씩 점검하면서 데이터입력란인 경우(802)에 해당 데이터입력란의 각종 데이터베이스 설정정보를 확인하여 문자열 형태의 데이터조합을 생성한다.
먼저 데이터입력란인 것이 확인되면 자료형과 필드길이를 확인(803)한다. 그리고 나서 논리적 ERD 모델에서 사용할 항목명(물리적 모델에서의 필드명과 구분해야한다.)을 확인한다. 이 때, 도 4의 단계(412)에서 특정 항목명표시란이 데이터입력란과 연결되어 인덱스를 가지고 있는 경우에는 항목명표시란의 항목명을 데이터입력란의 항목명으로 설정(805)한다. 그리고 해당 데이터입력란과 연결된 항목명표시란이 없는 경우에는 사용자가 지정한 데이터입력란의 고유명칭과 데이터입력란의 인덱스를 조합하여 '데이터입력란 명칭_데이터입력란 인덱스'의 형태로 항목명을 설정(806)한다.
논리적 모델을 위한 항목명 설정후에는 데이터입력란의 나머지 DB설정정보인 테이블명, 필드명을 확인하고 해당 데이터입력란이 기본키(Primary Key)로 지정되어 있는지, 다른 테이블의 특정필드를 참조하여 외부키(Foreign Key)로 사용되고 있는지에 대해서도 파악(807)한다.
마지막으로 이렇게 인터페이스 화면을 구성하는 데이터입력란에 대해서 단계(803)에서 (807)까지의 과정을 거치면서 수집된 'ERD 생성을 위한 설계정보(데이터 입력란 인덱스, 테이블명, 필드명, 자료형, 필드길이, 항목명, PK정보, FK정보)'를 데이터입력란 고유의 문자열 형태로 조합(808)하는 과정을 거치면 인터페이스 화면의 데이터입력란으로부터 ERD 설계정보를 추출하는 작업을 완료하게 된다. 이렇게 하나의 데이터입력란에 대해서 정보추출작업이 끝나면 단계(801)에서 작성했던 구성객체 리스트에서 다음 객체를 탐색(809)하여 데이터입력란인 경우에 단계(803)에서 단계(808)까지의 과정을 반복한다. 즉, 인터페이스 화면을 구성하는 모든 데이터입력란에 대해서 위와 같은 과정을 수행한다.
ERD 자동설계 프로그램에서는 이와 같이 만들어진 ERD 설계정보를 조합하여 설계정보 문자열상에 존재하는 테이블과 필드의 리스트를 트리형태로 작성(810)한다. 이를 기준으로 하여 ERD 도면상에 필요한 테이블을 자동생성(811)한 뒤, ERD 설계정보로부터 필드명과 항목명 정보를 읽어들여서 물리적 ERD 모델에는 필드명을 표시하고 논리적 ERD 모델에서는 단계(805)나 단계(806)에서 설정된 항목명을 표시(812)해주게 된다.
테이블과 필드의 생성이 끝나면 ERD 설계정보에서 각 필드별로 지정된 자료형과 필드길이 정보에 따라 ERD 도면상에 적용(813)하고, 기본키(PK)로 지정된 필드는 테이블 최상단으로 이동시키고 별도의 표시를 하여 기본키 필드임을 나타내주도록 한다(814). 마지막으로 ERD 설계정보의 FK정보에 따라서 관계가 있는 테이블끼리 연결(815)해주는 과정을 끝으로 ERD 자동설계가 마무리된다.
도 9는 'ERD 자동설계 프로그램'의 일실시예를 보여주고 있는 도면이다.
도면에 도시된 바와 같이, ERD 자동설계 프로그램에서는 먼저 인터페이스 화 면의 목록(903)을 보면서 ERD를 생성하고자하는 화면을 선택한다. 그러면 ERD 자동설계 프로그램에서는 해당 화면으로부터 읽어 들인 ERD 설계정보를 자동으로 분석하여 필요한 테이블과 필드리스트를 트리형태로 구성한 뒤, 화면상에 보여주게 된다(902). 그리고 사용자가 ERD 자동설계 명령을 내리게 되면, (901)과 같은 ERD 도면 표시부에 자동으로 설계된 ERD가 그려진다.
도 9는 '테이블 생성을 위한 SQL 자동작성 및 실행 프로그램'의 일실시예를 보여주고 있는 도면이다.
사용자가 도 9에서와 같은 ERD 자동설계 프로그램을 사용하여 ERD 도면(1001)을 자동생성하거나 처음부터 직접 설계한 다음, 해당 ERD 도면에 맞는 물리적 테이블 생성명령을 내리게 되면 테이블 생성을 위한 SQL 자동작성 프로그램은 테이블 생성에 필요한 SQL 문장(1002)을 자동 생성한다. 이 때, 사용자는 세부옵션설정창(1003)에서 테이블 및 필드별 생성여부와 테이블 생성에 필요한 각종 옵션(1004)을 자유롭게 선택하여 SQL 문을 새롭게 편집하여 생성할 수도 있다.
여기서 설정할 수 있는 옵션에는 기본키지정 여부, 참조키지정 여부, 테이블 생성여부, 동일명칭의 테이블 존재시 기존테이블 삭제여부, 뷰테이블 생성여부, 동일명칭의 뷰테이블 존재시 기존뷰테이블 삭제여부, 각 컬럼별 유효성 및 기본값 설정여부, Public 권한의 설정(Grant) 및 제한(Deny) 여부 등이 있다.
이렇게 테이블 생성을 위한 SQL 문장을 자동작성한 뒤, 사용자가 테이블 생성명령을 내리기만 하면 해당 SQL 문장을 즉시 실행하여 물리적 데이터베이스 내에 해당 테이블과 필드를 생성한다.
도 11은 도 9에서 살펴본 '테이블 생성을 위한 SQL 자동작성 및 실행 프로그램'의 진행절차를 보여주고 있는 도면이다.
도면을 참조하면, 먼저 ERD 도면(도 10의 1001)으로부터 테이블 및 필드정보를 탐색(1101)한다. 그리고 나서 생성해야하는 테이블과 필드를 트리형태로 구성하여 화면상에 보여주고, 사용자가 원하지 않는 테이블이나 필드를 제외시킬 수 있도록 한다(1102). 사용자는 생성하고자하는 테이블과 필드가 확정되면, SQL 생성시 필요한 각종 옵션들을 설정(1103)할 수 있다.
위와 같이 테이블 생성을 위한 SQL 자동작성에 필요한 제반정보들이 확정되면 사용자는 테이블 생성을 위한 SQL 문장을 생성하도록 명령을 내린다(1104). 그러면 프로그램은 앞서 설정한 정보들을 종합하고 분석하여 필요한 SQL 문장을 생성한 후 화면(도 10의 1002)상에 표시(1105)해준다. 사용자가 최종적으로 SQL 문장 실행명령을 내리면 해당 SQL 문장을 실행하여 물리적인 데이터베이스 내에 테이블을 자동으로 생성(1106)한다.
도 12는 '인터페이스 화면 분석 후 DB동작에 필요한 SQL 문장을 자동 생성하는 프로그램'의 일실시예를 보여주고 있는 도면이다. 이 프로그램은 도 1의 '버튼의 기능을 분석하여 실행명령어 코드 자동생성'단계(103)에서 동작하게 되며, 도3의 '프로그램 실행 SQL 자동생성부'(310)에 해당함을 밝혀둔다.
도면을 참조하면, 인터페이스 화면 설계자는 먼저 특정 인터페이스 화면(1201)을 설계하고, 화면 내에 DB 동작을 일으키기 위한 기능버튼을 생성해야한다. 도면에서, 기능 버튼은 '앞장' 버튼, '뒷장' 버튼, '도서정보' 버튼 및 '수정' 버 튼이다. 필요한 버튼의 생성 후 특정 기능버튼에서 마우스 오른쪽 버튼을 클릭(1202)하면 해당 기능버튼의 클릭 시 자동으로 생성, 실행되는 SQL 문장의 내용을 미리볼 수 있다(1203).
도 13은 도 12에서 살펴본 '인터페이스 화면 분석 후 DB동작에 필요한 SQL 문장을 자동생성하는 프로그램'의 진행절차를 보여주고 있는 도면이다.
도면을 참조하면, 먼저 사용자가 인터페이스 화면에 기능버튼을 생성하고 그 종류를 정의(1301)하면, 프로그램에서는 사용자가 기능버튼을 클릭했을 때 작동시킬 SQL 문장을 자동으로 생성한다.
구체적으로, 프로그램은 먼저 기능버튼의 종류를 확인(1302)하게 되는데, 그 이후의 과정은 기능버튼의 종류에 따라 달라진다. 즉, 새로운 레코드를 생성하는 '저장' 버튼 및 레코드를 삭제하는 '삭제' 버튼인 경우와 바로 앞의 레코드 또는 바로 뒤의 레코드 정보를 읽어오는 '앞레코드이동', '뒷레코드이동' 유형버튼 등의 경우에 따라 이후 절차가 달라진다.
먼저 기능버튼의 종류가 '저장' 또는 '삭제'인 경우의 절차를 살펴보면 다음과 같다. 우선 프로그램은 인터페이스 화면 내에 있는 데이터입력란들을 검색하여 사용된 테이블명을 확인(1303)하고, 특정 테이블의 어떤 필드명이 사용되는지도 확인(1304)한다. 테이블명과 필드명이 확인되면 이 정보를 가지고 Insert, Update문의 Into절과 Delete문의 From절을 생성(1305)한다. 그리고나서 '저장'버튼인 경우 인터페이스 화면에 사용자가 입력한 값을 읽어와서 Insert문의 Value절과 Update문의 Set절을 생성(1306)한다. 마지막으로 Where절을 생성하기 위해서 기본검색키로 지정된 필드명을 탐색(1307)한 뒤, 이 기본검색키를 조건으로 하는 Where절을 생성(1308)하고 Insert, Update, Delete문장을 완성하게 되며, 테이블의 수만큼 단계(1303)에서 (1309)까지의 과정을 반복하게 된다. 이렇게 생성된 SQL 문장은 사용자가 기능버튼을 클릭했을 때나 프로그램 모듈을 저장할 때에 자동으로 SQL 문장을 작성하는 기능(1318)을 수행하게 된다.
다음으로, 기능버튼의 종류가 '앞레코드이동' 또는 '뒷레코드이동'인 경우의 절차를 살펴보면 다음과 같다. 먼저 인터페이스 화면의 데이터입력란들을 검색하여 기본검색키로 지정된 필드명이 무엇인지 확인(1310)하고 해당 기본검색키를 조건으로 하는 Where절을 생성(1311)한다. 데이터입력란에 사용된 테이블명을 조사하여 각 테이블마나 별칭(alias)을 부여(1312)하고 데이터입력란의 필드명을 이용하여 Select문의 필드리스트(1313)를 구성한다.
그리고 만일 특정 데이터입력란이 다른 테이블의 필드를 참조하여 외부키(Foreign Key)로 사용되도록 설정한 경우에는 해당하는 연결필드 정보를 읽어 와서 그 정보에 따라 Join절을 생성(1314)하게 된다. 이렇게 만들어진 Join절과 테이블 리스트를 이용하여 From절을 생성(1315)하고 특정 데이터입력란이 레코드 정렬의 기준으로 지정된 경우 역시 해당하는 정보를 읽어 와서 Order by절을 생성(1316)한다.
그런 다음 앞서 단계별로 생성한 부분들을 조합하여 Select문을 완성(1317)하게 되며 이렇게 생성된 SQL 문장은 사용자가 기능버튼을 클릭했을 때나 프로그램 모듈을 저장할 때에 자동으로 SQL 문장을 작성하는 기능(1318)을 수행하게 된다.
도 14는 ERD '정보 변경시 인터페이스 화면이나 코드를 자동수정하는 프로그램'의 구성도로서, 도 3의 '데이터베이스 설계도 및 인터페이스 화면 동기화부'(311)에 해당하는 프로그램이다.
도면을 참조하면, 프로그램은 ERD 도면상에서 설계자가 테이블명이나 필드명, 필드길이나 자료형, PK정보나 FK정보를 변경하였을 경우(1401, 1402, 1403)에 해당하는 ERD 도면과 연관된 인터페이스 화면의 데이터입력란에도 변경된 정보를 반영해주는 기능을 한다. 물론 사용자가 ERD 도면과 인터페이스 화면을 자동으로 동기화하겠다고 설정한 경우(1404)에만 작동하도록 한다.
변경사항이 있고 사용자가 변경사항을 인터페이스 화면에 자동 적용하겠다고 설정한 경우(1405)에는 변경된 정보의 종류, 변경된 값, 변경된 필드를 사용하는 인터페이스 화면의 경로, 변경된 필드를 사용하는 데이터입력란의 인덱스로 문자열을 생성(1406)한다. 이렇게 문자열의 형태로 만들어진 변경정보는 인터페이스 화면을 설계하는 프로그램으로 전송(1407)되며, 인터페이스 화면을 설계하는 프로그램에서는 문자열에 존재하는 인터페이스 화면을 검색(1408)하고 변경정보 문자열의 구성내용에 따라 데이터입력란의 설정정보를 자동으로 실시간 변경하여 ERD 도면과 인터페이스 화면사이의 동기화를 이루어준다.
이상과 같이, 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범 위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
본 발명에 따르면, 비즈니스용 컴퓨터 프로그램을 개발하는데 있어서 본 발명에서 제시하는 개발방법과 저작시스템을 활용하게 되면 최종 결과물이라고 할 수 있는 사용자 인터페이스 화면의 구조와 기능을 우선적으로 설계하게 되기 때문에 개발 작업 진행 중의 시행착오와 수정작업을 최소화할 수 있을 뿐만 아니라 실행 프로그램을 구현하는 생산성 자체를 극적으로 높일 수 있다.
본 발명은 기존과 달리 ① 입출력문서 설계 ② DB구조 자동설계 ③ 코딩작업 자동실행의 순서로 개선하여 소프트웨어 생산속도 향상을 꾀하고 있다. 즉, 기존에는 DB구조에 약간의 변화만 생겨도 관련된 모든 프로그램 모듈에 대한 코드 수정작업과 테스트 작업을 다시 수행해야했지만, 본 발명에서 제시하는 생산방식에서는 GUI 방식으로 최종 사용화면을 설계하고 나면 DB구조 설계나 코딩작업은 저작시스템의 도움을 받아 모두 자동으로 수행하게 되며, 최종 사용화면에 변화가 생기는 경우에도 이를 감지하여 바로 관련된 DB구조를 변경해주는 작업을 자동으로 수행하기 때문에 소프트웨어 생산속도의 향상과 유지보수의 용이성을 확보할 수 있게 된다.
또한, 본 발명이 제공하는 소프트웨어 저작시스템의 각 부분들은 과거에 소프트웨어 개발기술이 있는 프로그래머들만이 수행할 수 있었던 작업들을, 전문개발기술이 없는 일선실무자나 업무 프로세스 전문가들이 직접 수행할 수 있도록 해주는 동시에 많은 작업들을 자동으로 진행할 수 있게 해준다.
이처럼 본 발명에서는 종래 소스코드를 중심으로 하는 소프트웨어 개발방식에서 설계 및 요구분석 작업은 업무전문가가 수행하고 실제 구현작업은 개발기술자가 분담하여 수행하던 형태를 개선하여, 업무에 대한 깊이 있는 지식을 갖추고 사용자 요구분석 능력이 있는 사람들이 최종산출물의 설계와 구현을 동시에 수행할 수 있도록 함으로써 보다 사용자 지향적이고 실용적인 소프트웨어의 개발이 가능해진다.
즉 업무용 또는 비즈니스용 소프트웨어 개발에 필요한 핵심적인 지식이라고 할 수 있는 업무 프로세스에 대한 이해를 갖추었지만 전문적인 프로그래밍 기술이 부족하여 실용적인 비즈니스용 컴퓨터 프로그램을 개발할 수 없었던 업무논리 이해자나 프로세스 전문가들의 역할과 기능의 범위를 크게 확장할 수 있다.
이처럼 업무논리 이해자가 설계에서 구현까지 소프트웨어 생산절차의 핵심공정에서 실질적인 역할을 하게 되면 종래 소프트웨어 개발방식에서 업무전문가와 개발기술자 사이의 커뮤니케이션에 소모되었던 직접적인 비용과 시간은 물론이고 커뮤니케이션 오류로 인해 발생하는 시행착오와 비용 등을 제거하여 소프트웨어의 설계 및 생산속도를 혁신적으로 향상시킬 수 있게 된다.

Claims (11)

  1. 사용자 인터페이스 화면을 먼저 설계하고 그 이후 생산 공정을 자동화하는 역공학 방식의 업무 프로그램 자동생산방법에 있어서,
    (a) 사용자로부터 입력될 데이터의 항목명표시란 및 이에 상응하여 데이터가 입력될 데이터입력란, 및 기능 식별이 가능한 이벤트 버튼을 포함하는 업무 프로그램의 사용자 인터페이스 화면을 그래픽 유저 인터페이스로 생성하는 단계;
    (b) 인터페이스 화면을 통해 입력되는 데이터가 저장될 DB명 및 테이블명을 각 인터페이스 화면 별로 설계자로부터 지정받는 단계;
    (c) 각 인터페이스 화면을 분석하여 항목명표시란의 항목명과 데이터입력란의 크기에 기초하여 테이블의 필드 설계 정보를 자동 추출하는 단계;
    (d) 각 인터페이스 화면별로 분석된 필드 설계 정보와 각 인터페이스 화면별로 지정된 테이블명을 참조하여 테이블 별로 필드 구조를 정의한 데이터베이스 설계도(ERD)를 그래픽 인터페이스로 생성하는 단계;
    (e) 상기 데이터베이스 설계도에 표시된 테이블의 필드 구조를 참조하여 데이터베이스를 생성하기 위한 SQL 명령문을 자동으로 작성하고 실행하여 물리적 데이터베이스를 생성하는 단계; 및
    (f) 상기 이벤트 버튼의 기능을 식별하여 버튼의 동작과 연동하여 실행될 SQL 명령문을 자동으로 작성하고 버튼의 동작 이벤트와 연동시키는 단계;를 포함하는 것을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  2. 제1항에 있어서, 상기 (c) 단계는,
    (c1) 각 인터페이스 화면에 포함된 데이터입력란을 기준으로 항목명표시란의 탐색방향과 탐색범위를 설계자로부터 지정받는 단계;
    (c2) 지정된 탐색조건에 의해 각 데이터 입력란별로 항목명표시란에 기재된 항목명을 추출하는 단계;
    (c3) 추출된 항목명을 필드명으로 지정하거나, 추출된 항목명을 소정의 기준에 따라 가공하여 필드명으로 지정하는 단계;
    (c4) 상기 데이터입력란의 크기를 계산하여 필드의 길이로 지정하는 단계; 및
    (c5) 데이터입력란과 지정된 필드명을 서로 연계시키는 단계;를 포함하는 것을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  3. 제2항에 있어서,
    상기 가공은 추출된 항목명에서 공백 및 특수기호를 제거하는 것임을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  4. 제2항에 있어서, 상기 (c4) 단계는,
    각 데이터입력란에 대해 현재 글꼴의 종류와 크기를 인식하여 데이터입력란에 입력할 수 있는 글자의 수를 계산하여 필드의 길이로 지정하는 단계임을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  5. 제1항에 있어서, 상기 (b) 단계에서,
    설계자가 선택한 인터페이스 화면 내의 소정 문자열이 테이블명으로 지정되는 것을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  6. 제5항에 있어서,
    상기 소정 문자열은 인터페이스 화면의 제목임을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  7. 제1항에 있어서,
    각 인터페이스 화면과 데이터베이스 설계도는 상호 동기화되어 있는 것을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  8. 제7항에 있어서,
    설계자에 의해 인터페이스 화면에 포함된 항목명표시란 및/또는 데이터입력란의 추가, 삭제 또는 변경이 이루어지는 단계; 및
    상기 변경된 사항이 데이터베이스 구조도에 자동으로 반영되는 단계;를 더 포함하는 것을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  9. 제7항에 있어서,
    설계자에 의해 데이터베이스 구조도에 포함된 특정 테이블의 필드가 추가, 삭제, 또는 필드의 명칭 및/또는 속성이 변경되는 단계; 및
    상기 특정 테이블과 관련된 인터페이스 화면에서 항목명표시란 및/또는 데이터입력란의 추가, 삭제 또는 변경의 형태로 자동 반영되는 단계;를 더 포함하는 것을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  10. 제1항에 있어서,
    상기 이벤트 버튼의 기능은 데이터의 저장, 삭제, 앞레코드이동 및 뒷레코드이동을 포함하는 군에서 선택된 어느 하나 또는 이들의 조합임을 특징으로 하는 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 따른 방법을 프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050039776A 2005-05-12 2005-05-12 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체 KR100558952B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020050039776A KR100558952B1 (ko) 2005-05-12 2005-05-12 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체
JP2006069809A JP4544473B2 (ja) 2005-05-12 2006-03-14 インタフェース画面設計中心のソフトウェア生産工程の自動化方法及び、この方法をプログラム化して収録したコンピュータで読出し可能な記録媒体
US11/413,939 US7783678B2 (en) 2005-05-12 2006-04-27 Method for automating software manufacturing process based on user interface form design, and computer readable medium recording computer executable instruction for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050039776A KR100558952B1 (ko) 2005-05-12 2005-05-12 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체

Publications (1)

Publication Number Publication Date
KR100558952B1 true KR100558952B1 (ko) 2006-03-10

Family

ID=37179502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050039776A KR100558952B1 (ko) 2005-05-12 2005-05-12 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체

Country Status (3)

Country Link
US (1) US7783678B2 (ko)
JP (1) JP4544473B2 (ko)
KR (1) KR100558952B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100994829B1 (ko) * 2008-06-26 2010-11-16 정윤식 일반사용자가 코딩없이 제작하고 수정할 수 있는 기술을 이용한 업무처리 시스템 작성방법
KR20160046695A (ko) 2014-10-21 2016-04-29 유홍준 소프트웨어 요소 부분인식 처리 방법 및 시스템
KR101765324B1 (ko) * 2016-04-19 2017-08-04 강희기 Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법
CN112464625A (zh) * 2020-11-30 2021-03-09 金蝶云科技有限公司 单据生成方法、装置、计算机设备和存储介质
US11030165B2 (en) 2017-12-11 2021-06-08 Wipro Limited Method and device for database design and creation

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7546291B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Data source task pane
US7716168B2 (en) * 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
US7546286B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Offline multi-table data editing and storage
US8135755B2 (en) * 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
US7743026B2 (en) 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
KR101101826B1 (ko) * 2006-10-24 2012-01-05 삼성전자주식회사 화상처리장치 및 화상처리방법
WO2008147616A1 (en) * 2007-05-25 2008-12-04 Zoot Enterprises, Inc. System and method for rapid development of software applications
US9417934B2 (en) 2007-08-31 2016-08-16 Core Wireless Licensing S.A.R.L. Information distribution in a dynamic multi-device environment
JP5413198B2 (ja) * 2007-11-21 2014-02-12 日本電気株式会社 ユーザインタフェース認識装置、ユーザインタフェース認識方法およびプログラム
US20090288066A1 (en) * 2008-02-12 2009-11-19 Electronics And Telecommunications Research Institute Editing apparatus and method for test driven development
JP5488792B2 (ja) * 2009-09-08 2014-05-14 日本電気株式会社 データベース操作装置、データベース操作方法、及びプログラム
CN102314633A (zh) * 2010-06-30 2012-01-11 国际商业机器公司 用于处理数据分析的设备和方法
US9335832B2 (en) * 2011-12-23 2016-05-10 Sap Se Executing system actions corresponding to user inputs
US8972941B2 (en) * 2012-07-18 2015-03-03 International Business Machines Corporation Integrated development environment-based workload testing in a networked computing environment
US9563674B2 (en) * 2012-08-20 2017-02-07 Microsoft Technology Licensing, Llc Data exploration user interface
US10001897B2 (en) 2012-08-20 2018-06-19 Microsoft Technology Licensing, Llc User interface tools for exploring data visualizations
US20150012329A1 (en) * 2013-07-02 2015-01-08 Microsoft Corporation Process flow infrastructure and configuration interface
US10416871B2 (en) 2014-03-07 2019-09-17 Microsoft Technology Licensing, Llc Direct manipulation interface for data analysis
WO2016118940A1 (en) * 2015-01-23 2016-07-28 Magnan Technologies, Llc Systems and methods for automatically generating application software
US20170004152A1 (en) * 2015-06-30 2017-01-05 Bank Of America Corporation System and method for dynamic data archival and purging
CN110442340B (zh) * 2019-07-04 2023-10-10 湖南善禧文化股份有限公司 基于数据处理的表单生成方法、装置和计算机设备
US11681964B2 (en) * 2021-03-15 2023-06-20 Cerner Innovation, Inc. System and method for optimizing design, workflows, performance, and configurations based on design elements
CN113326282A (zh) * 2021-06-17 2021-08-31 中国农业银行股份有限公司 Sql语句生成方法、装置、电子设备及存储介质
CN115994142B (zh) * 2022-12-13 2024-04-02 浙江浙里信征信有限公司 一种基于数据中台的数据开发方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3606484B2 (ja) * 1994-12-16 2005-01-05 三菱電機株式会社 データベース装置
US6076080A (en) * 1997-11-04 2000-06-13 The Standard Register Company Forms order entry system
US6097382A (en) * 1998-05-12 2000-08-01 Silverstream Software, Inc. Method and apparatus for building an application interface
JP2988911B1 (ja) 1998-07-03 1999-12-13 三菱電機株式会社 プログラム自動生成装置
US7007034B1 (en) * 2000-01-21 2006-02-28 International Business Machines Corporation File structure for storing content objects in a data repository
US7076494B1 (en) * 2000-01-21 2006-07-11 International Business Machines Corporation Providing a functional layer for facilitating creation and manipulation of compilations of content
US6502102B1 (en) * 2000-03-27 2002-12-31 Accenture Llp System, method and article of manufacture for a table-driven automated scripting architecture
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100994829B1 (ko) * 2008-06-26 2010-11-16 정윤식 일반사용자가 코딩없이 제작하고 수정할 수 있는 기술을 이용한 업무처리 시스템 작성방법
KR20160046695A (ko) 2014-10-21 2016-04-29 유홍준 소프트웨어 요소 부분인식 처리 방법 및 시스템
KR101765324B1 (ko) * 2016-04-19 2017-08-04 강희기 Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법
US11030165B2 (en) 2017-12-11 2021-06-08 Wipro Limited Method and device for database design and creation
CN112464625A (zh) * 2020-11-30 2021-03-09 金蝶云科技有限公司 单据生成方法、装置、计算机设备和存储介质
CN112464625B (zh) * 2020-11-30 2024-03-29 金蝶云科技有限公司 单据生成方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
JP4544473B2 (ja) 2010-09-15
JP2006318448A (ja) 2006-11-24
US20060259506A1 (en) 2006-11-16
US7783678B2 (en) 2010-08-24

Similar Documents

Publication Publication Date Title
KR100558952B1 (ko) 인터페이스 화면 설계 중심의 소프트웨어 생산 공정 자동화방법 및 이 방법을 프로그램화하여 수록한 컴퓨터로 읽을수 있는 기록매체
CN103294475B (zh) 基于图形化业务场景和领域模板的业务自动生成系统和方法
KR101169171B1 (ko) 객체 모델 설계를 용이하게 하는 방법 및 시스템
CN109492266A (zh) 标准件模型数据的优化设计方法、装置及设备
KR101966518B1 (ko) 엑셀 기반 건축 설계 파일의 버전 제어 방법
CN103135976A (zh) 代码自动生成方法及装置
CN106354492A (zh) 一种快速调整交易流程对接的自动化代码生成方法及系统
CN116627418B (zh) 一种基于递归算法的多级表单界面可视化生成方法及装置
Stanojević et al. Guidelines for framework development process
CN111666355B (zh) 一种领域、数据、场景三层模型的模型构建方法及装置
CN109471580A (zh) 一种可视化3d课件编辑器及课件编辑方法
CN116360766A (zh) 一种基于ddd可视化设计器的低代码系统和装置
Lumertz et al. User interfaces metamodel based on graphs
JPWO2002097727A1 (ja) 知識の自動生成方法、知識の自動生成システム、知識の自動生成プログラム、自動設計方法及び自動設計システム
US20240036890A1 (en) System and method of a modular framework for configuration and reuse of web components
Pantelios Development of a QGIS plugin for the CityGML 3D City Database
CN101017454A (zh) 编辑设备和方法、程序以及记录介质
Bédard et al. Spatial data modeling: the Modul-R formalism and CASE technology
JP2007265418A (ja) 自動詳細化システム
KR20090037164A (ko) 데이터 포털 서비스 시스템 및 방법
Bergonzoni et al. Assessing residential buildings compliance with sustainability rating systems through a BIM-Based approach
KR102588597B1 (ko) Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치
Kasperowski et al. for Automatic Diagramming of Complex
JP2012008663A (ja) 思考の過程で対話により知識の構造化、ビジュアル化を支援し、構造化した知識を共有化できる対話型知識データベースシステム12
JP2001134423A (ja) 対話型既存システムを利用する新システムの画面情報出力方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee
R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20130302

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170801

Year of fee payment: 12