KR100633478B1 - 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법 - Google Patents

비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법 Download PDF

Info

Publication number
KR100633478B1
KR100633478B1 KR1020060000075A KR20060000075A KR100633478B1 KR 100633478 B1 KR100633478 B1 KR 100633478B1 KR 1020060000075 A KR1020060000075 A KR 1020060000075A KR 20060000075 A KR20060000075 A KR 20060000075A KR 100633478 B1 KR100633478 B1 KR 100633478B1
Authority
KR
South Korea
Prior art keywords
business
program
software
development
user
Prior art date
Application number
KR1020060000075A
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 KR1020060000075A priority Critical patent/KR100633478B1/ko
Application granted granted Critical
Publication of KR100633478B1 publication Critical patent/KR100633478B1/ko
Priority to US11/649,589 priority patent/US8176472B2/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/36Software reuse
    • AHUMAN NECESSITIES
    • A47FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
    • A47BTABLES; DESKS; OFFICE FURNITURE; CABINETS; DRAWERS; GENERAL DETAILS OF FURNITURE
    • A47B97/00Furniture or accessories for furniture, not provided for in other groups of this subclass
    • A47B97/001Wall mounting or suspension arrangements for blackboards or the like
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B43WRITING OR DRAWING IMPLEMENTS; BUREAU ACCESSORIES
    • B43LARTICLES FOR WRITING OR DRAWING UPON; WRITING OR DRAWING AIDS; ACCESSORIES FOR WRITING OR DRAWING
    • B43L1/00Repeatedly-usable boards or tablets for writing or drawing
    • B43L1/04Blackboards

Landscapes

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

Abstract

본 발명은 비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발시스템 및 그 개발방법에 관한 것이다.
본 발명에 따른 비즈니스 소프트웨어 개발시스템은, 프로그램을 구성하는 적어도 하나 이상의 비즈니스 표준 객체를 저장하는 비즈니스 객체 저장부; 사용자로부터 개별 객체의 세부유형, 작동방식, 수행조건, 수행순서 및 DB연결정보를 포함하는 속성정보를 설정받는 비즈니스 객체 작동속성 설정부; 사용자가 설정한 객체들의 속성정보에 의하여 비즈니스 객체 저장부에 있는 객체를 동작시키고 제어하며, 스크립트 언어로 정의된 논리에 따라 비교, 분기, 연산 등을 수행하는 프로그램 실행부; 및 컴퓨터의 운영체제와 CPU, 저장장치, 데이터베이스 관리시스템, 네트워크 및 디스플레이 기기를 포함하는 IT인프라 장치들을 제어하는 운영환경 연결부를 포함하여 구성된다. 본 발명에 따르면, 비즈니스용 소프트웨어의 개발을 더욱 빠르고 효율적으로 수행하는 동시에 프로그램에 문외한인 업무논리를 이해하는 실무자들이 직접 소프트웨어를 개발할 수 있도록 지원하며, 동시에 소프트웨어의 품질을 한 차원 높인다.
비즈니스 운영체제, 응용 소프트웨어, 코딩 없는 개발, CBD, 표준, 객체

Description

