KR100860963B1 - 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 - Google Patents

컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 Download PDF

Info

Publication number
KR100860963B1
KR100860963B1 KR1020070023044A KR20070023044A KR100860963B1 KR 100860963 B1 KR100860963 B1 KR 100860963B1 KR 1020070023044 A KR1020070023044 A KR 1020070023044A KR 20070023044 A KR20070023044 A KR 20070023044A KR 100860963 B1 KR100860963 B1 KR 100860963B1
Authority
KR
South Korea
Prior art keywords
level component
component
build
user
generating
Prior art date
Application number
KR1020070023044A
Other languages
English (en)
Other versions
KR20080082323A (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 KR1020070023044A priority Critical patent/KR100860963B1/ko
Priority to US11/960,836 priority patent/US20080222600A1/en
Publication of KR20080082323A publication Critical patent/KR20080082323A/ko
Application granted granted Critical
Publication of KR100860963B1 publication Critical patent/KR100860963B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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
    • 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

Abstract

본 발명은 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법에 관한 것으로서, 더욱 상세하게는 기존에 작성된 소프트웨어를 컴포넌트 기반으로 체계적으로 개발할 수 있는 개발 환경 및 그래픽 사용자 인터페이스를 제공할 수 있는 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 장치는, 소스 코드로부터 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 그래픽 사용자 인터페이스를 제공하는 그래픽 사용자 인터페이스 제공부, 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 사용자 입력값이 입력되는 사용자 입력부, 및 상기 입력값에 따라 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하는 제어부를 포함한다.
컴포넌트, 소프트웨어, 인터페이스

Description

컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법{Apparatus and method for developing software based on component}
도 1은 본 발명의 실시예에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 장치가 도시된 도면.
도 2는 본 발명의 실시예에 따른 그래픽 인터페이스가 도시된 도면.
도 3은 본 발명의 실시예에 따른 기능 레벨 컴포넌트 생성시 기본 정보를 입력하는 화면이 도시된 도면.
도 4는 본 발명의 실시예에 따른 기능 레벨 컴포넌트의 심볼을 추가하는 화면이 도시된 도면.
도 5는 본 발명의 실시예에 따른 합성 기능 레벨 컴포넌트에 서브 기능 레벨 컴포넌트를 추가하는 화면이 도시된 도면.
도 6은 본 발명의 실시예에 따른 합성 기능 레벨 컴포넌트를 정의하는 언어가 도시된 도면.
도 7은 본 발명의 실시예에 따른 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어의 기본 정보를 입력하는 화면이 도시된 도면.
도 8은 본 발명의 실시예에 따른 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어를 작성하는 화면이 도시된 도면.
도 9는 본 발명의 실시예에 따른 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어를 작성하기 위한 헤더 파일을 추가하는 화면이 도시된 도면.
도 10은 도 9의 헤더 파일 분석 결과에서 심볼을 선택하는 화면이 도시된 도면.
도 11은 도 10에서 선택된 심볼에 따른 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어를 텍스트 형태로 표시하는 화면이 도시된 도면.
도 12는 본 발명의 실시예에 따른 빌드 레벨 컴포넌트의 기본 정보를 입력하는 화면이 도시된 도면.
도 13은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트의 대상이 되는 소스의 루트 디렉토리를 선택하는 화면이 도시된 도면.
도 14는 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 만들고자 하는 디렉토리를 선택하는 화면이 도시된 도면.
도 15는 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 만들때 필요한 최상위 빌드 파일을 선택하는 화면이 도시된 도면.
도 16은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 만들때 필요한 라이브러리 및 헤더 파일을 선택하는 화면이 도시된 도면.
도 17은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 만들때 필요한 빌드 액션을 선택하는 화면이 도시된 도면.
도 18은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 위한 설정 인터페이스를 정의하는 화면이 도시된 도면.
도 19는 본 발명의 실시예에 따른 Cross-level Configuration을 정의하는 화면이 도시된 도면.
도 20은 본 발명의 실시예에 따른 빌드 테스트를 수행하는 화면이 도시된 도면.
도 21은 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트의 기본 정보를 입력하는 화면이 도시된 도면.
도 22는 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트의 서브 빌드 레벨 컴포넌트를 조립하는 화면이 도시된 도면.
도 23은 본 발명의 실시예에 따른 서브 빌드 레벨 컴포넌트의 디렉토리를 매핑하는 화면이 도시된 도면.
도 24는 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트를 만들때 변수 단위로 설정 인터페이스를 매핑하는 화면이 도시된 도면.
도 25는 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트를 만들때 변수값 단위로인터페이스를 매핑하는 화면이 도시된 도면.
도 26은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트와 기능 레벨 컴포넌트를 매핑하는 화면이 도시된 도면.
도 27은 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트의 변수를 설정하는 화면이 도시된 도면.
도 28은 본 발명의 실시예에 따른 빌드 과정에서 발생한 오류가 표시되는 화면이 도시된 도면.
도 29 내지 도 31은 본 발명의 실시예에 따른 심볼 충돌 오류를 해결하는 화면이 도시된 도면.
도 32는 본 발명의 실시예에 따른 기능 레벨 컴포넌트로부터 빌드 레벨 컴포넌트를 검색하는 화면이 도시된 도면.
도 33은 본 발명의 실시예에 따른 인터페이스로부터 기능 레벨 컴포넌트를 검색하는 화면이 도시된 도면.
도 34는 본 발명의 실시예에 따른 빌드 레벨 컴포넌트로부터 기능 레벨 컴포넌트를 검색하는 화면이 도시된 도면.
도 35는 본 발명의 실시예에 따른 컴포넌트를 등록 및 설치하는 화면이 도시된 도면.
도 36은 본 발명의 실시예에 따른 기능 레벨 컴포넌트를 생성하는 방법이 도시된 도면.
도 37은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 생성하는 방법이 도시된 도면.
도 38은 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트를 생성하는 방법이 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
110: 그래픽 사용자 인터페이스 제공부 120: 사용자 입력부
130: 제어부 140: 컴포넌트 저장부
본 발명은 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법에 관한 것으로서, 더욱 상세하게는 기존에 작성된 소프트웨어를 컴포넌트 기반으로 체계적으로 개발할 수 있는 개발 환경 및 그래픽 사용자 인터페이스를 제공할 수 있는 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법에 관한 것이다.
디지털 컨버전스 제품의 등장으로 CE(Consumer Electronics) 제품들이 다양화되고 내장된 소프트웨어의 용량이 급격하게 증가하는 추세이다. 컨버전스 제품의 특징은 동일 기능의 소프트웨어가 약간의 변화를 거쳐 다양한 제품에 사용될 수 있다는 점이다. 통상적으로 CE 제품을 구성하는 소프트웨어는 많은 부분이 기존 제품의 소스와 동일하다. 따라서, 기존에 개발된 소프트웨어를 최대한 재활용하고 새롭게 추가된 기능만을 개발한다면 소프트웨어의 개발 시간 및 비용 측면에서 매우 큰 이득을 가져오게 된다.
일반적인 소프트웨어 개발 툴들은, 의뢰인의 요구사항으로부터 소프트웨어의 요구 사항을 정의하고 그 내용을 바탕으로 소프트웨어의 기능을 컴포넌트들의 관계로 표현하여 소프트웨어의 구조를 설계할 수 있도록 지원한다. 또한, 설계된 구조를 바탕으로 컴포넌트를 세분화화고 그 기능을 상세하게 명세할 수 있도록 지원한다. 또한, 이러한 소프트웨어 개발 툴은, 상세 설계를 입력으로 어플리케이션이 구동될 타겟 플랫폼을 지정하고 자동으로 코드를 생성하는 기능까지 지원하나 실용적인 단계에는 이르지 못하고 있다.
한국 공개 특허 2003-0056654는 EJB 컴포넌트들을 브라우징해주는 합성 팔레트 모듈, 합성 팔레트 모듈에 나타난 컴포넌트를 끌어 놓거나 새로운 컴포넌트와 커넥터 아이콘을 끌어다 놓으음로써 생성되는 아키텍쳐를 시각화하는 아키텍쳐 다이어그램 편집기 모듈, 컴포넌트 속성 편집기 모듈을 포함하는 EJB 컴포넌트 조립 장치 및 방법을 개시하고 있으나, 기존에 작성된 소프트웨어를 컴포넌트 모델에 기반하여 재사용할 수 있는 환경을 제공하지 못하는 문제점이 있다.
본 발명은 기존 코드를 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트로 관리하고 오류 검사, 컴포넌트의 설치/제거, 컴포넌트의 빌드 등을 편리하게 처리할 수 있는 그래픽 사용자 인터페이스를 제공하여 소프트웨어 개발 효율을 향상시킬 수 있는 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 장치는, 소스 코드로부터 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 그래픽 사용자 인터페이스를 제공하는 그래픽 사용자 인터페이스 제공부, 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포 넌트 중 어느 하나를 생성하기 위한 사용자 입력값이 입력되는 사용자 입력부, 및 상기 입력값에 따라 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하는 제어부를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 방법은, 소스 코드로부터 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 그래픽 사용자 인터페이스를 제공하는 단계, 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 사용자 입력값이 입력되는 단계, 및 상기 입력값에 따라 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 컴포넌트 기반의 소프트웨어 개발을 위 한 장치 및 방법을 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있 다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 실시예에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 장치가 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 장치(100)는, 그래픽 사용자 인터페이스 제공부(110), 사용자 입력부(120), 제어부(130) 및 컴포넌트 저장부(140)을 포함할 수 있다.
그래픽 사용자 인터페이스 제공부(110)는 사용자가 소스 코드로부터 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 그래픽 사용자 인터페이스를 제공할 수 있다. 또한, 그래픽 사용자 인터페이스 제공부(110)는 후술할 적어도 하나의 기능 레벨 컴포넌트를 포함하는 합성 기능 레벨 컴포넌트와 적어도 하나의 빌드 레벨 컴포넌트를 포함하는 합성 빌드 레벨 컴포넌트를 생성하기 위한 그래픽 사용자 인터페이스도 제공할 수 있다.
본 발명의 실시예에서 기본 레벨 컴포넌트는, 컴포넌트의 논리적인 기능을 표현하는 소프트웨어 컴포넌트이며, 논리적 기능의 제공 단위인 다수의 인터페이스를 제공한다. 또한, 동일한 논리적 기능은 여러가지 알고리즘을 통해 구현하는 것에 가능하기 때문에 하나의 기능 레벨 컴포넌트는 여러 개의 빌드 레벨 컴포넌트에 의해 구현될 수 있으며, 빌드 레벨 컴포넌트는 소스 코드에 정의된 빌드 파일 단위 로 구성되기 때문에 하나의 빌드 레벨 컴포넌트는 여러 개의 기능 레벨 컴포넌트에 의해 구현될 수 있다. 한편, 빌드 레벨 컴포넌트는 컴포넌트를 구성하는 소스 파일들과 라이브러리, 이들을 다양한 설정으로 빌드하는데 필요한 빌드 스크립트 등을 포함하는 물리적으로 표현되는 소프트웨어 컴포넌트이며, 설정을 쉽게 적용하고 빌드할 수 있도록 설정 인터페이스와 빌드 인터페이스를 제공할 수 있다.
또한, 설정 인터페이스는, 빌드 레벨 컴포넌트의 설정을 변경시킬 수 있는 인터페이스를 의미하며, 설정 인터페이스를 통해 변수의 값을 설정하여 빌드 타임에 컴포넌트의 구성을 변경할 수 있다. 그리고, 빌드 인터페이스는, 컴포넌트의 빌드 액션을 실행시킬 수 있는 역할을 하며, 일반적으로 빌드 레벨 컴포넌트가 제공하는 빌드 액션들을 빌드 인터페이스랑 칭한다.
그래픽 사용자 인터페이스 제공부(110)에서 제공하는 그래픽 사용자 인터페이스(200)는, 도 2와 같이 현재 작업 중인 프로젝트에 관한 정보를 표시하는 제 1영역(210), 글로벌 컴포넌트 저장부(142)에 저장된 요소들을 표시하는 제 2영역(220), 기능 레벨 컴포넌트의 생성 및 조립을 위한 제 3영역(230), 그래픽 사용자 인터페이스(220) 내에서 선택된 요소의 속성을 표시하는 제 4영역(240) 및 컴포넌트의 생성, 조립, 빌드 과정에서 발생되는 오류 메시지 등의 각종 메시지를 표시하는 제 5영역(250)을 포함할 수 있다.
제 1영역(210)은 현재 작업 중인 프로젝트에 관한 정보를 표시하는 영역으로써, 프로젝트 페인(Pane), 기능 레벨 컴포넌트 페인, 빌드 레벨 컴포넌트 페인, 인터페이스 페인, 패키지 페인, 디렉토리 페인 등을 포함할 수 있다. 제 1영역(210) 에 포함된 각 페인은 로컬 컴포넌트 저장부(141)에 저장된 요소들을 표시하고, 프로젝트 페인을 제외한 다른 페인들은 각각 이름이 나타내는 요소를 표시한다. 또한, 프로젝트 페인은 로컬 컴포넌트 저장부(141)의 모든 요소를 한 윈도우에 트리 형태로 표시하는 역할을 하며, 사용자는 컴포넌트 조립에 필요한 요소들을 제 3영역(230)에 배치하고 연결을 통해 기능 레벨 컴포넌트를 조립할 수 있다.
이때, 본 발명의 실시예에 따른 컴포넌트 저장부(140)는 로컬 컴포넌트 저장부(141)와 글로벌 컴포넌트 저장부(142)로 구분될 수 있다. 여기서, 로컬 컴포넌트 저장부(141)는 현재 작업 중인 프로젝트에 관한 요소가 저장되며, 글로벌 컴포넌트 저장부(141)는 모든 프로젝트에 공용될 수 있는 요소가 저장된다. 따라서, 제 1영역(210)은 로컬 컴포넌트 저장부(141)에 저장된 요소가 표시되는 영역으로 이해될 수 있으면, 제 2영역(220)은 글로벌 컴포넌트 저장부(142)에 저장된 요소가 표시되는 영역으로 이해될 수 있다.
제 2영역(220)은 글로벌 컴포넌트 저장부(142)에 저장된 요소들이 표시되며, 기능 레벨 컴포넌트 페인, 빌드 레벨 컴포넌트 페인, 인터페이스 페인, 검색 결과를 보여주는 페인 등을 포함할 수 있다. 제 2영역(220)은 특정 요소를 검색할 수 있는 기능을 갖추고 있으며, 특히 소정 빌드 레벨 컴포넌트에 의해 구현되는 기능 레벨 컴포넌트의 검색, 소정 기능 레벨 컴포넌트를 구현하는 빌드 레벨 컴포넌트의 검색, 소정 인터페이스를 포함하는 기능 레벨 컴포넌트의 검색을 위한 기능을 포함할 수 있다.
제 3영역(230)은 기능 레벨 컴포넌트의 생성 및 조립을 위한 영역으로 기능 레벨 컴포넌트 및 인터페이스 등을 조립하여 새로운 컴포넌트를 생성할 수 있다. 또한, 제 3영역(230)은 컴포넌트 생성 과정에서 발생하는 오류 등을 시각적으로 표시할 수도 있고, 텍스트의 형태로 표시할 수도 있다.
제 4영역(240)은 그래픽 사용자 인터페이스(200)에서 선택된 요소에 대한 속성을 표시하며, 선택된 요소에 대한 속성을 편집할 수 있는 기능을 제공할 수 있다.
이와 같이, 그래픽 사용자 인터페이스 제공부(110)에서 제공하는 그래픽 사용자 인터페이스(200)를 통해, 사용자는 사용자 입력부(120)로 입력값을 입력하여 기능 레벨 컴포넌트, 빌드 레벨 컴포넌트, 합성 기능 레벨 컴포넌트, 합성 빌드 레벨 컴포넌트를 생성할 수 있다. 이때, 합성 기능 레벨 컴포넌트는 서브 기능 레벨 컴포넌트의 조립으로 생성된 컴포넌트를 의미하며, 합성 빌드 레벨 컴포넌트는 서브 빌드 레벨 컴포넌트의 조립으로 생성된 컴포넌트를 의미한다.
이하, 기능 레벨 컴포넌트, 합성 기능 레벨 컴포넌트, 빌드 레벨 컴포넌트, 합성 빌드 레벨 컴포넌트의 순으로 각 컴포넌트의 생성 과정을 살펴보기로 한다.
기능 레벨 컴포넌트를 생성하기 위해, 사용자는 도 3과 같이 팝업 메뉴(311)를 통해 '기능 레벨 컴포넌트 생성'를 선택하여 기능 레벨 컴포넌트의 기본 정보를 입력해야 하며, 입력하는 정보로는 기능 레벨 컴포넌트의 타입(FLC Type)(312)을 입력해야 하며, 추가적으로 연관된 빌드 레벨 컴포넌트가 존재할 경우에는 별도의 버튼(3313) 조작을 통해 연관된 빌드 레벨 컴포넌트(314)를 선택하게 된다. 이때, 전술한 도 3에서 기능 레벨 컴포넌트의 기본 정보를 입력하면, 도 4와 같이 새로운 컴포넌트를 정의할 수 있는 제 3영역(230)이 나타나고, 사용자는 제 1영역(210) 및 제 2영역(220)의 요소를 드래그 앤 드롭 등의 방식을 통해 새로운 인터페이스 심볼(315)을 추가하고 인터페이스를 정의하게 된다.
합성 기능 레벨 컴포넌트를 생성하는 것은 기본적으로 기능 레벨 컴포넌트를 생성하는 과정과 유사하다. 단지, 합성 기능 레벨 컴포넌트는 다른 기능 레벨 컴포넌트를 서브 기능 레벨 컴포넌트로 추가할 수 있는 것이 다르며, 도 5와 같이 제 1영역(210) 및 제 2영역(220)으로부터 가져온 기능 레벨 컴포넌트를 컴포넌트를 가져와 서브 기능 레벨 컴포넌트(321, 322, 323, 324, 325)로 추가하거나 전술한 기능 레벨 컴포넌트 생성 과정을 이용하여 추후에 생성할 수도 있다. 또한, 전술한 도 5의 각 컴포넌트는 도 6과 같이 기능 레벨 컴포넌트를 정의하는 언어인 CDL(Component Definition Language)의 형태로 표시할 수도 있다.
이러한 기능 레벨 컴포넌트 및 합성 기능 레벨 컴포넌트를 생성한 후, 인터페이스를 정의하게 되는데, 인터페이스의 정의는 도 7과 같이, 사용자가 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어인 IDL(Interface Definition Langauage) 타입(331) 및 설명(332) 등을 포함하는 기본 정보를 입력하고, 도 8과 같이 IDL(333) 직접 작성하거나, 도 9와 같이 헤더 파일(334)을 지정하면, 도 10과 같이 지정된 헤더 파일을 분석하여 추출된 심볼(335)을 보여주고 사용자가 인터페이스에 포함시키고자 하는 심볼만을 선택하게 되면, 도 11과 같이 텍스트 형태의 IDL(336)을 확인할 수 있게 된다.
빌드 레벨 컴포넌트를 생성하기 위해서는 사용자가 도 12와 같이 'Input Build-level Component Information' 과정에서 빌드 레벨 컴포넌트의 이름(341), 버전(342) 및 설명(343) 등을 포함하는 기본 정보를 입력하게 된다. 사용자는 도 13의 'Select Legacy Source Tree' 과정에서 소스 코드가 위치한 루트 디렉토리(344)를 선택하고, 선택된 소스를 구별하기 위해 'Source ID'에 유일하게 부여되는 ID(345)를 입력하게 된다. 또한, 사용자는 도 14와 같이 'Select Legacy Source Tree'의 하위 메뉴인 'Select Component Directories'에서 빌드 레벨 컴포넌트로 만들고자 하는 디렉토리(346)를 선택하게 된다. 사용자는 도 15와 같이, 'Select Makefile'에서 설정 인터페이스 및 빌드 인터페이스 등을 추출하기 최상위 빌드 파일(347)을 추출하게 되고, 도 16과 같이 'Add Third Party Libraries'에서 컴포넌트를 빌드하기 위해 필요한 서드 파티 라이브러리(348)및 헤더 파일(349)을 추가하게 된다.
이후, 사용자는 도 17과 같이 'Select Build Actions'에서 빌드 파일 분석 과정에서 추출된 빌드 액션 중 모든 소스를 재빌드하는 'all' 액션과 모든 오브젝트 파일을 삭제하는 'clean' 액션에 해당하는 빌드 액션(350)을 선택하게 된다. 빌드 파일로부터 분석된 정보는 빌드 액션뿐만 아니라 소스의 설정을 변경할 수 있는 설정 변수를 포함하게 된다. 이때, 설정 변수의 이름만을 추출하기 때문에 도 18과 같이 'Select Configuration Interface'에서 어떤 변수(351)가 어떤 값(352)을 가질 수 있으며, 어떤 값을 디폴트(353)로 하는지를 지정하게 된다. 예를 들어, 사용자가 'Possible Value'부분에 On, Off라고 입력하면 이 값들 중 하나를 디폴트로 선택할 수 있는 것이다. 이때, 빌드 레벨 컴포넌트는 어떤 특정한 설정 변수들이 특정한 값들을 가질 때 특정한 기능 레벨 컴포넌트와 연관될 수 있다. 즉, 빌드 레벨 컴포넌트가 'Cross-level Configuration(CLC)'으로 정의되는 특정 설정 변수들의 집합을 가지면 특정 기능 레벨 컴포넌트가 제공하는 기능을 물리적으로 구현하게 된다. 도 18은 여러가지 Configuration Interface 중에서 어떠한 변수들이 'Cross-level Configuration'으로 정의하기 위해 사용되는지를 선택하는 과정이다. 또한, 도 18에서는 'Debug'라는 변수가 'Cross-level Configuration'으로 정의하기 위해 사용되는 경우로 이해될 수 있다. 이때, 도 18에서 선택된 설정 변수를 이용하여 'Cross-level Configuration'를 정의하는 과정은 도 19와 같이 'Debug'라는 변수를 이용하여 'DEBUG_ON'과 'DEBUG_OFF'라는 'Cross-level Configuration'를 정의할 수 있다. 이후, 도 20과 같이 설정 인터페이스의 변수들을 변경하면서 실제로 빌드가 제대로 수행하지는 검사하는 'Build Test'과정을 수행하게 된다.
합성 빌드 레벨 컴포넌트를 생성하기 위해서는 도 21과 같이, 합성 빌드 레벨 컴포넌트의 이름(361), 버전(362) 및 설명(363) 등의 기본 정보를 입력하게 되면, 도 22와 같이 그래픽 사용자 인터페이스(200)의 제 1영역(210)에 합성 빌드 레벨 컴포넌트(211)가 생성되는데, 생성된 서브 빌드 레벨 컴포넌트를 드래그 앤 드랍으로 추가하게 된다. 이후, 도 23과 같이 각 서브 빌드 레벨 컴포넌트의 물리적인 위치를 매핑해야 한다. 도 23은 서브 빌드 레벨 컴포넌트인 'B_SSL'(364)의 디렉토리(365)를 선택하는 경우의 일 예이다.
이때, 각 서브 빌드 레벨 컴포넌트의 설정 인터페이스를 매핑하는 과정을 거치게 된다. 즉, 각 서브 빌드 레벨 컴포넌트 레벨의 변수, 변수가 가질 수 있는 값 및 디폴트가 하기의 표 1과 같을 때, 합성 빌드 레벨 컴포넌트 'B_NetSystem'은 하기의 표 2와 같이 'Debug'라는 변수에 대하여 각 서브 빌드 레벨 컴포넌트의 변수값을 매핑시키는 것이다. 이는 도 24와 같이, 'B_NetSystem'에 하나의 변수 'Debug'를 정의하고 서브 빌드 레벨 컴포넌트에서 동일한 의미의 변수 'Debug'를 선택함으로써 매핑될 수 있다.
[표 1]
빌드 레벨 컴포넌트 변수 변수값 디폴트
B_App Debug On, Off On
B_H264Dec Debug On, Off On
FrameRate 29.97, 25 29.97
B_Sock Debug On, Off On
TCP_UDP TCP, UDP TCP
[표 2]
빌드 레벨 컴포넌트 변수 변수값 내용 디폴트
B_NetSystem Debug On B_App.Debug=On, B_H264Dec.Debug=On, B_Sock.Debug=On On
Off B_App.Debug=Off, B_H264Dec.Debug=Off, B_Sock.Debug=On
StreamType Conn B_H264Dec.FrameRate=29.97 B_Sock.TCP_UDP=TCP Conn
다른 매핑 과정으로는, 값 단위 매핑이 있으며, 이는 전술한 표 2에서 'StreamType' 변수는 'B_H264Dec'의 'FrameRate'변수와 'B_Sock'의 'TCP_UDP'변수처럼 서로 다른 의미를 가지는 변수를 조합하여 새로운 의미의 변수를 생성하여 사용할 수 있다. 즉, 도 25와 같이, 'B_NetSystem'에 'StreamType'이라는 변수를 정의하고, 이 변수의 값이 'Conn'일때는 'B_H264Dec'의 'FrameRate' 변수가 '29.97', 'B_Sock'의 'TCP_UDP'변수가 'TCP'가 됨을 의미하고, 이 변수가 'Broad'일때는 'H_264Dec'의 'FrameRate'변수가 '25', 'B_Sock'의 'TCP_UDP'변수가 'UDP'가 됨을 나타낸다. 이때, 도 25는 'Broad'인 경우의 일 예로 이해될 수 있다.
한편, 합성 빌드 레벨 컴포넌트를 빌드하기 전에 도 26과 같이, 선택된 합성 빌드 레벨 컴포넌트를 구현하는 기능 레벨 컴포넌트(381)를 제 1영역(210) 및 제 2(220)으로부터 검색하여 매핑하게 되며, 도 27은 합성 빌드 레벨 컴포넌트가 가지는 설정 인터페이스에 실제 값을 할당하여 'Netsystem_Debug'(382)라는 설정을 정의하고 있다.
전술한 도 27의 설정은, 'B_Netsystem'(383)이라는 합성 빌드 레벨 컴포넌트를 선택하면, 이전에 설정한 'Netsystem_Debug'(382)항목이 나타나게 된다. 이때, 빌드 과정에서 오류가 발생하게 되면, 도 28과 같이 특정 컴포넌트와 관련하여 해당 컴포넌트와 연관된 기능 레벨 컴포넌트(391)가 별도의 표현 방식, 예를 들어 선 굵기를 다르게 하거나 색상을 다르게 하여 사용자가 발생된 오류를 쉽게 인지할 수 있도록 하고, 제 5영역(250)에 오류 메시지(392)가 출력된다.
한편, 본 발명의 실시예에 따른 그래픽 사용자 인터페이스(200)는 심볼 이름 충돌 여부를 표시하고, 발생된 심볼 이름 충돌을 위한 방안을 제안할 수 있다. 즉, 도 29와 같이 특정 인터페이스의 충돌이 발생한 경우 모든 심볼에 동일한 접두어(411)를 사용하여 해결하거나, 도 30과 같이 일부 심볼은 접두어를 사용하고 일부 심볼은 사용자가 개별적으로 이름을 재정의하거나, 도 31과 같이 사용자가 충돌이 발생한 모든 심볼에 대해 개별적으로 이름을 재정의할 수 있다. 이때, 접두어를 사용할지의 여부는 사용자가 각 심볼 이름에 체크 박스의 체크 여부에 의해 결정될 수 있다. 즉, 도 29에서는 모든 심볼 이름의 체크 박스를 체크하였기 때문에 모든 심볼에 동일한 접두어를 사용한 것이며, 도 30은 체크되지 않은 'Connect'만을 사용자가 개별적으로 재정의하고, 도 31는 모드 심볼 이름이 체크되지 않았으므로 사용자가 모든 심볼에 대해 개별적으로 재정의 하는 것이다.
또한, 본 발명의 실시예에 따른 그래픽 사용자 인터페이스(200)는 컴포넌트의 검색을 제공할 수 있다. 즉, 도 32와 같이 선택된 기능 레벨 컴포넌트(421)에 대해 팝업 메뉴(422)를 사용하여 연관된 모든 빌드 레벨 컴포넌트를 검색하거나, 도 33과 같이, 선택된 인터페이스(431)에 대해 팝업 메뉴(432)를 사용하여 연관된 모든 기능 레벨 컴포넌트를 검색하거나, 도 34와 같이, 선택된 빌드 레벨 컴포넌트(441)에 대해 팝업 메뉴(442)를 사용하여 연관된 모든 기능 레벨 컴포넌트를 검색할 수 있다.
또한, 본 발명의 실시예에 따른 그래픽 사용자 인터페이스(200)는 도 35와 같이, 제 1영역(210)과 제 2영역(220)에 표시되는 요소, 즉 로컬 컴포넌트 저장부(141) 및 글로벌 컴포넌트 저장부(142)에 저장된 요소들을 드래그 앤 드롭으로 등록과 설치를 용이하게 수행할 수 있다.
도 36은 본 발명의 실시에 따른 기능 레벨 컴포넌트 생성 방법이 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 기능 레벨 컴포넌트를 생성하는 방법은, 먼저 사용자가 그래픽 사용자 인터페이스(200)를 통해 생성하려는 기능 레벨 컴포넌트의 기본 정보를 입력한다(S110). 이때, 입력하는 기본 정보로는 기능 레벨 컴포넌트의 타입 및 연관된 빌드 레벨 컴포넌트 등을 포함할 수 있다.
생성하려는 기능 레벨 컴포넌트의 기본 정보를 입력하면, 그래픽 사용자 인터페이스(200)에서 새로운 컴포넌트를 정의할 수 있는 제 3영역(230)이 표시되고(S120), 사용자는 새로운 인터페이스 심볼을 추가하고 인터페이스를 정의하게 된다(S130).
이때, 전술한 도 36에서는 기능 레벨 컴포넌트를 생성하는 방법이 도시되어 있으나, 합성 기능 레벨 컴포넌트를 생성하는 방법은 기능 레벨 컴포넌트를 생성하는 방법과 유사하며, 다른 기능 레벨 컴포넌트를 서브 기능 레벨 컴포넌트로 추가할 수 있는 것이 서로 상이하다.
도 37은 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 생성하는 방법이 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 빌드 레벨 컴포넌트를 생성하는 방법은, 먼저 사용자가 빌드 레벨 컴포넌트의 이름, 버전 및 설명 등을 포함하는 기본 정보를 입력한다(S210). 이때, 사용자가 빌드 레벨 컴포넌트의 기본 정보를 입력하는 화면은 전술한 도 12와 같으며, 기존의 소드 코드로부터 빌드 레벨 컴포넌트를 생성할때에는 전술한 도 12의 'Creates from Legacy Source Code?'를 선택할 수 있다.
빌드 레벨 컴포넌트의 기본 정보를 입력한 후에는, 소스 코드가 위치한 루트 디렉토리를 선택하고, 선택된 루트 디렉토리에서 빌드 레벨 컴포넌트로 만들고자 하는 디렉토리를 선택하게 된다(S220). 이때, 빌드 레벨 컴포넌트를 만들고자 하는 디렉토리를 선택하는 것은, 전술한 도 13과 같이 소스 코드가 위치한 루트 디렉토 리를 선택하고, 전술한 도 14와 같이 선택된 루트 디렉토리의 하위 디렉토리 중 빌드 레벨 컴포넌트를 만들고자 하는 디렉토리르 선택할 수 있다.
사용자는 빌드 레벨 컴포넌트를 만들고자 하는 디렉토리를 선택한 다음, 설정 인터페이스 및 빌드 인터페이스 등을 추출하기 위한 최상위 빌드 파일을 선택하고(S230), 컴포넌트를 빌드하기 위해 필요한 서드 파티 라이브러리 및 헤더 파일을 추가하게 된다(S240). 이때, 최상위 필드 파일의 선택, 서드 라이브러리 및 헤더 파일의 추가는 전술한 도 15 및 16과 같다.
이후, 사용자는 빌드 파일 분석 과정에서 빌드 액션을 선택하고(S250), 설정 인터페이스에서 변수값을 설정하게 된다(S260). 이때, 설정 인터페이스에서 변수값을 설정하는 것은, 전술한 도 18과 같이, 어떤 변수가 어떤 값을 가질 수 있으며, 어떤 값을 디폴트로 할 것인지를 설정하는 것이다.
사용자는 Cross-level Configuration을 위한 변수를 선택하고, 선택된 변수를 정의하게 된다 (S270). Cross-level Configuration을 위한 변수를 정의하면, 빌드 테스트 과정을 거쳐 생성된 빌드 레벨 컴포넌트를 저장하게 된다(S280).
도 38은 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트를 생성하는 방법이 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 합성 빌드 레벨 컴포넌트를 생성하는 방법은, 먼저 사용자가 그래픽 사용자 인터페이스(200)를 통해 합성 빌드 레벨 컴포넌트의 이름, 버전 및 설명 등의 기본 정보를 입력하게 된다(S310).
합성 빌드 레벨 컴포넌트의 기본 정보를 입력하게 되면, 합성 필드 레벨 컴 포넌트 생성에 필요한 빌드 레벨 컴포넌트를 추가하게 된다(S320). 즉, 합성 빌드 레벨 컴포넌트에 전술한 도 23과 같이, 각 서브 빌드 레벨 컴포넌트의 물리적인 위치인 디렉토리를 매핑시키는 것이다.
합성 빌드 레벨 컴포넌트의 설정 인터페이스에 각 서브 빌드 레벨 컴포넌트의 설정 인터페이스를 매핑시키게 된다(S330). 다시 말해서, 합성 빌드 레벨 컴포넌트의 변수에 동일한 의미의 서브 빌드 레벨 컴포넌트의 변수를 매핑시키거나 합성 빌드 레벨 컴포넌트의 변수에 서로 다른 의미를 가지는 변수를 조합하여 매핑시킬 수 있다.
합성 빌드 레벨 컴포넌트와 각 서브 빌드 레벨 컴포넌트 사이의 설정 인터페이스 매핑이 완료되면, 빌드 테스트를 수행하고(S340), 생성된 합성 빌드 레벨 컴포넌트를 저장하게 된다.
본 발명의 실시예에서 사용된 용어 중 '부'는 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)과 같은 하드웨어 구성요소를 의미하며, 부는 어떤 역할들을 수행한다. 그렇지만 부는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 부는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 부는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회 로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 부들에서 제공되는 기능은 더 작은 수의 구성요소들 및 부들로 결합되거나 추가적인 구성요소들과 부들로 더 분리될 수 있다.
이상과 같이 본 발명에 따른 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
컴포넌트 기반으로 소프트웨어를 빠르게 개발할 수 있도록 컴포넌트와, 컴포넌트의 조립, 설정, 오류 검사, 및 빌드 등의 기능을 통합한 그래픽 사용자 인터페이스를 제공하여 소프트웨어 개발 시간을 단축할 수 있는 효과가 있다.
또한, 기존의 소스 코드 형태의 소프트웨어를 컴포넌트로 표현하여 소프트웨어 구조를 전체적인 부분으로부터 상세한 부분에 이르기까지 분석할 수 있어 그 구조를 쉽게 파악할 수 있는 효과가 있다.

