KR101552188B1 - 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치 - Google Patents

콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR101552188B1
KR101552188B1 KR1020070091136A KR20070091136A KR101552188B1 KR 101552188 B1 KR101552188 B1 KR 101552188B1 KR 1020070091136 A KR1020070091136 A KR 1020070091136A KR 20070091136 A KR20070091136 A KR 20070091136A KR 101552188 B1 KR101552188 B1 KR 101552188B1
Authority
KR
South Korea
Prior art keywords
component
variability
interface
component model
elements
Prior art date
Application number
KR1020070091136A
Other languages
English (en)
Other versions
KR20090025930A (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 KR1020070091136A priority Critical patent/KR101552188B1/ko
Priority to US12/035,747 priority patent/US8429608B2/en
Publication of KR20090025930A publication Critical patent/KR20090025930A/ko
Application granted granted Critical
Publication of KR101552188B1 publication Critical patent/KR101552188B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • G06F16/3323Query formulation using system suggestions using document space presentation or visualization, e.g. category, hierarchy or range presentation and selection
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성 규칙을 제공하는 장치 및 방법이 제공된다. 본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성 규칙(implicit variability rule)을 제공하는 장치는 가변성이 설정된 콤포넌트 모델 요소 및 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규칙의 카테고리(category)를 파악하는 카테고리 파악부 및 상기 카테고리에 부여된 내제된 가변성 규칙을 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용하는 내제된 가변성 규칙 적용부를 포함한다.
콤포넌트(component), 가변성(variability)

Description

콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성 규칙을 제공하는 방법 및 장치{Method and apparatus for providing implicit variability rules for a component model and architecture design}
본 발명은, 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성 규칙(implicit variability rule)을 제공하는 방법 및 장치에 관한 것으로서, 더욱 상세하게는 가변성(variability) 요소가 포함되는 콤포넌트 모델 기반의 소프트웨어 설계에 있어서, 복잡한 연동 관계 설정을 내제된 규칙(implicit rule)에 의해 간편화 시키고 이로 인해 정교한 설계 정보를 보다 신속하고 정확히 작성할 수 있도록 하는 방법 및 장치에 관한 것이다.
소프트웨어 제품 종류(software product line) 운영 시스템은 소프트웨어 자산(software asset)의 관리에 있어서 콤포넌트(component) 단위의 조합으로 시스템 아키텍쳐(system architecture)를 구성하고, 이들이 각 소프트웨어 제품(software product) 구성을 위해 가져야 할 설정 조건을 부여함으로써 체계적이고도 신속한 개발 프로세스를 지원하는 장점을 가진다.
소프트웨어 아키텍쳐(software architecture) 설계는 이러한 다양한 설정 조 건들을 가변성(variability)으로 표현하고, 콤포넌트와 가변성을 연계하여 복잡한 내부 연동 관계 및 제품의 환경설정(product configuration)이 가능하여야 한다.
가변성은 적용 대상에 따라 그와 관련된 모든 요소에 파급 효과를 끼치기 때문에, 이러한 가변성 설정의 연결 관계를 세부적으로 분석하여 연동설정의 자동화 및 설정 오류를 방지할 수 있어야 한다.
그러나, 종래 UML(Unified Modeling Language)은 소프트웨어 아키텍쳐를 설계하는 데 있어서, 가변성 요소의 지원이 미흡하여 특정 소프트웨어 시스템(software system)의 정형적인 구조만을 나타낼 수 있었다.
본 발명은 콤포넌트 모델(component model)을 기반으로 하는 소프트웨어 설계에 있어서, 가변성이 포함되는 복잡한 연동 관계 설정을 내제된 규칙에 의해 간편화하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치는 가변성이 설정된 콤포넌트 모델 요소 및 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규칙(implicit variability rule)의 카테고리(category)를 파악하는 카테고리 파악부 및 상기 카테고리에 부여된 내제된 가변성 규칙을 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용하는 내제된 가변성 규칙 적용부를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법은 콤포넌트 모델 요소에 대한 가변성을 설정하는 가변성 설정 단계, 상기 가변성이 설정된 콤포넌트 모델 요소 및 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규 칙(implicit variability rule)의 카테고리(category)를 파악하는 카테고리 파악 단계 및 상기 카테고리에 부여된 내제된 가변성 규칙을 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용하는 내제된 가변성 규칙 적용 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되어있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
상기한 바와 같은 본 발명의 본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
콤포넌트 모델을 기반으로 하는 소프트웨어 설계에 있어서, 가변성이 포함되는 복잡한 연동 관계 설정을 내제된 가변성 규칙에 의해 간편화하여, 정교한 설계 정보를 보다 신속하고 정확히 제공하는 장점이 있다.
또한, 정교한 설계 정보를 보다 신속하고 정확히 제공함으로써, 체계적이고 신속한 개발 프로세스를 지원하는 장점도 있다.
이하, 본 발명의 실시예들에 의한 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치 및 방법을 설명하기 위한 구성도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명의 실시를 위한 구체적인 내용을 설명하도록 한다.
이때, 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, 처리 흐름도 도면들의 각 구성과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 구성(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 구성(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 구성(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 구성은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다.
또, 몇 가지 대체 실시예들에서는 구성들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다.
예컨대, 잇달아 도시되어 있는 두 개의 구성들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 구성들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치의 구성을 도시한 블록도이다.
본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치(100)는 콤포넌트 모델을 기술하기 위한 콤포넌트 기술 언어(Component Description Language, CDL)를 처리하는 콤포넌트 기술 언어 처리 부(110), 콤포넌트 기술 언어를 통해 콤포넌트 모델을 유지하고 변경하는 콤포넌트 관리부(120), 콤포넌트 모델에 표현된 콤포넌트 목록 정보 및 콤포넌트 상호간 의존 관계를 관리하는 콤포넌트 조작부(130), 콤포넌트 모델에 존재하는 인터페이스(interface) 요소의 목록 및 콤포넌트와 인터페이스의 연결 정보를 관리하는 인터페이스 조작부(140), 콤포넌트 모델에 존재하는 커넥션(connection) 요소의 목록 및 각 커넥션의 연결 정보를 관리하는 커넥션 조작부(150), 콤포넌트 모델에 존재하는 가변성 요소의 목록 및 각 가변성의 설정 조건 정보를 관리하는 가변성 조작부(160), 가변성이 설정된 콤포넌트 모델 요소 및 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규칙의 카테고리(category)를 파악하는 카테고리 파악부(171), 카테고리에 부여된 내제된 가변성 규칙을 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용하는 내제된 가변성 규칙 적용부(172), 내제된 가변성 규칙이 적용된 요소들의 가변성 표현을 변경하는 콤포넌트 모델 설계부(180)를 포함한다.
본 발명의 실시예에 따른 도 1에서 도시된 구성요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성요소를 의미하며, 어떤 역할들을 수행한다.
그렇지만 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성요소는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 해당 구성요소들 안에서 제공되는 기능은 더 작은 수의 구성요소들로 결합되거나 추가적인 구성요소들로 더 분리될 수 있다.
참고로, 본 발명의 실시예에 따른, 콤포넌트 모델을 기반으로 소프트웨어 아키텍쳐를 설계하기 위한 기본 구성을 간략하게 설명하도록 한다.
콤포넌트 모델을 구성하는 기본 요소는 콤포넌트(componet), 인터페이스(interface) 및 커넥션(connection) 세 가지이다.
콤포넌트는 논리적인 모듈(module) 또는 서브시스템(sub-system)을 대표하는 요소이며, 인터페이스는 콤포넌트가 제공하는 특정 함수 셋(function set)을 나타내며, 커넥션은 제공(provide) 및 요청(require) 인터페이스간의 상호 의존관계를 표현하는 요소이다.
여기에 추가적으로 가변성 요소가 개입되어, 콤포넌트, 인터페이스 및 커넥션 각각에 대한 설정 조건을 부여하게 된다.
참고로, 콤포넌트 모델(component model)을 기술하는 콤포넌트 기술 언어(component description language)에서는 가변성 요소의 표현이 환경변수(configuration variable)를 통해 이루어지는데, 환경변수와 적용 대상 요소와의 결합으로, 소프트웨어 아키텍쳐 설계 정보는 내부에 가변성에 대한 사양까지 포함 할 수 있게 되는 것이다.
본 발명에서 가변성은, 기본적으로, 선택 여부를 결정하기 위한 'Option'과 이를 확장한 집합체 개념으로서의 'Alternative' 및 'Selective'로 구분할 수 있으며, 명시적으로 반드시 선택되어야 함을 표현하기 위해 'Mandatory'로 구분하고 있으며, 이들 가변성에 대한 구체적인 설명은 아래와 같다.
1) Option : 'Option'이 설정된 콤포넌트 모델 요소는, 조건에 따라 포함 여부가 결정된다.
즉, 요소 자체의 존재 여부로 보자면, zero or one (0..1) 의 표준적인 표시(canonical expression)에 부합하는 경우이며, 'Option'은 개별 요소에 단독으로 부여된다.
2) Alternative : 'Alternative' 설정은 관련있는 복수의 콤포넌트 모델 요소에 대해 공통적으로 이루어진다.
즉, 동일한 환경변수의 설정에 영향을 받는 요소들을 묶어 가변성을
표현하는 경우에, 오직 하나의 요소만이 선택되는 상황이다.
'Alternative'의 표준적인 표시는 one and only one (1..1)이 되며, 반드시 하나는 선택되어야 한다.
3) Selective : 'Selective' 설정은 관련 있는 복수의 콤포넌트 모델 요소에 대해 공통적으로 적용된다는 점에서 'Alternative'와 유사하다.
그러나, 동일한 환경변수의 설정에 영향을 받는 요소들을 묶어 가변성을 표현함에 있어, 하나 이상의 요소가 선택될 수 있다는 차이점이 있다.
'Selective'의 표준적인 표시는 zero or more (0..*)가 되며, 선택 요소가 없거나 여러 개가 존재할 수 있는 경우이다.
4) Mandatory : 내제된 가변성 규칙이 적용되는 상황에서도, 명백히 'Mandatory'로 설정된 요소는 가변성 속성이 자동 변경되지 않고 기본 선택 요소로서 유지되는데, 이는 설계 정보를 작성함에 있어서 의도되지 않은 변동을 방지하기 위한 수단으로 활용될 수 있다.
소프트웨어 아키텍쳐 설계를 위해 구성되는 콤포넌트 모델의 각 요소들은, 상술한 가변성들을 적용하게 될 경우, 연관 관계를 가지는 다른 요소에 끼치게 될 영향을 고려하여야 한다.
이는 복잡한 내부 구조를 설계하면서, 콤포넌트 모델의 하나의 요소에 대한 설정이 이전에 이미 설정된 다른 요소에 어떠한 변경을 초래하게 될 지를 파악하여야 한다는 의미이다.
대규모의 복잡한 구조 설계에 있어서 이러한 관계를 파악하고 자동화하여 적용함으로써, 설계 작업의 생산성 및 설계 정보의 정확성을 향상시킬 수 있을 것이다. 또한, 이러한 자동 설정을 명시적으로 제어할 수 있도록 함으로써 설계 작업의 흐름을 일관 되게 유지할 수 있게 될 것이다.
본 발명에서는 콤포넌트 모델과 함께 가변성 설정을 적용하면서, 요소간 가변성 설정 시 연관 관계에 있는 다른 요소에 미치는 내제적인 상관 관계를 파악하고 이를 '내제적 가변성 규칙(Implicit Variability Rules)'으로 명명하여 제시하고자 한다.
먼저, 도 1에 도시된 장치(100) 중 콤포넌트 기술 언어 처리부(110)는 콤포넌트 모델을 기술하기 위한 규정으로서, 콤포넌트 기술 언어(Component Description Language, CDL)를 처리한다.
콤포넌트 기술 언어 처리부(110)는 기본적으로 기본 콤포넌트(primitive component) 및 복합 콤포넌트(composite component)의 구성 정보를 포함하며, 변화 포인트(variation point)에 대응하는 변수를 정의하는 구문 형식을 지원한다.
여기에서 기본 콤포넌트는 단위 콤포넌트를 의미하고, 다수의 기본 콤포넌트를 조합하여 복합 콤포넌트를 구성할 수 있다.
소프트웨어 제품을 구성하는데 있어, 가변적인 특성 또는 해당 특성이 존재하는 부분인 변화 포인트가 포함된 복합 콤포넌트에서 콤포넌트 기술 언어 처리부(110)를 통해 표현되는 구문 블록(block)의 목록은 아래와 같다.
1) contains : 복함 콤포넌트가 내부에 포함하는 하위 하위 콤포넌트의 목록을 의미한다.
2) provides : 콤포넌트의 제공 인터페이스(provide interface) 목록으로서, 복합 콤포넌트의 경우는 하위 콤포넌트들로부터 제공되는 제공 인터페이스들의 목록을 의미한다.
3) requires : 콤포넌트의 요청 인터페이스(require interface) 목록으로서, 복합 콤포넌트의 경우는 하위 콤포넌트들로부터 요청되는 요청 인터페이스들의 목록을 의미한다.
4) connects : 제공(provide) 및 요청(require) 인터페이스간의 연결 관계를 의미한다.
5) configuration-variables : 변화 포인트에 대응될 변수와 값(value) 목록을 의미한다.
한편, 소프트웨어 플랫폼(software platform)을 콤포넌트 모델로 구성하게 되면, 소프트웨어 플랫폼의 구성 정보는 콤포넌트와 환경변수들의 조합으로 표현되는데, 환경변수는 가변성을 표현하기 위한 콤포넌트 기술 언어(CLD)의 요소이다
콤포넌트 관리부(120)는 이러한 콤포넌트 기술 언어를 통해 콤포넌트 모델을 유지하고 변경하며, 변경되는 콤포넌트 모델의 구성 내용은 콤포넌트 기술 언어 처리부(110)를 통해 기술된다.
인터페이스 조작부(140)는 콤포넌트 모델에 존재하는 인터페이스 요소의 목록 및 콤포넌트와 인터페이스의 연결 정보를 관리한다.
소프트웨어 아키텍쳐(software architecture) 설계의 기본 요소는 콤포넌트이며, 콤포넌트가 제공하거나 필요로 하는 기능을 표현하기 위해 인터페이스 요소가 부가되는데, 인터페이스는 함수 셋(function set)을 표현하며, 콤포넌트 표시(component notation)에 인터페이스 표시가 부착됨으로써 비로소 다른 콤포넌트들과 상호작용을 수행할 수 있음을 나타낸다.
커넥션 조작부(150)는 콤포넌트 모델에 존재하는 커넥션 요소의 목록 및 각 커넥션의 연결 정보를 관리한다.
인터페이스를 부착한 콤포넌트 표시들은 상호 연동관계를 표현하기 위해 커넥션 표시(connection notation)로 연결되는데, 커넥션은 인터페이스를 통해 직접 연결되며, 제공/요청 인터페이스간의 연결을 통한 종속(dependency) 관계, 혹은 복합 콤포넌트와 하위 콤포넌트(sub component)간의 인터페이스 외부 노출을 위한 인터페이스 위임(interface delegation) 관계를 나타낸다.
가변성 조작부(160)는 콤포넌트 모델에 존재하는 가변성 요소의 목록 및 각 가변성의 설정 조건 정보를 관리한다.
소프트 아키텍쳐를 설계하는데 있어서 가변성의 결합은, 설정에 따라
다양한 소프트웨어 제품(software product)의 조합을 가능케 하는 표현 요소이다.
가변성은 콤포넌트, 인터페이스 및 커넥션 각각에 모두 적용될 수 있으며, 'Option'을 기본으로 하여 'Alternative' 및 'Selective'와 같이, 관련 있는 요소들의 집합을 표현하게 된다.
가변성은 콤포넌트 모델에서는 환경변수로 표현되므로, 실제로 가변성 조작부(160)는 환경변수 목록과 설정 조건 정보를 관리하는 것이다.
참고로, 소프트웨어 아키텍쳐 설계는 다양한 콤포넌트 모델 구성 요소들이 배치되고 상호 연관관계 및 가변성 설정이 부가됨으로써 실체를 구성하게 되는데, 가변성 설정은 이미 언급된 바와 같이, 직접 설정 대상이 되는 요소뿐 아니라 해당 요소와 연관 관계를 맺고 있는 다른 요소의 가변성에도 영향을 끼친다.
이로 인해, 관련 요소의 가변성 설정을 적절하게 변경시켜 주지 않을 경우, 가변성 구성(variability configuration)이 이루어질 때 전체 콤포넌트 모델 구조에 오류가 발생하거나 조합 구성이 불가능해지는 상황이 초래될 수 있다.
일례로서, 콤포넌트 A가 콤포넌트 B를 필요로 하는 구성에서 콤포넌트 B만을 'option' 설정한 경우, 조건에 따라서는 콤포넌트 A만이 필요한 기능을 제공받지 못한 채 조합 구성에 포함되어 오류를 발생시키게 된다.
한편, 카테고리 파악부(171) 및 내제된 가변성 규칙 적용부(172)는 내제된 가변성 규칙 관리부(170)로 통합될 수 있다.
내제된 가변성 규칙 관리부(170)는 특정 콤포넌트 모델 요소에 대해 가변성 설정이 이루어지는 것을 확인하고, 그러한 설정이 어떠한 내제된 가변성 규칙의 적용을 필요로 하는지를 분석하여, 최종적으로 변경이 필요한 사항을 콤포넌트 모델 설계부(180)에게 알려주는 기능을 수행한다.
이를 위해, 카테고리 파악부(171)는 가변성이 설정된 콤포넌트 모델 요소 및 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규칙의 카테고리(category)를 파악하며, 내제된 가변성 규칙 적용부(172)는 카테고리에 부여된 내제된 가변성 규칙을 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용한다.
한편, 콤포넌트 모델 설계부(180)는 내제된 가변성 규칙이 적용된 요소들의 가변성 표현을 변경한다.
이를 위해 콤포넌트 모델 설계부(180)는 콤포넌트 모델을 구성하는 요소들인 콤포넌트, 인터페이스, 커넥션 및 가변성 표시(variability notation)의 추가, 삭제, 변경 작업을 수행할 수 있도록 하며, 내제된 가변성 규칙 관리부(170)에 의해 내제된 가변성 규칙의 적용이 필요하다고 판단된 요소들에 대해서는 갱신된 형태로 표시(notation)를 갱신하게 된다.
도 2a 내지 도 2d는 본 발명의 실시예에 따른, optional 콤포넌트에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 제공 콤포넌트 및 제공 콤포넌트로부터 기능을 제공받는 요청 콤포넌트가 존재하고 각 컴포넌트에는 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
이때 사용자가 명시적인 제한으로, 제공 콤포넌트 및 요청 콤포넌트 중 어느 하나(가변성 중 option에 해당)를 삭제한다고 가정하도록 한다.
참고로 본 발명에서는, 사용자에 의한 명시적 제한이 적용된 콤포넌트는 검은점선으로, 변경된 콤포넌트로 인해 영향을 받는 콤포넌트 및 적어도 하나의 요소는 빨간 점선으로 표시되며, 사용자에 의한 명시적 제한에 영향을 받지 않는 콤포넌트 모델 요소는 실선으로 표시된다.
도 2a는 사용자가 제공 콤포넌트에 명시적으로 optional 속성을 적용한 실시예이다.
콤포넌트가 삭제되는 경우, 인터페이스는 콤포넌트의 영향을 받게 되므로 제공 콤포넌트(210)가 삭제되면 제공 인터페이스(210a) 역시 optional 처리가 되어 삭제된다.
이어, 제공 콤포넌트(210) 및 제공 인터페이스(210a)가 삭제되므로, 커넥션(212)은 의미가 없게 되어 삭제되며, 커넥션(212)이 삭제되므로 커넥션(212)과 연결된 요청 인터페이스(211a)도 삭제된다.
요청 인터페이스(211a)가 삭제된 상태에서 요청 콤포넌트(211)는 기능을 할 수 없으므로 요청 콤포넌트(211) 역시 삭제될 수 있다.
도 2b는 사용자가 요청 콤포넌트에 명시적으로 optional 속성을 적용한 실시예로서, 도 2a와 다른 점은 제공 인터페이스 및 요청 인터페이스가 각각 2개라는 점이다.
설명의 편의상, 각 콤포넌트의 좌측에 존재하는 인터페이스를 제 1 인터페이스, 우측에 존재하는 인터페이스를 제 2 인터페이스라 칭하도록 한다.
콤포넌트가 삭제되는 경우, 인터페이스는 콤포넌트의 영향을 받게 되므로 제공 콤포넌트(220)가 삭제되면 제 1 제공 인터페이스(220a) 및 제 2 제공 인터페이스(220b) 역시 optional 처리가 되어 모두 삭제된다.
이어, 제공 콤포넌트(220) 및 제공 인터페이스(220a, 220b)가 삭제되므로, 커넥션(222)은 의미가 없게 되어 삭제되며, 커넥션(222)과 연결된 제 1 요청 인터페이스(221a) 역시 삭제된다.
이때, 도 2a와 달리, 요청 콤포넌트(221) 및 제 2 요청 인터페이스(221b)는 삭제되지 않는데, 그 이유는, 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 제 2 요청 인터페이스(221b)가 커넥션(미도시)으로 연결될 수 있기 때문이다.
도 2c는 사용자가 요청 콤포넌트에 명시적으로 optional 속성을 적용한 실시예이다.
콤포넌트가 삭제되는 경우, 인터페이스는 콤포넌트의 영향을 받게 되므로 요청 콤포넌트(231)가 삭제되면 요청 인터페이스(231a) 역시 optional 처리가 되어 삭제된다.
이어, 요청 콤포넌트(231) 및 요청 인터페이스(231a)가 삭제되므로, 커넥션(232)은 의미가 없게 되어 삭제된다.
이때, 제공 콤포넌트(230) 및 제공 인터페이스(230a)는 커넥션(232)이 삭제되어도 영향을 받지 않는데, 그 이유는, 제공 콤포넌트(230) 및 제공 인터페이스(230a)는 요청 콤포넌트(231) 및 요청 인터페이스(231a)와는 달리 기능을 제공하는 측면이므로, 다른 요청 콤포넌트(미도시)의 요청 인터페이스(미도시)와 연결되어 자신의 기능을 제공할 수 있게 하기 위함이다.
도 2d는 사용자가 요청 콤포넌트에 명시적으로 optional 속성을 적용한 실시예로서, 도 2c와 다른 점은 요청 인터페이스가 2개라는 점이다.
설명의 편의상, 요청 콤포넌트(241)의 좌측에 존재하는 인터페이스(241a)를 제 1 요청 인터페이스, 우측에 존재하는 인터페이스(241b)를 제 2 요청 인터페이스라 칭하도록 한다.
콤포넌트가 삭제되는 경우, 인터페이스는 콤포넌트의 영향을 받게 되므로 요청 콤포넌트가(241) 삭제되면 제 1 요청 인터페이스(241a) 및 제 2 요청 인터페이스(241b) 역시 optional 처리가 되어 모두 삭제된다.
이어, 요청 콤포넌트(241) 및 요청 인터페이스(241a, 241b)가 삭제되므로, 커넥션(242)은 의미가 없게 되어 삭제된다.
이때, 제공 콤포넌트(240) 및 제공 인터페이스(240a)는 커넥션(242)이 삭제되어도 영향을 받지 않는데, 그 이유는, 도 2b를 참조하여 설명한 것처럼, 제공 콤 포넌트(240) 및 제공 인터페이스(240a)는 요청 콤포넌트(241) 및 요청 인터페이스(241a, 241b)와는 달리 기능을 제공하는 측면이므로, 다른 요청 콤포넌트(미도시)의 요청 인터페이스(미도시)와 연결되어 자신의 기능을 제공할 수 있게 하기 위함이다.
도 3a 및 도 3b는 본 발명의 실시예에 따른, optional 커넥션에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 제공 콤포넌트 및 제공 콤포넌트로부터 기능을 제공받는 요청 콤포넌트가 존재하고, 각 컴포넌트에는 인터페이스가 존재하며 각 인터페이스는 서로 커넥션으로 연결되어 있다.
이때, 사용자가 명시적 제한으로, 각 커넥션을 optional로 삭제한다고 가정하도록 한다.
도 3a에서 사용자가 명시적으로 커넥션(312)을 삭제하는 경우, 커넥션(312)과 연결된 요청 인터페이스(311a)가 삭제되며, 요청 인터페이스(311a)가 삭제된 요청 콤포넌트(311)는 기능을 할 수 없으므로 요청 컴포넌트(311) 역시 삭제될 수 있다.
이때, 제공 콤포넌트(310) 및 제공 인터페이스(310a)는 커넥션(312)이 삭제되어도 영향을 받지 않는데, 그 이유는, 도 2c 및 도 2d를 참조하여 설명한 것처럼, 제공 콤포넌트(310) 및 제공 인터페이스(310a)는 요청 콤포넌트(311) 및 요청 인터페이스(311a)와는 달리 기능을 제공하는 측면이므로, 다른 요청 콤포넌트(미도시)의 요청 인터페이스(미도시)와 연결되어 자신의 기능을 제공할 수 있게 하기 위함이다.
도 3b는 사용자가 명시적으로 커넥션을 삭제하는 실시예로서, 도 3a와 다른 점은 요청 인터페이스가 2개라는 점이다.
설명의 편의상, 요청 콤포넌트(321)의 좌측에 존재하는 인터페이스(321a)를 제 1 요청 인터페이스, 우측에 존재하는 인터페이스(321b)를 제 2 요청 인터페이스라 칭하도록 한다.
사용자가 명시적으로 커넥션(322)을 삭제하면, 커넥션(322)과 연결된 제 1 요청 인터페이스(321a)가 삭제되고, 요청 콤포넌트(321) 및 제 2 요청 인터페이스(321b)는 삭제되지 않는데, 그 이유는, 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 제 2 요청 인터페이스(321b)가 연결될 수 있기 때문이다.
이때, 제공 콤포넌트(320) 및 제공 인터페이스(320a)가 커넥션(322)이 삭제되어도 영향을 받지 않는 이유는 도 3a를 참조하여 설명한 바와 같다.
도 4a 내지 도 4d는 본 발명의 실시예에 따른, optional 인터페이스에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 제공 콤포넌트 및 제공 콤포넌트로부터 기능을 제공받는 요청 콤포넌트가 존재하고, 각 컴포넌트에는 인터페이스가 존재하며 각 인터페이스는 서로 커넥션으로 연결되어 있다.
이때, 사용자가 명시적 제한으로 각 인터페이스를 optional로 삭제한다고 가정하도록 한다.
도 4a에서 사용자가 명시적으로 제공 인터페이스(410a)를 삭제하는 경우, 커넥션(412)은 의미가 없게 되어 삭제되며, 커넥션(412)과 연결된 요청 인터페이스(411a)가 삭제되고, 요청 인터페이스(411a)가 삭제된 요청 콤포넌트(411)는 기능 을 할 수 없으므로 요청 컴포넌트(411) 역시 삭제될 수 있다.
도 4b는 사용자가 명시적으로 제공 인터페이스를 삭제하는 경우이며, 도 4a와 다른 점은 요청 인터페이스가 2개라는 점이다.
설명의 편의상, 요청 콤포넌트(421)의 좌측에 존재하는 인터페이스(421a)를 제 1 require 인터페이스, 우측에 존재하는 인터페이스(421b)를 제 2 require 인터페이스라 칭하도록 한다.
사용자가 명시적으로 제공 인터페이스(420a)를 삭제하면, 커넥션(422)은 의미가 없게 되어 삭제되며, 커넥션(422)과 연결된 요청 인터페이스(421a) 역시 삭제된다.
이때, 제 2 require 인터페이스(421b) 및 요청 콤포넌트(421)는 삭제되지 않는데, 그 이유는, 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 제 2 요청 인터페이스(421b)가 연결될 수 있기 때문이다.
도 4c는 사용자가 명시적으로 요청 인터페이스(431a)를 삭제하는 경우, 커넥션(432)은 의미가 없게 되어 삭제됨을 나타내고 있다.
이때, 제공 인터페이스(430a) 및 제공 콤포넌트(430)는 커넥션(432)이 삭제되어도 영향을 받지 않는데, 그 이유는, 제공 콤포넌트(430) 및 제공 인터페이스(430a)는 요청 콤포넌트(431) 및 요청 인터페이스(431a)와는 달리 기능을 제공하는 측면이므로, 다른 요청 콤포넌트(미도시)의 요청 인터페이스(미도시)와 연결되어 자신의 기능을 제공할 수 있게 하기 위함이다.
도 4d는 사용자가 명시적으로 요청 인터페이스(441a)를 삭제하는 경우이며, 도 4c와 다른 점은 요청 인터페이스가 2개라는 점이다.
설명의 편의상, 요청 콤포넌트(441)의 좌측에 존재하는 인터페이스(441a)를 제 1 요청 인터페이스, 우측에 존재하는 인터페이스(441b)를 제 2 요청 인터페이스라 칭하도록 한다.
사용자가 명시적으로 제 1 요청 인터페이스(441a)를 삭제하면, 커넥션(442)은 의미가 없게 되어 삭제된다.
이때, 제 2 요청 인터페이스(441b) 및 요청 콤포넌트(441)는 삭제되지 않는데, 그 이유는, 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 제 2 요청 인터페이스(441b)가 연결될 수 있기 때문이다.
도 5a 및 도 5b는 본 발명의 실시예에 따른, alternative 콤포넌트에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 3개의 제공 콤포넌트 및 제공 콤포넌트들로부터 기능을 제공받는 1개의 요청 콤포넌트가 존재하고 각 컴포넌트에는 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
본 발명의 내제된 가변성 규칙에서 'Alternative' 설정은 관련 있는 복수의 콤포넌트 모델 요소에 대해 공통적으로 이루어지며, 동일한 환경변수의 설정에 영향을 받는 요소들을 묶어 가변성을 표현하는 경우에, 오직 하나의 요소만이 선택되는 상황이다.
참고로, 사다리꼴 형상의 표시(notation)(515, 525)는 3개의 콤포넌트가 동일한 환경변수의 설정에 영향을 받고 있음을 나타내는 것이다.
먼저, 도 5a에서 사용자가 명시적으로, 3개의 콤포넌트(510, 511, 512)에서, 동일한 환경변수의 설정에 영향을 받는 특정 기능을 제한한 경우, 각 콤포넌트의 제공 인터페이스(510a, 511a, 512a)는 사용자의 명시적 제한에 영향을 받으며, 각 콤포넌트와 연결된 커넥션(514a, 524a) 역시 사용자의 명시적 제한에 영향을 받게 된다.
참고로, 도 2a 내지 도 4d에서는 사용자의 명시적 제한의 실시예로 콤포먼트 모델 요소를 삭제하는 경우를 설명하였다.
이때, 상술한 바와 같이, 'Alternative' 설정은 관련 있는 복수의 콤포넌트 모델 요소에 대해 공통적으로 이루어지며, 동일한 환경변수의 설정에 영향을 받는 요소들을 묶어 가변성을 표현하는 경우에, 오직 하나의 요소만이 선택되는 상황, 즉 3개의 제공 콤포넌트(510, 511, 512) 중 반드시 하나는 선택되어야 하기 때문에 요청 인터페이스(513a) 및 요청 콤포넌트(513)는 사용자의 명시적 제한에 영향을 받지 않는다.
따라서, 도 5a에 도시된 바와 같이 3개의 제공 콤포넌트(510, 511, 512)와 요청 콤포넌트(513)는 언제나 커넥션(514b)으로 연결되어 있다.
도 5b는 도 5a와 동일한 상황에서 요청 콤포넌트(523)에 요청 인터페이스(523b)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 5a와 동일하다.
도 6a 및 도 6b는 본 발명의 실시예에 따른, alternative 커넥션에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 2개의 제공 콤포 넌트 및 제공 콤포넌트들로부터 기능을 제공받는 1개의 요청 콤포넌트가 존재하고 각 컴포넌트에는 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
참고로, 사다리꼴 형상의 표시(notation)(614, 624)는 2개의 커넥션이 동일한 환경변수의 설정에 영향을 받고 있음을 나타내는 것이다.
도 6a에 도시된 도면이 도 5a에 도시된 도면과 차이가 없어 보이지만, 도 5a에 도시된 도면은 사용자의 명시적 제한이 콤포넌트에 적용되는 것이고, 도 6a에 도시된 도면은 사용자의 명시적 제한이 커넥션에 적용되는 차이가 있다.
따라서, alternative 커넥션의 경우, 반드시 하나의 커넥션이 선택되어야 하므로, 제공 콤포넌트(610, 611)와 요청 콤포넌트(612)는 사이에는 언제나 커넥션이 연결되어 있다.
도 6b는 도 6a와 동일한 상황에서 요청 콤포넌트(622)에 요청 인터페이스(622b)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 6a와 동일하다.
도 7a 내지 도 7f는 본 발명의 실시예에 따른, alternative 인터페이스에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 1개의 제공 콤포넌트 및 제공 콤포넌트들로부터 기능을 제공받는 적어도 1개의 요청 콤포넌트가 존재하고 각 컴포넌트에는 적어도 1개의 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
참고로, 사다리꼴 형상의 표시(notation)는 2개의 인터페이스가 동일한 환경 변수의 설정에 영향을 받고 있음을 나타내는 것이다.
설명의 편의상, 2개의 제공 인터페이스 중 세로방향에서 첫 번째 인터페이스를 제 1 제공 인터페이스, 두 번째 인터페이스를 제 2 제공 인터페이스라 칭하도록 한다.
먼저, 도 7a는 사용자의 명시적 제한이 제공 인터페이스(710a, 710b)에 적용된 실시예로서, 제공 인터페이스(710a, 710b)에 사용자의 명시적 제한이 적용될 경우, 제공 인터페이스(710a, 710b)와 연결된 커넥션(712)도 함께 영향을 받아야 하지만, alternative 인터페이스의 경우, 반드시 하나의 인터페이스는 선택되어야 한다.
따라서, 요청 인터페이스(711a)는 제 1 제공 인터페이스(710a) 및 제 2 제공 인터페이스(710b) 중 어느 하나와 커넥션(712)으로 항상 연결되므로, 요청 인터페이스(711a)는 제공 인터페이스(710a, 710b)에 적용된 사용자의 명시적 제한에 영향을 받지 않게 된다.
도 7b는 도 7a와 동일한 상황에서 요청 콤포넌트(721)에 요청 인터페이스(721b)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 7a와 동일하다.
도 7c는 도 7a와 동일한 상황에서, 각 제공 인터페이스(730a, 730b)에 요청 인터페이스(731a, 732a)가 하나씩 각각 커넥션(733, 734)으로 연결되어 있는 실시예이다.
이를 각 요청 인터페이스(731a, 732a) 입장에서 본다면, 하나의 제공 인터페 이스(730a, 730b)와 각각 커넥션(733, 734)으로 연결된 상태이므로, 도 4a에 도시된 경우와 같이, 제공 인터페이스(730a, 730b)에 적용된 사용자의 명시적 제한에 커넥션(733, 734)이 영향을 받고, 커넥션(733, 734)의 영향으로 요청 인터페이스(731a, 732a) 및 요청 콤포넌트(731, 732)가 영향을 받는 경우를 나타내고 있다.
alternative 인터페이스의 경우, 반드시 하나의 인터페이스가 선택되어야 하므로, 도 7c에서는 제 2 제공 인터페이스(730b)가 선택되어 요청 인터페이스(732a)와 커넥션(734)으로 연결되었다.
도 7d는 도 7c와 동일한 상황에서 각 요청 콤포넌트(741, 742)에 요청 인터페이스(741b, 742b)가 추가된 실시예이다.
설명의 편의상, 각 요청 콤포넌트(741, 742)의 좌측에 존재하는 인터페이스들(741a, 742a)을 제 1 요청 인터페이스, 우측에 존재하는 인터페이스들(741b, 742b)을 제 2 요청 인터페이스라 칭하도록 한다.
추가된 제 2 요청 인터페이스들(741b, 742b)은 다른 제공 컴포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있으므로, 도 7c와는 달리 제 1 요청 인터페이스들(741a, 742a)만 사용자의 명시적 제한에 영향을 받고, 요청 콤포넌트들(741, 742)은 영향을 받지 않음을 나타내고 있다.
도 7e는 도 7a와 동일한 상황에서, 적어도 하나의 제공 인터페이스(750a, 750b)에 대해 적어도 하나의 요청 인터페이스(751a, 751b)가 선택적으로 연결될 수 있음을 나타내고 있다.
도 7b 및 도 7d에 도시된 제 1 요청 인터페이스(721a, 741a, 742a) 및 제 2 요청 인터페이스(721b 741b, 742b)는 각각 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있지만, 도 7e에 도시된 요청 인터페이스들(751a, 751b)은 동일한 제공 콤포넌트(750)의 인터페이스들(750a, 750b)과 선택적으로 연결될 수 있다.
도 7f는 도 7d와 동일한 상황에서 요청 콤포넌트(761)에 요청 인터페이스(761c)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 7e와 동일하다.
이때, 추가된 요청 인터페이스(861c)는 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있다.
도 8a 및 도 8b는 본 발명의 실시예에 따른, selective 콤포넌트에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 3개의 제공 콤포넌트 및 제공 콤포넌트들로부터 기능을 제공받는 1개의 요청 콤포넌트가 존재하고 각 컴포넌트에는 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
본 발명의 내제된 가변성 규칙에서 'Selective' 설정은 관련 있는 복수의 콤포넌트 모델 요소에 대해 공통적으로 적용된다는 점에서 'Alternative'와 유사하나, 동일한 환경변수의 설정에 영향을 받는 요소들을 묶어 가변성을 표현함에 있어, 하나 이상의 요소가 선택될 수 있다는 차이점이 있다.
즉, 선택 요소가 없거나 여러 개가 존재할 수 있는 경우이다.
참고로, 도 8a 내지 도 8b에서 직사각형 형상의 표시(notation)는 3개의 제 공 콤포넌트(810, 811, 812)가 동일한 환경변수의 설정에 영향을 받고 있음을 나타내는 것이다.
먼저, 도 8a에서 사용자가 명시적 제한으로, 3개의 제공 콤포넌트(810, 811, 812)에서, 동일한 환경변수의 설정에 영향을 받는 특정 기능을 제한한 경우, 각 콤포넌트의 제공 인터페이스(810a, 811a, 812a)는 사용자의 명시적 제한에 영향을 받으며, 각 콤포넌트와 연결된 커넥션(814, 824) 역시 사용자의 명시적 제한에 영향을 받게 된다.
참고로, 도 2a 내지 도 4d에서는 사용자의 명시적 제한의 실시예로 콤포먼트 모델 요소를 삭제하는 경우를 설명하였다.
이때, 상술한 바와 같이, 'selective' 설정은 관련 있는 복수의 콤포넌트 모델 요소에 대해 공통적으로 이루어지며, 동일한 환경변수의 설정에 영향을 받는 요소들을 묶어 가변성을 표현하는 경우에, 선택요소가 없거나 여러 개가 존재할 수 있으므로, 도 8a에서 3개의 제공 콤포넌트(810, 811, 812)에 적용된 사용자의 명시적 제한은 커넥션(814), 요청 인터페이스(813a) 및 요청 콤포넌트(813)에 영향을 줄 수 있다.
따라서, 도 8에 도시된 바와 같이, 커넥션(814), 요청 인터페이스(813a) 및 요청 콤포넌트(813)가 모두 점선으로 표시되어 있다.
도 8b는 도 8a와 동일한 상황에서 요청 콤포넌트(823)에 요청 인터페이스(823b)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 8a와 동일하다.
이때, 요청 콤포넌트(823)는 사용자의 명시적 제한에 영향을 받지 않음을 나타내는 실선으로 표시되어 있는데, 그 이유는 추가된 요청 인터페이스(823b)가 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있기 때문이다.
도 9a 및 도 9b는 본 발명의 실시예에 따른, selective 커넥션에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 2개의 제공 콤포넌트 및 제공 콤포넌트들로부터 기능을 제공받는 1개의 요청 콤포넌트가 존재하고 각 컴포넌트에는 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
참고로, 직사각형 형상의 표시(notation)(914, 924)는 2개의 커넥션이 동일한 환경변수의 설정에 영향을 받고 있음을 나타내는 것이다.
상술한 바와 같이, selective 커넥션의 경우, 선택요소가 없거나 여러 개가 존재할 수 있으므로 커넥션에 대한 사용자의 명시적 제한에 요청 인터페이스(912a) 및 요청 콤포넌트(912)가 모두 영향을 받을 수 있다.
도 9b는 도 9a와 동일한 상황에서 요청 콤포넌트(922)에 요청 인터페이스(922b)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 9a와 동일하다.
이때, 요청 콤포넌트(922)는 사용자의 명시적 제한에 영향을 받지 않음을 나타내는 실선으로 표시되어 있는데, 그 이유는 추가된 요청 인터페이스(922b)가 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있기 때문이다.
도 10a 내지 도 10f는 본 발명의 실시예에 따른, 'selective' 인터페이스에 내제된 가변성 규칙의 적용을 도시한 도면으로서, 특정 기능을 제공하는 1개의 제공 콤포넌트 및 적어도 하나의 제공 인터페이스, 그리고 제공 콤포넌트로부터 기능을 제공받는 적어도 1개의 요청 콤포넌트가 존재하고, 각 컴포넌트에는 적어도 1개의 인터페이스가 존재하며, 각 인터페이스는 서로 커넥션으로 연결되어 있다.
참고로, 직사각형 형상의 표시(notation)는 2개의 인터페이스가 동일한 환경변수의 설정에 영향을 받고 있음을 나타내는 것이다.
설명의 편의 상, 2개의 제공 인터페이스 중 세로방향에서 첫 번째 인터페이스를 제 1 제공 인터페이스, 세로방향에서 두 번째 인터페이스를 제 2 제공 인터페이스라 칭하도록 한다.
먼저, 도 10a는 사용자의 명시적 제한이 제공 인터페이스(1010a, 1010b)에 적용된 실시예로서, 제공 인터페이스(1010a, 1010b)에 사용자의 명시적 제한이 selective로 적용될 경우, 선택요소가 없거나 여러 개가 존재할 수 있으므로 커넥션(1012), 요청 인터페이스(1011a) 및 요청 콤포넌트(1011)가 모두 영향을 받을 수 있음을 나타내고 있다.
도 10b는 도 10a와 동일한 상황에서 요청 콤포넌트(1021)에 요청 인터페이스(1021b)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 10a와 동일하다.
이때, 요청 콤포넌트(1021)는 사용자의 명시적 제한에 영향을 받지 않음을 나타내는 실선으로 표시되어 있는데, 그 이유는 추가된 요청 인터페이스(1021b)가 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있기 때문이 다.
도 10c는 도 10a와 동일한 상황에서, 각 제공 인터페이스(1030a, 1030b)에 요청 인터페이스(1031a, 1032a)가 하나씩 커넥션으로 연결되어 있는 실시예이다.
이를 각 요청 인터페이스(1031a, 1032a) 입장에서 본다면, 하나의 제공 인터페이스(1030a, 1030b)와 별도의 커넥션(1033, 1034)으로 연결된 상태이며, selective 인터페이스 설정의 경우, 선택요소가 없거나 여러 개가 존재할 수 있으므로 제공 인터페이스(1030a, 1030b)에 적용된 사용자의 명시적 제한에 커넥션(1033, 1034)이 영향을 받고, 커넥션(1033, 1034)의 영향으로 요청 인터페이스(1031a, 1032a) 및 요청 콤포넌트(1031, 1032)가 영향을 받을 수 있다.
도 10d는 도 10c와 동일한 상황에서 각 요청 콤포넌트(1041, 1042)에 요청 인터페이스(1041b, 1042b)가 각각 추가된 실시예이다.
설명의 편의상, 요청 콤포넌트(1041, 1042)의 좌측에 존재하는 인터페이스들(1041a, 1042a)을 제 1 요청 인터페이스, 우측에 존재하는 인터페이스들(1041b, 1042b)을 제 2 요청 인터페이스라 칭하도록 한다.
추가된 제 2 요청 인터페이스들(1041b, 1042b)이 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있으므로, 도 10c와는 달리 제 1 요청 인터페이스들(1041a, 1042a)만 사용자의 명시적 제한에 영향을 받고, 요청 콤포넌트들(1041, 1042)은 영향을 받지 않음을 나타내고 있다.
도 10e는 도 10a와 동일한 상황에서, 적어도 하나의 제공 인터페이스(1050a, 1050b)에 대해 적어도 하나의 요청 인터페이스(1051a, 1051b)가 선택적으로 연결될 수 있음을 나타내고 있다.
도 10b 및 도 10d에 도시된 제 1 요청 인터페이스(1021a, 1041a, 1042a) 및 제 2 요청 인터페이스(1021b 1041b, 1042b)는 각각 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있지만, 도 10e에 도시된 요청 인터페이스들(1051a, 1051b)은 동일한 제공 콤포넌트(1050)의 인터페이스들(1050a, 1050b)과 선택적으로 연결될 수 있으며, selective 인터페이스 설정의 경우, 선택요소가 없거나 여러 개가 존재할 수 있으므로 도 7e에 도시된 경우와 달리 요청 콤포넌트(1051)도 사용자의 명시적 제한에 영향을 받게 된다.
도 10f는 도 10d와 동일한 상황에서 요청 콤포넌트(1061)에 요청 인터페이스(1061c)가 추가된 경우로서, 인터페이스의 개수만 차이가 있을 뿐, 내용은 도 10f와 동일하다.
이때, 추가된 요청 인터페이스(1061c)는 다른 제공 콤포넌트(미도시)의 제공 인터페이스(미도시)와 연결될 수 있으므로, 요청 콤포넌트(1061)는 사용자의 명시적 제한에 영향을 받지 않는다.
도 11a 및 도 11b는 본 발명의 실시예에 따른 콤포넌트 기술 언어 처리부(110)를 통해 표현되는 구문 및 이에 대응하는 각 요소의 실시예를 도시한 도면이다.
도 11b에는, 내부에 어떤 요소도 포함하지 않는 기본 콤포넌트, 적어도 하나의 기본 콤포넌트로 구성되는 복합 콤포넌트 및 내부에 적어도 하나의 기본 콤포넌트와 적어도 하나의 하위 복합 콤포넌트(sub composite component)를 포함하는 최 상위 복합 콤포넌트인 루트 복합 콤포넌트(root composite component)가 도시되어 있다.
도 11a에서, 기본 콤포넌트의 구문(1110)을 분석해보면 기본 콤포넌트 A1, A2, B1 및 B2는 제공 인터페이스를 통해 특정 기능을 각각 제공하고 있음을 나타내고 있다.
참고로, 제공 인터페이스의 접두어로 ipl을, 요청 인터페이스의 접두어로 irl을 사용하도록 한다.
또한, 도 11a에서 복합 콤포넌트 B의 구문(1120)을 분석해보면, 복합 콤포넌트 B는 기본 콤포넌트 B1 및 B2를 포함하며(1121), 제공 인터페이스 ipl_B1 및 ipl_B2를 통해 특정 기능을 제공(1122)하는데, 제공 인터페이스 ipl_B1 및 ipl_B2는 제공 콤포넌트 B1 및 B2에서 위임 받았음(1123)을 나타내고 있다.
또한, 복합 콤포넌트 L의 구문(1130)을 분석해보면, 복합 콤포넌트 L은 기본 콤포넌트 A1, A2 및 D를 포함하며(1131), 요청 인터페이스 irl_C를 통해 특정 기능을 요청(1132)하는데, 요청 인터페이스 irl_C는 기본 콤포넌트 D로부터 위임 받았음(1134)을 나타내고 있다.
그리고, 콤포넌트 D의 요청 인터페이스 irl_A는 기본 콤포넌트 A1, A2의 제공 인터페이스 ipl_A1 및 ipl_A2의 값 중 어느 하나를 요청함으로써 커넥션이 연결됨(1133)을 나타내고 있으며, 복합 콤포넌트 L의 변수 설정(1135)을 나타내고 있다.
참고로, 도 11b에 도시된 사다리꼴 형태의 표시(notation)는 입력되는 값 중 어느 하나를 출력하는 스위치의 기능을 나타낸다.
또한, 복합 콤포넌트 M의 구문(1140)을 분석해보면, 복합 콤포넌트 M은 복합 콤포넌트 B와 기본 콤포넌트 C를 포함(1141)하는데, 이때 복합 콤포넌트 B를 포함하고 있는 복합 콤포넌트 M의 입장에서 복합 콤포넌트 B의 변수를 정의함으로써 복합 콤포넌트 B의 포함여부를 결정할 수 있음(1141a)을 나타내고 있다.
도 11b에서 볼 수 있듯이 복합 콤포넌트 B는 복합 콤포넌트 M에 포함될 수도 있고, 포함되지 않을 수도 있음을 나타내기 위해 점선으로 표시되어 있다.
계속하여, 복합 콤포넌트 M의 구문(1140)을 분석해보면, 복합 콤포넌트 B의 제공 인터페이스 ipl_B1 및 ipl_B2는 기본 콤포넌트 C의 요청 인터페이스 irl_B1 및 irl_B2와 커넥션으로 연결(1143)되어 있고, 복합 콤포넌트 M의 제공 인터페이스 ipl_C는 기본 콤포넌트 C로부터 위임 받았음(1142)을 나타내고 있으며, 복합 콤포넌트 M의 변수, 즉 복합 콤포넌트 B의 포함여부에 대한 값 설정(1144)을 나타내고 있다.
끝으로, 루트 복합 콤포넌트 T5의 구문(1150)을 분석해보면, T5는 복합 콤포넌트 L 및 M을 포함(1151)하고, 복합 콤포넌트 L 및 M은 복합 콤포넌트 M의 제공 인터페이스와 복합 콤포넌트 L의 요청 인터페이스의 커넥션으로 연결(1152)되어 있으며, 복합 콤포넌트 L 및 M의 상위 콤포넌트, 즉 T5에서 각 콤포넌트에 포함된 변수 설정을 위임 받았음(1153)을 나타내고 있다.
따라서, 사용자가 루트 복합 콤포넌트 T5에서, 복합 콤포넌트 L 및 M으로부터 위임 받은 변수에 대한 설정을 적용하면, T5에 포함된 모든 하위 요소들에 해당 설정 내용이 적용된다.
도 12a 내지 도 12e는 본 발명의 다른 실시예에 따른 콤포넌트 기술 언어 처리부(110)를 통해 표현되는 구문 및 이에 대응하는 각 요소의 실시예를 도시한 도면이다.
참고로, 본 발명의 실시예에서는 사용자의 명시적 제한으로, 조건에 따라 요소의 포함여부가 결정되는 option을 적용한다고 가정하도록 한다.
먼저, 도 12a의 구문(1210)을 분석해보면, 복합 콤포넌트 T1은 기본 콤포넌트 APM 및 COM을 포함(1211)하며, 기본 콤포넌트 APM 및 COM은 기본 콤포넌트 APM의 제공 인터페이스(1213)와 기본 콤포넌트 COM의 요청 인터페이스(1214)가 커넥션으로 연결되어 있음(1212)을 나타내고 있다.
이때, 기본 콤포넌트 COM의 요청 인터페이스는 이미 option이 적용되어 있는 상태(1212)이며, 기본 콤포넌트 COM에서 그 값을 설정(1215)한다
이후, 도 12b의 구문(1220)을 분석해보면, 사용자가 기본 콤포넌트 APM에 대한 option, 즉 해당 컴포넌트를 삭제하는 경우, 기본 콤포넌트 APM의 상위 콤포넌트인 복합 콤포넌트 T1의 구문에는, 기본 콤포넌트 APM에 대한 option 및 변수가 정의(1221)되어 있고, 변수에 대한 값 설정(1222)이 나타나 있다.
이후, 도 12c의 구문(1230)을 분석해보면, 사용자에 의한 기본 콤포넌트 APM에 대한 명시적 제한이 기본 콤포넌트 APM의 제공 인터페이스에 적용(1231)됨을 나타내고 있다.
즉, 기본 콤포넌트 APM을 삭제함으로써 기본 콤포넌트 APM의 제공 인터페이 스가 그 영향을 받아 삭제되는 것이다.
기본 콤포넌트 APM의 구문에는 제공 인터페이스에 대한 option 및 변수가 정의되어 있고, 변수에 대한 값 설정(1232)이 나타나 있다.
이후, 도 12d의 구문(1240)을 분석해보면, 기본 콤포넌트 COM의 입장에서, 기본 콤포넌트 APM의 제공 인터페이스가 사용자의 명시적 제한에 적용됨에 따라 커넥션도 적용을 받고 기본 콤포넌트 COM의 요청 인터페이스도 사용자의 명시적 제한에 적용됨(1241)을 나타내고 있다.
즉, 기본 콤포넌트 APM의 제공 인터페이스가 삭제됨에 따라 콤포넌트 COM의 요청 인터페이스도 그 영향을 받아 삭제되는 것이다.
기본 콤포넌트 COM의 구문에는 요청 인터페이스에 대한 option 및 변수가 정의되어 있고, 변수에 대한 값 설정(1242)이 나타나 있다.
참고로, 도 12a를 참조하여 설명했듯이, 기본 콤포넌트 COM의 요청 인터페이스는 이미 option이 적용되어 있는 상태였으며, 이에 더하여 추가로 option 및 변수가 정의되어 있고, 변수에 대한 값이 설정된다.
이후, 도 12e의 구문(1250)을 분석해보면, 기본 콤포넌트 COM의 요청 인터페이스가 사용자의 명시적 제한에 적용됨에 따라 기본 콤포넌트 COM 역시 사용자의 명시적 제한에 적용됨을 나타내고 있다.
즉, 기본 콤포넌트 COM의 요청 인터페이스가 삭제됨에 따라 기본 콤포넌트 COM이 그 영향을 받아 삭제되는 것이다.
상위 콤포넌트인 복합 콤포넌트 T1의 구문에는, 기본 콤포넌트 COM에 대한 option 및 변수가 정의되어 있고, 변수에 대한 값 설정(1251)이 나타나 있다.
또한, 상술한 것처럼 커넥션도 삭제되므로, 커넥션에 대한 option 및 변수가 정의(1252)되어 있고, 변수에 대한 값 설정이 나타나 있다.
도 13은 본 발명의 실시예에 따른, 소프트웨어 아키텍쳐 설계에 있어서 내제된 가변성 규칙이 적용되는 과정을 도시한 도면이다.
먼저, 콤포넌트 모델 설계부(180)를 통해 설계 작업이 이루어진다(S1301).
설계 작업은 콤포넌트 모델을 구성하기 위한 콤포넌트, 인터페이스, 커넥션 및 가변성 요소들의 배치와 세부 설정으로 이루어지게 되며, 복합 콤포넌트 및 가변성 매핑(variability mapping) 등의 연동 구성도 필요에 따라 설계에 포함된다.
S1301 후, 콤포넌트 관리부(120)는 콤포넌트 모델 설계부(180)에 의해 구성된 소프트웨어 아키텍쳐 설계 정보로부터, 해당 아키텍쳐에 포함되는 콤포넌트 모델 요소간의 상호 관계 및 세부 정보를 저장하고 변경 내역을 관리한다(S1302).
S1302 후, 콤포넌트 기술 언어 처리부(110)는 콤포넌트 모델 구성을 구문 형식으로 기술하고, 설계 변경에 따라 구문 변경을 수행한다(S1303).
이때, 콤포넌트 기술 언어 처리부(110)는 규정된 CDL(Component Description Language) 구문 형식을 준수하며, 표시(notation)로 표현된 설계 정보와 동기화된 구문(description) 생성을 담당한다.
S1303 후, 콤포넌트 관리부(120)는 콤포넌트 관리부(120)에서 분석 관리하는 콤포넌트 모델 요소의 세부 정보를 각 조작부에게 전달하며, 각 조작부는 각 콤포넌트 모델 요소 목록과 세부 정보를 분담하여 관리한다(S1304).
가변성 조작부(160)는, 콤포넌트 모델 설계부(180)에서 변경된 설계 정보 가운데 콤포넌트 관리부(120)가 전달해 준 가변성 요소의 변경 항목 및 설정 정보를 내제된 가변성 규칙 관리부(170)에게 전달해 준다(S1305).
S1305 후, 내제된 가변성 규칙 관리부(170)는 변경 사항이 발생한 것으로 파악된 가변성 요소에 대해, 가변성 설정 대상 콤포넌트 및 연계되어 있는 콤포넌트 모델 요소들에 대한 내제된 가변성 규칙 적용 여부 및 적용 타입을 판단한다(S1306).
S1306 후, 내제된 가변성 규칙 관리부(170)에 의해 내제된 가변성 규칙 적용이 필요하다고 결정된 경우, 콤포넌트 모델 설계부(180)는 변경이 필요한 요소들에 대한 설계를 변경한다.
S1307 후, 변경된 설계 정보에 따라, 다시 콤포넌트 관리부(120)는 콤포넌트 모델 구성 요소들에 대한 상호 관계 및 세부 정보를 갱신 관리한다(S1308).
도 14는 본 발명의 실시예에 따른 내제된 가변성 규칙 카테고리의 결정 과정을 도시한 흐름도이다.
도 14에 도시된 흐름도는 내제된 가변성 규칙 관리부(170)의 카테고리 파악부(172)에서 실행될 수 있으며, 가변성이 설정되는 콤포넌트 모델 요소에 대해 파악하고, 어떠한 내제된 가변성 규칙이 적용되어야 하는지를 판단하기 위한 절차이다.
먼저, 콤포넌트 모델 설계부(180)를 통해 가변성 설정 작업이 이루어진다(S1401).
이때, 가변성이 설정되는 콤포넌트 모델 요소에 대한 정보가 콤포넌트 관리부(120) 및 가변성 조작부(160)를 거쳐 내제된 가변성 규칙 관리부(170)에게 전달된다.
내제된 가변성 규칙 관리부(170)는 가변성이 설정된 콤포넌트 모델 요소로부터 연관 관계를 분석한다(S1402).
콤포넌트에 대한 가변성 설정이 이루어진 경우라면, 내제된 가변성 규칙 관리부(170)는 콤포넌트에 연결된 인터페이스(S1403)와 커넥션(S1404) 및 주변 콤포넌트들과의 관계를 분석(S1405)하며, 이는 연결되어 있는 인터페이스, 커넥션 및 콤포넌트들을 대상으로 한다.
S1405 후, 내제된 가변성 규칙 관리부(170)는 내제된 가변성 체크 테이블(Implicit Variability Check Table)의 분류 유형, 즉 카테고리 파악하고, 파악된 카테고리에 따라 적용되어야 할 내제된 가변성 규칙을 선정한다(S1406).
참고로, 내제된 가변성 체크 테이블은 내제된 가변성 규칙을 테이블로 만들어 놓은 것이다.
S1403 후, 내제된 가변성 규칙에 따라, 연관 관계에 있는 요소들에 대해 순차적으로 가변성 변경이 이루어진다(S1407).
도 15는 본 발명의 실시예에 따른, 내제된 가변성 규칙의 적용 과정을 도시한 흐름도이다.
즉, 설계자에 의해 가변성이 설정된 콤포넌트 모델 요소와 연계되어 있는 다른 요소들에 대해, 내제된 가변성 규칙에 따라 가변성을 설정해 나가는 절차이다.
먼저, 내제된 가변성 규칙 관리부(170)는 명시적으로 가변성이 설정된 콤포넌트 모델 요소를 중심으로 한 설계 구성에서, 적용되어야 할 내제된 가변성 규칙을 결정한다(S1501).
S1501 후, 내제된 가변성 규칙의 적용 대상이 되는 요소들의 설정을 체크한다(S1502).
S1502 후, 해당 요소가 'Mandatory' 설정이 되어 있지 않은지 확인한다(S1503).
확인결과, 'Mandatory' 설정이 된 경우는 내제된 가변성 규칙의 적용을 받지 않도록 설계자에 의해 명시적으로 선언된 것이므로, 다음 요소에 대한 진행을 체크하기 위해 S1502의 과정을 반복한다.
만일 S1503 결과, 대상 요소가 'Mandatory' 설정이 되어 있지 않다면 내제된 가변성 규칙의 적용이 가능하므로, 내제된 가변성 규칙에 따른 가변성 설정을 수행하고, 해당 요소를 가변성 변경 요소 목록에 추가시킨다(S1504).
S1504 후, 내제된 가변성 규칙에 의해 가변성이 변경된 요소에 대해, 이로 인해 재귀적으로 발생할 수 있는 내제된 가변성 규칙 여부를 확인한다(S1505).
S1505 후, 내제된 가변성 규칙에 따라 가변성이 변경된 요소를 중심으로 하여, 이와 연결 관계에 있는 다른 요소들이 내제된 가변성 규칙의 적용을 필요로 하지 않는지를 판단한다(S1506).
S1506 결과, 새로운 내제된 가변성 규칙의 적용이 필요한 경우, S1501의 과정을 해당 요소로부터 반복적으로 진행한다.
만일 S1506 결과, 모든 요소들에 대한 내제된 가변성 규칙의 적용이 완료되면, 변동 내역 정보를 콤포넌트 모델 설계부(180)에게 전달하여 소프트웨어 아키텍쳐 설계 정보 및 표시(notation)에 반영시킨다(S1507).
S1507 후, 콤포넌트 관리부(120)는 변동된 설계 정보에 대한 구문(description)을 동기화하여 기술하고 저장 관리한다(S1508).
도 16은 본 발명의 실시예에 따른, 콤포넌트 모델 구문 동기화 (Component Model Description Synchronization) 과정을 도시한 흐름도로서, 콤포넌트 모델 설계부(180)를 통해 변경되는 설계 정보를, 콤포넌트 모델 구문(component model description)으로 동일하게 기술하기 위한 절차이다.
기본적으로 모든 설계 정보는 콤포넌트 관리부(120)를 통해 파악되며, 이를 표시(notation)가 아닌 구문(description)으로 기술하여 내부 처리에 필요한 데이터로 관리하기 위한 작업이 이루어지게 된다.
이를 위해 먼저, 콤포넌트 기술 언어 처리부(110)가 콤포넌트 모델 구문을 수행한다(S1601).
S1601후 가변성 설정이 변경된 콤포넌트 모델 요소를 파악하고, 내제된 가변성 규칙 적용 과정에서 저장된 가변성 변경 요소 목록 정보를 참조하여, 구문 변경 여부를 파악한다(S1602).
S1602 후, 가변성 변경 요소 목록에 추가된 항목이 있는지 판단하고(S1603), 추가된 항목이 있다면, 해당 요소를 포함하고 있는 콤포넌트 모델 구문을 메모리에 적재시킨다(S1604).
만일 S1603 결과, 추가된 항목이 없다면 콤포넌트 모델 구문을 갱신하고 종료한다.
S1604 후, 콤포넌트 모델 구문에서 'configuration-variables' 구문 블록(block)에, 내제된 가변성 규칙에 의해 추가된 환경변수를 추가하여 기술한다(S1605).
참고로, 'configuration-variables' 구문 블록(block)에 추가된 환경변수는, 'contains', 'connects', 'provides', 'requires' 등의 콤포넌트 모델 구문의 특정 구문 블록 내의 조건문에 반영된다.
이는 기존 조건문에 이미 존재하는 환경변수의 설정 조건 이외에, 추가 환경변수의 설정 조건도 포함시키기 위함이다.
S1605 후, 가변성 변경 요소 목록의 모든 연관 요소들에 대한 진행이 완료되었는지 판단하고(S1606), 완료되었으면 최종 콤포넌트 모델 구문을 갱신하여 저장한다(S1607).
만일 S1606 결과, 아직 진행이 완료되지 않은 요소가 존재한다면 S1603의 과정을 반복한다.
이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
도 1은 본 발명의 실시예에 따른 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치의 구성을 도시한 블록도이다.
도 2a 내지 도 2d는 본 발명의 실시예에 따른, optional 콤포넌트에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 3a 및 도 3b는 본 발명의 실시예에 따른, optional 커넥션에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 4a 내지 도 4d는 본 발명의 실시예에 따른, optional 인터페이스에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 5a 및 도 5b는 본 발명의 실시예에 따른, alternative 콤포넌트에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 6a 및 도 6b는 본 발명의 실시예에 따른, alternative 커넥션에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 7a 내지 도 7f는 본 발명의 실시예에 따른, alternative 인터페이스에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 8a 및 도 8b는 본 발명의 실시예에 따른, selective 콤포넌트에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 9a 및 도 9b는 본 발명의 실시예에 따른, selective 커넥션에 내제된 가변성 규칙의 적용을 도시한 도면이다.
도 10a 내지 도 10f는 본 발명의 실시예에 따른, selective 인터페이스에 내 제된 가변성 규칙의 적용을 도시한 도면이다.
도 11a 및 도 11b는 본 발명의 실시예에 따른 콤포넌트 기술 언어 처리부(110)를 통해 표현되는 구문 및 이에 대응하는 각 요소의 실시예를 도시한 도면이다.
도 12a 내지 도 12e는 본 발명의 다른 실시예에 따른 콤포넌트 기술 언어 처리부(110)를 통해 표현되는 구문 및 이에 대응하는 각 요소의 실시예를 도시한 도면이다.
도 13은 본 발명의 실시예에 따른, 소프트웨어 아키텍쳐 설계에 있어서 내제된 가변성 규칙이 적용되는 과정을 도시한 도면이다.
도 14는 본 발명의 실시예에 따른 내제된 가변성 규칙 카테고리의 결정 과정을 도시한 흐름도이다.
도 15는 본 발명의 실시예에 따른, 내제된 가변성 규칙의 적용 과정을 도시한 흐름도이다.
도 16은 본 발명의 실시예에 따른, 콤포넌트 모델 구문 동기화 과정을 도시한 흐름도이다.
<도면의 주요 부분에 관한 부호의 설명>
110 : 콤포넌트 기술 언어 처리부
120 : 콤포넌트 관리부
130 : 콤포넌트 조작부
140 : 인터페이스 조작부
150 : 커넥션 조작부
160 : 가변성 조작부
170 : 내제된 가변성 규칙 관리부
171 : 카테고리 파악부
172 : 내제된 가변성 규칙 적용부
180 : 콤포넌트 모델 설계부