비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발시스템 및 그 개발방법{System and its method for developing software based on Business Operating System}
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른 BOS에 기반하는 소프트웨어 개발시스템의 기능 블록도.
도 2는 도 1에 도시한 기능 블록의 세부적인 기능 블록도.
도 3은 본 발명의 일 실시예에 따른 구조체 데이터 파일의 구성도.
도 4는 본 발명의 일 실시예에 따른 BOS에 기반하는 소프트웨어 개발방법의 순서도.
도 5는 본 발명의 일 실시예에 따른 구조체 데이터 파일의 변환 및 저장단계의 상세 순서도.
도 6은 본 발명의 일 실시예에 따른 구조체 데이터 파일의 작동단계의 상세 순서도.
도 7은 본 발명의 일 실시예에 따른 비즈니스 표준 객체를 정의하는 화면의 캡쳐도.
도 8은 본 발명의 일 실시예에 따른 비즈니스 표준 객체들의 예시도.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 시스템 2 : 비즈니스 객체 저장부
3 : 비즈니스 객체 작동속성 설정부 4 : 프로그램 실행부
5 : 운영환경 연결부 6 : 파일
7 : 신규 비즈니스 객체 생성 프로그램
본 발명은 비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발시스템 및 그 개발방법으로서, 더욱 상세하게는, 프로그램 언어에 문외한인 사용자라도 자동화된 툴을 이용하여 기업의 업무활동에 필요한 문서 내용(인터페이스 화면 등)과 비즈니스 로직만 정의해주면 어플리케이션 소프트웨어를 생산할 수 있도록 지원하는 소프트웨어 개발시스템 및 그 개발방법에 관한 것이다.
디지털 경제의 도래와 함께 급격히 일어나고 있는 사회, 경제적 변화 속에서 기존에 소프트웨어 기술분야에서 활용되어온 개발도구나 개발방법론은 수많은 한계와 문제점에 부딪히고 있다. 그러한 문제점들은 대부분 날로 거대하고 복잡해져 가는 비즈니스용 소프트웨어를 개발, 즉 생산해내는 과정에서 수요자가 요구하는 수 준의 생산성을 내지 못하고 있다는 현실에서부터 비롯되고 있다. 이런 문제의 해결을 위한 노력은 새로운 방법론이나 개발도구의 등장을 통해 조금씩 이루어지고 있지만, 현재 소프트웨어 개발도구기술과 시장의 현실을 객관적으로 분석해보면 보다 근본적인 변화와 개혁이 필요하다는 것을 절실히 느낄 수 있다.
현재 소프트웨어 생산방식의 가장 큰 문제점은 사람, 즉 개발자가 해주어야 할 일이 너무나 많다는 점이다. 현재 대부분의 소프트웨어 개발절차 및 개발에 사용되는 도구들을 활용한 개발작업에서 개발자들은 요구 제기자(비즈니스 실무 담당자) 또는 소프트웨어 설계자의 지시를 받아 비즈니스 로직을 구현하기 위한 소스 코딩 작업을 수행해야 하며, 그러한 비즈니스 로직 구현에 필요한 일체의 데이터베이스 I/O, 하드웨어 제어, 운영체제 제어, 보안관리 등의 기능을 단위 모듈마다 일일이 만들어주어야 한다.
이렇게 간단하게 서술하면 이런 것들이 별로 대단한 작업으로 느껴지지 않고, 기존의 기술패러다임에 익숙한 사람들에게는 너무나 당연한 것처럼 느껴질 수도 있겠지만, 그 속에는 소프트웨어의 개발이라는 업무를 극도로 비효율적으로 만드는 개발방식상의 두 가지 잘못된 전제가 존재하고 있다.
첫 번째 잘못된 전제는 ‘개발자는 요구제기자로부터 지시를 받는다.’라는 부분이다. 물론 지금까지 사용되어온 개발도구나 플랫폼을 기준으로 생각한다면 이것은 어쩔 수 없는 사실이다. 그러나 당연한 사실로만 받아들여진 이 점, 즉 실제로 현업에 대한 오랜 경험과 지식을 갖고 비즈니스용 소프트웨어가 해주어야 할 기능을 명확하게 파악하고 있는 현업 실무자(비즈니스용 소프트웨어 개발 시 이 사람 들이 요구제기자가 되는 경우가 많다)가 복잡하고 어려운 프로그래밍 언어를 다루는 기술을 갖춘 개발자에게 요구사항을 제기해야 한다는 바로 이 점 때문에 실제 소프트웨어 개발과 사용시에 다양한 문제들이 발생해왔다. 기초지식과 마인드는 물론이고 그들이 갖추고 있는 전문적인 능력에서까지도 완전히 상이한 두 계층 사이의 커뮤니케이션에서 발생하는 문제는 차치하고라도, 비즈니스용 소프트웨어 개발에서 가장 핵심적인 역량이라고 할 수 있는 비즈니스 로직에 대해 제대로 알지 못하는 전문개발자들에 의해서 실질적인 작업이 모두 이루어진다는 점 자체가 본질적으로 더욱 큰 문제라고 할 수 있는 것이다.
그러나 기존의 개발방법론이나 개발도구가 지배하는 패러다임하에서는 소프트웨어 개발에서의 구현작업에서 필수불가결한 소스 코딩 작업을 현업실무의 지식을 갖춘 사람들이 수행하는 것은 사실상 불가능한 일이었기 때문에, 그것은 문제라는 인식보다는 어쩔 수 없는, 어찌 보면 당연한 여건이라는 인식이 더욱 강했던 것이 사실이다.
따라서 본 발명에서는 기존의 이와 같은 전제를 혁파하여, 전문개발자가 아니라 현업의 비즈니스 실무지식을 갖추고 있는 사람이 소프트웨어 개발작업에서 보다 중추적이고 본질적인 역할(단순히 역할이나 책임의 증대를 뜻하는 것이 아니라, 실제로 최종적인 소프트웨어 산출물이 이들의 손에서 나오는 것을 의미한다.)을 할 수 있도록 함으로써, 소프트웨어 개발의 주체와 개발에 필요한 자질에 대해서부터 혁신적인 변화를 일으키고자 한다.
또한, 기존 소프트웨어 개발방식의 두 번째 잘못된 전제는 데이터베이스 I/O, 하드웨어 제어, 운영체제 제어, 보안관리 등 비즈니스용 소프트웨어의 본질적인 기능이 아닌 부분까지도 단위 모듈마다 일일이 소스코드를 기반으로 하여 개발해야 한다.’라는 점이다. 실제로 지금까지 소프트웨어의 소스코드를 들여다보면 이렇게 모든 모듈에서 공통으로 사용되는 기능과 비즈니스 로직이 혼재되어 있으며, 유사한 기능을 구현하기 위한 무수한 반복작업, 유지보수의 어려움 등 소프트웨어 생산의 효율성을 크게 저하시키는 주요문제들을 발생시키고 있었음을 확인할 수 있다. 다시 말해, 소프트웨어를 구성하는 A라는 모듈에서 데이터베이스 I/O, 하드웨어 제어, 운영체제 제어 등의 기능을 구현하는 소스코드가 포함되어 있더라도, B라는 모듈에서 유사한 기능이 필요하게 되면 또 한번 코딩작업을 해주어야 하는 것이다.
그러나 본 발명에서 제공하는 '비즈니스용 전문 운영체제'(이하, BOS(business operating system)라 표기함)에서는 데이터베이스 I/O, 하드웨어 제어, 운영체제 제어 등의 기능구현을 위해서 단 한 줄의 코딩도 필요없도록 하는 기술적인 기반을 제공하고 있다. 즉, 개발자(과거의 소프트웨어 전문개발자가 아니라 현업의 지식을 갖춘 실무자를 뜻한다.)는 소프트웨어의 하부요소를 컨트롤하는 것에 전혀 신경 쓸 필요없이 비즈니스용 소프트웨어의 본질이라고 할 수 있는 비즈니스 프로세스 구현에만 집중할 수 있게 되는 것이다.
즉, 본 발명이 제시하는 BOS는 이렇게 기존 소프트웨어 개발방식의 두 가지 잘못된 전제를 혁신적으로 고쳐나감으로써, 비즈니스 로직을 가장 잘 알고 있는 현업 실무자(담당자)가 실제 개발자가 되어 비즈니스 로직의 설계와 구현에만 집중하 면서 비즈니스용 소프트웨어를 개발할 수 있도록 하는 새로운 소프트웨어 개발 패러다임을 실현한다.
아래 표 1은 1960년대 이후 소프트웨어 개발도구 및 개발방법론의 특성과 본 발명이 제시하는 BOS를 활용한 소프트웨어 개발작업의 특성을 주요 항목별로 비교분석하고 있는 자료이다.
기존 개발도구 본 발명
개발방법 구조적방법 정보공학방법 객체지향방법 컴포넌트기반방법 BOS 활용방법
연대 60년~85년 85년~95년 95년~2000년대 90년대 후반~ 현재
주요모형 순차적 비즈니스 로직 데이터 객체 컴포넌트 프로세스 및 논리적 비즈니스 로직
도구 3GL 개발언어 4GL 개발언어 CASE tool, 객체지향도구 CBD 도구 소프트웨어 개발플랫폼 및 통합저작도구
개발 및 운영형태 Coding에 의한 프로그래밍 GUI 방식의 프로그래밍도구 사용 전통적인 순차적 개발방법론에 따른 개발자동화도구 활용 컴포넌트 생성 및 조립에 의한 S/W 개발 전문운영체제 내장형 컴포넌트 및 플랫폼을 활용하여 설계, 개발, 테스트, 문서화 작업의 통합수행 및 운영
주요 기술환경 메인프레임환경, 단위업무전산화, 소프트웨어 공학 태동기 C/S환경, PC보급확산, 전사규모의 정보시스템, 관계형 DB 인터넷 확산, 객체지향언어, 분산객체기술 기능단위컴포넌트, J2EE 및 COM기반기술, 웹서비스기술, 어플리케이션 서버기술 비즈니스 소프트웨어 전문 통합운영체제에 의한 C/S, Web, Mobile 환경 동시운영지원, 소프트웨어 개발 전공정의 통합 및 자동화, 소스코드 작업 및 관련 컴파일, 디버깅 작업의 제거
장점 정형화된 문법, 보편적으로 활용되는 기술, 검증된 성능 정보공학 방법론의 이론적 토대, Coding 작업의 상대적 편리성, 데이터베이스 연계작업의 상대적 편리성 다양한 소프트웨어 개발방법론의 지원, 실세계 개념모형 활용, 전체개발주기관리 기법의 활용 재사용성 향상을 통한 생산효율성 증대 완벽한 재사용성과 신뢰성의 확보를 통해 소프트웨어 개발생산성을 혁신적으로 증대, 개발자의 범위확대를 통해 비즈니스 지식 보유자의 S/W 개발작업 가능화, 유지보수의 용이성
단점 배우기 어려움, 코딩과 유지보수의 어려움, 전문개발자의 능력에 따라 품질이 크게 좌우되고 균질한 품질관리 어려움 한정적인 문법, GUI 방식으로 가능한 작업 이외에는 여전히 복잡한 Coding 작업 필요, 전문개발자의 능력에 품질 좌우 비표준화 및 복잡한 내부코딩, 많은 수작업, 전문개발자의 능력에 품질 좌우 컴포넌트 생성의 어려움, 컴포넌트 신뢰성 확보문제, 유지보수작업의 어려움, 컴포넌트 조립에 전문가가 필요함.
주요 상용제품 COBOL BASIC C Power Builder, Delphi, Visual Basic Java C++ UML CORBA MFC/CD, AURORA, COBALT, Cool:gen
그리고 아래 표 2는 1960년대 이후 소프트웨어 개발도구 및 개발방법론의 특성과 본 발명이 제시하는 BOS를 활용한 소프트웨어 개발작업이 가지고 있는 내재적 설계사상과 관련된 항목에 대해 비교분석하고 있는 자료이다.
기존 개발도구 (제 3세대 및 4세대 개발도구) 본 발명 (BOS가 제공하는 제5세대 개발도구)
개발도구의 설계목표 프로그래밍을 하기위해서는, CPUㆍRAMㆍDB 등을 조작해야 한다. 그러나 2진수 형태의 기계어로 이들을 직접 제어하는 것은 전문기술자의 경우에도 너무 어렵고 까다로운 작업이다. 따라서, 이해하기 쉬운 보통언어를 간략화하여, 기계와의 의사소통을 위해 고안된 언어가 필요하게 된다. 제3세대 및 4세대 개발도구들은 이런 목적으로 만들어진 것으로서, 기술자들에게 필요한 기계적 제어코드를 조합하여 만들어졌다. 일상 비즈니스를 수행하는데 필요한 문서, 결재, 복사기, 팩스 등과 같은 모든 요소 기능들을 사전에 표준객체로 개발하여, 완성된 전문운영체제 형태로 제공하고 있다. 따라서 프로그램 개발자는 수행하고자 하는 비즈니스 현상을 이해해서, 해당하는 객체를 선택하여 작동순서와 작업방법 등을 정의하는 것으로 모든 프로그래밍 작업을 완료할 수 있게 되었다.
개발자들의 작업대상 하나의 응용 프로그램을 구현하는데 필요한 CPUㆍRAMㆍ운영체제(O/S)ㆍDB 등이 수행할 작업과 기능들을, 모두 개발자들이 일일이 코딩작업을 하여 구현해주어야 한다. '비즈니스 표준 객체'들이 제대로 작동하기 위해서 필요한, CPUㆍDB 등을 조작하는 기능은 '비즈니스용 전문 운영체제'가 모두 수행해주므로, 개발자들은 이 부분에 관련된 작업(코딩작업)을 할 필요가 전혀 없으며, 구현할 비즈니스 로직과 프로세스 연구에 집중할 수 있는 시간적, 정신적 여유를 갖게 된다.
개발자에게 요구되는 능력과 자질 CPUㆍRAMㆍDB 등의 구조와 원리를 이해하지 못한 사람은 제대로 프로그램 개발작업을 할 수 없었다. 따라서 이러한 업무에 적성이 맞으면서 장기간 훈련된 소수의 개발자들만이 프로그램 개발작업을 할 수 있었다. 비즈니스 프로세스 자체를 연구하는 전문직은 물론, 일선 산업현장의 실무담당자나, 업무논리를 이해하고 있는 사람이라면 누구나 프로그래밍을 할 수 있게 된다. 본 발명이 제시하는 '비즈니스용 전문 운영체제' 기반의 개발작업에서는 ‘프로그래밍’이라는 단어의 개념부터 전혀 달라지게 된다.
주요 연구대상 하드웨어의 구조와 운영체제(O/S), DBMS 등과 같은 IT기반기술을 꾸준히 학습해야 한다. 또한, 이러한 기술들은 끊임없이 발달하고, 새로운 제품이 출시되고 있기 때문에 여기에 맞춰서 개발도구 그 자체를 연구하고 학습 및 숙련해야 한다. 더 이상 H/W 및 운영체제(O/S), DBMS 등과 같은 컴퓨터 운영환경기술 변화에 관심을 가질 필요없이, 소프트웨어의 기능과 품질 수준을 결정하는 핵심요소인 산업지식과 노하우 및 비즈니스 프로세스 자체의 최적화를 연구할 수 있게 된다.
앞서 설명한 바와 같이, 기존에 활용되던 소프트웨어 개발도구와 본 발명이 제시하는 BOS를 활용한 개발도구 및 방법론은 그 기본 바탕에서부터 개발자에게 요구되는 자질 및 앞으로 연구해야 할 대상에 있어서까지 큰 차이를 보이고 있다. 마지막으로 본 발명을 구상하고 구체적인 지원을 할 수 있는 개발도구시스템을 구현하는 과정에서 가장 심도있게 고려해왔고 현실적으로 해결해야 할 문제로 삼아왔던 기존 개발도구 및 개발방법론의 특징이자 문제점들은 다음과 같다.
① 유사한 작업의 반복
지금까지 소프트웨어를 개발하는 공정과 그 결과로 생산된 산출물들을 살펴보면, 비슷비슷한 내용의 코딩작업을 무수히 반복하거나, 많은 개발자들이 분담하여 유사한 작업들을 끊임없이 반복 수행하고 있는 것을 어렵지 않게 발견할 수 있다.
예를 들어 아주 간단한 비즈니스용 소프트웨어를 개발하는 경우에도 데이터를 등록하는 모듈과 데이터를 조회하는 모듈, 데이터를 분석 및 가공하는 모듈 등 다양한 모듈을 구현해야 한다. 그리고 데이터를 등록하고 관리하는 한 가지 유형의 모듈만 하더라도, 데이터의 유형이나 종류, 특성에 따라 수많은 다른 프로그램 모듈들이 필요하기 때문에 이들 모두를 일일이 만들어주어야만 했다.
그러나 이런 작업들의 내부를 면밀하게 살펴보면, 어떤 종류의 데이터를 입력하는 모듈이든 입력할 데이터 항목의 개수나 배열순서 등이 약간 다를 뿐, 각 모듈별로 구현해야 할 기능이나 구현하는 방식 및 작업량 등은 대동소이한 것이 사실이다. 뿐만 아니라 하나의 관리 모듈을 구성하는 데이터 입력루틴, 수정루틴, 삭제루틴, 조회루틴, 출력루틴 등은 소스코드 내용이 대부분 비슷하고 동일한 작업이 반복되는데도 불구하고, 각 루틴간의 사소한 기능차이를 구현하게 위해서 지루한 코딩작업을 처음부터 끝까지 반복적으로 수행해왔다.
따라서, 실무에서 제대로 사용할만한 작은 단위시스템 하나를 만들더라도 실제로 개발작업을 해야하는 프로그램 모듈의 수는 눈덩이처럼 늘어나서 적게는 수십 개에서 많게는 수백 개에 이르는 경우가 대부분이었다. 그래서 자연히 대부분의 개발자들은 엄청나게 많은 시간과 노력을 투자하여 개발작업을 할 수밖에 없었고, 근무시간과 개발기간 및 비용은 소프트웨어 기능 및 규모가 커짐에 따라서 기하급수적으로 확대될 수밖에 없었던 것이다.
② 유지보수의 어려움
기존 소프트웨어 개발방식의 더욱 심각한 문제는, 앞에서 설명한 것처럼 많은 프로그램 모듈들을 만들다 보니 그 기능이나 소스코드가 유사함에도 불구하고 사소한 오류 하나를 수정하거나 조그만 개선점 하나를 적용하기 위해 너무나 많은 작업이 동반되었다는 점이다. 예를 들어, 하나의 등록 루틴을 고치고 난 후에서는 동일한 로직이 담겨있는 수정루틴이나 출력루틴 등에 대해서도 똑같은 수정작업을 해주어야만 했다. 그리고 이때 간혹 개발자들의 주의력이 미치지 못해서 하나의 모듈이나 루틴에 그 내용을 반영하지 못하였을 경우에는 전체 프로그램의 안정성과 신뢰성까지 근본적으로 흔들어 놓게 되는 경우가 많았다.
이와 같은 현상 때문에 시스템 하나를 새롭게 구축하는 경우는 물론이고, 이미 개발된 시스템을 유지보수하는 경우에도 너무나 어렵고 엄청나게 많은 노력과 비용 부담을 감수할 수밖에 없었던 것이다.
이런 현상은 결국 소프트웨어 개발산업의 사업성을 근본적으로 취약하게 하고, 제품의 품질과 안정성의 근간을 흔드는 문제를 야기시키는 것 이외에도, 시스템 자원의 운영 효율성 및 퍼포먼스에도 심각한 문제를 발생시키게 된다.
③ 시스템 자원의 운영 효율성 및 성능 저하
소프트웨어 제품의 성능을 향상시키는 것과는 관계없는 유사한 코딩작업의 반복이나 유지보수의 어려움과 같은 문제들은 결국 소프트웨어 개발산업의 사업성을 취약하게 하고, 제품의 품질과 안정성의 근간을 흔드는 문제를 야기하게 된다. 그리고 이러한 문제점 이외에도, 시스템 자원의 운영 효율성 및 퍼포먼스에도 심각한 악영향을 미치게 된다.
우선 유사한 기능을 갖고 있는 많은 프로그램 모듈들을 중복 저장 및 관리함에 따라 디스크 공간의 잠식현상이 심각해지게 된다. 그리고 CPU나 메인 메모리상에 유사한 기능의 프로그램 모듈이나 루틴들을 중복 로딩하여 처리하게 됨에 따라 핵심 자원의 낭비가 대단히 심화되고, 응답 및 처리시간이 한없이 길어지는 결정적인 폐단이 생기게 된다. 그리고 오늘날과 같은 인터넷 환경에서는 조직이 거느린 모든 데이터와 메시지, 문서는 물론이고 응용 프로그램의 모듈들까지도 모두 서버에 저장하고 네트워크를 통해 공유해야만 한다. 이런 상황에서 유사한 기능을 갖고 있는 수많은 프로그램 모듈들을 가장 값비싼 공용자원인 네트워크 통신망을 통해 주고받게 됨에 따라, 트래픽량은 기하급수적으로 증가하게 되고 조직을 구성하는 모든 시스템의 처리능력과 응답속도가 크게 떨어지는 심각한 문제들을 야기시키고 있다.
④ 근본적인 해법의 부재와 산업 전반의 어려움
앞에서 언급한 소프트웨어 개발 및 운영 측면의 심각한 문제점에도 불구하고, 지금까지 시중에서 널리 보급되어 사용되고 있는 거의 모든 개발도구나 개발방법론들은 한결같이 이런 모순들을 너무도 당연한 것으로 받아들여 왔다. 그리고 이런 문제들을 해결하는 수단으로서 서버 장비나 네트워크 등과 같은 하드웨어 투자를 기하급수적으로 늘리는 것을 유일한 대책으로 여기고 시행해왔던 것이 사실이다. 그리고 이런 현상 때문에 소프트웨어 사업은 계획하거나 예측한대로 움직여주지 않는 너무나 어려운 사업으로 남을 수밖에 없었다. 또한, 소프트웨어의 소비자 입장에서는 제품의 품질이 항상 미흡하고 불안정했으며, 개발자들은 너무도 단순한 일들을 끊임없이 반복하여야 했고, 잦은 초과근무와 프로젝트 기간의 연장은 일상적인 근무여건으로 여길 수밖에 없었던 것이다.
본 발명은 상기와 같은 종래 소프트웨어 생산체제와 기술의 구조적 문제점을 해결하기 위하여 안출된 것으로서, 비즈니스용 소프트웨어 제품의 품질을 근본적으로 향상시키고 보장할 수 있는 최선의 방법은 비즈니스 프로세스 자체에 대한 지식과 경험을 갖춘 사람이 직접 소프트웨어를 개발하는 것이라는 생각에서 출발하고 있다. 따라서 기존의 개발도구나 프로그래밍 언어에 익숙하지 못한 프로세스 전문가들이 소스 코딩 작업 없이도 손쉽게 고기능의 비즈니스용 소프트웨어를 개발할 수 있도록 지원하는 시스템을 구현하는 것이 이 발명의 근본적인 목적인 동시에 이 루고자 하는 기술적 과제인 것이다.
반복적인 소스 코딩작업으로 인한 막대한 시간과 비용의 소모, 시스템 규모의 확장에 따라 기하급수적으로 확대되는 소스코드의 양에 의한 유지보수의 어려움, 설계자와 개발자간의 커뮤니케이션 문제 등을 해결하여 보다 사용자 지향적이고 개발 및 유지보수가 쉬우면서도 신속하게 비즈니스용 소프트웨어를 개발할 수 있도록 하는 전문운영체제에 기반한 소프트웨어 개발시스템 및 그 개발방법을 제공하는데 그 궁극적이고 근본적인 목적을 두고 있는 것이다.
그리고 소프트웨어를 구성하는 비즈니스 객체들을 구동하는데 필요한 최소한의 정보만을 별도의 구조체 파일로 저장 및 관리하고, 실제로 프로그램을 작동하는 비즈니스 객체들은 별도의 저장소(BOS 내부)에 저장하여 두고 작동하게 함으로써 시스템 운영상의 효율성까지도 함께 고려한 통합개발 및 운영플랫폼으로서의 전문운영체제를 고안하였다.
본 발명에서는 이와 같은 목적을 달성하기 위해서 개발 생산성의 근본 문제였던 소스 코딩 작업을 제거하고, 특히 거의 모든 비즈니스 소프트웨어 모듈에서 공통적으로 사용되는 하드웨어, 데이터베이스, 운영체제(O/S) 등을 제어하는 기능은 전문운영체제 형태로 통합하고, 비즈니스 로직과 관련된 부분은 확실하게 분리하여 별도의 최소화된 스크립트 형태로 구현함으로써 소프트웨어 개발 및 운영상의 효율성을 극대화하는 것을 목적으로 하고 있다.
전술한 바와 같은 목적을 달성하기 위한 본 발명의 비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발시스템에 따르면, 사용자가 GUI환경에서 비즈니스 표준 객체를 선택하고 정의하여 비즈니스 소프트웨어를 생성 및 실행하는 시스템에 있어서, 프로그램을 구성하는 특정 기능이 정의되고, 사용자가 GUI 인터페이스를 통하여 선택하면 프로그램의 수행 기능을 정의할 수 있는 적어도 하나 이상의 비즈니스 표준 객체를 저장하는 비즈니스 객체 저장부; 사용자로부터 개별 상기 객체의 세부유형, 작동방식, 수행조건, 수행순서 및 DB연결정보를 포함하는 속성정보를 설정받는 비즈니스 객체 작동속성 설정부; 사용자가 설정한 상기 객체들의 상기 속성정보에 의하여 상기 비즈니스 객체 저장부에 있는 상기 객체를 동작시키고 제어하며, 스크립트 언어로 정의된 논리에 따라 비교, 분기, 연산 등을 수행하는 프로그램 실행부; 및 컴퓨터의 운영체제와 CPU, 저장장치, 데이터베이스 관리시스템, 네트워크 및 디스플레이 기기를 포함하는 IT인프라 장치들을 제어하는 운영환경 연결부를 포함하는 비즈니스용 전문 운영체제(이하, BOS로 표기함)에 기반하여, 상기 BOS가 GUI 인터페이스 환경하에서 제공하는 비즈니스 표준 객체들의 기능을 그래픽 객체(아이콘, 메뉴, 도구) 형태로 선택 및 사용하도록 함으로써, 프로그램 지식이 없는 사용자도 업무수행 지식에 의거하여 프로그램의 수행 기능을 쉽게 설계 및 구현할 수 있는 것과, 상기 비즈니스 표준 객체들을 아무런 코딩작업 없이 조립하여 최종 실행 프로그램을 완성하는 것을, 특징으로 한다.
또한, 본 발명의 비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발방법에 따르면, 사용자가 GUI환경에서 비즈니스 표준 객체를 선택하고 정의하여 비즈니스 소프트웨어를 생성 및 실행하는 방법에 있어서, (S1)새로 만들 프로그램의 사용자 인터페이스 화면을 선택받고 생성하는 단계; (S2)비즈니스 객체 저장부로부터 프로그램을 구성하는 적어도 하나 이상의 비즈니스 표준 객체를 선택하여 상기 화면에서의 크기 및 위치를 결정하는 단계; (S3)비즈니스 객체 작동속성 설정부로부터 개별 상기 객체의 세부유형, 작동방식, 수행조건, 수행순서 및 DB연결정보를 포함하는 속성정보를 설정받는 단계; (S4)상기 단계(S2) 및 단계(S3)에서 설정한 정보를 프로그램 실행부에서 해석할 수 있는 형태의 구조체 데이터로 변환하는 단계; 및 (S5)상기 프로그램 실행부가 상기 구조체 데이터를 읽어들이고, 상기 단계(S2) 및 단계(S3)에서 설정한 정보에 맞도록 상기 객체가 상기 화면에서 사용자의 명령에 따라 작동할 수 있도록 하는 단계를 포함하는 비즈니스용 전문 운영체제(이하, BOS로 표기함)에 기반하여, 상기 BOS가 GUI 인터페이스 환경하에서 제공하는 비즈니스 표준 객체들의 기능을 그래픽 객체(아이콘, 메뉴, 도구) 형태로 선택 및 사용하도록 함으로써, 프로그램 지식이 없는 사용자도 업무수행 지식에 의거하여 프로그램의 수행 기능을 쉽게 설계 및 구현할 수 있는 것과, 상기 비즈니스 표준 객체들을 아무런 코딩작업 없이 조립하여 최종 실행 프로그램을 완성하는 것을, 특징으로 한다.
본 발명은 비즈니스용 소프트웨어 개발에 필요한 일체의 기능을 표준화된 단위 객체로 미리 구현하여 비즈니스 객체 저장소에 저장한 뒤, 별도의 전용 개발도구를 사용하여 소스 코딩 작업 없이 업무논리 이해자가 직접 필요한 기능을 정의하여 최종 인터페이스 화면을 구현할 수 있는 통합저작시스템을 제공하고 있다. 또한, 이와 같은 저작시스템에서 개발자가 정의한 최소한의 정보만을 구조화된 데이터 파일에 담아서 저장, 전송 및 관리하고 소프트웨어 구동 시에는 사용자가 선택한 화면에 해당하는 구조화된 데이터 파일을 분석하여 관련된 비즈니스 객체들을 정의된 순서대로 구동시키는 효율적인 운영시스템과 관련된 논리 또한 도면을 통해 설명하도록 한다.
이하, 이상과 같은 구성요소 들을 포함하여 이루어진 본 발명의 바람직한 일 실시예를 첨부 도면을 통하여 보다 구체적으로 살펴본다.
상술한 목적, 특징들 및 본 발명의 장점과 본 발명이 이루고자 하는 기술적 과제에 대해서는 첨부된 도면과 관련한 다음의 상세한 설명을 통해서 보다 분명해질 것이다. 첨부된 도면들은 i) 세부구성요소로 이루어진 시스템의 구성도(도 1 ~ 도 3), ii) 논리적 전개양상을 설명하는 흐름도(도 4 ~ 도 6), iii) 본 발명을 활용한 소프트웨어 저작시스템의 각 프로그램 일 실시예 화면(도 7 및 도 8)들로 구성되어 있다.
도 1은 본 발명의 일 실시예에 따른 BOS에 기반하는 소프트웨어 개발시스템(1)의 기능 블록을 도시한다.
본 발명의 일 실시예에 따른 '비즈니스용 전문 운영체제'(이하, BOS(business operating system)라 표기함)에 기반하는 소프트웨어 개발시스템(1)은, 비즈니스 객체 저장부(2), 비즈니스 객체 작동속성 설정부(3), 프로그램 실행부(4) 및 운영환경 연결부(5)를 포함하여 구성된다. 또한, 시스템(1)이 제어하는 하부장치로서는 CPU(81), 메모리(82), 운영체제(O/S)(83), DBMS(84), Network(85) 등을 포함하며, BOS에서 인터페이스 화면단위로 생성되는 핵심적인 정보파일이라고 할 수 있는 비즈니스 객체 동작정보 저장파일(6)을 포함하여 구성된다.
상기 비즈니스 객체 저장부(Business Component Storage Layer)(2)는 소프트웨어 프로그램을 구성하는 적어도 하나 이상의 비즈니스 표준 객체를 저장하고 있다. 여기서, 비즈니스 표준 객체는 사용자가 비즈니스 로직을 수행하기 위하여 선택하는 것으로서, 사용자에게 그래픽으로 표시되어 특정 기능을 내재하고 있는 객체이다(도 8 참조).
상기 비즈니스 객체 작동속성 설정부(Business Component Setting Layer)(3)는 사용자가 인터페이스 화면을 구현할 때, 비즈니스 객체 저장부(2)에 저장되어 있는 비즈니스 객체 중에서 필요한 객체를 선택하여 화면상에 배치한 뒤, 상기 객체의 세부유형, 작동방식, 수행조건, 수행순서 및 DB연결정보를 포함하는 속성정보를 설정할 수 있도록 한다(도 7 참조). 또한, 상기 비즈니스 객체 작동속성 설정부(3)에서는 개발자가 인터페이스 화면을 구성하고 나면, 해당 화면의 설정정보만을 묶어서 별도의 구조체 데이터 파일인 비즈니스 객체 동작정보 저장파일(6)을 생성하게 된다(도 3 및 도 5 참조).
상기 프로그램 실행부(Application Program Execution Layer)(4)에서는 개발 완료된 소프트웨어를 실제로 운영할 때, 상기 비즈니스 객체 동작정보 저장파일(6)을 읽어들여서 개발자가 설정한 정보들을 해석한 뒤, 필요한 비즈니스 객체를 상기 비즈니스 객체 저장부(2)에서 가져와서 정의된 설정정보에 따라서 동작시키게 된다(도 6 참조).
상기 운영환경 연결부(Environment Abstraction Layer)(5)는 상기 프로그램 실행부(4)에 의하여 소프트웨어가 실행될 때 설정된 상기 속성정보에 따라서 CPU(81), 메모리(82), 운영체제(83), DBMS(84), 네트워크(85) 등의 BOS 하부 시스템들을 제어하여 각각의 고유 기능을 활용하게 된다.
이처럼 본 발명은 BOS에 기반하는 시스템(1) 내부를 비즈니스 객체의 물리적 저장소(비즈니스 객체 저장부(2)), 비즈니스 객체의 작동속성을 개발하고자하는 인터페이스 화면에 요구되는 기능에 따라 정의하는 부분(비즈니스 객체 작동속성 설정부(3)), 비즈니스 객체가 수행하는 비즈니스 로직과 관련된 동작을 제어하는 부분(프로그램 실행부(4)) 및 비즈니스 객체들이 공통적으로 활용하는 하부시스템만을 별도로 제어하는 부분(운영환경 연결부(5))으로 명확히 구분하여 소프트웨어 개발작업상의 중복작업이나 운영상의 비효율성을 최소화하고 있다.
추가로 도 1의 신규 비즈니스 객체 생성 프로그램(7)은 본 발명의 영역을 벗어나는 부분이긴 하나 BOS의 핵심이라고 할 수 있는 비즈니스 객체 중에서 꼭 필요한 기능이 없을 때는 표준화된 객체로서 새로 생성해야 하므로 도면상에 함께 표시하였다. 본 발명이 제시하는 BOS의 경우에는 C#, C++, Java 등의 언어를 사용하여 신규 비즈니스 객체를 생성하고 있다.
도 2는 도 1에 도시한 BOS에 기반하는 소프트웨어 개발시스템(1)의 세부적인 기능 블록을 도시한다.
먼저, 상기 비즈니스 객체 저장부(2)는 비즈니스 객체 생성프로그램을 사용하여 만들어진 비즈니스 객체들을 쉽게 찾고 해석할 수 있도록 저장하는 비즈니스 객체 저장소(21), 복잡한 비즈니스 룰(rule)의 구현을 위한 스크립트 로직을 저장하는 비즈니스 로직 저장소(22), 비즈니스 객체들이 가지고 있는 UI 속성(화면상에 보여지는 크기, 색상, 글꼴 등)만을 별도로 저장하는 UI 객체 저장소(23), 각 비즈니스 객체들에 설정되거나 인터페이스 화면 자체에 설정된 보안 및 버전과 관련된 내용을 관리하는 보안 및 버전 저장소(24), 비즈니스 객체들의 조합에 따라 생성되는 SQL 문장을 저장 및 관리하는 SQL 저장소(25), 메뉴생성기(35)에 의해 만들어진 인터페이스 화면들의 메뉴체계를 저장하는 메뉴 저장소(26)로 구성되어 있다.
상기 비즈니스 객체 작동속성 설정부(3)는 사용자가 요구하는 업무논리에 따라서 비즈니스 객체의 구성, 배치, 유형설정 및 속성설정 등을 통해 업무 프로세스를 구현하는 프로세스 빌더(31)(도 7의 301 참조), 사용자의 요구사항 및 사용상의 편의를 위해 비즈니스 객체의 크기 및 위치 등을 설정하는 인터페이스 화면 디자이너(32)(도 7의 303 참조), 비즈니스 객체의 세부속성을 설정하는 편집기인 비즈니스 객체 속성 설정 에디터(33)(도 7의 305 ~ 309 참조), 비즈니스 객체가 제공하는 기본 속성만으로 정의할 수 없는 복잡한 비즈니스 룰을 정의하거나 비즈니스 객체의 작동에 따라 발생하는 이벤트 등을 정의하고 컴파일하는 스크립트 에디터(34) 및 각각의 인터페이스 화면을 하나의 메뉴체계로 묶어주는 실행메뉴를 구성하는 메 뉴 생성기(35)로 구성되어 있다.
상기 프로그램 실행부(4)는 인터페이스 화면을 구성하는 비즈니스 객체를 해석해서 실행하는 엔진인 프로세스 실행기(41)(Process Executor)(도 6 참조), 전자결재 서식 등의 문서를 해석해서 실행하는 엔진인 디지털 문서 엔진(42)(Digital Document Engine), 상기 스크립트 에디터(34)에서 생성된 스크립트 데이터를 해석하여 실행하는 엔진인 스크립트 언어 엔진(43)(Script Language Engine), 여러 사용자가 관여되는 비즈니스 프로세스 수행시 비즈니스 객체들을 워크플로우 논리에 적합하게 구동해주는 엔진인 워크플로우 자동화 엔진(44)(Workflow Automation Engine), 시간설정이 되어있는 비즈니스 객체들을 관리하여 시간에 따라 일정관리 및 자동실행 기능을 수행해주는 엔진인 비즈니스 스케쥴링 엔진(45)(Business Scheduling Engine) 및 비즈니스 프로세스의 수행순서를 설정하고, 실행할 응용프로그램을 기동하여 전후방 프로그램 모듈들과 데이터를 공유하면서 실행해주는 엔진인 비즈니스 프로세스 관리 엔진(46)(Business Process Management Engine)으로 구성되어 있다.
상기 운영환경 연결부(5)는 인쇄출력물을 관리하고 출력을 지원하는 리포트 엔진 및 스풀러(51)(Report Engine & Spooler), 팩시밀리를 제어하고 출력지원 및 인터페이스 화면에서 데이터를 자동으로 입력받아 출력하는 팩스 엔진 및 스풀러(52)(Fax Engine & Spooler), 파일을 쉽게 접근할 수 있도록 지원하는 엔진인 파일 I/O 에이전트(53)(File I/O Agent), 데이터베이스 및 데이터베이스 관리시스템과의 연결 및 트랜잭션 처리를 수행하는 데이터베이스 I/O 에이전트(54)(DB I/O Agent), 메시지 처리 및 전송을 위한 지원엔진인 메시지 전송 에이전트(55)(Message Transfer Agent), 통신 프로토콜 및 인터넷 연결 지원을 위한 엔진인 TCP/IP & HTTP 연결 에이전트(56)(TCP/IP & HTTP Connection Agent), 원격지 데이터에 쉽게 접근할 수 있도록 지원하는 엔진인 소켓 에이전트(57)(Socket Agent) 및 비즈니스 객체 중 메일 송수신 기능이 필요한 객체를 지원하는 엔진인 메일 에이전트(58)(Mail Agent)로 구성되어 있다.
도 3은 본 발명의 일 실시예에 따른 구조체 데이터 파일의 구성을 도시하는 것으로서, 보다 효과적인 설명을 위하여 아래 도 5를 설명하는 부분에서 후술하도록 한다.
도 4는 본 발명의 일 실시예에 따른 BOS에 기반하는 소프트웨어 개발방법의 순서를 도시한다.
도면에 도시된 바와 같이, 본 발명이 제시하는 BOS에 기반하는 소프트웨어 개발방법은 단위 프로그램 인터페이스 화면의 생성에서 시작하여 해당 인터페이스 화면을 구성하는 세부단위객체들의 설정정보를 일체의 소스코드를 사용하지 않고 구조체 데이터 형태로 변환하는 작업까지 이어지게 된다.
단위 프로그램 인터페이스 화면 생성 단계(S10)는 코딩 등 전문적인 소프트웨어 기술을 지니지 못한 사용자들(예를 들면, 프로세스 분석가, 업무논리이해 실무자 등)이 누구나 쉽게 사용할 수 있는 GUI 방식의 개발 및 저작도구(도 7 참조)를 주로 사용하여 실제 엔드-유저(End-User)들이 사용하게 될 입출력 화면(도 7의 303)을 생성하는 단계이다. 여기서 입출력 화면의 물리적 실체는 최종적으로 만들 어지게 될 구조체 데이터와 함께 화면의 디자인적 요소(색상, 글꼴, 도형의 크기 및 배치)에 대한 정보를 담은 특정 형태의 파일(도 1의 6 참조)로 볼 수 있다.
인터페이스 화면 속성설정 단계(S11)는 상기 단계(S10)에서 생성한 인터페이스 화면의 전체속성 및 인터페이스 화면 단위의 디자인적 요소들을 사용자가 설정해주는 단계이다. 이 단계 역시 BOS에서 제공하는 GUI 방식의 개발 및 저작도구(도 7 참조)를 사용하여 신속하게 이루어지는 작업이다.
프로그램 명칭표시란 생성 및 항목명 설정 단계(S12)는 상기 단계(S10)에서 생성한 인터페이스 화면의 제목과 해당 화면 속에 나타나는 세부구성항목들의 명칭을 표시하는 부분을 생성해주는 단계이다. 명칭표시란이나 항목표시란 또한 본 발명이 제공하는 개발도구가 완성된 비즈니스 표준 객체(도 8 참조) 형태로 제공하고 있다.
화면 생성과 디자인 요소의 설정 및 제목과 항목표시란 생성이 완료되면 최종사용자를 위한 인터페이스 화면의 큰 틀은 완성되었다고 볼 수 있다.
이제는 도 1에 도시한 본 발명이 제공하는 개발도구의 비즈니스 객체 저장부(2)에 저장되어 있는 다양한 비즈니스 표준 객체 중에서 필요한 기능의 객체를 선택하고(S20), 인터페이스 화면상에서 객체의 위치와 크기를 설정하게 된다(S21). 본 발명에서의 비즈니스 표준 객체들은 개발도구에서 아이콘의 형태로 나타나고 있으며(도 7의 302 참조), 사용자는 여기서 필요한 객체를 클릭하여 인터페이스 화면상에 드래그-앤-드롭(drag & drop) 방식으로 생성해주기만 하면 된다.
객체의 생성과 위치설정 이후에는 도 1의 비즈니스 객체 작동속성 설정부(3) 가 제어하는 해당 객체의 종류별로 제공되는 속성설정화면(도 7의 305 ~ 309)을 통해서 비즈니스 객체의 속성이나 작동방식을 설정하게 된다(S30).
그리고 해당하는 비즈니스 객체가 데이터베이스와 연결되어 작동하는 경우(S31)에는 데이터베이스 연결정보 설정창(도 7의 305 참조)을 통해서 데이터베이스 연결정보를 직접설정하거나 본 발명이 제공하는 자동지정기능을 활용하여 자동으로 지정(S32)할 수도 있다.
하나의 비즈니스 객체에 대하여 상기 단계(S20)에서 단계(S32)까지의 작업을 완료하고 나면, 더 필요한 기능이 없는지 검토하고(S33), 있을 경우에는 다시 비즈니스 객체 저장부(2)(도 7의 302 참조)에서 필요한 기능의 객체를 선택하는 상기 단계(S20)부터 단계(S32)까지의 과정을 수행한다. 그리고 더 필요한 기능이 없다면 해당 인터페이스 화면을 저장하여, 지금까지 설정한 정보들을 조합하여 구조체 데이터 형태로 변환하게 된다(S40).
본 발명이 제시하는 BOS 기반의 소프트웨어 개발방법에서는 위와 같은 과정을 거쳐서 만들어지는 구조체 데이터 형태의 파일(6)에 모든 디자인 및 설정 정보를 저장하며, 실제 비즈니스 객체 자체는 저장하지 않음으로써 물리적 데이터 파일의 경량화를 통해 대형시스템을 개발할 경우에도 전체의 운영효율성을 극대화한다. 그리고 실제 소프트웨어의 운용시에는 이 구조체 데이터 파일에 저장된 설정정보에 따라서 인터페이스 화면을 보여주고 화면에 속한 비즈니스 객체들이 사용자의 명령조작을 받게 될 경우 비즈니스 객체 저장부(2)에 있는 비즈니스 객체들을 가져와서 프로그램 실행부(4)에서 사용자의 명령 및 기존에 설정된 속성정보들을 해석하여 그에 따라 작동시키게 된다.
도 5는 본 발명의 일 실시예에 따른 구조체 데이터 파일(6)의 변환 및 저장단계의 상세 순서를 도시한다. 또한, 도 3에서는 그 구조체 데이터 파일의 구성을 도시하는 것으로서, 이하에서는, 도 3 및 도 5를 참조하여 설명한다.
도 5는 비즈니스 객체 작동속성 설정부(3)(도 7의 305 ~ 309 참조)에서 개발자가 원하는 기능을 수행할 수 있도록 설정된 정보들을 별도의 구조체 파일인 비즈니스 객체 동작정보 저장파일(6)로 구성하는 논리 및 그 순서를 도시한다. 그리고 도 3은 본 발명에서의 소프트웨어 응용 프로그램에 해당하는 상기 비즈니스 객체 동작정보 저장파일(6)의 데이터구조를 도시한다.
즉, 사용자가 비즈니스 객체 작동속성 설정부(3)의 기능을 활용하여 하나의 소프트웨어를 만들기 위한 인터페이스 화면에 대한 설정작업을 모두 완료하게 되면 도 5에 나타나있는 단계가 자동으로 수행되면서 도 3에서 보여지는 형태의 비즈니스 객체 동작정보 저장파일(6)을 생성하게 되는 것이며 실제 소프트웨어 운영시에는 이 파일을 해석하는 절차(도 6 참조)를 거쳐서 실행하게 된다.
비즈니스 객체 동작정보 저장파일의 버전정보를 설정하는 단계(S401)는 현재 사용중인 BOS 운영체제의 버전 및 개발도구의 버전정보(도 3의 6)를 저장하는 단계이다. 객체종류, 개발기관, 등록일자 등 일반적인 정보저장 단계(S402)는 해당 인터페이스 화면의 종류, 개발기관 및 개발자 정보, 개발일자 등 일반적인 정보(6)를 저장하는 단계이다. 사용자 및 회사 정보에 따른 파일의 접근 권한정보 저장 단계(S403)는 해당 인터페이스 화면의 실행 여부를 조직계층이나 사용자의 등급에 따라 서 관리하는 보안정보(6)를 저장하는 단계이다. 비즈니스 객체 정보에 사용된 GDI 객체 정보 저장테이블 구성 단계(S404)는 인터페이스 화면의 배경속성이나 화면을 구성하는 비즈니스 객체의 선형속성이나 글꼴속성 등에 사용되는 글꼴, 선형, 색상 종류들을 파악하여 인덱스 테이블인 GDI(Graphic Device Interface) 객체 정보 저장테이블(601)을 구성하는 단계이다. 선형속성, 배경속성, 글꼴속성 등 GDI 객체 저장 단계(S405)는 상기 단계(S404)에서 파악한, 화면에서 사용되는 선형, 배경, 글꼴의 종류별로 그 이름과 크기 및 세부속성을 GDI 객체 정보 저장테이블의 인덱스번호와 함께 별도로 저장(602)하는 단계이다.
이제 본격적으로 인터페이스 화면을 구성하는 비즈니스 객체들의 정보를 저장하기 위한 작업들이 이어지게 된다.
먼저, 비즈니스 객체 동작정보 저장파일(6)에는 비즈니스 객체 그 자체가 저장되는 것이 아니라 어떤 비즈니스 객체에 어떤 작동속성을 부여하여 실행할 것인가에 관한 정보만을 구성하게 되므로. 비즈니스 객체 저장관리를 위한 인덱스 테이블(603)을 구성해야 한다(S406). 이 인덱스 테이블(603)에는 인터페이스 화면을 구성하는 각 비즈니스 객체들의 종류와 고유번호(인덱스번호)가 함께 저장된다.
비즈니스 객체 인덱스 테이블(603)이 생성되고 나면 각각의 비즈니스 객체의 세부속성정보를 저장하는 테이블(604)이 비즈니스 객체별로 필요하게 된다. 그리고 이 테이블(604)에는 해당 비즈니스 객체의 위치 및 크기(S407), 비즈니스 객체에 사용된 색상 및 글꼴 등 GDI 객체 효과속성(S408), 검색논리 등 데이터베이스 입출력 관련속성(S409) 등을 저장하게 된다. 데이터베이스 입출력이 필요한 비즈니스 객체의 경우에는 해당 작업의 수행을 위한 SQL 문장이 필요하게 된다. 본 발명이 제시하는 BOS에 기반하는 소프트웨어 개발방법에서는 별도의 내부논리를 통해 비즈니스 객체의 속성정보를 분석하여 적절한 SQL 문장을 자동으로 생성해주게 되는데 이 SQL 문장 또한 인덱스 테이블(605)을 사용하여 관리하게 된다. 따라서 먼저 SQL 명령문 저장관리 인덱스 테이블을 구성하고(S410), 해당 인터페이스 화면에 사용된 SQL 문장들 모두에 인덱스 번호를 부여한 뒤, 각 SQL 문장의 본체를 역시 별도의 테이블(606, 607)을 사용하여 저장하게 된다(S411).
일반적으로 대부분의 인터페이스 화면들은 상기 단계(S401)에서 단계(S411)까지의 과정을 거쳐서 비즈니스 객체 동작정보 저장파일(6)을 생성하게 되는데, 다소 복잡한 비즈니스 룰이나 이벤트를 포함하고 있는 인터페이스 화면의 경우에는 스크립트를 사용하게 되므로, 스크립트 함수나 이벤트의 존재여부를 검색(S412, S413)한 뒤, 존재하는 경우에는 스크립트 역시도 효율적인 관리를 위한 인덱스 테이블(608)과 스크립트 본체를 저장하는 별도의 테이블(609)을 생성하고(S414), 저장하게 된다(S415).
이와 같은 과정이 모두 완료되면, 인터페이스 화면의 버전정보, 일반정보, 보안정보 및 GDI 객체, 비즈니스 객체, SQL 문장, 스크립트 문장에 대한 모든 정보를 하나로 묶어서 별도의 파일(6) 형태로 저장하게 된다.
도 6은 본 발명의 일 실시예에 따른 구조체 데이터 파일(6)의 작동단계의 상세 순서를 도시한다. 대체로 이 과정은 도 5에서 보여주고 있는 비즈니스 객체 동작정보 저장파일(6)을 구성하는 절차의 역순으로 진행됨을 알 수 있다.
먼저, 사용자가 소프트웨어의 메뉴를 구성하고 있는 항목 중에서 사용하고자 하는 기능을 선택하게 되면 해당 기능과 연결된 인터페이스 화면을 실행하기 위해서 해당하는 비즈니스 객체 동작정보 저장파일(6)을 실행하게 된다(S501).
이때, 가장 먼저 해당 파일의 버전정보(도 5의 S401 참조) 및 보안정보(도 5의 S403 참조)를 읽어들여서 조건에 맞는지 확인한 후(S502), 맞지 않을 경우 파일을 실행하지 않으며(S504), 조건에 맞을 경우에만 파일 내부의 구조체 정보들을 읽어들이게 된다(S503).
가장 먼저 GDI 객체 인덱스 테이블(도 3의 601, 602 참조)을 읽어서 해당 인터페이스 화면을 구성하는 비즈니스 객체에서 사용되고 있는 GDI 객체들을 생성한다(S505). 그리고 비즈니스 객체 인덱스 테이블(603)을 읽고(S506), 모든 비즈니스 객체들을 정해진 위치와 크기, 글꼴속성, 선형속성 등에 맞게 인터페이스 화면상에 생성해주게 된다(S507).
그리고 비즈니스 객체정보 본체저장테이블(604)에 있는 세부속성들을 부여해주고(S508), SQL 인덱스 테이블(605) 및 SQL 문장 본체저장테이블(606, 607)을 읽어서 해당 인터페이스 화면에 필요한 SQL 질의문을 구성하게 된다(S509). 해당 파일에 스크립트와 관련된 정보(608, 609)가 존재하는 경우에는 이 또한 실행 가능한 형태로 재구성하게 된다(S510).
상기 단계(S501)에서 단계(S510)까지의 과정은 비즈니스 객체 동작정보 저장파일(6)에 저장되어 있는 내용을 그대로 해석하여 인터페이스 화면상 또는 메모리 상에 필요한 정보를 보여주거나 저장하는 단계이다. 이제 사용자는 이 화면을 보면 서 자신이 필요한 작업을 수행하게 되고(S511), 이후의 단계는 그 과정에 대해 설명하고 있다.
먼저, 해당 화면에 기본 검색키가 설정되어 있으면(S511), 데이터베이스로부터 최종 데이터를 읽어들이거나 그 다음의 레코드 번호를 생성하여 새로운 데이터의 입력을 받을 수 있도록 준비하는 등의 작업을 하게 된다(S512). 이때, 각 비즈니스 객체에 별도로 표시속성이 설정되어 있으면 그 조건에 맞게 데이터를 가공하여 화면상에 보여주게 된다(S513).
기본 검색키가 설정되지 않은 경우에는 사용자가 데이터를 입력하거나(S514), 또는 검색버튼 등의 기능버튼을 사용하게 된다(S515). 사용자가 사용하는 비즈니스 객체가 데이터베이스 입출력이 필요한 경우에는 해당 작업(S512, S513)을 수행하게 되며, 스크립트가 존재하고 사용자가 사용하는 비즈니스 객체가 스크립트 이벤트를 필요로 하는 경우(S516), 상기 단계(S510)에서 구성한 스크립트 정보 중에서 필요한 부분을 실행한 뒤(S517), 실행값을 화면상에 보여주게 된다(S518).
도 7은 본 발명의 일 실시예에 따른 비즈니스 표준 객체를 정의하는 화면의 캡쳐도로서, 본 발명이 제시하는 BOS에 기반하는 비즈니스 객체 작동속성 설정부(3)의 외형을 보여주고 있다.
먼저, 화면(301)은 사용자가 요구하는 업무논리에 따라서 비즈니스 객체의 구성, 배치, 유형설정 및 속성설정 등을 통해 업무 프로세스를 구현하는 프로세스 빌더(도 2의 31 참조)의 메인화면이며, 메뉴(302)는 비즈니스 객체 저장부(2)에서 표준 객체화되어 제공되는 비즈니스 객체들을 선택하는 아이콘 메뉴이다. 화면 (303)은 최종사용자가 접하게 되는 인터페이스 화면 자체로서 인터페이스 화면 디자이너(32)에 의해 제어되는 부분이다. 데이터 필드(304)는 본 발명이 제공하는 수많은 비즈니스 표준 객체 중 하나인 데이터입력란 객체의 예제모습이며, 해당 객체의 세부 속성 정보를 설정할 수 있도록 지원하는 부분이 필드속성 설정탭(305), 자료속성 설정탭(306), 입력속성 설정탭(307), 그리기속성 설정탭(308), 부가기능 설정탭(309)으로 구성되어 있다.
도 8은 본 발명에서 제공하는 비즈니스 객체 저장부(2)에 저장된 비즈니스 표준 객체(도 7의 302 참조)들을 예시한다.
한편, 아래에서는 전술한 본 발명의 기술을 실시하여 얻게 되는 장점에 대해서 실험예를 인용하여 크게 4가지로 나누어 설명한다.
① 비즈니스용 소프트웨어 개발속도의 극적인 향상과 개발비용의 절감
본 발명이 제시하는 비즈니스용 전문 운영체제(BOS)를 기반으로 하여 응용 소프트웨어를 개발할 때는, 예전과 같이 개발자들이 필요한 기능을 하나 하나씩 세세하게 코딩 작업하여 구현할 필요가 없다. 대신 응용 소프트웨어를 구현하는데 필요한 모든 요소 기능들을 비즈니스 표준 객체로 구성, 운영체제 형태로 사전에 제공함으로써, 개발작업의 방식을 본질적으로 바꾸어 놓고 있다.
뿐만 아니라 BOS에 기반하는 개발작업과 관련하여 최초의 설계단계에서부터 최종 구현 및 테스트 작업까지의 모든 공정을 일관된 하나의 저작도구 내에서 수행할 수 있게 해주고 있다. 이렇게 소프트웨어 개발 공정상의 중복된 작업을 제거하 고, 전 단계까지의 작업과정에서 생산한 산출물들을 다음 작업 공정에서 원천 정보로 그대로 활용할 수 있게 해주는 혁신적인 개발방법론을 제공함으로써, 궁극적으로 소프트웨어 개발 생산성을 극적으로 향상시킬 수 있도록 해주고 있는 것이다.
특히 BOS 기반의 시스템에 내장된 저작도구는 기존의 프로그래밍 기술이나 지식이 없는 사람이라도 누구나 쉽게 사용할 수 있도록 하기 위해 강력한 GUI를 기반으로 하고 있다. 따라서, 엔드-유저가 최종적으로 사용하게 될 입출력화면과 보고서의 형식을 개발자가 직접 그리고 나서, 간단하게 작동방식만을 정의하여주면, 시스템을 개발하는데 있어서 개발자가 해주어야 할 거의 모든 작업들을 끝마치게 된다. 그리고 이렇게 쉽고 빠르게 만들어진 화면들은 BOS에 기반하여 그대로 최종 실행 프로그램 모듈로서 작동하게 된다.
그래서 전통적인 개발도구를 사용할 때처럼 소스코드나 오브젝트 코드라는 개념이 없고, 별도의 코딩, 컴파일링, 디버깅 등과 같은 복잡한 공정과 단순 반복적인 수작업 처리과정이 전혀 없다. 이런 혁신적인 접근방법 때문에, 소프트웨어를 개발하는 공수와 기간을 획기적으로 절감할 수 있을 뿐만 아니라, 과거에 끊임없이 반복되었던 시행착오나 에러발생의 가능성도 원천적으로 방지할 수 있게 되어 소프트웨어 개발프로젝트의 전반적인 원가절감을 이루어낼 수 있는 것이다.
BOS 기반의 소프트웨어 개발이 지니는 이와 같이 혁신적인 개발생산성 제고효과를 입증하기 위해 기존의 소프트웨어 개발도구로 널리 사용되고 있는 Visual C++과 간단한 어플리케이션 개발 테스트를 수행해본 결과를 아래에 제시하도록 하겠다.
프로그램 예제는 ‘도서대출 관리’ 프로그램을 구성하는 ‘사원원장’과 ‘도서대출장’ 두 개의 모듈을 구현하는 것으로 하였다. 프로그램 구현에 필요한 DB구조는 이미 설계, 생성되어 있다는 것을 전제로 하였으며, Visual C++ 개발자는 3년 정도의 개발 경험을 가진 1급 프로그래머이고 본 발명이 제시하는 '비즈니스용 전문 운영체제'를 활용한 개발자는 프로그래밍 경험이 전혀 없는 산업공학 전공자로 본 발명도구(ProcessQ)를 3개월째 사용해 본 비전산 전공 일반인이었다.
전체 개발기간과 소스코드 및 산출물의 성능을 비교한 결과를 아래 표 3에 예시하면 다음과 같다.
BOS 기반 시스템 Visual C++
개발자 프로그래밍 경험이 전혀 없는 산업공학 전공자 ProcessQ 사용경력 3개월 Visual C++ 개발경험 3년의 1급 프로그래머
소요기간 45분 72.5시간
산출물 사원원장 모듈 도서대출장 모듈 사원 및 도서정보 조회화면 모듈 사원원장 모듈 도서대출장 모듈
소스코드 4,573 lines (A4 문서 89페이지)
위의 표에서 볼 수 있듯이 BOS를 기반으로 개발작업을 수행하였을 경우 사원 및 도서정보를 조회하는 화면까지 추가로 개발했음에도 Visual C++을 사용한 경우보다 약 90배 이상의 개발생산성을 보여주고 있다. 이 외에도 수많은 자체 테스트 및 실무프로젝트에 적용해본 결과, 개발 난이도가 낮은 경우에는 평균 100배 이상의 생산성 차이를 보였으며, 엔터프라이즈 솔루션 급의 고기능 소프트웨어를 개발하는 경우에도 평균적으로 약 30배 이상의 생산성 증대효과가 나타남을 확인할 수 있었다.
② 비즈니스 영역에 전문화된 표준객체의 활용으로 비즈니스용 소프트웨어의 품질을 혁신
모든 비즈니스 활동과 산업현장의 업무 처리 기능을 자동화할 수 있게 해주는 비즈니스용 어플리케이션에는 ERP, CRM, SCM과 같은 기간시스템부터 EDMS나 전자결재시스템과 같은 OA계 솔루션과 KMS나 Groupware같은 지식경영 솔루션까지 수많은 시스템 유형이 존재하며 각 시스템들은 엄청나게 방대한 기능으로 구성되어 있다. 따라서 소프트웨어 개발의 측면에서는 구현해야 할 모듈도 상당히 방대하고, 프로세스와 DB의 구조 또한 매우 복잡하게 구성되어 있는 경우가 많다.
그런데 이러한 비즈니스용 소프트웨어의 개발 작업을 설계는 Top-Down 방식, 구현은 Bottom-Up 방식으로 각기 다른 사람이 수행하게 되면 설계자의 지식이나 의도를 있는 그대로 표현하고 전달할 수 없어서 설계와 구현 사이에 수많은 형태의 커뮤니케이션 오류와 갭이 발생하는 현상이 초래된다. 게다가 많은 모듈을 장시간에 걸쳐 여려 사람이 분담해 Bottom-Up 방식으로 구현함으로써 불가피하게 설계 변경이 빈발하게 되고 사소한 설계변경 및 기능 추가 작업을 위해서도 관련된 모든 모듈의 기능과 DB구조를 연쇄적으로 고쳐줘야 하는 등 작업의 분량이 기하급수적으로 증가하게 된다. 그런데 이와 같은 문제를 해결하기에는 오늘날의 어려운 개발도구와 난해한 코딩작업 기반의 개발방법론은 근본적인 한계가 있다고 할 수 있다. 즉, 수많은 중복 작업과 끝이 보이지 않는 에러 처리로 인해 프로젝트 기간은 계속해서 길어지고 이에 따른 부대비용도 한없이 불어나는 비효율성이 존재할 수밖에 없었던 것이다. 따라서 코딩 등 반복적이고 복잡한 절차를 제거하고 비즈니스 자체(업무지식)에 대한 연구와 고민이 가능할 수 있도록 하기 위해서 개발도구나 개발방법론 차원에서의 소프트웨어 기술 자체를 바라보는 관점의 전환이 필요한 시점인 것이다.
소프트웨어 시장의 이러한 요구와 시대변화에 따라 본 발명에서는 지금까지 무수히 반복해서 개발할 수밖에 없었던 기능들을 체계적으로 연구하고 비즈니스용 소프트웨어를 개발하는데 필요한 모든 요소 기능들을 추출하여 '비즈니스 표준 객체'화 하였다. 이렇게 표준화 및 범용화 작업을 거친 뒤 이를 대단히 안정되고 최적화된 플랫폼 및 운영체제의 형태로 제공함으로써 에러발생의 가능성도 원천적으로 방지하고, 완성된 제품의 품질수준을 확실하게 차별화할 수 있어 소프트웨어 사업의 경쟁력을 크게 높여줄 수 있다. 또한, '비즈니스용 전문 운영체제' 기반의 소프트웨어 개발 및 운영에 있어서는 개발자들이 하드웨어ㆍ통신프로토콜ㆍ운영체제 등의 기능과 서비스를 이용하거나 데이터 저장ㆍ검색 작업을 하기 위한 단순 반복적인 코딩작업을 전혀 할 필요가 없게 된다.
따라서 본 발명을 활용하게 되면 비록 프로그램 언어를 배워본 경험이 없는 사람이라 할지라도, 자신이 소프트웨어를 구현하고자 하는 업무영역에 대하여 실무경험이나 업무지식만 갖고 있으면 누구나 아주 쉽고 빠르게 실무현장의 요구에 적합한 소프트웨어를 개발할 수 있게 된다. 뿐만 아니라 기존에 프로그램 개발경험이 있는 사람이라면, 자신이 이미 축적해놓은 개발업무 자체에 대한 감각과 경험, 그리고 과거에 개발과정에서 습득한 산업 실무지식을 바탕으로, 예전보다 훨씬 고기능의 소프트웨어를 한층 더 빠르고 편하게 개발할 수 있다.
본 발명이 제시하는 BOS 기반의 시스템 및 개발방법은 이처럼 플랫폼 및 운영체제 차원에서 혁신적인 변화를 일으킴으로써, 자연스럽게 최종 산출물인 응용 소프트웨어 제품의 기능과 품질 수준을 획기적으로 높아지는 결과를 낳게 해주고 있다. 본 발명에서 '비즈니스 표준 객체'의 형태로 제공하고 있는 다양하고 고도화된 기능들은 시스템을 도입하는 기업이나 일선 실무자들 입장에서는 반드시 필요한 기능이며, 또 이런 기능들이 제대로 지원되어야 진정한 디지털경영체제를 실현할 수 있게 된다. 그럼에도 불구하고, 지금까지의 소프트웨어 개발 프로젝트에서는 파워빌더(PowerBuilder), 델파이(Delphi), 베이직(BASIC), 코볼(COBOL) 등과 같은 전통적인 개발도구를 사용해야 했기 때문에 항상 많은 시간과 비용, 그리고 시행착오를 겪을 수밖에 없었다.
그리고 이런 기능을 구현했다 하더라도, 너무나 예외가 많고 복잡 다양한 구성 때문에 현장 적용성이나 시스템의 안정성 등은 크게 떨어지게 되어 실무에서 효과적으로 활용하는 데에는 또 다른 많은 문제점들이 존재했던 것이 사실이다.
그러나 본 발명에서는 이와 같이 산업현장에서 필요한 고기능들을 모두 표준객체화하여 전문 운영체제 내부에 기본적으로 내장시킨 형태로 제공함으로써, 구현하고자 하는 소프트웨어의 기능들을 불과 몇 분이라는 짧은 시간에 아주 쉽게 구현할 수 있게 해주고 있다.
따라서 BOS를 기반으로 소프트웨어를 개발할 경우에는 최종 생산된 소프트웨어의 기능과 품질면에서 기존의 개발도구로 개발한 제품들과 비교하여 확실하게 차별화된 우위성을 확보할 수 있다. 그리고 소프트웨어 개발사업자의 입장에서는, 제품의 품질과 기능면에서 경쟁사에 대한 우위를 확보함으로써 수주경쟁에서 항상 유리한 위치를 선점할 수 있을 뿐만 아니라, 가격 경쟁력 측면에서도 항상 높은 수준을 유지할 수 있게 해주고 있다.
③ 기존의 프로그래밍 기술이 부족한 비즈니스 프로세스 전문가를 위한 개발플랫폼을 구현하여 사용자지향적인 고기능의 비즈니스 소프트웨어 개발이 가능
지금까지는 소프트웨어를 개발하기 위해서 우선 어렵고 복잡한 프로그래밍 언어를 배워야 했고, 수백 혹은 수천 라인이 넘는 코딩작업과 에러 디버깅 작업을 하면서 시행착오를 겪는 과정을 통해 나름대로 숙련된 개발 전문가만이 소프트웨어를 개발할 수 있었다. 그러나 비즈니스용 소프트웨어처럼 경영혁신과 효율성 달성이라는 특별한 목적을 갖는 소프트웨어를 비즈니스 프로세스에 대한 지식이 없는 전문 개발자가 만들어간다는 것은 근본적으로 합리적이지 못한 얘기가 되고 있다.
이런 문제 때문에, 기존의 개발방법론에서는 업무지식이 전혀 없는 개발자가 해당 업무지식과 비즈니스 프로세스를 이해하는 실무자에게 지식을 전수받기 위한 단계가 상당부분 포함되어 있었으며 개발의 최상위 단계부터 최하위까지의 커뮤니케이션을 지원하고 도식화하기 위해 각 단계별 DFDㆍUMLㆍERD 등을 작성하는 도구들을 별도로 사용하여 왔다. 또한, 현장의 프로세스를 가장 잘 이해하고 있는 엔드-유저인 현업실무자가 개발단계에 참여하려 해도 어렵고 난해한 프로그램 언어는 언제나 가장 큰 장벽이었으며 하드웨어나 DBMS 및 데이터통신에 관련한 메커니즘이나 알고리즘, 작동원리 등을 이해해야만 개발이 가능하다는 기술적 장벽으로 인하여 실질적인 개발의 주체가 되기 어려웠다.
결국, 비즈니스 소프트웨어 개발에 있어서 가장 핵심적이고 근본이 되어야 할 지식은 비즈니스 프로세스나 산업활동 그 자체에 대한 지식임에도 불구하고, 소프트웨어를 개발하기 위해 사용되는 개발도구들은 프로세스 전문가가 아니라 소프트웨어 개발기술전문가만이 사용할 수 있도록 만들어져 있다는 데에 근본적인 문제가 있는 것이다. 그러다 보니 경영혁신과 비즈니스 프로세스 개선이라는 가장 근본적인 목적은 잃어버린 채 프로그래밍 기술과 도구를 익히고 다루는데 시간과 정열을 낭비하게 되며, 그렇게 많은 노력을 들여서 만들어낸 최종결과물도 사용자가 요구하는 사항조차 제대로 반영하지 못하고, 또 그런 시스템을 도입했다 하더라도 별다른 실질적 효과를 거두지 못하는 등 엄청난 시행착오와 비효율성이 계속되어온 것이다.
그래서 본 발명에서는 비즈니스 프로세스에 관한 지식을 갖춘 업무전문가들이 비즈니스 소프트웨어의 근본목적에 맞으면서도 쉽고 빠르게 개발작업을 수행할 수 있도록 하는 완전히 새로운 개념의 비즈니스 소프트웨어 개발플랫폼으로서 '비즈니스용 전문 운영체제'를 기획하고 설계하였다. 이제 비즈니스 프로세스 전문가들은 자신이 소프트웨어를 개발하는데 필요한 기능들을 '비즈니스용 전문 운영체제'가 제공하는 표준 비즈니스 컴포넌트들 중에서 찾아서 GUI 방식으로 간편하게 설계하고 작동방식을 지정하는 것만으로 신속하게 목적지향적인 어플리케이션을 개발할 수 있게 될 것이다.
④ H/W 및 운영체제(O/S)를 제어하는 메커니즘적 기능과, 응용 프로그램의 핵심인 비즈니스 로직을 완전히 분리하여 소프트웨어 개발 및 운영상의 효율성 증대와 함께 체계적인 지식축적성 실현
예전 프로그램의 본체가 소스코드였던 것과는 달리 BOS 기반하에서는 생성된 인터페이스 화면 자체가 프로그램의 본체라고 할 수 있다. 이것은 업무지식, 일 처리 노하우, 문서의 양식, 단계별 일 처리기능, 비즈니스 규칙, 상거래 관행, 워크플로우 흐름 순서와 담당자별 역할 등과 같은 비즈니스 프로세스나 액티비티 자체를 정교하게 표현하는, 일정한 형식과 구조를 갖는 ‘정보의 집합’이라고 할 수 있다.
BOS에 기반하에서 실제로 어떤 프로그램을 작동한다는 것은 이렇게 파일이나 레코드 형태로 저장 및 관리되고 있는 인터페이스 화면 중에서, 지금 사용자가 선택한 메뉴나 기능에 상응하는 화면 하나를 선택하여 띄우고 일반적인 프로그램 모듈처럼 작동하는 것을 의미한다. 이와 같이 BOS의 환경에서는 비즈니스용 소프트웨어를 생산하고 운영하는 기본적인 환경과 방식을 근본적으로 바꿈으로써 하드웨어나 각종 디바이스를 조작하고 제어하는 많은 기능들과, 비즈니스 프로세스 및 액티비티들을 정의하는 내용이 소스코드 내에 복잡하게 얽혀있어서 발생했던 기존 소프트웨어의 많은 문제들을 근원적으로 해결한 것이다.
요컨대 BOS는 하드웨어 및 각종 디바이스 등을 조작하고 제어하는 기능들을 모두 전문 운영체제 형태로 제공하여 더 이상 이런 기능을 구현하기 위해 엄청난 코딩작업을 할 필요가 없게 만들어 주었다. 뿐만 아니라 산업지식ㆍ노하우ㆍ비즈니스 프로세스는 그런 기능과 완전히 분리하여 체계적으로 생성 및 저장하고 필요한 시점에 바로 실행하게 해주는 거대한 ‘산업지식 및 프로세스 데이터베이스’를 구축할 수 있는 기술적 인프라를 제공하고 있는 것이다.
또한, 본 발명은 이렇게 개발자의 자질과 소프트웨어 개발작업의 능률구조를 근본적으로 바꾸어 놓음으로써, 개발자들을 보다 쉽게 양성하여 다양한 분야의 소프트웨어 제품들을 생산할 수 있도록 하는 기회를 제공하고 있다. 다시 말해 현재 대부분의 산업현장에서 직면하고 있는 극심한 소프트웨어 기근현상을 원천적으로 해결할 수 있게 하는 수단을 제공하고, 비즈니스용 소프트웨어 개발자에게 필요한 핵심역량을 구현기술이나 구현방법보다는 구현될 제품이 담고 있게 될 산업지식이나 비즈니스 프로세스 그 자체에 대한 지식과 경험으로 바꾸어 놓은 것이다. 결국, 본 발명은 소프트웨어 산업을 기술중심에서 지식중심으로 바꿀 수 있게 해주는 견고한 기술적 인프라를 제공하는 동시에 미래에 무한한 발전 가능성을 갖고 있는 소프트웨어 산업의 생산체제와 생산능률 구조에 일대 혁신을 일으킬 수 있을 것으로 기대하고 있다.
상술한 바와 같이, 본 발명에 따른 비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발시스템 및 그 개발방법의 실시예가 구성된다. 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
본 발명에 따른 비즈니스용 전문 운영체제에 기반하는 소프트웨어 개발시스템 및 그 개발방법은, 비즈니스용 소프트웨어의 개발을 더욱 빠르고 효율적으로 수행하는 동시에 프로그램에 문외한인 업무논리 실무자가 직접 소프트웨어를 개발할 수 있도록 지원함으로써 소프트웨어의 품질을 한 차원 높이는 효과가 있다.
또한, 업무에 정통하고 있는 담당 실무자가 GUI 인터페이스를 통하여 업무를 설계하는 과정이 곧 소프트웨어 개발과정과 직결되고, 대부분의 기능들이 BOS로 사전에 제공되거나, 자동으로 구현됨으로 소프트웨어의 개발속도가 극적으로 향상되고, 그 개발비용의 절감 효과가 있다.
또한, 하드웨어 및 운영체제를 제어하는 메커니즘적 기능과, 응용 프로그램의 핵심인 비즈니스 로직을 완전히 분리하여 소프트웨어 개발 및 운영상의 효율성 증대와 함께 체계적인 지식 축적성을 실현하는 효과가 있다.

