KR101484680B1 - 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법 - Google Patents

컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법 Download PDF

Info

Publication number
KR101484680B1
KR101484680B1 KR20070099917A KR20070099917A KR101484680B1 KR 101484680 B1 KR101484680 B1 KR 101484680B1 KR 20070099917 A KR20070099917 A KR 20070099917A KR 20070099917 A KR20070099917 A KR 20070099917A KR 101484680 B1 KR101484680 B1 KR 101484680B1
Authority
KR
South Korea
Prior art keywords
component
variable
configuration
product
environment setting
Prior art date
Application number
KR20070099917A
Other languages
English (en)
Other versions
KR20090034597A (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 KR20070099917A priority Critical patent/KR101484680B1/ko
Priority to PCT/KR2008/001532 priority patent/WO2009044973A1/en
Publication of KR20090034597A publication Critical patent/KR20090034597A/ko
Priority to US12/753,434 priority patent/US9081637B2/en
Application granted granted Critical
Publication of KR101484680B1 publication Critical patent/KR101484680B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

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

Abstract

컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법이 제공된다. 본 발명의 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 시스템은, 소프트웨어 제품의 특성에 대한 목록을 관리하는 소프트웨어 제품 관리 모듈과, 특성에 대응하는 컴포넌트에 대한 목록을 관리하는 소프트웨어 플랫폼 관리 모듈과, 특성에 대응하는 컴포넌트의 환경 설정 변수들을 특정값으로 설정하는 소프트웨어 플랫폼 환경 설정 모듈 및 환경 설정 변수에 따른 엘리먼트 변수의 동기화를 처리하며 물리적 요소를 관리하는 소프트웨어 자산 관리 모듈을 포함한다.
컴포넌트, 제품 라인(Product Line), UML, 컴포넌트 기반 소프트웨어 개발(Component-Based Software Development)

Description

컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법{System and Method for Software Product Management with a Component Model}
본 발명은 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법에 관한 것으로, 보다 상세하게는 컴포넌트 모델을 기반으로 제품 라인 운용이 가능한 소프트웨어 제품 관리 시스템 및 방법에 관한 것이다.
가전 업계에 있어서 소프트웨어는, 특정 하드웨어 기기의 기능 수행에 필요한 보조적인 개념으로부터 현재는 주기능의 구현체로서 다루어지고 있다. 동일 제품군에 있어서 모델에 따라 상이한 기능들이 탑재되기 시작하면서, 하드웨어 제품군과 동일한 영역 구분이 소프트웨어에서도 인식되기 시작한 것이다.
가전 제품 영역에서는 다품종 기기의 운용을 위한 소프트웨어 시스템이 공통의 컴포넌트로 구성되는 경우가 많다. 기능적으로 동일 제품군에 속하지만 제품 모델에 따라 상이한 기능이 추가되는 형태로, 개발 회사의 입장에서는 다양한 소프트웨어 컴포넌트의 개발과 아울러 이들을 적절한 방법으로 관리하여 개발 효율성을 향상시키고자 하는 필요성이 존재한다.
소프트웨어 컴포넌트를 단순한 리포지토리(Repository) 또는 라이브러리 집 합으로 저장하여 재활용하는 수준을 넘어, 소프트웨어 플랫폼의 아키텍처에 따라 컴포넌트 간 연동관계 및 품종별 가변성(variability)을 반영하여 궁극적으로는 소프트웨어 제품 라인(Software Product Line: SPL) 개념의 개발 체제를 갖추어 나가야 하는 환경이 되고 있다.
소프트웨어 제품 라인의 개념은 특정한 시장층이나 특정 제품군에 내재하는 공통적인 특성을 관리하고 가변적인 속성에 따라 상이한 제품을 개발하는 시스템을 의미한다. 하드웨어 제품의 공정관리 측면으로부터 시작되어, 현재는 소프트웨어 시스템의 개발 체제에 있어서도 컴포넌트 기반 소프트웨어 개발(Component-Based Software Development: CBSD)을 기반으로 소프트웨어 제품 라인의 적용이 활발히 연구되고 있다.
소프트웨어 제품은 기본적으로 공통요소와 가변요소들을 모두 포함하는 소프트웨어 플랫폼으로부터, 개발 요구사항에 따라 선별적으로 조합된 요소들로 구성된다. 이들 다양한 소프트웨어 제품들은 공통 요소를 가지고 있으므로 제품군을 구성하게 된다. 소프트웨어 제품 라인은 이와 같이 소프트웨어 플랫폼으로부터 다양한 제품을 개발하기 위한 소프트웨어 요소 관리 및 구성 체계를 의미한다.
소프트웨어 플랫폼은 특정 제품군에 대해 공통적으로 적용될 수 있는 요소들과 상이하게 적용될 수 있는 요소들을 모두 포함하는 구성을 가진다. 소프트웨어 플랫폼으로부터 특정 제품에 대한 설정에 따라 적용되어야 할 요소들이 선택되고, 이를 기반으로 추가적인 개발 절차를 거쳐 새로운 제품 생산 및 제품 라인의 확장이 진행되며, 이들은 다시 소프트웨어 플랫폼을 확장하는 구성요소가 된다.
소프트웨어 제품 라인 운용이 가능한 기반 체제를 구축하기 위해서는, 소프트웨어 자산(asset)에 대한 목록 관리, 상호 종속 관계 관리, 가변 요소 관리가 총체적으로 수반되어야 하며, 이를 개별적인 툴이나 방법론들의 조합이 아닌 일관된 체제로 지원하는 수단이 필요하다.
일반적으로 소프트웨어 개발에 적용되는 개발 프로세스에서는, UML(Unified Modeling Language)을 통해 소프트웨어 시스템의 아키텍처를 표현하거나 구현 로직을 기술하였다.
UML은 객체 관련 표준화기구인 OMG에서 1997년 11월 객체 모델링 기술(Object Modeling Technique: OMT), OOSE 방법론 등을 연합하여 만든 통합 모델링 언어로서, 객체 지향적 분석 및 설계 방법론의 표준 지정을 목표로 하고 있다. UML을 통하여 요구 분석, 시스템 설계, 시스템 구현 등의 과정에서 생길 수 있는 개발자간의 의사 소통의 불일치를 해소할 수 있다. UML은 모델링에 대한 표현력이 강하고 비교적 모순이 적은 논리적인 표기법을 가진 언어라는 장점이 있다. 따라서 개발자 간의 의사 소통이 쉬워지며 생략되거나 불일치되는 모델링 구조에 대한 지적도 용이하고, 개발하려는 시스템 규모에 상관없이 모두 적용 가능하다.
현재 UML 규약은 가변 요소의 표현에 미흡하며, 클래스나 모듈 단위가 아닌 컴포넌트 단위 처리는 고려되지 않고 있다. 이로 인해, 소프트웨어 제품 라인의 궁극적인 목표인 복합(composition)과 환경 설정(configuration)을 통한 소프트웨어 제품 개발을 지원하기 위한 실제적인 기술은 구체적인 형태로 제시되지 못하는 문제점이 있었다.
본 발명은 상기한 문제점을 개선하기 위해 고안된 것으로, 본 발명이 해결하고자 하는 과제는 컴포넌트 기반 소프트웨어 개발(Component-Based Software Development: CBSD)를 기반으로 하는 소프트웨어 개발 방법론을 근간으로, 컴포넌트 모델을 통해 소프트웨어 제품 라인 운용이 가능케 하는 소프트웨어 제품 관리 시스템과 방법을 제공하는 것이다.
본 발명의 또 다른 과제는 컴포넌트 기반 소프트웨어 개발의 중심이 되는 새로운 컴포넌트 모델을 기반으로 하여 특성 관리로부터 환경 설정 변수 설정을 모두 포함하는 개발 방법과 시스템을 제공하는 것이다.
본 발명의 또 다른 과제는 소프트웨어 플랫폼을 컴포넌트 모델로 관리하고, 동시에 컴포넌트 모델을 기반으로 제품 라인 운용이 가능한 시스템과 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 시스템은, 소프트웨어 제품의 특성에 대한 목록을 관리하는 소프트웨어 제품 관리 모듈과, 특성에 대응하는 컴포넌트에 대한 목록을 관리하는 소프 트웨어 플랫폼 관리 모듈과, 특성에 대응하는 컴포넌트의 환경 설정 변수들을 특정값으로 설정하는 소프트웨어 플랫폼 환경 설정 모듈 및 환경 설정 변수에 따른 엘리먼트 변수의 동기화를 처리하며 물리적 요소를 관리하는 소프트웨어 자산 관리 모듈을 포함한다.
상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법은, 신규 제품을 추가하는 단계와, 신규 제품에 대응되는 특성 세트를 구성하는 단계와, 특성 세트에 따라 환경 설정 변수 세트를 구성하는 단계와, 환경 설정 변수에 대응되는 컴포넌트 세트를 구성하는 단계 및 환경 설정 변수에 따라 엘리먼트 변수 세트를 구성하는 단계를 포함한다.
상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법은, 제품 타입을 선택하는 단계와, 제품의 환경 설정을 로드하는 단계와, 환경 설정에 따라 컴포넌트를 결정하는 단계 및 환경 설정에 따라 엘리먼트 변수와 동기화하여 엘리먼트 변수를 설정하는 단계를 포함한다.
상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법은, 소프트웨어 플랫폼 구성을 대표하는 최상위 컴포넌트를 연동시켜 구문을 작성하는 단계와, 최상위 컴포넌트에 포함된 모든 환경 설정 변수들에 설정값이 지정되었는지 판단하는 단계와, 환경 설정 변수를 갱신하는 단계와, 환경 설정 변수에 따라 기능 수준 컴포넌트가 빌드 수준 컴포넌트에 매핑되는지 검토하는 단계와, 기능 수준 컴포넌트와 빌드 수준 컴포넌트의 매핑을 갱신하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 대규모 소프트웨어 자산을 컴포넌트 단위로 관리하면서, 컴포넌트의 조합 및 가변성 연계를 통해 소프트웨어 아키텍처를 체계적으로 관리할 수 있는 장점이 있다. 이를 위해 내부 구성 정보는 컴포넌트 모델을 통한 일관된 관점으로 통제가 이루어지며, 상위 및 하위에 각각 특성과 구현체 정보를 연동함으로써, 소프트웨어 개발 전 과정을 함께 통합하는 관리 시스템 구성이 가능해진다.
둘째, 다양한 가전제품 소프트웨어들은 해당 제품군이 가지는 공통부와 개별 제품이 가지는 가변부 특성에 따라 각각의 컴포넌트 세트를 가진다. 이로써 소프트웨어 플랫폼의 아키텍처는 전 품종의 소프트웨어 제품 생성이 가능하도록 체계적인 시스템으로 구성되어야 하며, 본 발명이 제시하는 방안에 따라 전사적인 규모의 협업과 재활용성을 증진시킬 수 있는 장점도 있다.
셋째, 주요 소프트웨어 설계 툴이 제공하는 소프트웨어 설계 정보와 결합하여, 소프트웨어 플랫폼을 제품 라인 아키텍처 기반으로 관리함으로써 개발 생산성과 효율성이 증대되는 장점도 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있 을 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법을 설명하기 위한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또 는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
한편, 본 발명에 대한 설명을 용이하게 하기 위하여 본 발명과 관련된 기본적인 개념을 정의하도록 한다.
특성(Feature)이란, 특정 제품에 대한 요구사항 또는 특성을 의미한다. 대개는 기능적 측면에 대한 요구사항으로 볼 수도 있으나, 성능, 품질과 같은 비기능적인 요인도 특성 항목으로 표현될 수 있다.
환경 설정 변수(Configuration Variable)란 컴포넌트 모델로 기술된 소프트 웨어 플랫폼 구성에 있어서 가변성을 표현하기 위해 사용된 변수로서, 실제 물리적인 코드에서 사용된 변수와 동일한 변수명으로 표현될 수 있다.
엘리먼트 변수(Element Variable)란 실제 물리적인 소스에 사용된 변수를 의미한다.
가변 요소(Variation Point)란 소프트웨어 제품을 구성하는데 있어 가변적인 특성 또는 해당 특성이 존재하는 부분을 의미한다.
소프트웨어 제품은 수많은 물리적인 소스 코드와 빌드 스크립트, 라이브러리 등으로 구성된다. 컴포넌트(Component)는 물리적인 코드 파일이나 스크립트, 또는 디렉토리 단위 자체를 나타내는 것이 아니라, 기능적 측면에서 분할된 단위이다. 따라서, 여러 개의 디렉토리가 하나의 컴포넌트가 될 수 있고, 하나의 소스코드가 하나의 컴포넌트로 규정될 수도 있다.
단위 컴포넌트를 원시 컴포넌트(Primitive Component)라고 하며, 이들 원시 컴포넌트들을 조합하여 복합 컴포넌트(Composite Component)를 구성할 수 있다.
컴포넌트 간의 연결 관계를 기술함에 있어서, 특정 컴포넌트가 제공하는 기능들은 제공 인터페이스(Provide Interface)로 표현하고, 특정 컴포넌트가 다른 컴포넌트의 기능을 사용할 경우는 요청 인터페이스(Require Interface)로 표현한다. 본 발명의 컴포넌트 모델에서는 각각 ip / ir 접두사를 사용하여 제공 / 요청 인터페이스를 구분 표기하고 있다.
소프트웨어 제품 자체는 내부에 원시 컴포넌트와 하위 복합 컴포넌트들을 가지는 가장 큰 규모의 최상위 복합 컴포넌트라고 할 수 있다. 이를 근원 복합 컴포 넌트(Root Composite Component)라고 지칭한다.
컴포넌트 기술 언어(Component Description Language: CDL)란 컴포넌트 구성을 기술하기 위한 규정을 의미한다. 원시 컴포넌트의 경우는 제공 / 요청 인터페이스 정보로 표현되나, 복합 컴포넌트의 경우 하위 컴포넌트 상호 연결 관계 및 환경 설정 변수 정보 등이 추가로 표현된다.
모든 원시 컴포넌트들이 제공하는 제공 인터페이스들은 실제 어떠한 기능(function)들을 포함하는지 상세 내역을 기술하여야 하며, 이들 정보들이 인터페이스 기술 언어(Interface Description Language: IDL)에 표현된다.
기능 수준 컴포넌트 구성이 CDL에 의해 표현된다면, 각 컴포넌트들의 실제 구현정보는 빌드 수준 컴포넌트 기술 언어(Build-Level Component Description Language: BCDL)를 통해 표현된다. BCDL은 특정 컴포넌트 구현을 위한 소스, 라이브러리, 빌드 정보 등을 포함하고 있다.
소프트웨어 개발을 설계(Design)와 구현(Implementation)으로 크게 나누었을 때 설계 단계의 컴포넌트를 기능 수준 컴포넌트(Function-level Component: FLC)라 하고, 구현 단계의 컴포넌트를 빌드 수준 컴포넌트(Build-Level Component: BLC)라 한다.
이하 컴포넌트 모델을 기반으로 소프트웨어 제품 라인 운용을 수행하기 위한 기본 구성부터 살펴본다.
도 1 내지 도 4는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 가변 요소를 나타낸다.
컴포넌트 모델에서 가변 요소는 특정 컴포넌트의 가변성을 표현하기 위해 정의된다. 바람직한 컴포넌트의 가변성은 "OPTION"과 "SWITCH"로 분류된다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 "OPTION" 가변성이 적용된 경우를 나타낸다.
"OPTION"은 복합 컴포넌트 내의 하위 컴포넌트에 대해 선별적으로 포함 여부를 설정하기 위한 방법이다. 즉, 소프트웨어 제품 구성에 포함될 지의 여부를 특정 변수를 통해 기술하는 것이다.
도 1은 다른 컴포넌트가 제공하는 기능을 요청하는 요청 인터페이스를 가지는 컴포넌트가 "OPTION" 설정되어, 경우에 따라 포함되거나 제외될 수 있음을 의미한다.
도 2에서는 제공 인터페이스를 가지는 컴포넌트가 "OPTION" 설정된 경우로서, 이 때에는 이 컴포넌트를 요청하고 있는 다른 컴포넌트가 묵시적으로 "OPTION" 설정이 되도록 한다. 즉, 제공 인터페이스와 연결되지 않는 요청 인터페이스는 존재 의미가 없으며, 결과적으로 해당 요청 인터페이스를 가지는 컴포넌트 역시 존재할 수 없기 때문이다. 각 도면에서와 같이 "OPTION"의 표기법은 해당 컴포넌트 주변의 외곽선을 점선 처리하는 것으로 규정한다.
도 3은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 "SWITCH" 가변성이 적용된 경우를 나타낸다.
"SWITCH"는 두 개 이상의 제공 인터페이스 중 설정에 따라 오직 하나만이 요청 인터페이스와 연결되도록 하기 위한 것으로, 동일한 기능을 상이하게 구현한 컴 포넌트들을 취사 선택할 수 있는 구성 방법이다. 이 때에는 선택된 컴포넌트 이외의 나머지 컴포넌트들이 묵시적으로 제외되어야 하므로, "SWITCH"로 연결된 제공 컴포넌트들은 이미 "OPTION" 설정까지 함께 설정된 것으로 취급한다. "SWITCH"의 표기법은 도면에서와 같이 규정한다.
도 4는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 "OPTION"과 "SWITCH" 가변성이 모두 적용된 경우를 나타낸다.
"OPTION"을 표현하기 위한 컴포넌트 모델의 기술 방식은 각 도면에서와 같이, 아래 형식의 구문으로 규정한다.
contains {
[component] optional on [condition] ;
...
}
"SWITCH"를 표현하기 위한 컴포넌트 모델의 기술 방식은 각 도면에서와 같이, 아래 형식의 구문으로 규정한다.
connects {
connect [interface] to switch {
[interface] on [condition],
[interface] on [condition], ...
} ;
}
상술한 바와 같이 "OPTION"은 복합 컴포넌트를 구성함에 있어 특정 컴포넌트의 포함 여부를 나타내며, "SWITCH"는 컴포넌트 인터페이스를 연결함에 있어 조건에 따른 설정을 나타낸다. contains 및 connects 구문은 컴포넌트 모델을 기술하는 컴포넌트 기술 언어(Component Description Language: CDL) 요소로서, 하위 컴포넌트 목록 기술과 컴포넌트간 인터페이스 연결 관계를 기술하기 위한 구문 블록을 나타낸다. [condition]은 가변성에 대응될 변수와 설정 가능한 값의 쌍으로서, [변수 = 값] 형식으로 표현된다.
도 5 내지 도 10은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 가변성 매핑을 나타낸다.
가변 요소는 컴포넌트가 가지는 가변성 속성을 컴포넌트 모델에 표현하기 위해 특정 변수로 기술된다. 컴포넌트는 여러 개의 조합을 통해 복합 컴포넌트를 생성할 수 있으며, 이 경우 내부에 포함되는 컴포넌트들의 변수들이 복합 컴포넌트를 통해 표현될 수 있어야 한다.
하위 컴포넌트의 가변 요소들을 상위 컴포넌트의 가변 요소로 연동시키는 것을 가변성 매핑이라고 하며, 이는 하위 컴포넌트들의 가변성을 각각 다양한 설정으로 묶어 상위 컴포넌트를 통한 일괄 가변성 설정이 보다 용이하게 하기 위한 방법이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 복합 컴포넌트간의 계층 구조에 따라, 내부의 가변 요소가 가변성 매핑을 통해 외부로 표현되는 방식을 나타낸다.
근원 복합 컴포넌트인 T5는 하위에 두 개의 복합 컴포넌트 L과 M을 포함하며, L과 M 컴포넌트는 각각 "SWITCH"와 "OPTION" 가변 요소를 가진다. T5의 환경 설정-변수 구문 블록 내에서는 가변성 매핑을 통해 하위의 VAR1과 VAR2 변수들을 각각 T5_VAR1과 T5_VAR2로 연동시키고 있으며, 이로써 T5에서 이루어지는 가변 요소 설정이 하위 컴포넌트들에게도 전파되는 구조가 생성된다.
가변성 매핑을 통해 하위 컴포넌트들의 가변 요소를 상위 컴포넌트로 연동시키는 것을 "가변성 위임(Variability Delegation)"이라고 하며, 계층적 구조로 매핑 관계가 구성된 최상위 가변 요소의 설정으로 하위 가변 요소 설정이 이루어지는 것을 "환경 설정 전파(Configuration Propagation)"로 지칭한다.
변수에 의한 매핑(Map by Variable)에 의하여 가변성 매핑을 수행하기 위한 컴포넌트 모델의 기술 형식은 아래와 같다.
configuration-variables {
[delegation variable] represents [variable1, variable2, ...];
...
}
값에 의한 매핑(Map by Value)에 의하여 가변성 매핑을 수행하기 위한 컴포넌트 모델의 기술 형식은 아래와 같다.
configuration-variables {
[delegation variable] values (
[value_A] represents [variable1 = value _1-1, variable2 = value _2-1, ...],
[value _B] represents [variable1 = value _1-2, variable2 = value _2-2, ...],
...
) ;
}
도 7 및 도 8은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 변수에 의한 매핑 형식에 의한 가변성 매핑을 나타낸다.
이는 하위 컴포넌트의 가변 요소에 설정 가능한 값들을 그대로 상위 가변 요소로 표현하는 것으로, 예제에서 T6_VAR1은 별도로 설정 가능한 값을 기술하지 않았으나 A_VAR1과 같이 on 또는 off로의 설정이 가능함을 나타낸다. 변수에 의한 매핑에 있어서 1:n 매핑은 n개의 하위 변수들이 모두 동일한 설정 가능 값을 가지는 경우에만 허용된다. 예제에서 T7_VAR2는 B_VAR1, B_VAR2, B_VAR3가 모두 on 또는 off 설정으로만 가능하기에 매핑이 가능한 경우이다.
도 9는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 값에 의한 매핑 형식에 의한 가변성 매핑을 나타낸다.
이는 하위 컴포넌트들의 설정 가능한 값이 다르더라도 개별적인 설정값을 기술함으로써, 1:n 매핑이 가능토록 하기 위한 표현 방식이다. 예제에서 T8_VAR1과 T8_VAR2는 각각 하위 변수들이 상이한 설정값이 되도록 조합된 결과를 제공해 준다.
도 10은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 복수개의 하위 컴포넌트에 존재하는 가변 요소들을 자유롭게 매핑 가능함을 보여주는 값에 의한 매핑 예제이다.
도 11 내지 도 13은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 특성 매핑 계층을 나타낸다.
소프트웨어 제품의 요구사항 또는 특성은 특성으로 기술되고, 이들 특성들은 소프트웨어 제품마다 상이한 구성과 조합을 가지므로 별도의 관리가 필요하다. 특성들간에는 상호 배타적이거나 또는 공존 가능한 항목들도 존재할 수 있으며, 이러한 특성을 소프트웨어 제품별로 분류하여 기술하고 관리할 수 있는 체계가 필요하다.
소프트웨어 제품에 따른 가변성을 표현함에 있어서, 컴포넌트 모델 내부의 환경 설정 변수만을 이용하지 않고 별도로 한 단계 추상화시킨 특성 개념을 도입하는 것은, 실제 코드를 참조하지 않더라도 요구사항 수준에서의 선택과 조합이 가능토록 하기 위함이다.
특성 목록의 설정에 의해 컴포넌트 모델의 대응되는 환경 설정 변수들도 설정값이 결정된다. 이어서 환경 설정 변수의 설정에 따라 실제 코드 내에 존재하는 엘리먼트 변수들의 설정도 이루어지게 되는데, 이와 같은 연동(매핑) 관계를 파악할 수 있어야 제품에 대한 환경 설정이 가능할 것이다.
도 11은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 특성, 환경 설정 변수, 엘리먼트 변수 간의 계층적인 매핑 구조를 나타낸 다.
매핑에 있어서의 적용 규칙은 다음과 같다.
(1) 특성은 소프트웨어 제품의 요구사항 및 특성을 표현하는 요소이다.
(2) 함축적인 내용을 표현하는 특성은 보다 상세한 내용을 기술하는 특성 혹은 특성 세트와 매핑이 가능하다.
(3) 환경 설정 변수는 컴포넌트 모델 내부에 기술되어, 가변성에 따른 컴포넌트 처리 규칙을 표현하는 요소이다.
(4) 특성은 다수의 환경 설정 변수와 연동될 수 있다.
(5) 하나의 환경 설정 변수는 다수의 특성에 연결될 수 있으며, 이 경우 다양한 설정값을 가지게 됨을 의미한다.
(6) 환경 설정 변수는 컴포넌트 구성에 따라, 상위 복합 컴포넌트와 하위 컴포넌트간 가변성 위임 관계에 의해 1:n 매핑이 가능하다.
(7) 엘리먼트 변수는 실제 소스 내에 기술되는 변수로서, 최종 환경 설정 변수와 1:1 매핑이 되어야 한다. 이는 환경 설정 변수의 설정값이 그대로 엘리먼트 변수의 설정값으로 연동되는 환경 설정 전파의 수행을 위해 필요하다.
(8) 엘리먼트 변수 명칭이 환경 설정 변수 명칭과 동일할 수는 있으나 강제 조건은 아니다. 상이한 경우에는, 환경 설정 변수와 엘리먼트 변수간 연동 정보를 추가 관리하도록 한다. 상호 매핑 관계에 있는 엘리먼트 변수와 환경 설정 변수간에 상이한 명칭을 허용하는 것은, 컴포넌트 모델에 기술될 환경 설정 변수를 의미와 활용목적에 따라 표현력을 향상시키기 위함이다.
이와 같이 소프트웨어 제품 라인 운용 시스템 구성을 위해, 특성, 환경 설정 변수, 엘리먼트 변수의 개념 구분을 두는 것은 소프트웨어 제품 개발에 관여하는 다양한 측면에서의 가변성 처리를 지원하기 위함이다. 특성은 사용자 또는 제품 라인 엔지니어 측면의 요구사항이 보다 부각된 요소로서 요구사항 분석 단계와 밀접한 관련이 있고, 환경 설정 변수는 컴포넌트 모델을 다루는 아키텍트 또는 개발 엔지니어 측면의 구조설계 단계와 밀접한 관련이 있으며, 마지막으로 엘리먼트 변수는 실제 구현 단계와 관련이 있다. 따라서, 소프트웨어 개발 전 단계에 걸쳐서 추상적인 레벨로부터 구현에 이르는 레벨까지, 가변성의 연계성이 일관되게 유지될 수 있게 된다.
도 12는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 특성 리스트와 제품에 따른 각 특성의 적용 여부를 분류하는 데이터 구조를 나타낸다.
소프트웨어 제품 라인 운용 절차에 있어서 제품에 따른 환경 설정 설정의 자동화를 지원하기 위해서는, 제품 타입 선택에 따라 특성 조합이 자동 반영되도록 연동되어 있어야 한다.
도 13은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 컴포넌트 모델 내에서 각 특성을 표현할 수 있도록 대응되는 환경 설정 변수 리스트의 데이터 구조를 나타낸다.
환경 설정 변수 목록은 근원 복합 컴포넌트로부터 점차적으로 하위 레벨의 컴포넌트에 포함되는 환경 설정 변수들로 분류하여 나열하고, 각 환경 설정 변수는 기본적으로 하나의 특성에 연동되어야 한다.
예제 구성에서는 두 개 이상의 특성에 연동되는 환경 설정 변수의 사례를 보여주고 있는데, 성격에 따라 두 가지 분류가 가능하다.
(1) 상이한 설정값을 지정하기 위한 환경 설정 변수: 다른 환경 설정 변수와 매핑 관계가 없는 두 개 이상의 특성과 연동된 환경 설정 변수.
(2) 가변성 위임 목적의 환경 설정 변수: 이미 다른 환경 설정 변수와 매핑 관계가 있는 두 개 이상의 특성과 연동된 환경 설정 변수.
이미 개별적으로 환경 설정 변수에 매핑되어 있는 두 개 이상의 특성에 연동되는 것은 가변성 위임에 의해 하위의 여러 환경 설정 변수 조합을 대표하기 위한 용도로 정의된 상위 변수며, 이들 변수에 설정되는 값들은 각 제품 구성 내에서 개별 특성에 연동된 하위 변수들의 설정값들과 매핑 되어 있다. 즉, GWES_LANGUAGE_세트는 각각 F23, F24, F25, F26에 연동된 LANGUAGE_EN_SUPPORT, LANGUAGE_CN_SUPPORT, LANGUAGE_FR_SUPPORT, LANGUAGE_KR_SUPPORT 변수들의 설정값의 조합을 나타내게 되며, 그 중 "domestic" 값은 제품 T1과 T4에 공통적으로 설정된 LANGUAGE_EN_SUPPORT = on, LANGUAGE_CN_SUPPORT = off, LANGUAGE_FR_SUPPORT = off, LANGUAGE_KR_SUPPORT = on 구성을 대표하는 값으로 해석되어진다.
이에 비해, DMB_타입은 F2(Support DMB signal of Satellite) 혹은 F3(Support DMB signal of Satellite) 특성 가운데 하나의 설정값을 담기 위한 환경 설정 변수로서, 상호 배타적으로 설정되어야 할 환경 설정 변수의 수를 감소시키는 효과가 있다.
이와 같은 방식으로 특성과 환경 설정 변수의 매핑 테이블을 작성하는 것으로, 컴포넌트 모델 내에 가변성 위임 구문 구성은 자동 처리될 수 있다.
도 14 내지 도 16은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 제품 환경 설정을 나타낸다.
기능 수준 컴포넌트로 구성된 컴포넌트 모델의 구성에 있어서, 실제 제품의 구현체를 생성하기 위한 단계에서는 각 기능 수준 컴포넌트를 어떠한 빌드 수준 컴포넌트가 구현하는지가 결정되어야 한다. 이는 동일한 인터페이스를 제공하는 컴포넌트라 하더라도, 실제 구현은 상이하게 존재할 수 있기 때문이다. 또한, 근원 복합 컴포넌트에 포함된 환경 설정 변수에 대해, 어떠한 설정값을 적용할지도 결정되어야 한다.
특성 세트에 의해 관리되는 제품의 특성들은, 컴포넌트 모델에 있어서의 환경 설정 변수 설정으로 이어지고, 최종적으로는 소스에 존재하는 가변 요소 설정으로 연계된다.
도 14는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 기능 수준 컴포넌트를 실제 구현체인 빌드 수준 컴포넌트 목록 정보와 연계하여 관리하기 위한 데이터 구조를 나타낸다.
빌드 수준 컴포넌트는 각각 고유의 소스 ID로서 구분되며, 구현 대상 기능 수준 컴포넌트 명칭, 빌드 수준 컴포넌트 명칭, 소스 위치, 소스 사용 가능성 정보와 연결되어 있다. 특히, 소스 가능성은 해당 위치의 소스가 현재 개발 중인지 혹은 개발 완료 상태인지를 구분하여, 완료된 상태의 코드만을 이용할 수 있도록 하 기 위해 포함되었다. 도 14에서 locked는 개발 중이어서 사용이 제한됨을 나타내며, unlocked는 개발 완료되어 사용 가능함을 나타낸다.
소프트웨어 플랫폼을 구성하는 근원 복합 컴포넌트로부터 제품 생성을 위한 조건 설정 및 대상 구현 코드를 설정하는 제품 환경 설정 언어의 구문 규칙은 다음과 같다.
product [product name] derived from [platform name]
{
configuration - settings
{
[configuration variable] = [value];
...
}
mappings
{
[sub primitive component] uses [BLC for sub component];
...
}
}
configuration-settings 구문 블록을 통해 근원 복합 컴포넌트에 포함된 환경 설정 변수들의 설정값을 결정하고, mappings 구문 블록을 통해 최하위 각 원시 컴포넌트들의 구현체인 빌드 수준 컴포넌트를 선택하여 지정하도록 한다.
도 15 및 도 16은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 MP3 소프트웨어 플랫폼에 대한 제품 환경 설정을 기술하는 예제이다.
도 15는 근원 복합 컴포넌트에 기술된 환경 설정 변수가 직접적으로 제품 선택이 가능한 단계까지 위임이 된 경우로서, 제품 환경 설정 구문에서는 DEVICE_TYPE 변수의 설정값을 결정하는 것만으로 제품 선택이 완료된다.
도 16은 근원 복합 컴포넌트인 MP3P 컴포넌트에 포함된 환경 설정 변수들이 하위 컴포넌트들로부터의 변수들을 별도의 집합으로 묶지 않고 1:1로 위임하고 있는 경우이다. 예제에서와 같이 각 환경 설정 변수들의 설정값은 제품에 따라 상이하게 각각 결정된다.
도 17은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 시스템(100)에 대한 블록도이다.
본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 시스템(100)은 소프트웨어 자산 관리 모듈(110), 가변 요소 환경 설정 모듈(120), 컴포넌트 언어 기술자 모듈(130), 제품 환경 설정 언어 기술자 모듈(140), 컴포넌트 관리 모듈(150), 소프트웨어 플랫폼 환경 설정 모듈(160), 소프트웨어 플랫폼 관리 모듈(170) 및 소프트웨어 제품 관리 모듈(180)을 포함한다.
소프트웨어 자산 관리 모듈(110)은 소프트웨어 플랫폼을 구성하는 물리적 요소(source code files, build script files)에 대한 전반적인 관리를 담당하는 모 듈이다. 코드 목록 관리, 코드 변경 내역을 위한 버전 관리, 코드 위치 정보에 대한 directory 관리 등을 수행하여, 컴포넌트 모델에 따라 생성될 각 컴포넌트와 대응되는 파일의 추적 및 가변 요소의 위치 정보를 관리하는 기능을 수행한다.
소프트웨어 자산 관리 모듈(110)은 제품 환경 설정이 실행될 때 환경 설정 변수 설정에 따른 엘리먼트 변수의 동기화 처리, 제품 환경 설정 언어로 기술된 기능 수준 컴포넌트-빌드 수준 컴포넌트 매핑 정보에 따른 적정 빌드 수준 컴포넌트 코드를 저장소로부터 제공하는 기능이 포함된다.
가변 요소 환경 설정 모듈(120)은 컴포넌트 모델에 기술된 가변 요소를 실제 소스 코드 및 빌드 스크립트에 존재하는 변수와 동기화 설정을 담당하는 모듈이다.
이를 위해 소프트웨어 자산 관리 모듈(110)이 파악하고 있는 가변 요소 위치에서 설정값 변경을 수행하게 되며, 설정 변경 내역은 현재 시점의 가변 요소 설정값으로 유지한다.
컴포넌트 언어 기술자 모듈(130)은 컴포넌트 모델을 기술하기 위한 컴포넌트 기술 언어 처리를 담당하는 모듈이다. 기본적으로 원시 컴포넌트 및 복합 컴포넌트의 구성 정보를 포함하며, 가변 요소에 대응하는 변수를 정의하는 구문 형식을 지원한다.
가변 요소가 포함된 복합 컴포넌트에 있어서 표현되는 구문 블록의 목록은 아래와 같다.
contains: 복합 컴포넌트가 내부에 포함하는 하위 컴포넌트 목록.
provides: 컴포넌트의 제공 인터페이스. 복합 컴포넌트의 경우는 하위 컴포 넌트들로부터 제공되는 제공 인터페이스들의 목록.
requires: 컴포넌트의 요청 인터페이스. 복합 컴포넌트의 경우는 하위 컴포넌트들로부터의 요청 인터페이스들의 목록.
connects: 제공/ 요청 인터페이스간의 연결 관계 기술.
configuration-variables: 가변 요소에 대응될 변수와 값 목록 기술.
상위 복합 컴포넌트는 하위 컴포넌트들로부터 설정이 위임된 환경 설정 변수에 대한 위임 변수를 가지며, 이들 가운데 근원 복합 컴포넌트의 위임 변수들의 설정으로 소프트웨어 제품의 환경 설정 작업이 이루어진다. 즉, 위임 변수 설정에 따라서 연동관계에 있는 하위 환경 설정 변수들의 설정값이 계층적으로 결정되게 된다.
제품 환경 설정 언어 기술자 모듈(140)은 소프트웨어 플랫폼 환경 설정 모듈(160)에 의해 관리되는 제품 타입별로 관련된 환경 설정 변수의 설정값 목록을 기술하는 기능을 담당한다.
상위 복합 컴포넌트는 하위 컴포넌트들로부터 설정이 위임된 환경 설정 변수에 대한 위임 변수를 가지며, 이들 가운데 근원 복합 컴포넌트의 위임 변수들의 설정으로 소프트웨어 제품의 환경 설정 작업이 이루어진다. 즉, 위임 변수 설정에 따라서 연동관계에 있는 하위 환경 설정 변수들의 설정값이 계층적으로 결정되게 된다.
제품 환경 설정 언어 기술자 모듈(140)에 의해 기술되는 구문 형식은 상술한 바와 같이, 컴포넌트 모델에 있어서 소프트웨어 플랫폼을 표현하는 근원 복합 컴포 넌트로부터 파생되는 제품 목록을 기술하는 형태이다. 각 제품 구문은 환경 설정 변수의 설정값과 기능 수준 컴포넌트-빌드 수준 컴포넌트 연결 관계를 설정한다.
제품 환경 설정을 위한 구문 블록의 목록은 다음과 같다.
configuration-settings: 특정 제품에 대한 환경 설정 변수의 설정값 선택 기술.
mappings: 하위 컴포넌트 각각에 대해 실제 구현정보를 담고 있는 빌드 수준 컴포넌트를 선택 기술.
소프트웨어 플랫폼을 컴포넌트 모델로 재구성하게 되면, 소프트웨어 플랫폼의 구성 정보는 컴포넌트와 환경 설정 변수들의 조합으로 표현된다.
컴포넌트 관리 모듈(150)은 컴포넌트 모델의 유지 및 변경관리를 담당하여, 컴포넌트를 기술하기 위한 CDL, IDL, BCDL의 구성 요소 변경을 추적하여 컴포넌트 모델에 반영시킨다. 변경되는 컴포넌트 모델의 구성 내용은 컴포넌트 언어 기술자 모듈(130)를 통해 기술된다.
소프트웨어 플랫폼 환경 설정 모듈(160)은 특성 세트의 설정에 따라, 대응되는 컴포넌트 모델에 포함된 환경 설정 변수들을 특정값으로 설정하는 기능을 담당한다.
가변 요소 환경 설정 모듈(120)이 물리적인 코드 및 build script 등에 존재하는 엘리먼트 변수들의 설정값을 담당하는데 비해, 소프트웨어 플랫폼 환경 설정 모듈(160)은 컴포넌트 모델 기술에 나타나는 환경 설정 변수들의 설정값을 담당하는 기능상의 차이점을 가진다.
소프트웨어 플랫폼 환경 설정 모듈(160)을 통해 생성 및 관리되는 도 15 및 도 16과 같은 제품 환경 설정 기술들은, 소프트웨어 제품 관리 모듈(180)로부터의 환경 설정 수행에 연계되는 작업의 세부 정보를 제공해 주게 된다.
소프트웨어 플랫폼 관리 모듈(170)은 소프트웨어 플랫폼 내에서 특정 특성에 대응되는 컴포넌트 정보를 파악함으로써, 특성 세트와 컴포넌트 세트 목록 정보를 유지 관리하는 기능을 제공하는 모듈이다. 근원 복합 컴포넌트의 컴포넌트 기술 언어(CDL)는 contains 구문 블록과 connects 구문 블록 내에 환경 설정 변수를 포함하고 있으며, 이들 변수들은 특정 특성과 1:1 혹은 n:n 관계로 연동될 수 있다.
신규 특성의 추가로 인해 이와 대응되는 컴포넌트를 새롭게 소프트웨어 플랫폼에 반영 및 확장하는 경우, 소프트웨어 플랫폼 관리 모듈(170)은 특성 세트 확장과 컴포넌트 세트 확장을 실행하고, 컴포넌트 모델 내에 신규 컴포넌트를 추가시킨다. 컴포넌트 모델 상의 변동 정보는 컴포넌트 관리 모듈(150)에 의해 인지되어 처리되므로, 해당 컴포넌트의 구현체(implementation)인 물리적 코드 정보는 소프트웨어 자산 관리 모듈(110)과 함께 저장 및 처리된다.
이를 정리하면 다음과 같은 기능이 소프트웨어 플랫폼 관리 모듈(170)에 의해 제공된다.
(1) 소프트웨어 플랫폼의 특성 및 컴포넌트 세트 연동 정보 관리
(2) 신규 특성에 따른 소프트웨어 플랫폼 확장 관리
(3) 기능 수준 컴포넌트 - 빌드 수준 컴포넌트 연동 정보 관리
도 13과 같은 특성 - 환경 설정 변수 매핑 정보와 도 14와 같은 기능 수준 컴포넌트 - 빌드 수준 컴포넌트 매핑 정보가 소프트웨어 플랫폼 관리 모듈(170)에 의해 관리된다.
소프트웨어 제품 관리 모듈(180)은 소프트웨어 제품이 가지게 되는 다양한 특성 목록을 분류하고, 이를 토대로 소프트웨어 플랫폼 내에서 제품에 따른 특성 세트의 설정 정보를 유지 관리하는 기능을 제공하는 모듈이다.
예를 들어, T1, T2, T3와 같은 소프트웨어 제품이 존재한다면, 각 제품 타입에 따른 특성 목록과 특성의 설정값 정보가 저장되어 있게 된다. 새로운 제품 타입으로서 T4가 설정되는 경우는, 소프트웨어 플랫폼 내의 모든 특성 목록 가운데 선택된 특성 세트 및 각 특성의 설정값 정보가 신규로 저장된다.
소프트웨어 제품 관리 모듈(180)은 이렇게 구성된 소프트웨어 제품 설정 정보 목록을 유지 관리하면서, 관리자에 의해 특정 제품 타입이 선택될 경우, 해당 특성 설정값들이 소프트웨어 플랫폼의 컴포넌트 구성 설정에 반영되도록 한다.
도 12와 같은 형태의 특성 세트 정보가 소프트웨어 제품 관리 모듈(180)에 의해 관리된다.
이때, 본 실시예에서 사용되는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성 요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 모듈들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
도 18은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 신규 제품 추가시 소프트웨어 플랫폼 아키텍처 성립 방법을 나타내는 시퀀스 다이어그램이다.
신규 제품을 추가하는 경우, 소프트웨어 제품 관리 모듈(180)은 제품 타입을 추가한다(S201). 신규 제품에 필요한 특성 조합을 위하여, 소프트웨어 제품 관리 모듈(180)은 대응되는 특성이 존재하는지 판단한 후, 존재하지 않는 경우 특성 세트를 확장한다(S202). 소프트웨어 제품 관리 모듈(180)은 기존 특성 테이블과 신규 특성 아이템을 조합하여 해당 제품이 갖추어야 할 특성 세트를 구성한다(S203).
소프트웨어 플랫폼 관리 모듈(170)은 소프트웨어 제품 관리 모듈(180)이 관리하는 특성 세트의 변경에 따라, 특성과 환경 설정 변수간의 매핑 테이블을 갱신하여 환경 설정 변수 세트를 구성한다(S204). 새로운 특성에는 컴포넌트 모델에 포함시킬 환경 설정 변수가 추가되어 매핑되어야 하고, 제품 별로 상이한 설정값에 대해 규정되어야 한다. 따라서, 소프트웨어 플랫폼 관리 모듈(170)은 대응되는 컴 포넌트에 대하여 환경 설정 변수 세트를 구성하고(S205), 대응되는 컴포넌트가 존재하지 않는 경우, 컴포넌트 세트를 확장한다(S206).
소프트웨어 플랫폼 관리 모듈(170)에 의해 갱신된 환경 설정 변수 테이블에 따라, 소프트웨어 플랫폼 환경 설정 모듈(160)은 제품 환경 설정을 갱신하여(S207), 제품 환경 설정 언어 기술자 모듈(140)을 이용하여 구문 처리를 수행한다. 이는 개별 제품 별로 어떠한 환경 설정 변수 설정값과 기능 수준 컴포넌트-빌드 수준 컴포넌트 매핑이 이루어지게 되는지를 결정한 정보를 관리하기 위함이다.
컴포넌트 관리 모듈(150)은 갱신된 환경 설정 변수 테이블에 따라, 어떠한 컴포넌트가 환경 설정의 영향을 받게 되는지, 컴포넌트 모델 내에서 어떠한 구조로 환경 설정 변수와 매핑 되는지를 판단한다. 이를 근거로 환경 설정 변수를 갱신하고(S208), 컴포넌트 모델을 갱신하여(S209) 컴포넌트 언어 기술자 모듈(130)을 이용하여 구문 처리를 수행한다. 또한, 가변 요소를 동기화한다(S210).
컴포넌트 모델 갱신 내용에 따라, 가변 요소 환경 설정 모듈(120)은 실제 코드 상에 어느 위치, 어떤 형태로 엘리먼트 변수가 매핑되는지를 확인하여 관리한다. 이를 위해 소프트웨어 자산 관리 모듈(110)과 관리 정보의 동기화가 필요하다. 이에 따라, 가변 요소 환경 설정 모듈(120)은 엘리먼트 변수 세트를 구성한다(S211).
소프트웨어 자산 관리 모듈(110)은 엘리먼트 변수의 위치를 파악하여 설정 전파를 준비하게 된다. 필요에 따라 신규 템플릿 코드를 생성하여 엘리먼트 변수를 위치시킬 수도 있다.
도 19는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 플랫폼 아키텍처 성립 방법을 나타내는 순서도이다.
신규 제품을 추가하는 경우, 제품 타입을 추가한다(S301). 신규 제품에 필요한 특성 조합을 위하여, 대응되는 특성이 존재하는지 판단한다(S302).
대응되는 특성이 존재하지 않는 경우, 특성 세트를 확장한다(S303). 대응되는 특성이 모두 준비되면, 기존 특성 테이블과 신규 특성 아이템을 조합하여 해당 제품이 갖추어야 할 특성 세트를 구성한다(S304).
특성 세트가 변경되면, 특성과 환경 설정 변수간의 매핑 테이블을 갱신하여 환경 설정 변수 세트를 구성한다(S305). 새로운 특성에는 컴포넌트 모델에 포함시킬 환경 설정 변수가 추가되어 매핑되어야 하고, 제품 별로 상이한 설정값에 대해 규정되어야 하므로, 대응되는 컴포넌트에 대하여도 환경 설정 변수 세트를 구성한다. 따라서, 대응되는 컴포넌트가 존재하는지 판단한다(S306).
대응되는 컴포넌트가 존재하지 않는 경우, 컴포넌트 세트를 확장한다(S307). 대응되는 컴포넌트가 모두 존재하면, 컴포넌트 모델을 갱신한다(S308).
컴포넌트 모델 갱신 내용에 따라, 실제 코드 상에 어느 위치, 어떤 형태로 엘리먼트 변수가 매핑되는지를 확인하고 관리하기 위하여 엘리먼트 변수 세트를 구성한다(S309).
엘리먼트 변수의 위치를 파악하여 설정 전파를 준비하게 되면, 신규 제품에 대한 환경 설정 구성이 완료된다(S310).
도 20은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 플랫폼으로부터 특성 세트로 구성된 제품을 선택하여 환경 설정이 적용되는 방법을 나타내는 시퀀스 다이어그램이다.
소프트웨어 제품 관리 모듈(180)을 통해 특정 제품을 선택한다(S401). 이로써, 소프트웨어 플랫폼 환경 설정 모듈(160)이 관리하고 있는 제품 환경 설정 기술어 정보를 로드하여(S402) 이에 따라 처리가 진행된다.
소프트웨어 플랫폼 환경 설정 모듈(160)은 컴포넌트 매핑 세트를 적용하여(S403) 컴포넌트 관리 모듈(150)을 통해 컴포넌트 모델 내의 원시 컴포넌트에 연계될 빌드 수준 컴포넌트를 결정한다(S404).
소프트웨어 플랫폼 환경 설정 모듈(160)은 환경 설정 변수 세트를 적용하고(S405) 컴포넌트 관리 모듈(150)을 통해 컴포넌트 모델 내의 환경 설정 변수들을 특정 값으로 지정하여 가변 요소를 동기화한다(S406).
가변 요소 환경 설정 모듈(120)은 소프트웨어 자산 관리 모듈(110)을 통해, 환경 설정 변수에 매핑된 엘리먼트 변수의 설정값을 대입시킨다(S407).
상술한 과정을 통해 소프트웨어 제품 개발을 위한 코드와 변수 설정이 완료된다. 이 상태에서 바로 제품이 생성될 수도 있으며, 필요에 따라 이를 토대로 수정 및 추가 개발이 이루어질 수도 있다.
도 21은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 플랫폼으로부터 특성 세트로 구성된 제품을 선택하여 환경 설정이 적용되는 방법을 나타내는 순서도이다.
특정 제품을 선택하면(S501), 해당 제품에 대한 환경 설정이 로드된 다(S502). 환경 설정에 따라 기능 수준 컴포넌트-빌드 수준 컴포넌트 매핑이 적용된다(S503). 이때 매핑된 빌드 수준 컴포넌트가 잠긴(locked) 상태인지 검토한다(S504). 매핑된 빌드 수준 컴포넌트가 잠긴 상태일 경우 개발 중이어서 사용이 제한되므로 제품 설정을 중단한다(S505).
매핑된 빌드 수준 컴포넌트가 열린(unlocked) 상태인 경우, 빌드 수준 컴포넌트 소스 자산을 구성하여(S506) 환경 설정 변수를 적용한다(S507).
모든 엘리먼트 변수가 설정되었는지 검토하여(S508), 설정되지 않은 경우 다시 환경 설정 변수를 적용한다(S507). 모든 엘리먼트 변수가 설정된 경우, 제품을 확인한다(S509).
도 22는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 제품의 특성 구성에 따른 제품 환경 설정 기술어를 생성하는 방법을 나타내는 순서도이다.
소프트웨어 플랫폼 구성을 대표하는 컴포넌트 모델 내의 최상위 근원 복합 컴포넌트를 연동시켜 “derived from” 구문을 작성한다(S601).
근원 복합 컴포넌트에 포함된 모든 환경 변수들에 특정 설정값이 지정되는지를 검토한다(S602). 설정값이 미지정된 경우, 환경 설정 변수 테이블을 참조하여(S603) 해당 제품에 부여될 값을 지정한다(S604).
모든 환경 설정 변수의 설정이 완료되면, 환경 설정 세팅 구문 블록을 작성하여 저장한다(S605).
근원 복합 컴포넌트에 포함되는 모든 원시 컴포넌트들이 자신의 구현 정보를 기술하고 있는 기능 수준 컴포넌트가 빌드 수준 컴포넌트와 매핑되는지를 확인한다(S606). 빌드 수준 컴포넌트와 연결되지 않은 기능 수준 컴포넌트의 경우, 기능 수준 컴포넌트-빌드 수준 컴포넌트 매핑 테이블을 참조하여(S607) 해당 제품에 부여될 빌드 수준 컴포넌트를 지정한다(S608).
모든 기능 수준 컴포넌트의 빌드 수준 컴포넌트 매핑이 완료되면, 매핑 구문 블록을 작성하여 저장한다(S609). 작성이 완료된 제품 환경 설정 기술어는 리스트 관리 항목에 추가시킨다(S610).
필요에 따라 다양한 제품 타입에 대한 제품 환경 설정 기술어를 작성하여 관리한다.
도 23은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 다양한 컴포넌트들의 조합으로 구성되는 MP3 플레이어 소프트웨어 플랫폼의 구성을 나타낸다.
각 하위 복합 컴포넌트들은 다시 하위 컴포넌트의 조합으로 구성되어 있으며, OPTION 또는 SWITCH와 같은 가변성이 포함된 것을 확인할 수 있다.
도 24는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 MP3 플레이어 소프트웨어 플랫폼의 환경 설정을 통해 개별정인 소프트웨어 제품이 생성이 가능하도록 플랫폼 아키텍처를 컴포넌트 모델로 기술함에 있어 필요한 환경 설정 변수 분석표를 나타낸다.
특성과 환경 설정 변수 간의 매핑 테이블이 구성되면, 특성 목록을 통해 보다 용이하게 소프트웨어 제품의 구성을 결정할 수 있게 된다.
도 25는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 제품 타입에 따라 각각 상이한 어플리케이션 컴포넌트들이 탑재된 MP3 플레이어 목록을 나타낸다.
어플리케이션 컴포넌트 이외의 HAL 또는 개별 코덱 관련 컴포넌트 정보는 직접 아이콘으로 표시되고 있지 않으나, 제품 타입별로 세부적인 구성 정보까지 차별화하여 관리할 수 있음을 알 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1 및 도 2는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 "OPTION" 가변성이 적용된 경우를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 "SWITCH" 가변성이 적용된 경우를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 "OPTION"과 "SWITCH" 가변성이 모두 적용된 경우를 나타낸다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 복합 컴포넌트간의 계층 구조에 따라, 내부의 가변 요소가 가변성 매핑을 통해 외부로 표현되는 방식을 나타낸다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 변수에 의한 매핑 형식에 의한 가변성 매핑을 나타낸다.
도 9는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 값에 의한 매핑 형식에 의한 가변성 매핑을 나타낸다.
도 10은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 복수개의 하위 컴포넌트에 존재하는 가변 요소들을 자유롭게 매핑 가능함을 보여주는 값에 의한 매핑 예제이다.
도 11은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 특성, 환경 설정 변수, 엘리먼트 변수 간의 계층적인 매핑 구조를 나타낸다.
도 12는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 특성 리스트와 제품에 따른 각 특성의 적용 여부를 분류하는 데이터 구조를 나타낸다.
도 13은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 컴포넌트 모델 내에서 각 특성을 표현할 수 있도록 대응되는 환경 설정 변수 리스트의 데이터 구조를 나타낸다.
도 14는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 기능 수준 컴포넌트를 실제 구현체인 빌드 수준 컴포넌트 목록 정보와 연계하여 관리하기 위한 데이터 구조를 나타낸다.
도 15 및 도 16은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 MP3 소프트웨어 플랫폼에 대한 제품 환경 설정을 기술하는 예제이다.
도 17은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 시스템에 대한 블록도이다.
도 18은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 신규 제품 추가시 소프트웨어 플랫폼 아키텍처 성립 방법을 나타내는 시퀀스 다이어그램이다.
도 19는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 플랫폼 아키텍처 성립 방법을 나타내는 순서도이다.
도 20은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 플랫폼으로부터 특성 세트로 구성된 제품을 선택하여 환경 설정이 적용되는 방법을 나타내는 시퀀스 다이어그램이다.
도 21은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 플랫폼으로부터 특성 세트로 구성된 제품을 선택하여 환경 설정이 적용되는 방법을 나타내는 순서도이다.
도 22는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 소프트웨어 제품의 특성 구성에 따른 제품 환경 설정 기술어를 생성하는 방법을 나타내는 순서도이다.
도 23은 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 다양한 컴포넌트들의 조합으로 구성되는 MP3 플레이어 소프트웨어 플랫폼의 구성을 나타낸다.
도 24는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 MP3 플레이어 소프트웨어 플랫폼의 환경 설정을 통해 개별정인 소프트웨어 제품이 생성이 가능하도록 플랫폼 아키텍처를 컴포넌트 모델로 기술함에 있어 필요한 환경 설정 변수 분석표를 나타낸다.
도 25는 본 발명의 일 실시예에 따른 컴포넌트 기반 소프트웨어 제품 관리 방법에서 제품 타입에 따라 각각 상이한 어플리케이션 컴포넌트들이 탑재된 MP3 플레이어 목록을 나타낸다.
<도면의 주요 부분에 대한 부호의 설명>
100: 컴포넌트 기반 소프트웨어 제품 관리 시스템
110: 소프트웨어 자산 관리 모듈
120: 가변 요소 환경 설정 모듈
130: 컴포넌트 언어 기술자 모듈
140: 제품 환경 설정 언어 기술자 모듈
150: 컴포넌트 관리 모듈
160: 소프트웨어 플랫폼 환경 설정 모듈
170: 소프트웨어 플랫폼 관리 모듈
180: 소프트웨어 제품 관리 모듈

Claims (25)

  1. 적어도 하나 이상의 하드웨어 프로세스를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 시스템에 있어서,
    소프트웨어 제품의 특성에 대한 목록을 관리하는 소프트웨어 제품 관리 모듈;
    상기 특성에 대응하는 컴포넌트에 대한 목록을 관리하는 소프트웨어 플랫폼 관리 모듈;
    상기 특성에 대응하는 상기 컴포넌트의 환경 설정 변수들을 특정값으로 설정하는 소프트웨어 플랫폼 환경 설정 모듈; 및
    상기 환경 설정 변수에 따른 엘리먼트 변수의 동기화를 처리하며 물리적 요소를 관리하는 소프트웨어 자산 관리 모듈을 포함하고,
    상기 모듈은 상기 하드웨어 프로세스에 의해 수행되는, 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  2. 제 1 항에 있어서,
    상기 소프트웨어 플랫폼 환경 설정 모듈이 설정한 특정값의 목록을 기술하는 제품 환경 설정 언어 기술자 모듈을 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  3. 제 1 항에 있어서,
    컴포넌트 모델의 유지 및 변경을 관리하는 컴포넌트 관리 모듈;
    상기 컴포넌트 관리 모듈이 관리하는 컴포넌트에 대한 구성 정보 및 가변 요소에 대응하는 변수 정의를 포함하는 컴포넌트 기술 언어를 처리하는 컴포넌트 언어 기술자 모듈; 및
    상기 가변 요소와 상기 엘리먼트 변수의 동기화 설정을 담당하는 가변 요소 환경 설정 모듈을 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  4. 제 1 항에 있어서,
    상기 컴포넌트는 기능 수준 컴포넌트 및 빌드 수준 컴포넌트를 포함하고,
    상기 소프트웨어 플랫폼 관리 모듈은 상기 특성에 대응하는 상기 기능 수준 컴포넌트와 상기 빌드 수준 컴포넌트의 연동 정보를 관리하며,
    상기 소프트웨어 자산 관리 모듈은 상기 빌드 수준 컴포넌트를 제공하는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  5. 제 1 항에 있어서,
    상기 엘리먼트 변수는 상기 환경 설정 변수와 1:1 매핑이 되어 환경 설정 전파가 수행되는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  6. 제 1 항에 있어서,
    상기 환경 설정 변수는 위임에 의하여 상위 환경 설정 변수와 하위 환경 설정 변수로 구성되는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  7. 제 6 항에 있어서,
    상기 상위 환경 설정 변수와 상기 하위 환경 설정 변수는 상기 컴포넌트의 구성에 따라 상기 컴포넌트 간의 가변성 위임 관계에 의하여 1:n 매핑이 되는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  8. 제 3 항에 있어서,
    상기 가변 요소는 특정 컴포넌트가 포함될지를 결정하는 "OPTION" 및 인터페이스를 선택하는 "SWITCH"를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 시스템.
  9. 신규 제품을 추가하는 단계;
    상기 신규 제품에 대응되는 특성 세트를 구성하는 단계;
    상기 특성 세트에 따라 환경 설정 변수 세트를 구성하는 단계;
    상기 환경 설정 변수에 대응되는 컴포넌트 세트를 구성하는 단계; 및
    상기 환경 설정 변수에 따라 엘리먼트 변수 세트를 구성하는 단계를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  10. 제 9 항에 있어서,
    상기 엘리먼트 변수 세트를 구성하는 단계는 상기 환경 설정 변수에 따라 가변 요소를 동기화하고, 상기 가변 요소와 상기 엘리먼트 변수를 동기화하여 구성하 는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  11. 제 10 항에 있어서,
    상기 가변 요소는 특정 컴포넌트가 포함될지를 결정하는 "OPTION" 및 인터페이스를 선택하는 "SWITCH"를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  12. 제 9 항에 있어서,
    상기 신규 제품에 대응되는 특성이 특성 목록에 존재하는지 판단하는 단계; 및
    상기 특성이 존재하지 않는 경우 상기 대응되는 특성 세트를 확장하는 단계를 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  13. 제 9 항에 있어서,
    상기 환경 설정 변수에 대응되는 컴포넌트가 컴포넌트 목록에 존재하는지 판단하는 단계; 및
    상기 컴포넌트가 존재하지 않는 경우 상기 대응되는 컴포넌트 세트를 확장하는 단계를 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  14. 제 9 항에 있어서,
    상기 엘리먼트 변수는 상기 환경 설정 변수와 1:1 매핑이 되어 환경 설정 전 파가 수행되는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  15. 제 9 항에 있어서,
    상기 환경 설정 변수는 위임에 의하여 상위 환경 설정 변수와 하위 환경 설정 변수로 구성되는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  16. 제 15 항에 있어서,
    상기 상위 환경 설정 변수와 상기 하위 환경 설정 변수는 상기 컴포넌트의 구성에 따라 상기 컴포넌트 간의 가변성 위임 관계에 의하여 1:n 매핑이 되는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  17. 제품 타입을 선택하는 단계;
    상기 제품의 환경 설정을 로드하는 단계;
    상기 환경 설정에 따라 컴포넌트를 결정하는 단계: 및
    상기 환경 설정에 따라 엘리먼트 변수와 동기화 하여 상기 엘리먼트 변수를 설정하는 단계를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  18. 제 17 항에 있어서,
    상기 컴포넌트 결정은 상기 환경 설정에 따라 기능 수준 컴포넌트와 매핑되는 빌드 수준 컴포넌트를 선택하여 결정하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  19. 제 18 항에 있어서,
    상기 빌드 수준 컴포넌트가 잠긴 상태인지 확인하는 단계; 및
    상기 빌드 수준 컴포넌트가 잠긴 상태인 경우 제품 설정을 중단하는 단계를 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  20. 제 17 항에 있어서,
    상기 엘리먼트 변수가 모두 설정되었는지 판단하는 단계를 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  21. 제 17 항에 있어서,
    상기 엘리먼트 변수를 설정하는 단계는 상기 환경 설정 변수에 따라 가변 요소를 동기화하고, 상기 가변 요소와 상기 엘리먼트 변수를 동기화하여 설정하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  22. 제 21 항에 있어서,
    상기 가변 요소는 특정 컴포넌트가 포함될지를 결정하는 "OPTION" 및 인터페이스를 선택하는 "SWITCH"를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  23. 소프트웨어 플랫폼 구성을 대표하는 최상위 컴포넌트를 연동시켜 구문을 작성하는 단계;
    상기 최상위 컴포넌트에 포함된 모든 환경 설정 변수들에 설정값이 지정되었는지 판단하는 단계;
    상기 환경 설정 변수를 갱신하는 단계;
    상기 환경 설정 변수에 따라 기능 수준 컴포넌트가 빌드 수준 컴포넌트에 매핑되는지 검토하는 단계; 및
    상기 기능 수준 컴포넌트와 상기 빌드 수준 컴포넌트의 매핑을 갱신하는 단계를 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  24. 제 23 항에 있어서,
    상기 환경 설정 변수들에 상기 설정값이 지정되지 않은 경우 환경 설정 변수 목록을 참조하여 해당 제품에 부여될 상기 설정값을 지정하는 단계를 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
  25. 제 23 항에 있어서,
    상기 기능 수준 컴포넌트가 상기 빌드 수준 컴포넌트에 매핑되지 않는 경우 기능 수준 컴포넌트-빌드 수준 컴포넌트 매핑 목록을 참조하여 해당 제품에 부여될 상기 빌드 수준 컴포넌트를 지정하는 단계를 더 포함하는 컴포넌트 기반 소프트웨어 제품 관리 방법.
KR20070099917A 2007-10-04 2007-10-04 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법 KR101484680B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR20070099917A KR101484680B1 (ko) 2007-10-04 2007-10-04 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법
PCT/KR2008/001532 WO2009044973A1 (en) 2007-10-04 2008-03-19 System and method for software product manager with a component model
US12/753,434 US9081637B2 (en) 2007-10-04 2010-04-02 System and method for a software product manager

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20070099917A KR101484680B1 (ko) 2007-10-04 2007-10-04 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20090034597A KR20090034597A (ko) 2009-04-08
KR101484680B1 true KR101484680B1 (ko) 2015-01-21

Family

ID=40526372

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20070099917A KR101484680B1 (ko) 2007-10-04 2007-10-04 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법

Country Status (3)

Country Link
US (1) US9081637B2 (ko)
KR (1) KR101484680B1 (ko)
WO (1) WO2009044973A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6736348B1 (en) 2000-06-28 2004-05-18 Georgia-Pacific Corporation Power transfer system apparatus
CN101641678B (zh) * 2007-04-09 2012-03-21 富士通株式会社 源程序再次研究方法及源程序再次研究装置
US7984200B1 (en) * 2008-09-23 2011-07-19 Western Digital Technologies, Inc. Configuring a data storage device with a configuration data record set in response to a configuration code
US9009358B1 (en) 2008-09-23 2015-04-14 Western Digital Technologies, Inc. Configuring a data storage device with a parameter file interlocked with configuration code
US8640097B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Hosted application platform with extensible media format
GB2501757A (en) * 2012-05-04 2013-11-06 Ibm Instrumentation of software applications for configuration thereof
KR101282024B1 (ko) * 2013-04-11 2013-07-04 주식회사 제이윈파트너스 협업 도구 자동화시스템
US10043153B2 (en) * 2014-07-24 2018-08-07 International Business Machines Corporation Pattern-based product identification with feedback
US10031780B2 (en) 2014-11-25 2018-07-24 International Business Machines Corporation Component services integration with dynamic constraint provisioning
CN105426200B (zh) * 2015-10-30 2018-11-09 小米科技有限责任公司 通讯模组固件和插件生成方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093593A1 (en) 2002-08-08 2004-05-13 Microsoft Corporation Software componentization
KR20060068162A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 제품계열 기반 소프트웨어 개발 방법
KR20070000732A (ko) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530869A (en) * 1994-11-30 1996-06-25 Salle; Donald A. System and method for locating and implementing commands without invoking a menu hierarchy
US6487713B1 (en) * 1999-09-24 2002-11-26 Phoenix Technologies Ltd. Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation
US6948169B1 (en) * 2000-11-16 2005-09-20 Dell Products L.P. Web-based factory manufacturing of computers in a build-to-order manufacturing environment
US7072810B2 (en) * 2001-06-08 2006-07-04 Tata Consultancy Services Limited Method and apparatus for pattern based generation of graphical user interfaces (GUI)
US6983449B2 (en) * 2002-03-15 2006-01-03 Electronic Data Systems Corporation System and method for configuring software for distribution
JP4149306B2 (ja) * 2003-04-30 2008-09-10 東京応化工業株式会社 ポジ型レジスト組成物およびレジストパターン形成方法
US7552450B1 (en) * 2003-09-30 2009-06-23 Microsoft Corporation Systems and methods for enabling applications via an application programming interface (API) to interface with and configure digital media components
US20060179116A1 (en) * 2003-10-10 2006-08-10 Speeter Thomas H Configuration management system and method of discovering configuration data
DE102004005730A1 (de) * 2004-02-05 2005-08-25 Robert Bosch Gmbh Verfahren zur Konfiguration eines Computerprogramms
US20060004766A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corp. Method for making system-specific information available to management software
KR20070057994A (ko) * 2004-09-29 2007-06-07 코닌클리케 필립스 일렉트로닉스 엔.브이. 컴퓨터에 소프트웨어 프로그램을 설치하기 위한 방법
KR20060070611A (ko) 2004-12-21 2006-06-26 한국전자통신연구원 제품 계열 분석을 통한 자산/제품 생성 장치 및 그 방법
US8099713B2 (en) * 2005-01-18 2012-01-17 Siemens Aktiengesellschaft Program system, and method and system arrangement for configuring it
US8392873B2 (en) * 2005-01-26 2013-03-05 Tti Inventions C Llc Methods and apparatus for implementing model-based software solution development and integrated change management
US7770151B2 (en) * 2005-04-07 2010-08-03 International Business Machines Corporation Automatic generation of solution deployment descriptors
US7743373B2 (en) * 2005-05-06 2010-06-22 International Business Machines Corporation Method and apparatus for managing software catalog and providing configuration for installation
KR20060007061A (ko) * 2006-01-05 2006-01-23 탁귀열 관성 솔레노이드.
US20070234345A1 (en) * 2006-02-22 2007-10-04 Microsoft Corporation Integrated multi-server installation
US8285883B2 (en) * 2006-03-07 2012-10-09 Sandwave Ip, Llc Software settings for network devices determined by geophysical location
US7681138B2 (en) * 2006-07-11 2010-03-16 Siemens Aktiengesellschaft Use of a reusable control software whose user interface and communication connection are established via an external description-based configuration at run time
US8359566B2 (en) * 2007-04-13 2013-01-22 International Business Machines Corporation Software factory
US8046429B2 (en) * 2007-06-25 2011-10-25 Nokia Corporation Service mobility for composed components
US8010777B2 (en) * 2007-07-02 2011-08-30 Microsoft Corporation Managing a deployment of a computing architecture
US8875118B1 (en) * 2008-05-14 2014-10-28 Bank Of America Corporation Application configuration managment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040093593A1 (en) 2002-08-08 2004-05-13 Microsoft Corporation Software componentization
KR20060068162A (ko) * 2004-12-16 2006-06-21 한국전자통신연구원 제품계열 기반 소프트웨어 개발 방법
KR20070000732A (ko) * 2005-06-28 2007-01-03 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템

Also Published As

Publication number Publication date
WO2009044973A1 (en) 2009-04-09
KR20090034597A (ko) 2009-04-08
US9081637B2 (en) 2015-07-14
US20100192127A1 (en) 2010-07-29

Similar Documents

Publication Publication Date Title
KR101484680B1 (ko) 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법
US7684964B2 (en) Model and system state synchronization
US20210160151A1 (en) SYSTEM-ON-CHIP (SoC) ASSEMBLY, CONFIGURABLE IP GENERATION AND IP INTEGRATION UTILIZING DISTRIBUTED COMPUTER SYSTEMS
US7047518B2 (en) System for software application development and modeling
US7505995B2 (en) Object-relational model based user interfaces
Di Cosmo et al. Aeolus: A component model for the cloud
US6854107B2 (en) Method of and system for designing an N-tier software architecture for use in generating software components
CA2777443C (en) Automated enterprise software development
AU2004200639B2 (en) Integrating design, deployment, and management phases for systems
US8041744B2 (en) Computer-aided modeling
US8495352B2 (en) System and method for instantiation of distributed applications from disk snapshots
US11074051B2 (en) Unified operating system for distributed computing
CN111723176A (zh) 一种用于生成合成交互的语义描述的方法
WO2009044971A1 (en) Method and system for determining interface compatibility based on component model
JP7331716B2 (ja) フィールドデバイスを稼働するためのシステム、方法、およびコンピュータによって実施されるプログラム
Cole SoS architecture
JP7331715B2 (ja) 工業制御システムについてのエンジニアリングデータを作成する方法およびシステム
Morin et al. Weaving aspect configurations for managing system variability
Orlov Control tools for reusable components of intelligent computer systems of a new generation
US20090285376A1 (en) Method and tooling for the development of telecom services
US20070011688A1 (en) System and method for developing software or a software component, as well as method for operating said software
KR101552188B1 (ko) 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치
Rossi et al. Model-based design of volatile functionality in Web applications
JP2005251120A (ja) Fa機器インタフェース統合化装置
Sowoidnich Concept for executing management operations on components of application instances

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 5