Claims (16)

  1. 가변성이 설정된 콤포넌트 모델 요소 및 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규칙의 카테고리(category)를 파악하는 카테고리 파악부;
    상기 카테고리에 부여된 내제된 가변성 규칙을 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용하는 내제된 가변성 규칙 적용부; 및
    상기 콤포넌트 모델에 존재하는 가변성 요소의 목록 및 각 가변성의 설정 조건 정보를 관리하는 가변성 조작부를 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  2. 제 1항에 있어서,
    상기 내제된 가변성 규칙이 적용된 요소들의 가변성 표현을 변경하는 콤포넌트 모델 설계부를 더 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  3. 제 2항에 있어서,
    상기 콤포넌트 모델을 기술하기 위한 콤포넌트 기술 언어(Component Description Language, CDL)를 처리하는 콤포넌트 기술 언어 처리부;
    상기 콤포넌트 기술 언어를 통해 상기 콤포넌트 모델을 유지하고 변경하는 콤포넌트 관리부;
    상기 콤포넌트 모델에 표현된 콤포넌트 목록 정보 및 상기 콤포넌트 상호간 의존 관계를 관리하는 콤포넌트 조작부;
    상기 콤포넌트 모델에 존재하는 인터페이스(interface) 요소의 목록 및 상기 콤포넌트와 인터페이스의 연결 정보를 관리하는 인터페이스 조작부; 및
    상기 콤포넌트 모델에 존재하는 커넥션(connection) 요소의 목록 및 각 커넥션의 연결 정보를 관리하는 커넥션 조작부를 더 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  4. 제 1항에 있어서,
    상기 가변성은 option, alternative, selective 및 mandatory 중 적어도 하나를 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  5. 제 4항에 있어서,
    상기 option은 상기 콤포넌트 모델 요소에 단독으로 부여되며 조건에 따라 선택이 가능한, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  6. 제 4항에 있어서,
    상기 alternative는 복수의 상기 콤포넌트 모델 요소에 대해 공통적으로 적용되며, 반드시 하나의 상기 콤포넌트 모델 요소가 선택되는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  7. 제 4항에 있어서,
    상기 selective는 복수의 상기 콤포넌트 모델 요소에 대해 공통적으로 적용되며, 상기 콤포넌트 모델 요소가 선택되지 않거나 적어도 하나의 상기 콤포넌트 모델 요소가 선택되는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  8. 제 4항에 있어서,
    상기 mandatory는 상기 내제된 가변성 규칙이 적용되는 상황에서도 상기 가변성이 자동 변경되지 않는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 장치.
  9. 콤포넌트 모델 요소에 대한 가변성을 설정하는 variability 설정 단계;
    상기 가변성이 설정된 콤포넌트 모델 요소 및 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 대한 내제된 가변성 규칙의 카테고리(category)를 파악하는 카테고리 파악 단계;
    상기 카테고리에 부여된 내제된 가변성 규칙을 상기 가변성이 설정된 콤포넌트 요소와 연관된 요소들에 적용하는 내제된 가변성 규칙 적용 단계; 및
    상기 콤포넌트 모델에 존재하는 가변성 요소의 목록 및 각 가변성의 설정 조건 정보를 관리하는 가변성 조작 단계를 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  10. 제 9항에 있어서,
    상기 내제된 가변성 규칙이 적용된 요소들의 가변성 표현을 변경하는 가변성 변경 단계를 더 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  11. 제 10항에 있어서,
    상기 콤포넌트 모델을 기술하기 위한 콤포넌트 기술 언어(Component Description Language, CDL)를 처리하는 콤포넌트 기술 언어 처리 단계;
    상기 콤포넌트 기술 언어를 통해 상기 콤포넌트 모델을 유지하고 변경하는 콤포넌트 관리 단계;
    상기 콤포넌트 모델에 표현된 콤포넌트 목록 정보 및 상기 콤포넌트 상호간 의존 관계를 관리하는 콤포넌트 조작 단계;
    상기 콤포넌트 모델에 존재하는 인터페이스(interface) 요소의 목록 및 상기 콤포넌트와 인터페이스의 연결 정보를 관리하는 인터페이스 조작 단계; 및
    상기 콤포넌트 모델에 존재하는 커넥션(connection) 요소의 목록 및 각 커넥션의 연결 정보를 관리하는 커넥션 조작 단계를 더 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  12. 제 9항에 있어서,
    상기 가변성은 option, alternative, selective 및 mandatory 중 적어도 하나를 포함하는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  13. 제 12항에 있어서,
    상기 option은 상기 콤포넌트 모델 요소에 단독으로 부여되며 조건에 따라 선택이 가능한, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  14. 제 12항에 있어서,
    상기 alternative는 복수의 상기 콤포넌트 모델 요소에 대해 공통적으로 적용되며, 반드시 하나의 상기 콤포넌트 모델 요소가 선택되는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  15. 제 12항에 있어서,
    상기 selective는 복수의 상기 콤포넌트 모델 요소에 대해 공통적으로 적용 되며, 상기 콤포넌트 모델 요소가 선택되지 않거나 적어도 하나의 상기 콤포넌트 모델 요소가 선택되는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
  16. 제 12항에 있어서,
    상기 mandatory는 상기 내제된 가변성 규칙이 적용되는 상황에서도 상기 가변성이 자동 변경되지 않는, 콤포넌트 모델 및 아키텍쳐 설계를 위한 가변성 규칙을 제공하는 방법.