Claims (11)

  1. 사용자가 GUI환경에서 비즈니스 표준 객체를 선택하고 정의하여 비즈니스 소프트웨어를 생성 및 실행하는 시스템에 있어서,
    프로그램을 구성하는 특정 기능이 정의되고, 사용자가 GUI 인터페이스를 통하여 선택하면 프로그램의 수행 기능을 정의할 수 있는 적어도 하나 이상의 비즈니스 표준 객체를 저장하는 비즈니스 객체 저장부;
    사용자로부터 개별 상기 객체의 세부유형, 작동방식, 수행조건, 수행순서 및 DB연결정보를 포함하는 속성정보를 설정받는 비즈니스 객체 작동속성 설정부;
    사용자가 설정한 상기 객체들의 상기 속성정보에 의하여 상기 비즈니스 객체 저장부에 있는 상기 객체를 동작시키고 제어하며, 스크립트 언어로 정의된 논리에 따라 비교, 분기, 연산 등을 수행하는 프로그램 실행부; 및
    컴퓨터의 운영체제와 CPU, 저장장치, 데이터베이스 관리시스템, 네트워크 및 디스플레이 기기를 포함하는 IT인프라 장치들을 제어하는 운영환경 연결부
    를 포함하는 비즈니스용 전문 운영체제(이하, BOS로 표기함)에 기반하여, 상기 BOS가 GUI 인터페이스 환경하에서 제공하는 비즈니스 표준 객체들의 기능을 그래픽 객체(아이콘, 메뉴, 도구) 형태로 선택 및 사용하도록 함으로써, 프로그램 지식이 없는 사용자도 업무수행 지식에 의거하여 프로그램의 수행 기능을 쉽게 설계 및 구현할 수 있는 것과, 상기 비즈니스 표준 객체들을 아무런 코딩작업 없이 조립하여 최종 실행 프로그램을 완성하는 것을, 특징으로 하는 비즈니스 소프트웨어 개발시스템.
  2. 삭제
  3. 삭제
  4. 제 1항에 있어서,
    상기 비즈니스 표준 객체는,
    사용자에 의하여 선택되어 조립될 경우, 상기 비즈니스 객체 작동속성 설정부에서 사용자가 설정한 상기 속성정보에 의하여 상기 프로그램 실행부가 실행파일(구조체 데이터)를 자동 생성하는 것으로 소프트웨어 개발작업을 완수함으로써, 코딩, 컴파일링 및 디버깅 등과 같은 단순 반복적인 프로그래밍 작업을 제거하는 것을 특징으로 하는 비즈니스 소프트웨어 개발시스템.
  5. 제 1항에 있어서,
    상기 BOS는,
    비즈니스 소프트웨어를 구성하는 구조를,
    하드웨어 장치 및 운영체제, 통신 프로토콜, DBMS 입출력을 포함하는 IT 인프라를 제어하는 메카니즘적 기능; 및
    일상적인 업무처리규칙이나 거래조건 및 상거래관행을 포함하는 비즈니스 로직 기능으로 분리하고,
    상기 메카니즘적 기능은 상기 BOS라는 형태로 모든 개발자 및 사용자들에게 사전에 제공되어, 어떠한 비즈니스 소프트웨어를 개발하더라도 다시 개발하지 않고 재사용하게 되고,
    상기 비즈니스 로직 기능은 어플리케이션 프로그램 모듈 단위별로, 파일 또는 DB 형태로 저장되어 상기 프로그램 실행부에 의하여 실행되는 것을 특징으로 하는 비즈니스 소프트웨어 개발시스템.
  6. 제 1항에 있어서,
    상기 운영환영 연결부가 직접 제어하고 입출력하는 상기 IT인프라 장치의 제품이 바뀌거나, 버전 또는 기능이 변경될 경우,
    상기 운영환경 연결부를 구성하는 객체들 중에서 변경된 상기 IT 인프라 장치에 대응하는 객체만을 변경된 환경에 맞게 수정함으로써,
    상기 BOS를 기반으로 구현된 모든 비즈니스 소프트웨어를 일시에 업그레이드 할 수 있는 것을 특징으로 하는 비즈니스 소프트웨어 개발시스템.
  7. 제 1항에 있어서,
    상기 BOS를 기반으로 개별 비즈니스 소프트웨어를 개발하였을 경우,
    그 프로그램 파일에는 프로그램을 구성하는 비즈니스 표준 객체의 본체(프로그램 소스 또는 실행체)를 포함하여 저장하지 않고, 상기 비즈니스 객체 작동속성 설정부에서 설정한 상기 속성정보만을 저장하고, 실제 프로그램이 실행될 때 상기 BOS 내부의 상기 비즈니스 표준 객체(실행체)를 참조하여 실행함으로써,
    동시에 다수의 프로그램 모듈들이 실행될 경우에도 유사한 프로그램 실행체나 루틴들이 메모리나 디스크에 중복적으로 로딩 또는 저장되는 비효율성을 방지하고, 분산처리 네트워크 환경에서 트래픽을 감소시킴으로써 전제 시스템의 속도 및 성능의 저하를 막을 수 있는 것을 특징으로 하는 비즈니스 소프트웨어 개발시스템.
  8. 사용자가 GUI환경에서 비즈니스 표준 객체를 선택하고 정의하여 비즈니스 소프트웨어를 생성 및 실행하는 방법에 있어서,
    (S1)새로 만들 프로그램의 사용자 인터페이스 화면을 선택받고 생성하는 단계;
    (S2)비즈니스 객체 저장부로부터 프로그램을 구성하는 적어도 하나 이상의 비즈니스 표준 객체를 선택하여 상기 화면에서의 크기 및 위치를 결정하는 단계;
    (S3)비즈니스 객체 작동속성 설정부로부터 개별 상기 객체의 세부유형, 작동방식, 수행조건, 수행순서 및 DB연결정보를 포함하는 속성정보를 설정받는 단계;
    (S4)상기 단계(S2) 및 단계(S3)에서 설정한 정보를 프로그램 실행부에서 해석할 수 있는 형태의 구조체 데이터로 변환하는 단계; 및
    (S5)상기 프로그램 실행부가 상기 구조체 데이터를 읽어들이고, 상기 단계(S2) 및 단계(S3)에서 설정한 정보에 맞도록 상기 객체가 상기 화면에서 사용자의 명령에 따라 작동할 수 있도록 하는 단계
    를 포함하는 비즈니스용 전문 운영체제(이하, BOS로 표기함)에 기반하여, 상기 BOS가 GUI 인터페이스 환경하에서 제공하는 비즈니스 표준 객체들의 기능을 그래픽 객체(아이콘, 메뉴, 도구) 형태로 선택 및 사용하도록 함으로써, 프로그램 지식이 없는 사용자도 업무수행 지식에 의거하여 프로그램의 수행 기능을 쉽게 설계 및 구현할 수 있는 것과, 상기 비즈니스 표준 객체들을 아무런 코딩작업 없이 조립하여 최종 실행 프로그램을 완성하는 것을, 특징으로 하는 비즈니스 소프트웨어 개발방법.
  9. 제 8항에 있어서,
    상기 단계(S2) 또는 단계(S3)는,
    사용자로부터 GUI 인터페이스를 통하여 구현하고자 하는 특정 기능을 정의한 상기 비즈니스 표준 객체를 상기 비즈니스 객체 저장부로부터 선택한 후, 상기 비즈니스 객체 작동속성 설정부로부터 프로그램의 수행 기능을 정의하는 단계인 것을 특징으로 하는 비즈니스 소프트웨어 개발방법.
  10. 제 8항에 있어서,
    상기 단계(S2) 또는 단계(S3)는,
    상기 비즈니스 표준 객체가 GUI 인터페이스 환경하에서의 그래픽 객체(아이콘, 메뉴, 도구)로 제공됨으로써, 프로그램 기술이 없는 사용자도 업무수행 지식에 의거하여 프로그램의 수행 기능을 정의할 수 있는 단계인 것을 특징으로 하는 비즈니스 소프트웨어 개발방법.
  11. 제 8항에 있어서,
    상기 단계(S4)는,
    사용자에 의하여 선택되어 조립될 경우, 상기 비즈니스 객체 작동속성 설정부에서 사용자가 설정한 상기 속성정보에 의하여 상기 프로그램 실행부가 실행파일(구조체 데이터)를 자동 생성함으로써, 코딩, 컴파일링 및 디버깅 등을 포함하는 전통적인 프로그램 개발작업 공정을 제거하는 것을 특징으로 하는 비즈니스 소프트웨어 개발방법.