Claims (38)

  1. 소스 코드로부터 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 그래픽 사용자 인터페이스를 제공하는 그래픽 사용자 인터페이스 제공부;
    상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 사용자 입력값이 입력되는 사용자 입력부; 및
    상기 입력값에 따라 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하는 제어부를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  2. 제 1 항에 있어서,
    상기 그래픽 사용자 인터페이스는, 현재 작업에 해당하는 로컬 요소를 표시하는 제 1영역;
    글로벌 요소를 표시하는 제 2영역;
    상기 기능 레벨 컴포넌트의 생성 및 조립을 위한 제 3영역;
    선택된 요소에 대한 속성을 표시하는 제 4영역; 및
    컴포넌트 생성과 관련된 메시지를 표시하는 제 5영역을 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  3. 제 1 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 기능 레벨 컴포넌트 생성을 위한 기본 정보를 입력받고, 상기 그래픽 사용자 인터페이스는 사용자에 의해 상기 기능 레벨 컴포넌트에 대응하는 심볼이 추가되는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  4. 제 3 항에 있어서,
    상기 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어는, 선택된 헤더 파일에서 추출된 심볼로부터 자동 작성되는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  5. 제 1 항에 있어서,
    상기 사용자 입력부는 상기 빌드 레벨 컴포넌트 생성을 위한 기본 정보를 입력받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  6. 제 5 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 빌드 레벨 컴포넌트 생성을 위한 소스 코드가 위치한 디렉토리를 선택받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  7. 제 6 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 빌드 레벨 컴포넌트 생성을 위한 빌드 파일을 선택받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  8. 제 7 항에 있어서,
    상기 사용자 입력부는 사용자로부터 서드 파티(Third Party) 라이브러리 및 헤더를 선택받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  9. 제 8 항에 있어서,
    상기 사용자 입력부는 사용자로부터 빌드 액션을 선택받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치
  10. 제 9 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 빌드 레벨 컴포넌트의 설정을 변경하기 위한 설정 인터페이스를 정의받고, 상기 설정에 사용할 변수를 선택받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  11. 제 10 항에 있어서,
    상기 제어부는, 상기 변수의 값을 변경하여 빌드 테스트를 수행하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  12. 제 1 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 빌드 레벨 컴포넌트가 조립되는 합성 빌드 레벨 컴포넌트 생성을 위한 기본 정보를 입력받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  13. 제 12 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 합성 빌드 레벨 컴포넌트에 포함되는 서브 빌드 레벨 컴포넌트의 디렉토리를 매핑받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  14. 제 13 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 합성 빌드 레벨 컴포넌트의 설정 인터페이스에 상기 서브 빌드 레벨 컴포넌트의 설정 인터페이스를 매핑받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  15. 제 14 항에 있어서,
    상기 사용자 입력부는 사용자로부터 상기 서브 빌드 레벨 컴포넌에 대응하는 기능 레벨 컴포넌트를 매핑받는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  16. 제 1 항에 있어서,
    상기 제어부는, 컴포넌트 간의 심볼 이름 충돌이 발생한 경우, 상기 그래픽 사용자 인터페이스를 통해 상기 발생된 심볼 이름 충돌을 해결하기 위한 화면을 제공하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  17. 제 1 항에 있어서,
    상기 제어부는, 소정 기능 레벨 컴포넌트에 연관된 빌드 레벨 컴포넌트의 검색 결과를 상기 그래픽 사용자 인터페이스를 통해 제공하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  18. 제 1 항에 있어서,
    상기 제어부는, 소정 인터페이스에 연관된 기능 레벨 컴포넌트의 검색 결과를 상기 그래픽 사용자 인터페이스를 통해 제공하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  19. 제 1 항에 있어서,
    상기 제어부는, 소정 빌드 레벨 컴포넌트에 연관된 기능 레벨 컴포넌트의 검색 결과를 상기 그래픽 사용자 인터페이스를 통해 제공하는 컴포넌트 기반의 소프트웨어 개발을 위한 장치.
  20. 소스 코드로부터 기능 레벨 컴포넌트 및 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 그래픽 사용자 인터페이스를 제공하는 단계;
    상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하기 위한 사용자 입력값이 사용자로부터 입력되는 단계; 및
    상기 입력값에 따라 상기 기능 레벨 컴포넌트 및 상기 빌드 레벨 컴포넌트 중 어느 하나를 생성하는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  21. 제 20 항에 있어서,
    상기 그래픽 사용자 인터페이스는, 현재 작업에 해당하는 로컬 요소를 표시하는 제 1영역;
    글로벌 요소를 표시하는 제 2영역;
    상기 기능 레벨 컴포넌트의 생성 및 조립을 위한 제 3영역;
    선택된 요소에 대한 속성을 표시하는 제 4영역; 및
    컴포넌트 생성과 관련된 메시지를 표시하는 제 5영역을 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  22. 제 20 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 기능 레벨 컴포넌트 생성을 위한 기본 정보를 입력되는 단계; 및
    상기 그래픽 사용자 인터페이스에 상기 기능 레벨 컴포넌트에 대응하는 심볼이 추가되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  23. 제 22 항에 있어서,
    상기 기능 레벨 컴포넌트의 인터페이스를 정의하는 언어는, 선택된 헤더 파일에서 추출된 심볼로부터 자동 작성되는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  24. 제 20 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 빌드 레벨 컴포넌트 생성을 위한 기본 정보를 입력되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  25. 제 24 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 빌드 레벨 컴포넌트 생성을 위한 소스 코드가 위치한 디렉토리가 선택되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  26. 제 25 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 빌드 레벨 컴포넌트 생성을 위한 빌드 파일이 선택되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  27. 제 26 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 서드 파티(Third Party) 라이브러리 및 헤더가 선택되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  28. 제 27 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 빌드 액션을 선택되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  29. 제 28 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 빌드 레벨 컴포넌트의 설정을 변경하기 위한 설정 인터페이스가 정의되는 단계; 및
    상기 설정에 사용할 변수가 선택되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  30. 제 29 항에 있어서,
    상기 컴포넌트를 생성하는 단계는, 상기 변수의 값을 변경하여 빌드 테스트를 수행하는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법
  31. 제 20 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 빌드 레벨 컴포넌트가 조립된 합성 빌드 레벨 컴포넌트 생성을 위한 기본 정보가 입력되는 단계를 포함하느 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  32. 제 31 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 합성 빌드 레벨 컴포넌트에 포함되는 서브 빌드 레벨 컴포넌트의 디렉토리가 매핑되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  33. 제 32 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 합성 빌드 레벨 컴포넌트의 설정 인터페이스에 상기 서브 빌드 레벨 컴포넌트의 설정 인터페이스가 매핑되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  34. 제 33 항에 있어서,
    상기 사용자 입력값이 사용자로부터 입력되는 단계는, 상기 서브 빌드 레벨 컴포넌에 대응하는 기능 레벨 컴포넌트가 매핑되는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  35. 제 20 항에 있어서,
    상기 컴포넌트를 생성하는 단계는, 컴포넌트 간의 심볼 이름 충돌이 발생한 경우, 상기 그래픽 사용자 인터페이스를 통해 상기 발생된 심볼 이름 충돌을 해결하기 위한 화면을 제공하는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  36. 제 20 항에 있어서,
    상기 컴포넌트를 생성하는 단계는, 소정 기능 레벨 컴포넌트에 연관된 빌드 레벨 컴포넌트의 검색 결과를 상기 그래픽 사용자 인터페이스를 통해 제공하는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  37. 제 20 항에 있어서,
    상기 컴포넌트를 생성하는 단계는, 소정 인터페이스에 연관된 기능 레벨 컴포넌트의 검색 결과를 상기 그래픽 사용자 인터페이스를 통해 제공하는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
  38. 제 20 항에 있어서,
    상기 컴포넌를 생성하는 단계는, 소정 빌드 레벨 컴포넌트에 연관된 기능 레벨 컴포넌트의 검색 결과를 상기 그래픽 사용자 인터페이스를 통해 제공하는 단계를 포함하는 컴포넌트 기반의 소프트웨어 개발을 위한 방법.