KR1020070091136A 2007-09-07 2007-09-07 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치 KR101552188B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070091136A KR101552188B1 (ko) 2007-09-07 2007-09-07 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치
US12/035,747 US8429608B2 (en) 2007-09-07 2008-02-22 Method and apparatus for providing implicit variability rules for component model and architecture design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070091136A KR101552188B1 (ko) 2007-09-07 2007-09-07 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090025930A KR20090025930A (ko) 2009-03-11
KR101552188B1 true KR101552188B1 (ko) 2015-09-10

Family

ID=40433212

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070091136A KR101552188B1 (ko) 2007-09-07 2007-09-07 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치

Country Status (2)

Country Link
US (1) US8429608B2 (ko)
KR (1) KR101552188B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9360853B2 (en) * 2011-09-19 2016-06-07 Dspace Gmbh Exchange of files and meta-information between system design tools and behavior modeling tools and/or simulators for the creation of ECU software
US11593076B2 (en) * 2020-06-26 2023-02-28 Dspace Gmbh Method for merging architecture data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129345A1 (en) * 2000-09-27 2002-09-12 Tilden Mark D. Scripting business logic in a distributed object oriented environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU648533B2 (en) * 1989-11-30 1994-04-28 Seer Technologies, Inc. Software engineering facility
JPH04362739A (ja) 1991-06-10 1992-12-15 Oki Electric Ind Co Ltd 変数管理方法
CA2249386C (en) * 1996-03-19 2004-06-01 Massachusetts Institute Of Technology Computer system and computer implemented process for representing software system descriptions and for generating executable computer programs and computer system configurations from software system descriptions
US7137101B1 (en) * 1998-12-03 2006-11-14 International Business Machines Corporation Apparatus and method for performing general integrity checks using integrity rule checking points in an enterprise application
US6341369B1 (en) * 1998-12-03 2002-01-22 International Business Machines Corporation Method and data processing system for specifying and applying rules to classification-based decision points in an application system
US6549969B1 (en) * 2000-02-29 2003-04-15 International Business Machines Corporation Interlock for preventing human error in hot pluggable systems
WO2002001378A1 (en) * 2000-06-23 2002-01-03 Decis E-Direct, Inc. Component models
US6738871B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Method for deadlock avoidance in a cluster environment
US6738872B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Clustered computer system with deadlock avoidance
US7114157B2 (en) * 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources
KR100463833B1 (ko) 2001-12-29 2004-12-29 한국전자통신연구원 컴포넌트 자동 변환 시스템 및 방법
US7386835B1 (en) * 2002-03-22 2008-06-10 Emc Corporation Technique for graphical user interface modification
US7711694B2 (en) * 2002-12-23 2010-05-04 Sap Ag System and methods for user-customizable enterprise workflow management
KR100500245B1 (ko) 2003-02-18 2005-07-11 삼성전자주식회사 객체 지향 프로그램이 기록된 저장 매체
US7263220B2 (en) * 2003-02-28 2007-08-28 Eastman Kodak Company Method for detecting color objects in digital images
US20050102488A1 (en) * 2003-11-07 2005-05-12 Bullis George A. Firmware description language for accessing firmware registers
US7448022B1 (en) * 2004-02-10 2008-11-04 Prasad Ram Dynamic software composition in a component-based software system
US7290170B2 (en) * 2004-04-07 2007-10-30 International Business Machines Corporation Arbitration method and system for redundant controllers, with output interlock and automatic switching capabilities
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US20070245298A1 (en) * 2006-04-18 2007-10-18 International Business Machines Corporation Apparatus and data structure for automatic workflow composition
US20080259930A1 (en) * 2007-04-20 2008-10-23 Johnston Simon K Message Flow Model of Interactions Between Distributed Services
US8285700B2 (en) * 2007-09-07 2012-10-09 Brand Affinity Technologies, Inc. Apparatus, system and method for a brand affinity engine using positive and negative mentions and indexing
US8214092B2 (en) * 2007-11-30 2012-07-03 Siemens Industry, Inc. Method and apparatus for an interlocking control device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020129345A1 (en) * 2000-09-27 2002-09-12 Tilden Mark D. Scripting business logic in a distributed object oriented environment