KR1020060000075A 2006-01-02 2006-01-02 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법 KR100633478B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060000075A KR100633478B1 (ko) 2006-01-02 2006-01-02 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법
US11/649,589 US8176472B2 (en) 2006-01-02 2007-01-03 System and method for developing software based on business operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060000075A KR100633478B1 (ko) 2006-01-02 2006-01-02 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법

Publications (1)

Publication Number Publication Date
KR100633478B1 true KR100633478B1 (ko) 2006-10-16

Family

ID=37626116

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060000075A KR100633478B1 (ko) 2006-01-02 2006-01-02 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법

Country Status (2)

Country Link
US (1) US8176472B2 (ko)
KR (1) KR100633478B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009082382A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Automated model generation for computer based business process
WO2009082388A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Modelling computer based business process for customisation and delivery
US8904341B2 (en) 2007-04-30 2014-12-02 Hewlett-Packard Development Company, L.P. Deriving grounded model of business process suitable for automatic deployment
CN113419710A (zh) * 2021-06-25 2021-09-21 北京悟空出行科技有限公司 小程序的开发方法、装置、电子设备和介质

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679034A (zh) * 2002-04-08 2005-10-05 托普科德公司 用于对软件开发服务征求建议的系统以及方法
US7562340B2 (en) * 2006-03-23 2009-07-14 International Business Machines Corporation Method for graphically building business rule conditions
US8381170B2 (en) * 2006-12-01 2013-02-19 Siemens Corporation Test driven architecture enabled process for open collaboration in global
US20100262559A1 (en) * 2007-12-20 2010-10-14 Lawrence Wilcock Modelling Computer Based Business Process And Simulating Operation
WO2009082381A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Incorporating development tools in system for deploying computer based process on shared infrastructure
CN101946258B (zh) * 2007-12-20 2013-05-29 惠普开发有限公司 基于计算机的业务过程在专用硬件上的基于模型的部署
KR101470319B1 (ko) * 2008-02-15 2014-12-08 삼성전자주식회사 컴포넌트 모델 기반의 가상 소프트웨어 플랫폼을 생성하는방법, 이를 이용하여 소프트웨어 플랫폼 아키텍처를검증하는 방법 및 그 장치
US8312419B2 (en) * 2008-10-30 2012-11-13 Hewlett-Packard Development Company, L.P. Automated lifecycle management of a computer implemented service
US20100162143A1 (en) * 2008-12-22 2010-06-24 Moshe Ben Abou Systems and methods for business driven application development
US8438547B2 (en) * 2009-05-05 2013-05-07 Freescale Semiconductor, Inc. Address translation trace message generation for debug
US8589738B2 (en) * 2009-05-05 2013-11-19 Freescale Semiconductor, Inc. Program trace message generation for page crossing events for debug
CN101593111B (zh) * 2009-05-31 2012-10-03 大连新中连软件集团有限公司 一种业务组件及基于业务组件的应用软件开发方法和系统
US10049335B1 (en) * 2009-10-06 2018-08-14 EMC IP Holding Company LLC Infrastructure correlation engine and related methods
US8880682B2 (en) * 2009-10-06 2014-11-04 Emc Corporation Integrated forensics platform for analyzing IT resources consumed to derive operational and architectural recommendations
US9031993B2 (en) * 2009-10-06 2015-05-12 Emc Corporation Customizable library for information technology design and management using expert knowledge base
US9430195B1 (en) 2010-04-16 2016-08-30 Emc Corporation Dynamic server graphics
US9383973B2 (en) * 2011-06-29 2016-07-05 Microsoft Technology Licensing, Llc Code suggestions
US8959477B2 (en) * 2011-10-21 2015-02-17 Sap Se Scripting language for business applications
CA2881597C (en) 2012-08-09 2017-06-06 Steven L. BUTH Multi-application workflow integration
US10382275B1 (en) * 2012-10-22 2019-08-13 Amazon Technologies, Inc. Automated infrastructure configuration
US9400637B1 (en) 2013-03-13 2016-07-26 Ca, Inc. Solution modeling and analysis toolset for enterprise software architecture
US9244655B1 (en) 2013-03-13 2016-01-26 Ca, Inc. Solution modeling and analysis toolset for enterprise software architecture and skeleton architecture
US9189203B1 (en) * 2013-03-13 2015-11-17 Ca, Inc. Solution modeling and analysis toolset for enterprise software architecture and architecture roadmaps
US10275221B2 (en) * 2015-03-06 2019-04-30 Cisco Technology, Inc. Systems and methods for generating data visualization applications
US20190196945A1 (en) * 2017-12-21 2019-06-27 Sap Se Entity performance and usability analysis framework
CN109491646B (zh) * 2018-10-18 2022-08-05 北京字节跳动网络技术有限公司 一种消息录入方法、装置、电子设备及可读介质
CN110321131B (zh) * 2019-07-05 2022-11-08 北京百佑科技有限公司 业务组件打包方法、系统及服务器
CN111865726B (zh) * 2020-07-29 2022-03-08 中国工商银行股份有限公司 业务消息测试方法、装置、计算机系统和存储介质
CN112800741A (zh) * 2021-01-29 2021-05-14 远光软件股份有限公司 任务执行方法、电子设备及存储介质
CN113326038B (zh) * 2021-06-11 2023-11-10 北京百度网讯科技有限公司 用于提供服务的方法、装置、设备、存储介质及程序产品
CN113837715A (zh) * 2021-08-23 2021-12-24 益阳市和天电子有限公司 一种电容生产平台在线协作系统
CN116991364B (zh) * 2023-05-08 2024-06-07 丁璐 基于大数据的软件开发系统管理方法
CN116301760B (zh) * 2023-05-22 2023-09-05 深圳市长亮科技股份有限公司 用于软件开发的应用设计系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040230559A1 (en) * 1999-08-09 2004-11-18 Mark Newman Information processing device and information processing method
US20060229888A1 (en) * 2005-03-31 2006-10-12 Renzo Colle Defining transaction processing for a computer application

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ProcessQ 사용자 메뉴얼(2004.06.07) *
교육자료 다운로드 게시판의 게시물 목록과 게시일자(2006.4.12) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904341B2 (en) 2007-04-30 2014-12-02 Hewlett-Packard Development Company, L.P. Deriving grounded model of business process suitable for automatic deployment
WO2009082382A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Automated model generation for computer based business process
WO2009082388A1 (en) * 2007-12-20 2009-07-02 Hewlett-Packard Development Company, L.P. Modelling computer based business process for customisation and delivery
CN113419710A (zh) * 2021-06-25 2021-09-21 北京悟空出行科技有限公司 小程序的开发方法、装置、电子设备和介质
CN113419710B (zh) * 2021-06-25 2024-03-15 北京悟空出行科技有限公司 小程序的开发方法、装置、电子设备和介质