KR1020070023044A 2007-03-08 2007-03-08 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 KR100860963B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070023044A KR100860963B1 (ko) 2007-03-08 2007-03-08 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법
US11/960,836 US20080222600A1 (en) 2007-03-08 2007-12-20 Apparatus and method for component-based software development

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070023044A KR100860963B1 (ko) 2007-03-08 2007-03-08 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080082323A KR20080082323A (ko) 2008-09-11
KR100860963B1 true KR100860963B1 (ko) 2008-09-30

Family

ID=39742933

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070023044A KR100860963B1 (ko) 2007-03-08 2007-03-08 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US20080222600A1 (ko)
KR (1) KR100860963B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281283B2 (en) * 2007-09-13 2012-10-02 Sap Ag Model-based integration of business logic implemented in enterprise javabeans into a UI framework
US20110041118A1 (en) * 2009-08-11 2011-02-17 Sony Corporation Menu driven component based build system
KR101782998B1 (ko) * 2011-06-03 2017-10-23 에스프린팅솔루션 주식회사 화상 형성 장치의 어플리케이션을 개발하는 방법 및 장치
KR102060023B1 (ko) * 2012-12-31 2019-12-30 인포뱅크 주식회사 디스플레이 장치 및 그 화면 처리 방법
US9785542B2 (en) * 2013-04-16 2017-10-10 Advantest Corporation Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing
US9785526B2 (en) * 2013-04-30 2017-10-10 Advantest Corporation Automated generation of a test class pre-header from an interactive graphical user interface
CN104572091B (zh) * 2014-12-25 2017-11-03 百度在线网络技术(北京)有限公司 应用软件实现方法、装置以及计算机设备
CN109508191B (zh) * 2018-11-22 2022-03-22 北京腾云天下科技有限公司 一种代码生成方法及系统
JP7115507B2 (ja) * 2020-04-27 2022-08-09 横河電機株式会社 ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
CN115809056B (zh) * 2023-02-07 2023-05-05 深圳复临科技有限公司 组件复用实现方法、装置和终端设备、可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040097941A (ko) * 2003-05-12 2004-11-18 정안모 컴포넌트 기반 환경 하에서 확장된 메타데이터를 이용한 소프트웨어 개발 방법 및 시스템
KR20060079690A (ko) * 2005-01-03 2006-07-06 아토정보기술 주식회사 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍 자동화 방법
KR20070000732A (ko) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850548A (en) * 1994-11-14 1998-12-15 Borland International, Inc. System and methods for visual programming based on a high-level hierarchical data flow model
US5778368A (en) * 1996-05-03 1998-07-07 Telogy Networks, Inc. Real-time embedded software respository with attribute searching apparatus and method
US6002867A (en) * 1996-10-24 1999-12-14 Inprise Corporation Development system with methods providing visual form inheritance
US6237135B1 (en) * 1998-06-18 2001-05-22 Borland Software Corporation Development system with visual design tools for creating and maintaining Java Beans components
US6493868B1 (en) * 1998-11-02 2002-12-10 Texas Instruments Incorporated Integrated development tool
US7174534B2 (en) * 2001-01-22 2007-02-06 Symbol Technologies, Inc. Efficient system and method for running and analyzing multi-channel, multi-modal applications
US7120896B2 (en) * 2001-10-31 2006-10-10 Vitria Technology, Inc. Integrated business process modeling environment and models created thereby
US20040205706A1 (en) * 2001-05-31 2004-10-14 Portwood Michael T. Method for the automatic generation of computer programs which interact with existing objects
KR100426311B1 (ko) * 2001-12-28 2004-04-08 한국전자통신연구원 Ejb 컴포넌트 조립 장치 및 방법
US7263695B1 (en) * 2003-03-25 2007-08-28 Electric Cloud, Inc. System and method for processing recursive invocations within a program build
JP2004341623A (ja) * 2003-05-13 2004-12-02 Hitachi Ltd セキュリティ仕様書作成支援装置、および、セキュリティ仕様書作成支援方法
KR100518584B1 (ko) * 2003-07-12 2005-10-04 삼성전자주식회사 공유 라이브러리 시스템 및 상기 시스템 구축 방법
US7389517B2 (en) * 2003-12-19 2008-06-17 Rce Emergis, Inc. Method and system for creating and providing a multi-tier network service using separated function and presentation components
US20050251796A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Automatic identification and reuse of software libraries
US8091066B2 (en) * 2004-08-25 2012-01-03 International Business Machines Corporation Automated multi-platform build and test environment for software application development
CN100442234C (zh) * 2005-06-21 2008-12-10 国际商业机器公司 用于嵌入式系统的软件包构建方法和系统
US7844036B2 (en) * 2006-08-14 2010-11-30 Soasta, Inc. Visual test automation tool for message-based applications, web applications and SOA systems
US8468498B2 (en) * 2008-03-04 2013-06-18 Apple Inc. Build system redirect

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040097941A (ko) * 2003-05-12 2004-11-18 정안모 컴포넌트 기반 환경 하에서 확장된 메타데이터를 이용한 소프트웨어 개발 방법 및 시스템
KR20060079690A (ko) * 2005-01-03 2006-07-06 아토정보기술 주식회사 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍 자동화 방법
KR20070000732A (ko) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템

Also Published As

Publication number Publication date
US20080222600A1 (en) 2008-09-11
KR20080082323A (ko) 2008-09-11

Similar Documents

Publication Publication Date Title
KR100860963B1 (ko) 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법
KR101885089B1 (ko) 건축 bim 설계 파일의 엑셀 파일 전환 방법
US9501596B2 (en) Graphical design verification environment generator
US8458648B2 (en) Graphical modelization of user interfaces for data intensive applications
JP2000347894A (ja) ソースプログラムチェック装置およびそのプログラム記録媒体
JP6372308B2 (ja) 情報処理装置、情報処理方法、情報処理プログラム、および記録媒体
CN111309315A (zh) 一种基于工业物联网数据和业务建模的自动化配置方法
CN112748923A (zh) 一种可视化看板的创建方法、装置、电子设备和存储介质
JP6092686B2 (ja) 運用作業フロー作成支援方法および運用作業フロー作成支援システム
JP5675676B2 (ja) 業務分析設計支援装置、業務分析設計支援方法、および業務分析設計支援プログラム
JP5426938B2 (ja) 情報処理装置、情報処理方法
JP2006285707A (ja) 業務仕様作成支援システム及び方法
US8924420B2 (en) Creating logic using pre-built controls
JP2010049489A (ja) デバッグ支援装置およびデバッグ支援プログラム
da Cruz et al. Automatic generation of user interface models and prototypes from domain and use case models
JP6364786B2 (ja) 設計書管理プログラム、設計書管理方法および設計書管理装置
CN115545401B (zh) 基于可视化指标模型配置的城市体检评估方法、系统及计算机设备
KR101276933B1 (ko) 선택된 버전의 조건부 블록 소스 코드만을 표시하는 조건부블록 소스 코드 표시 방법
WO2021024791A1 (ja) 設計支援システム及び設計支援方法
JP4127318B2 (ja) プログラム生成方法および装置
JPH0954688A (ja) Gui設計支援方法
JP2006268764A (ja) モデル編集システム、モデル編集装置、モデル編集方法及びモデル編集プログラム
JP2003036170A (ja) クロスリファレンス構築装置、クロスリファレンス構築方法及びクロスリファレンス構築用プログラム
KR20130068566A (ko) 블록 자동 배치 및 연결을 이용한 매쉬업 저작 장치 및 방법
JP2023015721A (ja) 情報処理装置、情報処理方法及び情報処理プログラム

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: 20120814

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130822

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140822

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160602

Year of fee payment: 8

R401 Registration of restoration
FPAY Annual fee payment

Payment date: 20160922

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170922

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180704

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 12