Also Published As

Publication number Publication date
US8429608B2 (en) 2013-04-23
US20090070735A1 (en) 2009-03-12
KR20090025930A (ko) 2009-03-11

Similar Documents

Publication Publication Date Title
US11418409B2 (en) System-on-chip (SoC) assembly, configurable IP generation and IP integration utilizing distributed computer systems
US7505995B2 (en) Object-relational model based user interfaces
US8095909B2 (en) System and method for model driven transformation filtering
US7757204B2 (en) Limiting extensibility of a visual modeling language
US7774745B2 (en) Mapping of designtime to runtime in a visual modeling language environment
CN105281955B (zh) 一种业务和资源编排的***、方法及装置
US20210255842A1 (en) Low-Code Development Platform
Hirmer et al. Automatic Topology Completion of TOSCA-based Cloud Applications.
KR101484680B1 (ko) 컴포넌트 기반 소프트웨어 제품 관리 시스템 및 방법
US20100262949A1 (en) Visualized Modeling Language Connector Selection
CN104077137A (zh) 集成设计应用
US20070180425A1 (en) Method and apparatus for extensible utility network part types and part properties in 3D computer models
JP2008501185A (ja) 動作合成ツールにおけるループ操作
US20190347190A1 (en) Code usage map
US20120227028A1 (en) Graphical programming object population user interface autogeneration
WO2017033441A1 (ja) システム構築支援システム、方法および記憶媒体
KR101552188B1 (ko) 콤포넌트 모델 및 아키텍쳐 설계를 위한 내제된 가변성규칙을 제공하는 방법 및 장치
US20210184939A1 (en) Method and apparatus for creating a custom service
JP5938031B2 (ja) プラットフォーム非依存プレゼンテーションの構成
US7685554B1 (en) Determination of data rate and data type in a high-level electronic design
US9244651B2 (en) Document revision control
US8595684B1 (en) Assistance tool
Daga et al. Flame: Simplifying topology extension in federated learning
Bawadekji et al. TLM protocol compliance checking at the electronic system level
JP6981296B2 (ja) バス配線探索プログラム、バス配線探索方法および情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20180830

Year of fee payment: 4