Also Published As

Publication number Publication date
US8176472B2 (en) 2012-05-08
US20070157165A1 (en) 2007-07-05

Similar Documents

Publication Publication Date Title
KR100633478B1 (ko) 비즈니스용 전문 운영체제에 기반하는 소프트웨어개발시스템 및 그 개발방법
Paige et al. Rigorous identification and encoding of trace-links in model-driven engineering
Padgham et al. The Prometheus design tool–a conference management system case study
US20100064275A1 (en) Extracting platform independent models from composite applications
Choi et al. Modeling and simulating software acquisition process architectures
Schlenoff et al. Process specification language (psl): Results of the first pilot implementation
Lampathaki et al. Business Process Modelling
CN114168121B (zh) 一种基于代码工厂模式开发软件系统、终端和存储介质
Fuhrmann et al. Automatic layout and structure-based editing of UML diagrams
Gould Systems analysis and design
González et al. Message Structures: a Modelling Technique for Information Systems Analysis and Design.
Khadapi Implementation Of The Spiral Method For Analyzing And Designing Financial Information Systems And Financial Archives For Cashier Financial Management Section (Cash Information Replacement)
Beznosov Information enterprise architectures: problems and perspectives
Niño-Martínez et al. A microservice deployment guide
Özgür Comparison of Microsoft DSL Tools and Eclipse Modeling Frameworks for Domain-Specific Modeling in the context of Model-Driven Development
Kucherov et al. The integrated life cycle model of configurable information system
Rinker et al. Towards efficient generation of a multi-domain engineering graph with common concepts
Werner et al. Memphis: A reuse based OO software development environment
Al-Sabri et al. Process-Oriented Requirements Engineering: User-Centric LORS Framework
Alhaag Abdyssalam Model-Driven Software Architecture for the Management of Educational Resources Metadata
Baumgartner Domain-Driven Design Refactoring Tool
Vinod D'Souza Auto-generation of rich Internet applications from visual mock-ups
Vesić et al. Model-Driven Approach to The Implementation of Web Service Interfaces For 4GL System
Siegers 3.3. 2 The ABCs of AFs: Understanding Architecture Frameworks
JANTRIT BUSINESS PROCESS MANAGEMENT IN ACADEMIC AFFAIRS FOR DIGITAL TRANSFORMATION

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
FPAY Annual fee payment

Payment date: 20120928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131101

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141010

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee