KR20090099977A - 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 - Google Patents

예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 Download PDF

Info

Publication number
KR20090099977A
KR20090099977A KR1020080025300A KR20080025300A KR20090099977A KR 20090099977 A KR20090099977 A KR 20090099977A KR 1020080025300 A KR1020080025300 A KR 1020080025300A KR 20080025300 A KR20080025300 A KR 20080025300A KR 20090099977 A KR20090099977 A KR 20090099977A
Authority
KR
South Korea
Prior art keywords
rcc
repository
design information
program
software development
Prior art date
Application number
KR1020080025300A
Other languages
English (en)
Other versions
KR100994070B1 (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 KR1020080025300A priority Critical patent/KR100994070B1/ko
Priority to US12/933,681 priority patent/US20110023010A1/en
Priority to PCT/KR2009/001239 priority patent/WO2009116748A2/ko
Priority to JP2011500695A priority patent/JP2011515755A/ja
Publication of KR20090099977A publication Critical patent/KR20090099977A/ko
Application granted granted Critical
Publication of KR100994070B1 publication Critical patent/KR100994070B1/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • 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

Abstract

본 발명은 예약된 컴포넌트 컨테이너(Reserved Component Container : 이하 RCC라 함)를 이용한 소프트웨어 개발 및 장치에 관한 것으로,
RCC 기반 소프트웨어 개발방법은 설계단계, 레포지토리 단계, 레포지토리 정보 추출 단계, 프로그램 생성 단계, 테스트 단계로 구성되고, RCC 기반 소프트웨어 개발 장치는 RCC 모델러에서 사용되는 RCC를 저장하고 있는 RCC 웨어하우스(201); 개발자가 설계정보를 작성하는 RCC 모델러(202); 개발자의 작성한 설계정보를 바탕으로 언어 사전부를 참조하여 프로그램소스와 수행가능한 프로그램을 자동 생성하는 RCC 프로그램 생성기(203); 수행가능한 프로그램의 실행을 통하여 개발자의 요구사항이 제대로 반영되었는지를 확인하는 기능(사용자 작성 시험 시나리오 적용, 생성된 로그의 저장 및 편집 등의 시험 기능을 제공)을 수행하는 RCC 모델러 테스트기(204); 설계정보를 레포지토리에 저장, 변경, 삭제 및 추출하는 기능을 수행하는 RCC 모델러 관리기(205); 최종 설계 정보를 개발자가 지정한 컴퓨터 언어로 프로그램 소스를 생성하기 위해 참조되는 언어 사전부(Language Dictionary)(206); RCC 프로그램 생성기에 의해 생산된 프로그램 소스 및 실행가능한 프로그램(207); RCC 모델러 관리기와 레포지토리를 연결시켜 주는 레포지토리 인터페이스부(209)로 구성된다.
RCC 기반 소프트웨어 개발방법 및 장치는 소프트웨어 개발에 있어서 컴퓨터를 활용하기 위한 구현설계 단계에서 개발자의 요구사항이 설계에 제대로 반영되었 는지를 RCC 순차 다이어그램을 활용하여 직접 실행하여 간단하게 확인할 수 있고, 자동 생성된 프로그램은 별도로 수정 및 개작을 할 필요가 없으므로, 이에 따라 소프트웨어 개발에 있어서 품질의 향상, 개발 기간의 획기적 단축 및 개발 비용의 극적인 절감 효과가 있다.
예약된 컴포넌트 컨테이너, Reserved Component Container, OMG, UML

Description

예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치 {A Reserved Component Container Based Software Development Method and Apparatus}
본 발명은 예약된 컴포넌트 컨테이너(Reserved Component Container : 이하 RCC라 함)를 이용한 소프트웨어 개발 및 장치에 관한 것이다.
소프트웨어 개발 방법론은 목적 시스템을 모델링하는 패러다임에 따라 구조적 개발 방법론과 객체 지향적 개발 방법론으로 나뉘며, OMG에 의해 객체지향 모델링 언어 표준으로 채택된 UML은 객체지향 모델링 언어로 널리 사용되고 있다.
UML을 기반으로 한 CASE TOOL로 대표적인 것으로 IBM사의 RSA(Rational Software Architect)와 델파이사의 Together가 있으며, 그외에도 많은 도구들이 시판되고 있으나, 이론의 복잡성과 작성해야 하는 설계서(다이어그램의 종류)가 많아 전문 기술자가 아니면 사용하기가 어렵다는 단점과 도구에서 제공하는 코드 생성기능 또한 프로그램의 기본 구조 정도만을 자동 생성해 주는 정도로 개발자(프로그래머, 사용자, 설계자)가 기본 생성된 코드 부분을 다시 이해하고 UML로 설계된 내용 을 참조하여 프로그램을 제작하여 완성해야 하는 문제점이 있다.
산업계에서는 대규모의 소프트웨어 개발 프로젝트가 지속적으로 증가하고 있으며, 기업에서는 기존 시스템에 대한 소프트웨어 유지보수 양 또한 증가하고 있으며, 개발자(프로그래머, 설계자, 사용자)의 인력 부족 현상과 전문성을 갖춘 인력으로 육성하는데 문제점이 나타나고 있으며, 이러한 현상에 현재까지의 객체지향 모델링 방법론인 UML과 이것을 기반으로 한 CASE TOOL로는 Business 환경에서 증가하는 소프트웨어 개발과 유지보수의 양에 대응하는데 한계성을 드러내고 있다.
객체지향 이론을 따르고 있는 본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로서,
소프트웨어 개발시에 개발자의 다양한 요구사항을 반영한 RCC를 기반으로 RCC 순차 다이어그램(이하 '설계 정보'라 한다.) 작성을 통해 소프트웨어 개발을 가능하게 하여 직접적인 프로그램 코딩이 아닌 보다 용이한 소프트웨어 개발 방식을 지원하고,
개발자가 작성한 시험 시나리오를 통하여 최종 생산된 소프트웨어 검증을 용이하게 할 수 있는 디버거(시험, 테스트) 기능을 제공하며,
개발자가 작성한 설계 정보뿐만 아니라 레포지토리에 저장된 기존 또는 공동개발자가 생산한 설계 정보를 참조하여 최종 소프트웨어를 제작하도록 하여 설계 정보의 공유 및 재사용성을 통해 제작기간을 단축하고,
네트워킹에 의한 설계정보 관리 및 최종소프트웨어 제작을 가능하게 하여 대형 응용시스템을 개발을 용이하게 할 수 있는 RCC 기반 소프트웨어 개발 방법 및 장치를 제공하고자 한다.
그리고 소프트웨어 유지보수시에 기업 정보시스템의 Backlog를 해소하고, 최종 소프트웨어 소스에 대한 직접적인 수정 없이 레포지토리에 저장된 설계 정보의 수정에 의해 단기간에 개발자의 다양한 요구사항을 만족시킬 수 있는 RCC 기반 소프트웨어 개발 방법 및 장치를 제공하고자 한다.
상기 목적을 달성하기 위하여 본 발명에 따른 RCC 기반 소프트웨어 개발방법은 설계단계, 레포지토리 단계, 레포지토리 정보 추출 단계, 프로그램 생성 단계, 테스트 단계로 구성된다.
개발자가 RCC 웨어하우스에 저장된 RCC와 기존에 작성되어 레포지토리에 저장된 설계정보를 이용하여 설계정보를 생성하는 설계 단계;
설계 단계에서 생성된 설계정보를 레포지토리로 저장 및 변경하는 레포지토리 단계;
목적하는 프로그램을 생산하기 위해 레포지토리에서 관련된 설계 정보를 불러오는 레포지토리 정보 추출 단계;
설계 단계 또는 레포지토리 정보 추출 단계를 통한 설계 정보를 언어 사전(설계 정보를 프로그램으로 변환 및 생성시 참조되는 컴퓨터 프로그래밍 언어별 언어 사전)을 참조하여 프로그램을 생성하는 프로그램 생성 단계;
개발자의 요구사항이 제대로 반영되어 동작을 하는지 확인하기 위하여 프로그램 생성 단계에서 생성된 프로그램을 수행하고 그 결과를 편집 및 확인하는 테스트 단계;를 포함하는 것을 특징으로 한다.
또한, 상기 목적을 달성하기 위하여 본 발명에 따른 RCC 기반 소프트웨어 개발 장치는
RCC 모델러에서 사용되는 RCC를 저장하고 있는 RCC 웨어하우스;
개발자가 설계정보를 작성하는 RCC 모델러;
개발자의 작성한 설계정보를 바탕으로 언어 사전부를 참조하여 프로그램소스와 수행가능한 프로그램을 자동 생성하는 RCC 프로그램 생성기;
수행가능한 프로그램의 실행을 통하여 개발자의 요구사항이 제대로 반영되었는지를 확인하는 기능(사용자 작성 시험 시나리오 적용, 생성된 로그의 저장 및 편집 등의 시험 기능을 제공)을 수행하는 RCC 모델러 테스트기;
설계정보를 레포지토리에 저장, 변경, 삭제 및 추출하는 기능을 수행하는 RCC 모델러 관리기;
최종 설계 정보를 개발자가 지정한 컴퓨터 언어로 프로그램 소스를 생성하기 위해 참조되는 언어 사전부(Language Dictionary);
RCC 프로그램 생성기에 의해 생산된 프로그램 소스 및 실행가능한 프로그램;
RCC 모델러 관리기와 레포지토리를 연결시켜 주는 레포지토리 인터페이스부;
및 설계정보가 저장된 레포지토리;를 포함하는 것을 특징으로 한다.
본 발명은 소프트웨어 개발에 있어서 개발자들에게 친숙한 GUI 환경을 통하여 RCC 순차 다이어그램의 설계만으로 목적하는 소프트웨어를 생산할 수 있으므로 개발기간의 단축과 비용 절감 효과가 있다.
개발자가 작성한 설계 정보를 RCC 모델러 테스트기를 이용하여 즉시 검증을 할 수 있으므로 단위 기능 시험이 용이하다. 이러한 단위별 검증된 설계 정보를 바탕으로 생산된 목적하는 설계 정보들의 통합에 의해 생산된 목적 소프트웨어의 시험 및 보완기간의 단축의 효과가 있다.
개발자가 작성한 설계 정보는 소프트웨어 소스가 아님으로 작성된 설계정보를 다른 사용자(소프트웨어 제작 의뢰자, 상위 개발자, 동료 개발자)와의 개발회의시나, 사용자 요구 확인사항 등의 의사소통의 자료로 활용할 수 있는 효과가 있다.
지속적으로 증가하는 기업의 정보시스템 소프트웨어 유지보수에 대하여도 각 기업의 정보시스템에 산적해 있는 Backlog를 해소할 수 있는 효과가 있다.
기능 추가/변경 시 RCC 모델러에 의해 설계된 RCC 순차 다이어그램 정보를 레포지토리에서 참조하여 추가/변경 대상이 되는 부분을 추출하고, 추가/변경의 범위와 확인 테스트 해야 하는 범위를 추출할 수 있기 때문에 유지 보수의 범위와 소 요기간 산출이 용이하다.
생산된 설계 정보를 재사용할 수 있을 뿐만 아니라, 복수의 개발자의 결과물을 통합하여 대형 응용시스템의 제작이 용이하다.
이하 첨부된 도면을 참조하여 본 발명의 실시 예를 상세히 설명한다.
도 1은 하나 이상의 RCC 기반 소프트웨어 개발 장치가 결합된 개발 시스템의 구성도이다.
도 1은 RCC 기반 소프트웨어 개발장치(이하 'RCC 개발장치'라 한다.)를 이용하여 설계 정보를 공유하고 이용하여 목적하는 소프트웨어를 작성하는 관계를 나타낸다. RCC 개발장치에서 생산된 설계정보는 참여하는 개발자들이 공통으로 접근이 가능한 공통영역(Public Area)과 각 개발자별로 접근이 가능한 개별영역(Private Area)으로 저장된다. 이때 개별영역에 대한 접근 권한은 생산 개발자 뿐만 아니라, 지정된 개발자도 가능하다. 그리고 생산된 설계정보의 버전관리를 위해 공통영역 및 개별영역에 개발자의 접근이 제한될 수 있다. 공통영역을 통하여 공유된 설계정보는 생산 개발자외의 다른 개발자가 이용할 수 있으므로 설계정보의 재사용성을 높힐 수 있고, 각 영역별 접근 제한은 생산물의 버전관리를 가능하게 한다. 따라서, 이러한 공통영역 및 개별영역을 통한 RCC 개발장치의 네트워킹은 대형 소프트웨어 제작을 보다 용이하게 처리할 수 있는 개발환경을 지원할 수 있다.
도 2는 RCC 기반 소프트웨어 개발장치 구성도이다.
RCC 기반 소프트웨어 개발 장치는 RCC 모델러에서 사용되는 RCC를 저장하고 있는 RCC 웨어하우스(201); 개발자가 설계정보를 작성하는 RCC 모델러(202); 개발자가 작성한 설계정보를 바탕으로 언어 사전부를 참조하여 프로그램소스와 수행가능한 프로그램을 자동 생성하는 RCC 프로그램 생성기(203); 수행가능한 프로그램의 실행을 통하여 개발자의 요구사항이 제대로 반영되었는지를 확인하는 기능(사용자 작성 시험 시나리오 적용, 생성된 로그의 저장 및 편집 등의 시험 기능을 제공)을 수행하는 RCC 모델러 테스트기(204); 설계정보를 레포지토리에 저장, 변경, 삭제 및 추출하는 기능을 수행하는 RCC 모델러 관리기(205); 최종 설계 정보를 개발자가 지정한 컴퓨터 언어로 프로그램 소스를 생성하기 위해 참조되는 언어 사전부(Language Dictionary)(206); RCC 프로그램 생성기에 의해 생산된 프로그램 소스 및 실행가능한 프로그램(207); 및 RCC 모델러 관리기와 레포지토리를 연결시켜 주는 레포지토리 인터페이스부(209);를 포함한다. 그리고, 설계정보가 저장된 레포지토리(210);는 RCC 개발장치의 외부에 설치되어 운용될 수 있으므로 단독으로 사용되는 RCC 개발장치와 함께 설치되어 운용되며, 복수의 RCC 개발장치가 사용될 때에는 기본적인 RCC 개발장치에 포함되지 않는다.
레포지토리는 단일 레포지토리로 구성되기도 하고, 계층구조로 구성될 수도 있다. 계층구조로 구성된 경우를 설명하면, RCC 개발장치에 제 1 레포지토리를 설치운영하고, 제 2 레포지토리를 RCC 개발장치 외부에 설치운영할 수 있다. 즉, 제 2 레포지토리는 복수의 제 1 레포지토리의 개별영역과 공통영역에 저장된 설계 정 보를 포함하며 복수의 제 1 레포지토리의 설계 정보의 제 2 레포지토리의 복사는 접근이 허용된 개발자에 수행된다. 이때 제 1 레포지토리에 저장된 설계 정보를 복사하는 시점은 수동 또는 접근이 허용된 개발자가 지정된 방법에 의해 시행된다. 이와 동일한 방법으로 제 3 레포지토리의 구성도 가능하며, 몇 계층의 레포지토리를 구성할 것인가는 목적하는 소프트웨어 개발조직의 방법 및 구조에 의해 결정할 수 있다.
RCC 웨어하우스와 언어사전부는 사전에 작성되어 제공되는 구성요소로 RCC 웨어하우스는 도 3에서 도시한 바와 같은 구조를 가진 RCC들의 창고이고, 언어사전부는 RCC 모델러에 의해 작성된 RCC 순차 다이어그램 설계정보를 프로그램 및 실행가능한 프로그램으로 변환 처리하기 위한 컴퓨터언어별 참조 사전이다.
RCC 모델러는 개발자로 하여금 개발의도를 반영하여 설계정보를 제작하는 기능을 제공한다. 이때 RCC 모델러에서 작성되는 설계 정보는 RCC 순차 다이어그램 뿐만 아니라 작성된 RCC 순차 다이어그램을 시험할 수 있는 시험 시나리오 정보를 포함한다. 시험 시나리오 정보는 시험을 위해 필요한 수행중 필요한 조건별 입력값 및 입력시기 등에 대한 사항을 포함하고 있으며, 시험 도중에 검증을 위해 확인해야하는 중간값과 설계정보에서 생산되어 외부로 전달되는 출력값 등이 지정되어 있다. 시험 시나리오 정보는 상술한 것은 하나의 일례로써 상술한 사항에 국한되지 않고, 일반적인 시나리오에 의한 시험방법에서 필요한 정보를 포함할 수 있다.
RCC 프로그램 생성기는 RCC 모델러에 의해 생산된 설계정보를 바탕으로 언어사전부에 제공된 변환규칙을 참조하여 프로그램 소스 및 실행가능한 프로그램(프로 그램 실행화일)을 생성하는 기능을 수행한다.
RCC 모델러 시험기는 RCC 프로그램 생성기를 통하여 생성된 프로그램 소스 및 실행가능한 프로그램을 바탕으로 개발자에게 시험기능을 제공하는 것으로 구체적으로 시험 시나리오 편집기능(RCC 모델러에서 시험시나리오 작성이 가능하고, RCC 모델러 시험기에서도 제공한다), 테스트 시나리오에 의한 실행기능, 실행결과 분석 및 편집기능, 단위기능 테스트기능 등 지능화된 디버거 기능을 제공한다.
레포지토리 인터페이스는 RCC 모델러와 레포지토리를 연결해 주는 인터페이스로 RCC 모델러에서 설계한 정보를 생성 및 변경을 위한 정합기능을 제공한다.
도3은 RCC 내부 구조도이다 .
일반적으로 소프트웨어 개발시에는 Business Application의 서비스 구성을 대체로 3 계층 구조의 서비스 모델로 작성하여 서비스를 하고 있으며, 3 계층 구조의 서비스 모델은 사용자 인터페이스(주로 화면), Business Logic 및 데이터 처리로 구성된다. 이 중에서 개발하는데 있어서의 난이도나 복잡성 등이 나타나고 있는 부분이 Business Logic과 데이터 처리 부분이다. Business Application에서 처리하는 Logic 구성을 살펴보면, Data의 참조/생성 처리, Data의 가공 및 생성, 삭제처리, Logic 흐름 제어 처리, 연산처리, 처리 결과 편집 처리 등으로 구분될 수 있다.
RCC는 이러한 사항을 반영하여 개발자가 소프트웨어 개발을 용이하게 할 수 있도록 한 것으로 RCC Type(310), RCC ID(320), RCC Method(330), RCC Class(340), RCC Link Pointer(360)으로 구성된다.
RCC Type은 각 RCC들이 해야 하는 행위의 틀의 특성을 구분하여 정의하기 위한 것이다. 이 RCC Type은 설계자가 하나의 Business Application Logic 설계를 위하여 선택하면 하나의 Business Application Logic에 종속되는 RCC Type으로 구성된다.
RCC ID는 설계자가 Business Application Logic을 설계하기 위하여 필요한 RCC를 선택하여 전체 흐름을 설계할 때 자동으로 RCC에 대한 RCC ID가 부여된다. 부여된 RCC ID는 설계자가 변경할 수도 있다. 또한, 이 RCC ID는 각 RCC에서 지정된 Method를 처리한 후 결과 항목(Data Value)에 대한 공유를 위한 참조 인터페이스 역할을 수행하게 되며, 프로그램 생성시 구분자로 사용되게 된다.
RCC Method는 RCC Type에 따라 기본적으로 정의된 행위의 틀에 RCC가 해야 하는 구체적인 행위를 정의하는 곳이다. 예를 들면, Data 참조/생성 RCC의 경우, RCC Type은 Data참조/생성이고, 기본적인 RCC Type의 틀은 Data를 참조하거나 참조하여 Data를 생성하는 처리를 하는 RCC로써, RCC Method에는 Data 생성/참조에 필요한 Database 처리문인 SQL문 혹은 File 처리문을 정의한다.
RCC 클래스는 RCC Data Type(341), 항목(항목1, 항목2, 항목3,... 항목n)(342), Method(351, 352, ... 35n)로 구성된다.
RCC Data Type은 RCC Data의 Type을 의미하며, 각 항목은 각 Method에 종속된다. 즉, Method1은 항목 1에 종속된다(Method1의 처리 결과 값이 항목1로 저장된 다.) 항목과 Method는 n개 존재하며 각각 1 대 1 대응 관계를 가지고 있다. 항목은 대응되는 Method에서 사용되는 SQL문의 항목과 Business Application Logic 처리를 위한 변수항목 및 임시적으로 사용되는 항목으로 구분된다. Method의 SQL문에서 사용하는 항목은 Table 정의 시 정의되어 있는 항목으로 항목의 속성(Data Type과 길이 등)은 Database의 Table정의 시의 항목 속성에 따르며, 별도로 정의할 필요는 없다. 변수로 사용하는 항목은 다시 Business Application Logic에서 Data의 가공을 하기 위한 항목과 조건에서 사용되어지는 항목으로 나뉜다. 끝으로 임시적으로 사용하는 항목이 있으며, 모든 항목은 속성 (Data Type과 길이 등)을 정의하여 두고, Data의 가공인 경우 가공에 필요한 Method를 정의하고, 조건에 사용되어 지는 항목 또한 필요한 Method를 정의하면 된다. 이와 같이 항목과 Method는 하나의 RCC내에 각각 대응으로 n개가 존재하며, 이에 대한 정의는 Business Application Logic에 따라 설계자가 정의하면 된다. RCC 클래스는 실제 컴퓨터에서 실행될 때는 인스턴스화하여 실행된다. 도3에서는 m개 인스턴스를 포함하는 RCC instance(380)을 나타낸 것이다. 즉, RCC 인스턴스(380)는 RCC클래스의 인스턴스로 RCC Method에서 각각의 항목에 종속된 각각의 Method를 호출하여 처리 결과 값을 각각의 항목필드에 저장하는 관계도이다.
RCC Link Pointer는 다음에 수행해야할 RCC를 가르키는 것으로 다음의 RCC를 결정하기 위한 Method(361) 1개와 Method의 실행 결과값(362) 및 현재의 RCC 실행 후 실행 결과값에 의해 다음으로 처리해야 하는 n개의 RCC ID로 구성된다. 설계자가 하나의 Business Application Logic 내에서 RCC간의 흐름을 표시하는 화살표(- >)를 사용하여 RCC간을 연결하는 경우 Next Flow의 Default RCC ID(RCC ID 1)(371)에는 자신의 실행 후 다음으로 실행해야 할 RCC ID가 자동으로 설정된다. 이후 각 RCC에 대한 상세한 설계 시 다음으로 실행해야 할 RCC가 복수 개 존재하는 경우 분기 조건에 해당하는 행위를 Method에 정의하고, Method의 실행 결과 항목(결과 값)을 항목에 정의한다. 이후 결과 값에 따라 분기 해야 하는 RCC ID를 순차적으로 정의하면 된다.
Business Application의 최초의 RCC는 시작 RCC이며, 이는 설계자가 지정하는 것이 아니고, 자동으로 설정되는 RCC이다. 하나의 Business Application Logic 내에 정의된 각 RCC의 RCC Data Type의 항목에 대한 처리 결과 값(항목에 저장됨)은 Business Application Logic 내에서 공유가 가능하며, 공유 방식은 RCC ID를 인터페이스로 하여 실현한다. 또한, 공통으로 사용되는 Business Application Logic의 경우는 Business Application Logic을 공통으로 정의하여 각각 다른 Business Application Logic에서 실행 및 참조 가능하도록 설계할 수도 있다. 설계자는 Business Application의 처리 순서를 설계하기 위하여 RCC Warehouse에 있는 RCC들을 선택하여 Business Application의 전체 흐름을 설계하고, 선택된 각 RCC에는 각 RCC들이 처리해야 하는 구체적인 Business Application Logic을 이 틀 내에서 설계하기 위하여 RCC의 행위는 RCC Method로 정의하고, Property는 항목(Data)으로 정의한다. 이때, RCC Method는 각 RCC의 기본 행위 정의로 되어 있는 틀 안에서 구체적인 행위를 정의하며, 항목(Data)은 항목의 정의 뿐 아니라, 항목 자체가 가질 수 있는 행위를 정의할 수 있도록 별도의 항목에 대한 Method를 정의할 수 있도록 하여 Business Application Logic을 설계할 수 있도록 하였다.
도 4는 RCC 웨어하우스의 RCC Type 실시예이다 .
도 4에서 보는 바와 같이 RCC 웨어하우스의 일례(RCC 타입만을 정의하였으며, 구체적인 내부구성은 포함하지 않음)는 계산/가공, 분기/반복, 시작, Data 참조/생성, 추가/변경, 출력, 공통 항목 Merge, Rollback, 흐름표시 및 외부자원 인터페이스를 하는 RCC 구조를 가지는 RCC들로 구성되어 있다. RCC Type이 출력인 RCC는 Business Application Logic 설계 시 처리 결과를 개발자가 볼 수 있도록 출력 편집하는 처리와, Business Application Logic에서 공통적으로 사용하는 기능을 설계하여 처리 결과를 공유하도록 하는 출력 편집 처리가 복합적으로 제공되는 기능을 가지고 있는 대표적인 RCC이다. 이와 같이 RCC는 컴퓨터 환경의 변화에 따라 추가/변경이 될 수 있으며, RCC Warehouse에 있는 RCC를 이용하여 Business Application Logic을 설계할 수 있도록 하는 기능을 제공한다.
도 5는 RCC 기반 소프트웨어 개발 방법 순서도이다 .
RCC 기반 소프트웨어 개발 방법은 설계단계, 레포지토리 단계, 레포지토리 정보 추출 단계, 프로그램 생성 단계, 테스트 단계로 구성된다.
설계 단계는 개발자가 RCC 웨어하우스에 저장된 RCC와 기존에 작성되어 레포지토리에 저장된 설계정보를 이용하여 설계정보를 생성하는 설계 단계이다.
레포지토리 단계는 설계 단계에서 생성된 설계정보를 레포지토리로 저장 및 변경하는 레포지토리 단계이다.
레포지토리 정보 추출단계는 목적하는 프로그램을 생산하기 위해 레포지토리에서 관련된 설계 정보를 불러오는 레포지토리 정보 추출 단계;
프로그램 생성 단계는 설계 단계 또는 레포지토리 정보 추출 단계를 통한 설계 정보를 언어 사전(설계 정보를 프로그램으로 변환 및 생성시 참조되는 컴퓨터 프로그래밍 언어별 언어 사전)을 참조하여 프로그램을 생성하는 프로그램 생성 단계;
테스트 단계는 개발자의 요구사항이 제대로 반영되어 동작을 하는지 확인하기 위하여 프로그램 생성 단계에서 생성된 프로그램을 수행하고 그 결과를 분석/편집 및 확인하는 테스 트 단계이다.
도 1은 하나 이상의 RCC 기반 소프트웨어 개발 장치가 결합된 구성도이다.
도 2는 RCC 기반 소프트웨어 개발장치 구성도이다.
도 3은 RCC 내부 구조도와 RCC 데이터 타입과 항목필드의 실시예이다.
도 4는 RCC 웨어하우스 내부구성 실시예이다.
도 5는 RCC 기반 소프트웨어 개발 방법의 순서도이다.

Claims (9)

  1. 예약된 컴포넌트 컨테이너(RCC) 기반 소프트웨어 개발 장치에 있어서,
    RCC Type, RCC ID, RCC Method, RCC 클래스 및 RCC Link Pointer로 구성된 RCC를 저장하고 있는 RCC 웨어하우스;
    개발자가 RCC 웨어하우스에 저장된 RCC를 이용하여 설계정보를 작성하는 RCC 모델러;
    개발자의 작성한 설계정보를 바탕으로 언어 사전부를 참조하여 프로그램소스와 수행가능한 프로그램을 자동 생성하는 RCC 프로그램 생성기;
    설계정보를 레포지토리에 저장, 변경, 삭제 및 추출하는 기능을 수행하는 RCC 모델러 관리기;
    최종 설계 정보를 개발자가 지정한 컴퓨터 언어로 프로그램 소스를 생성하기 위해 참조되는 언어 사전부(Language Dictionary); 및
    RCC 모델러 관리기와 레포지토리를 연결시켜 주는 레포지토리 인터페이스부;를 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치.
  2. 제 1 항에 있어서,
    상기 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치는 설계정보가 저장된 레포지토리를 더 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기 반 소프트웨어 개발 장치.
  3. 제 2 항에 있어서,
    상기 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치는 수행가능한 프로그램의 실행을 통하여 개발자의 요구사항이 제대로 반영되었는지를 확인하는 기능(사용자 작성 시험 시나리오 적용, 생성된 로그의 저장 및 편집 등의 시험 기능을 제공)을 수행하는 RCC 모델러 테스트기를 더 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치.
  4. 제 1 항 내지 제 3항의 어느 한 항에 있어서,
    RCC 클래스는 RCC Data Type, 하나 이상의 항목, 하나 이상의 제 1 Method를 포함하고,
    RCC Link Pointer는 다음에 수행해야할 RCC를 가르키는 것으로 다음의 RCC를 결정하기 위한 제 2 Method와 제 2 Method의 실행 결과값 및 RCC 실행 후 다음으로 처리해야 하는 하나 이상의 RCC ID를 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치.
  5. 제 4 항에 있어서,
    상기 레포지토리는 계층구조로 되어 있고, 제 1 계층 레포지토리는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치에 포함되고, 제 2 계층 레포지토리 는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치의 외부에 위치하며, 제 2 계층 레포지토리는 제 1 계층 레포지토리의 설계정보를 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 장치.
  6. 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법에 있어서,
    개발자가 RCC 웨어하우스에 저장된 RCC와 기존에 작성되어 레포지토리에 저장된 설계정보를 이용하여 설계정보를 생성하는 설계 단계;
    설계 단계에서 생성된 설계정보를 레포지토리로 저장 및 변경하는 레포지토리 단계;
    설계 단계에서 작성된 설계 정보를 언어 사전(설계 정보를 프로그램으로 변환 및 생성시 참조되는 컴퓨터 프로그래밍 언어별 언어 사전)을 참조하여 프로그램을 생성하는 프로그램 생성 단계;를 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법.
  7. 제 6 항에 있어서,
    레포지토리 단계 이후에 목적하는 프로그램을 생산하기 위해 레포지토리에서 관련된 설계 정보를 불러오는 레포지토리 정보 추출 단계;를 더 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법.
  8. 제 6 항 또는 제 7 항의 어느 한 항에 있어서,
    프로그램 생성 단계 이후에 개발자의 요구사항이 제대로 반영되어 동작을 하는지 확인하기 위하여 프로그램 생성 단계에서 생성된 프로그램을 수행하고 그 결과를 편집 및 확인하는 테스트 단계;를 더 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법.
  9. 예약된 컴포넌트 컨테이너의 데이타 구조를 포함하는 컴퓨터에 기록 가능한 저장매체에 있어서,f명내
    예약된 컴포넌트 컨테이너(RCC)의 데이타 구조는 RCC Type, RCC ID, RCC Method, RCC 클래스 및 RCC Link Pointer를 포함하고,
    RCC 클래스는 RCC Data Type, 하나 이상의 항목, 하나 이상의 제 1 Method로 포함하며,
    RCC Link Pointer는 다음에 수행해야할 RCC를 가르키는 것으로 다음의 RCC를 결정하기 위한 제 2 Method와 제 2 Method의 실행 결과값 및 RCC 실행 후 다음으로 처리해야 하는 하나 이상의 RCC ID를 포함하는 것을 특징으로 하는 예약된 컴포넌트 컨테이너의 데이타 구조를 포함하는 컴퓨터에 기록 가능한 저장매체.
KR1020080025300A 2008-03-19 2008-03-19 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치 KR100994070B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020080025300A KR100994070B1 (ko) 2008-03-19 2008-03-19 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
US12/933,681 US20110023010A1 (en) 2008-03-19 2009-03-12 Reserved component container-based software development method and apparatus
PCT/KR2009/001239 WO2009116748A2 (ko) 2008-03-19 2009-03-12 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치
JP2011500695A JP2011515755A (ja) 2008-03-19 2009-03-12 予約されたコンポーネントコンテナ基盤ソフトウェアの開発方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080025300A KR100994070B1 (ko) 2008-03-19 2008-03-19 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치

Publications (2)

Publication Number Publication Date
KR20090099977A true KR20090099977A (ko) 2009-09-23
KR100994070B1 KR100994070B1 (ko) 2010-11-11

Family

ID=41091363

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080025300A KR100994070B1 (ko) 2008-03-19 2008-03-19 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치

Country Status (4)

Country Link
US (1) US20110023010A1 (ko)
JP (1) JP2011515755A (ko)
KR (1) KR100994070B1 (ko)
WO (1) WO2009116748A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5374405B2 (ja) * 2010-02-12 2013-12-25 株式会社日立製作所 モデルデバッグ装置およびモデルデバッグ方法
US8621417B2 (en) * 2011-06-13 2013-12-31 Accenture Global Services Limited Rule merging in system for monitoring adherence by developers to a software code development process
WO2014113898A1 (en) * 2013-01-25 2014-07-31 Ytrail Ag Method for accessing and automatically correlating data from a plurality of external data sources
CN110750293A (zh) * 2018-07-23 2020-02-04 北京奇虎科技有限公司 构件仓库的实现方法和装置
CN110944048B (zh) * 2019-11-29 2022-06-24 腾讯科技(深圳)有限公司 业务逻辑配置方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035297A (en) * 1996-12-06 2000-03-07 International Business Machines Machine Data management system for concurrent engineering
JP3611178B2 (ja) * 1998-09-01 2005-01-19 日立ソフトウエアエンジニアリング株式会社 プログラム開発管理支援装置
US6530039B1 (en) * 1999-06-14 2003-03-04 Microsoft Corporation Porting engine for testing of multi-lingual software
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US7100147B2 (en) * 2001-06-28 2006-08-29 International Business Machines Corporation Method, system, and program for generating a workflow
KR20030021554A (ko) * 2001-09-06 2003-03-15 한국전자통신연구원 리파지토리 기반의 응용프로그램 구축 시스템 및 그 방법
US7526753B2 (en) * 2003-06-18 2009-04-28 Microsoft Corporation System and method for creating, managing and using code segments
KR20040052618A (ko) * 2004-04-16 2004-06-23 김호익 파라메터 기반의 소프트웨어 구축 시스템 및 그 방법
KR100653122B1 (ko) * 2005-08-31 2006-12-01 학교법인 대전기독학원 한남대학교 안전한 소프트웨어 개발을 위한 룰 기반의 실시간 탐지시스템 및 방법

Also Published As

Publication number Publication date
WO2009116748A2 (ko) 2009-09-24
KR100994070B1 (ko) 2010-11-11
JP2011515755A (ja) 2011-05-19
US20110023010A1 (en) 2011-01-27
WO2009116748A3 (ko) 2009-12-17

Similar Documents

Publication Publication Date Title
US10162612B2 (en) Method and apparatus for inventory analysis
US10296305B2 (en) Method and device for the automated production and provision of at least one software application
US8495559B2 (en) Extracting platform independent models from composite applications
US8291372B2 (en) Creating graphical models representing control flow of a program manipulating data resources
US20080276221A1 (en) Method and apparatus for relations planning and validation
US20120240099A1 (en) Creating graphical models representing control flow of a program manipulating data resources
US20120060141A1 (en) Integrated environment for software design and implementation
KR100994070B1 (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
Osaiweran et al. Evaluating the effect of a lightweight formal technique in industry
KR20030044959A (ko) 클라이언트 측 메타데이터와 글루 코드를 이용한 컴포넌트 구현 및 조립방법
Hähnle et al. HATS abstract behavioral specification: The architectural view
Elaasar et al. VPML: an approach to detect design patterns of MOF-based modeling languages
Balogh et al. Workflow-driven tool integration using model transformations
Combemale Towards language-oriented modeling
Feng et al. A product line based aspect-oriented generative unit testing approach to building quality components
Straszak et al. Automating acceptance testing with tool support
Jörges et al. Assuring property conformance of code generators via model checking
Cavarra et al. A framework to simulate UML models: moving from a semi-formal to a formal environment
Straszak et al. Model-driven acceptance test automation based on use cases
KR101061326B1 (ko) 응용서버 개발시스템
Juhás et al. Collecting Structured Logs of Instances as Process Nets in Petriflow Language.
Chagas et al. Kdm as the underlying metamodel in architecture-conformance checking
Mkaouar et al. A benchmark of incremental model transformation tools based on an industrial case study with AADL
Koch et al. A Toolchain for Simulation Component Specification and Identification
Rintala Architecture design of a configuration management system

Legal Events

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

Payment date: 20130826

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170824

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180827

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191014

Year of fee payment: 10