KR100672894B1 - 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법 - Google Patents

제품 계열 아키텍처의 표현 및 검증 장치와 그 방법 Download PDF

Info

Publication number
KR100672894B1
KR100672894B1 KR1020040109132A KR20040109132A KR100672894B1 KR 100672894 B1 KR100672894 B1 KR 100672894B1 KR 1020040109132 A KR1020040109132 A KR 1020040109132A KR 20040109132 A KR20040109132 A KR 20040109132A KR 100672894 B1 KR100672894 B1 KR 100672894B1
Authority
KR
South Korea
Prior art keywords
model
architecture
elements
scenario
component
Prior art date
Application number
KR1020040109132A
Other languages
English (en)
Other versions
KR20060070609A (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 KR1020040109132A priority Critical patent/KR100672894B1/ko
Priority to US11/121,994 priority patent/US7721252B2/en
Publication of KR20060070609A publication Critical patent/KR20060070609A/ko
Application granted granted Critical
Publication of KR100672894B1 publication Critical patent/KR100672894B1/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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Abstract

본 발명은 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법에 관한 것으로서, 공통성과 가변성이 표현된 제품 계열 아키텍처 모델을 자동으로 생성하기 위하여, 제품 계열 아키텍처 구축을 위한 시나리오를 분석하는 시나리오 분석기와, 가변 요소들간의 의존 관계를 형성하기 위한 가변 요소 관계 모델의 생성 모듈과, 입력된 아키텍처 모델을 제품 계열 아키텍처로 자동 변환하는 제품 계열 아키텍처 모델 생성 모듈을 제공하며; 생성된 제품 계열 아키텍처 모델이 시스템의 요구사항을 만족시키는지 검증하기 위하여, 요구사항에 대한 시나리오를 입력 받는 시나리오 입력 모듈과, 시나리오에 대한 아키텍처 모델 요소들을 식별하고 의존성을 파악하는 아키텍처 모델 매핑 모듈과, 요구사항과 시나리오와 아키텍처 요소들간의 관계를 검증 관점 모델로 생성하고 흐름을 추적하는 검증 관점 모델 생성 및 추적 모듈을 제공하여, 가변성을 명시적으로 표현할 수 있게 하고, 제품 계열 아키텍처를 자동으로 생성해 줌으로써 사용자로 하여금 직접 복잡한 가변 요소간의 관계를 고려하지 않아도 되도록 도와주며, 시나리오 기반의 아키텍처 모델 분석을 통하여 아키텍처 모델이 요구사항을 만족하게 설계되었는지 검증할 수 있다.
제품 계열 아키텍처(Product-Line Architecture), 공통성(Commonality), 가변성(Variability), 아키텍처 검증(Architecture Verification), 요구사항(Requirements), 시나리오(Scenario), 검증 관점 모델(Verification Aspect Model)

Description

제품 계열 아키텍처의 표현 및 검증 장치와 그 방법{APPARATUS AND METHOD FOR PRODUCT-LINE ARCHITECTURE DESCRIPTION AND VERIFICATION}
도 1은 본 발명의 일실시예에 의한 시스템 운영 흐름도,
도 2는 본 발명의 일실시예에 의한 시스템 구성도,
도 3은 시나리오 분석기의 실행시의 입력물과 결과물을 나타낸 도면,
도 4는 가변 요소 관계 모델 생성기의 실행 알고리즘을 나타낸 도면,
도 5는 선택적 컴포넌트에 대해 아키텍처 모델의 정적인 뷰와 동적인 뷰상에서의 표현 형태를 나타낸 도면,
도 6은 아키텍처 모델의 정적인 뷰와 동적인 뷰에서의 대안 컴포넌트의 표현 형태를 나타낸 도면,
도 7은 아키텍처 모델의 정적인 뷰와 동적인 뷰에서의 선택적 커넥터의 표현 형태를 나타낸 도면,
도 8은 아키텍처 모델의 정적인 뷰와 동적인 뷰에서의 대안 커넥터의 표현 형태를 나타낸 도면,
도 9는 제품 계열 아키텍처 모델 생성기에 의해 생성된 제품 계열 아키텍처 모델의 정적인 뷰를 나타낸 도면,
도 10은 시나리오 기반의 아키텍처 검증도를 나타낸 도면,
도 11은 검증하는 요구사항에 대한 시나리오 입력기 실행 화면을 나타낸 도면,
도 12는 시나리오와 아키텍처 요소를 연결하는 매핑기 실행 화면을 나타낸 도면,
도 13은 아키텍처 요소간의 의존성을 파악하는 의존성 분석기 실행 화면을 나타낸 도면,
도 14는 도출한 모델로부터 포인트들 흐름의 선후관계를 도출하는 과정을 나타낸 도면,
도 15는 검증 관점 모델 생성기를 통하여 생성된 검증 관점 모델 트리 화면을 나타낸 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
201 : 시나리오 분석기
202 : 가변 요소 관계 모델 생성기
203 : 제품 계열 아키텍처 모델 생성기
204 : 시나리오 입력기
205 : 아키텍처 모델 매핑기
206 : 아키텍처 모델 의존성 분석기
207 : 검증 관점 모델 생성 및 추적기
본 발명은 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법에 관한 것으로, 더욱 상세하게는 공통성과 가변성이 표현된 제품 계열 아키텍처 모델을 자동으로 생성하고 생성된 아키텍처 모델이 요구사항을 만족하는지 시나리오를 기반으로 검증하는 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법에 관한 것이다.
소프트웨어 제품 계열은 공통의 유사한 기능을 가지고 있는 소프트웨어 제품 또는 소프트웨어 시스템의 집합으로 정의할 수 있으며, 제품 계열 아키텍처는 특정 소프트웨어 제품계열 내의 전체 제품들을 대표하는 소프트웨어 아키텍처를 의미하는 것으로 특정 제품 개발 시, 제품 계열 아키텍처를 요구사항에 따라 재정의하여 제품 아키텍처를 정의하고, 이에 따라 필요 기능의 컴포넌트를 조정, 조립 또는 신규 개발하여 제품의 빠른 생산을 가능케 할 수 있는 방법으로 주목받고 있는 기술이다.
제품 계열 기술에서 가장 중요한 자산이 제품 계열 아키텍처로서 이를 기반으로 하여 제품 아키텍처가 정의된다. 제품 계열 아키텍처로부터 제품 아키텍처를 쉽게 생성할 수 있도록 지원하기 위해서는 제품 계열 내의 여러 시스템에서 공통인 부분과 제품에 따라 다른 가변 부분의 표현이 명확해야 한다. 이러한 이유로 제품 계열 아키텍처에서의 공통성과 가변성 표현에 대한 연구가 많이 이루어지고 있으 나, 기존의 연구들이 가변성에 대한 표현력이 부족하거나, 또는 표현력이 좋을 경우 이해 및 표현이 어렵다거나, 범용적이지 못하다는 등의 단점들이 존재한다.
또한, 가변성 표현에 있어서 기존 연구에서 표현이 제대로 되지 않았던 부분이 어떤 경우에 어떻게 Resolution될 것인가에 대한 것으로 이를 모델에서 쉽게 구분할 수 있도록 지원하고 복잡한 가변성들간의 의존 관계를 관리할 수 있도록 지원하는 방법이 필요하다.
그리고, 설계된 아키텍처 모델이 개발하는 소프트웨어의 요구사항을 만족하는지 검증해보는 단계를 통하여 구현 이전에 소프트웨어가 올바르게 개발되고 있는지 증명해 보는 것이 필요하다.
따라서, 본 발명의 목적은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 공통성과 가변성이 표현된 제품 계열 아키텍처 모델을 자동으로 생성하고 생성된 아키텍처 모델이 요구사항을 만족하는지 시나리오를 기반으로 검증하는 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법을 제공하는데 있다.
즉, 본 발명에서는 가변성에 의한 모델 요소들간의 의존 관계를 명시적으로 표현하고 표준 모델링 언어인 UML을 이용하여 표현한 제품 계열 아키텍처 모델을 자동으로 생성하여 준다. 가변성에 대한 명시적인 표현은 제품 계열 아키텍처의 이해를 돕고 제품 아키텍처의 생성을 용이하게 한다. 또한 UML을 이용하여 표현함으로써 사용자로 하여금 새롭게 배우지 않아도 쉽게 이해할 수 있도록 한다. 제품 계 열 아키텍처를 자동으로 생성해 줌으로써 사용자로 하여금 직접 복잡한 가변 요소간의 관계를 고려하지 않아도 된다는 효과가 있다.
또한, 본 발명에서는 기존의 방법에서 표현하지 못한 시스템 요구사항과 아키텍처 모델의 연관 관계 및 요구사항이 모델에 반영되어 있는지를 검증하기 위하여, 각 요구사항에 대한 시나리오를 작성하고 각 시나리오 별 아키텍처 모델 요소를 매핑시켜 모델들의 흐름을 검증 관점 모델로 변환하여 아키텍처가 요구사항을 만족하도록 설계되었는지를 검증하도록 지원한다. 본 발명에서 제안하는 검증 매체 및 검증 관점 모델은 설계된 아키텍처를 코드로 구현한 후에도 지속적으로 테스트 할 수 있는 테스팅 케이스를 제공해 주어 분석된 요구사항을 설계 및 구현 시스템에서 직접적으로 검증할 수 있게 해주는 효과가 있다.
따라서, 본 발명은 제품 계열 아키텍처를 구축하기 위한 시나리오로부터 가변 요소와 아키텍처 모델과의 매핑 관계를 형성하고, 각각의 가변 요소에 의한 아키텍처 모델 요소들간의 의존 관계를 추출하여 제품 계열 아키텍처를 생성하는 것과, 요구사항을 수행하는 시나리오를 생성하고, 생성된 시나리오와 관련 있는 아키텍처 모델 요소를 식별하고 식별된 아키텍처 요소를 검증 관점 모델로 생성하여 검증하는 것을 제안하고자 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 제품 계열 아키텍처의 표현 및 검증 장치는, 제품 계열 아키텍처 모델 변환 도구와, 제품 계열 아키텍처 검증 도 구로 이루어지며,
상기 제품 계열 아키텍처 모델 변환 도구는, 제품 계열 아키텍처 구축을 위해 입력된 시나리오를 분석하여 가변 요소별로 관련된 아키텍처 모델 요소들을 분류하는 시나리오 분석기; 가변 요소에 의한 아키텍처 모델 요소들간의 의존 관계를 추출하여 의존 관계 모델을 생성 및 관리하여 가변 요소에 의해 변경되어야 하는 요소들을 표현하는 가변 요소 관계 모델 생성기; 및 입력된 아키텍처 모델에 대해, 가변 요소와 아키텍처 모델 요소간의 매핑 관계 모델을 바탕으로 아키텍처 모델 요소들을 가변 요소별로 분류하고, 가변 요소들과 아키텍처 모델 요소들간의 의존 관계 모델을 이용하여 가변성에 의한 모델 요소들간의 의존 관계를 표현해 주는 제품 계열 아키텍처로의 변환을 수행하는 제품 계열 아키텍처 모델 생성기로 이루어지고,
상기 제품 계열 아키텍처 검증 도구는, 제품 계열 아키텍처 모델의 검증을 위하여 시스템의 요구사항에 대한 수행 시나리오를 입력받는 시나리오 입력기; 상기 입력된 각 시나리오에 대하여, 아키텍처 모델의 요소들 중 관련된 요소를 매핑하는 아키텍처 모델 매핑기; 제품 아키텍처의 정적, 동적 모델링 정보를 분석하여 시나리오와 매핑시킨 아키텍처 요소들과 함께 수행되어야 하거나 영향을 미치는 아키텍처 요소들을 식별하여 검증 모델에 추가하는 아키텍처 모델 의존성 분석기; 및 상기 요구사항, 시나리오, 아키텍처 모델 관련 요소간의 관점 모델을 생성하여 검증하는 검증 관점 모델 생성 및 추적기로 이루어진 것을 특징으로 한다.
한편, 본 발명의 제품 계열 아키텍처의 표현 및 검증 방법은,
제품 계열 아키텍처의 공통성과 가변성에 대한 표현을 요청하고 아키텍처가 요구사항에 맞게 표현되었는지 검증을 요청하는 단계;
정적인 뷰(Static View)와 동적인 뷰(Dynamic View)로 나누어 표현한 아키텍처 모델을 입력받음과 아울러, 모델링하고자 하는 기능에 대한 시나리오를 입력받는 단계;
각 시나리오별로 컴포넌트 단위의 공통성과 가변성을 표현하기 위해 선택 컴포넌트와 대안 컴포넌트를 분류하여 표현함과 아울러, 각 시나리오별로 커넥터 단위의 공통성과 가변성을 표현하기 위해 선택 커넥터와 대안 커넥터를 분류하여 표현하는 단계;
검증하고자 하는 요구사항에 대한 시나리오를 입력받는 단계;
입력받은 시나리오에 대하여, 각 시나리오와 관련 있는 아키텍처 모델 요소를 연결시키고, 연결된 아키텍처 모델들의 선후 관계를 정의하는 단계; 및
정의된 요구사항, 시나리오, 아키텍처 모델 요소의 관계를 분석하여 요구사항에 대한 검증 관점 모델을 생성하여 아키텍처 모델을 추적하고 오류를 식별하는 단계를 포함하여 이루어진 것을 특징으로 한다.
이하, 본 발명의 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 시스템 동작에 대한 흐름도를 나타내고 있다.
도 1을 참조하면, 101 단계와 같이 본 시스템의 사용자가 제품 계열 아키텍 처의 공통성과 가변성을 표현하고 요구사항에 맞게 표현되었는지 검증하기 위해 아키텍처의 공통성과 가변성의 표현 및 검증을 요청하는 과정이다. 가변성의 표현 요소로는 가변 포인트, 가변성에 의해 영향 받는 요소들, 가변성간의 관계 등이 포함된다. 표현된 제품 계열 아키텍처는 검증 요청에 의해 소프트웨어의 요구사항에 따라 이에 관여하는 아키텍처 모델 요소들과 이들간의 선후 관계가 잘 반영되어 있는지 검증된다.
102 단계에서는 사용자로부터 아키텍처 모델의 입력을 받는다. 아키텍처 모델은 크게 정적인 뷰(Static View)와 동적인 뷰(Dynamic View)로 나누어 표현한다. 정적인 뷰에서는 아키텍처를 구성하는 컴포넌트들과 이들간의 상호작용으로 인한 컴포넌트들간의 연결관계에 대하여 표현한다. 동적인 뷰에서는 컴포넌트간의 상호작용이 중요시되므로 컴포넌트간의 상호작용에 대한 행위를 표현한다. 정적인 뷰의 주요 요소로는 컴포넌트와 커넥터로서 컴포넌트의 경우 UML 2.0 의 컴포넌트 모델링 요소를 이용하여 표현할 수 있다. 그러나 커넥터 개념의 경우, UML 2.0 의 커넥터로는 컴포넌트간의 복잡한 상호작용을 표현하기 어려우므로 이를 표현하기 위해 UML 2.0 의 Collaboration 요소를 이용하여 표현한다. 동적인 뷰에는 컴포넌트간의 상호작용을 나타내는 커넥터에 대한 행위를 활동도(Activity Diagram)를 이용하여 표현한다.
103 단계에서는 모델링 하고자 하는 기능에 대한 시나리오의 입력을 받는다. 시나리오는 각 기능마다 존재하고 순차도로 표현되며 시나리오의 각 단계에 대해 관련된 컴포넌트와의 매핑 정보가 포함된다. 또한 순차도에는 시나리오상에 각 단 계 또는 여러 단계의 그룹이 선택적 기능 또는 대안 기능인지의 여부가 표현되어 있다.
104 단계부터 105 단계까지는 각 시나리오별로 수행된다. 104 단계에서는 컴포넌트 단위의 공통성과 가변성을 표현하는 단계로서 선택적 컴포넌트와 대안 컴포넌트를 분류하여 표현한다. 105 단계에서는 커넥터 단위의 공통성과 가변성을 표현하는 단계로서 선택적 커넥터와 대안 커넥터를 분류하여 표현한다.
106 단계부터 108 단계까지는 102단계부터 105 단계까지의 작업을 거쳐 표현한 아키텍처 모델에 대한 검증 단계이다. 106 단계에서는 아키텍처 모델이 분석 단계에서의 요구사항에 맞게 설계되었는지를 검증하기 위하여, 검증하고자 하는 요구사항에 대한 시나리오를 입력받는다. 107 단계에서는 입력받은 시나리오에 대하여, 각 시나리오와 관련 있는 아키텍처 모델 요소를 연결시키고, 연결된 모델들의 선후 관계를 정의하는 단계로서, 검증하고자 하는 아키텍처 요소들 및 이들간의 흐름을 정의한다. 108 단계에서는 정의된 요구사항, 시나리오, 아키텍처 모델 요소의 관계를 분석하여 요구사항에 대한 검증 관점 모델을 생성하여 아키텍처 모델을 추적하고 오류를 식별한다.
도 2는 본 발명의 시스템 구성도이다. 도 2를 참조하면, 본 발명의 제품 계열 아키텍처의 표현 및 검증 장치는 크게, 제품 계열 아키텍처 모델 변환 도구(Ⅰ)와 제품 계열 아키텍처 검증 도구(Ⅱ)로 구성된다.
제품 계열 아키텍처 모델 변환 도구(Ⅰ)는, 제품 계열 아키텍처 모델 생성을 위하여 제품 계열 아키텍처 구축을 위한 시나리오를 분석하는 시나리오 분석기(201)와, 가변 요소들간의 의존 관계를 형성하기 위한 가변 요소 관계 모델 생성기(202)와, 입력된 아키텍처 모델을 제품 계열 아키텍처로 자동 변환하여 주는 제품 계열 아키텍처 모델 생성기(203) 모듈로 구성되어 있다.
한편, 제품 계열 아키텍처 검증 도구(Ⅱ)는, 제품 아키텍처 검증을 위하여 검증하는 요구사항에 대한 수행 시나리오를 입력받는 시나리오 입력기(204)와, 각 시나리오별 관련 아키텍처 모델 요소를 매핑하는 아키텍처 모델 매핑기(205)와, 매핑된 아키텍처 요소와 동적으로 관련 있는 아키텍처 요소를 식별하는 아키텍처 모델 의존성 분석기(206)와, 요구사항, 시나리오, 아키텍처 모델 관련 요소간의 관점 모델을 생성하여 검증하는 검증 관점 모델 생성 및 추적기(207) 모듈로 구성되어 있다.
상기 시나리오 분석기(201)는 제품 계열 아키텍처 모델을 생성하기 위하여 사용자로부터 입력받는 시나리오를 분석하여 아키텍처 모델과의 매핑 관계를 형성할 수 있도록 지원한다.
가변 요소 관계 모델 생성기(202)는 가변 요소에 의한 아키텍처 모델 요소들간의 의존 관계를 추출하여 제품 계열 아키텍처 모델에서 이를 표현할 수 있도록 지원한다.
제품 계열 아키텍처 모델 생성기(203)는 가변 요소들의 의존 관계 모델을 바탕으로 가변 요소들을 분류하여 각각에 맞는 표현 형태로 자동 변환하여 준다.
시나리오 입력기(204)는 제품 계열 아키텍처 모델이 시스템의 요구사항을 만 족하는지 검증하기 위해 요구사항에 대한 시나리오를 입력 받을 수 있도록 지원한다.
아키텍처 모델 매핑기(205)는 입력 받은 시나리오에 대하여 제품 아키텍처 모델의 요소들 중 관련 있는 요소들을 매핑시킬 수 있도록 지원한다.
아키텍처 모델 의존성 분석기(206)은 제품 아키텍처의 정적, 동적 모델링 정보를 분석하여 시나리오와 매핑시킨 아키텍처 요소들과 함께 수행되어야 하거나 영향을 미치는 아키텍처 요소들을 식별하여 검증 모델에 추가할 수 있도록 지원한다.
검증 관점 모델 생성 및 추적기(207)은 실제 검증기가 구동하기 위하여 앞에서 정의한 요구사항, 시나리오, 아키텍처 모델 요소들의 관계를 검증 관점 모델로 생성하고 각 요구사항별로 독립적으로 관리하고 추적할 수 있도록 지원한다.
그러면, 상기와 같은 구성을 가지는 본 발명의 제품 계열 아키텍처의 표현 및 검증 방법에 대해 도 3 내지 도 15를 참조하여 설명하기로 한다.
도 3은 시나리오 분석기의 실행시에 사용자로부터 입력받는 입력물인 시나리오와 컴포넌트 매핑 테이블과 결과물인 가변 요소별로 분류된 컴포넌트 모델을 나타낸 것이다.
사용자가 순차도 형태로 작성한 시나리오(Scenario)(301)에 대해 각 단계별로 포함되는 컴포넌트 이름을 입력하여 컴포넌트 매핑 테이블(Component mapping table)(302)을 형성한다. 컴포넌트와의 관계가 매핑된 순차도에서 조건 선택 연산자인 opt 연산자가 사용된 경우 이를 선택적 기능으로 간주하고, alt 연산자가 사 용된 경우 이를 대안 기능으로 간주한다.
이를 바탕으로 시나리오 분석기에서는 다음과 같은 기준으로 컴포넌트를 분류한다. opt 연산자가 사용된 단계에 매핑된 컴포넌트가 다른 시나리오상에서 포함되어 있는지를 검사하여 다른 시나리오상에 포함되지 않는 컴포넌트인 경우에 참조 번호 303과 같이 독립 개별 기능 확장에 의한 선택 컴포넌트로 분류하고 포함되는 경우에는 참조 번호 304와 같이 시나리오상에서 선택적인 기능 수행을 위한 컴포넌트로 분류한다. alt 연산자가 사용된 단계에 매핑된 컴포넌트들에 대해 아키텍처 모델에서의 인터페이스를 비교하여 인터페이스가 동일할 경우 참조 번호 305와 같이 인터페이스 변경 없이 구현만 변경되는 대안 컴포넌트로 분류하고 동일하지 않을 경우 참조 번호 306과 같이 인터페이스가 변경되는 대안 컴포넌트로 분류한다.
도 4는 가변 요소 관계 모델 생성기의 실행 알고리즘을 나타낸 것이다.
아키텍처 모델링 요소 중 컴포넌트는 선택적 가변 측면이나 대안적 가변 측면에 따라 다른 모델링 요소에 영향을 많이 주게 되므로 이러한 가변 요소들에 의해 영향을 받는 요소들의 관계를 관리하고 이를 표현 및 검증하는 것이 필요하다. 따라서 가변 요소 관계 모델 생성기에서는 선택 컴포넌트와 대안 컴포넌트에 의해 영향을 받는 다른 요소들과의 의존 관계를 형성한다.
도 4에서 선택 컴포넌트에 의해 영향 받는 의존 관계를 형성하기 위해서 먼저 참조 번호 401과 같이 선택 컴포넌트(A)에서 사용하는 요구 인터페이스(Required Interface)를 추출한다. 그리고 참조 번호 402에서 해당 인터페이스(B) 를 제공하는 컴포넌트(C) 측면에서 인터페이스(B)가 다른 컴포넌트에 의해 사용되는지를 확인한다.
참조 번호 402에서 다른 컴포넌트에 의해 사용되지 않는 경우에 해당되면 인터페이스(B)가 선택 컴포넌트(A)에 의해서만 필요한 경우에 해당된다. 이 경우 인터페이스(B)를 제공하는 컴포넌트(C) 단위에서의 의존 관계로 형성해야 되는지 확인하기 위해 참조 번호 403에서 컴포넌트(C)가 (B)외에 다른 인터페이스를 제공하는지 확인한다. 다른 인터페이스를 제공하지 않는 경우 참조 번호 404에서 컴포넌트(C) 단위에서의 의존관계를 형성하여 상기 참조 번호 401로 리턴하고, 반대의 경우 참조 번호 405에서 인터페이스(B) 단위에서의 의존관계를 형성한다.
한편, 참조 번호 402에서 다른 컴포넌트에 의해 사용되는 경우에 해당되면 인터페이스(B)가 선택 컴포넌트(A)외에도 다른 컴포넌트에 의해서도 필요한 경우에 해당된다. 이 경우 인터페이스내의 메소드 단위의 의존 관계를 형성하기 위해 참조 번호 406에서 선택 컴포넌트(A)와 컴포넌트(C)와의 상호작용 부분인 커넥터(D)에서 컴포넌트(C)의 메소드 목록(E)을 추출하여 참조 번호 407과 같이 해당 메소드(E)에 대해 선택 컴포넌트와의 의존 관계를 형성한다.
다음으로 대안 컴포넌트에 의해 영향 받는 의존 관계를 형성하기 위해서 먼저 참조 번호 408과 같이 대안 컴포넌트(A)의 제공 인터페이스(Provided Interface)를 추출한다. 그리고 참조 번호 409에서 해당 인터페이스(B)를 사용하는 컴포넌트(C)가 존재하는지 확인하여 존재하지 않는다면 대안 컴포넌트에 의해 영향 받는 요소가 없다는 의미가 된다. 참조 번호 409에서 다른 컴포넌트(C)가 존재하는 경우라면 (B)를 요구 인터페이스로 사용하는 컴포넌트(C)가 존재한다는 의미가 되고, 참조 번호 410에서와 같이 요구 인터페이스는 (C)의 제공 인터페이스(D)에 의해 필요한 것이므로 제공 인터페이스(D)를 추출한다. 컴포넌트 단위의 의존인지, 인터페이스 단위의 의존인지, 메소드 단위의 의존인지를 분류하기 위해 참조 번호 402 과정 이하 단계를 수행한다.
도 5는 선택적 컴포넌트에 대해 아키텍처 모델의 정적인 뷰와 동적인 뷰 상에서의 표현 형태를 나타낸 그림이다.
선택적 컴포넌트인 경우는 다음과 같은 두 경우로 분류할 수 있다. 첫 번째로는 해당 컴포넌트의 기능이 다른 기능들 및 다른 시나리오상에서 사용되지 않은 독립 개별 기능으로서 기능의 확장 등에 의한 경우가 있다. 두 번째로는 기존의 기능에 의한 시나리오상에서 특정 컴포넌트가 수행하는 기능이 선택적인 경우이다.
첫 번째(도 5의 a)의 경우, 다른 기능들과는 관계없는 독립적인 기능을 의미하는 것으로 해당 컴포넌트가 수행하는 기능이 필수 기능이 아닌 선택 기능일 경우로서 선택적인 하나의 시나리오에만 포함된 컴포넌트가 이에 해당될 수 있다. 이를 표현하기 위해 정적인 뷰에서는 해당 컴포넌트에 대해 UML의 확장 메커니즘인 스테레오 타입 방식에 기반하여 참조 번호 501과 같이 <<optional component>> 스테레오 타입을 정의하여 표현한다. 또한 해당 컴포넌트에 의해 시작되는 상호작용의 경우 선택적 컴포넌트의 포함 여부에 따라 영향을 받으므로 이를 표현해 줄 필요가 있다. 선택적 컴포넌트에 의해 시작되는 상호작용은 상호작용 자체가 선택적임을 의미하므로 커넥터에 선택적임을 표현하기 위해 참조 번호 502와 같이 <<optional>> 스테레오 타입을 정의하여 표현한다. 동적인 뷰에서는 커넥터가 선택적이므로 해당 커넥터의 다이어그램 자체가 선택적임을 참조 번호 503과 같이 <<optional>> 스테레오타입을 지정하여 표현한다.
두 번째(도 5의 b)의 경우, 시나리오상에서 특정 컴포넌트가 선택적이라는 의미는 해당 컴포넌트가 시나리오상에서 하는 역할 자체가 선택적이라는 의미이므로 시나리오상에서의 역할을 표현할 때 선택적 역할(Optional Role)임을 표현함으로써 선택적 역할이 필요 없을 때 해당 컴포넌트는 시나리오상에서 제외될 수 있다는 의미로 표현될 수 있다. 즉 시나리오는 컴포넌트간의 상호 작용이므로 이는 커넥터로 표현되고, 커넥터를 표현하기 위해 사용하는 Collaboration에서 상호작용에 참여하는 역할을 나타내는 Role에 대해 참조 번호 504와 같이 <<optional>> 스테레오 타입을 정의하여 나타냄으로써 선택적 역할임을 표현한다. 그리고 동적인 뷰에서도 해당 컴포넌트의 역할이 선택적임을 표현하기 위해 참조 번호 505와 같이 해당 컴포넌트의 역할 영역에 대해 <<optional>> 스테레오 타입을 지정하여 표현한다.
도 6은 대안 컴포넌트에 대해 아키텍처 모델의 정적인 뷰와 동적인 뷰 상에서의 표현 형태를 나타낸 그림이다.
컴포넌트 단위에서의 대안인 경우는 다음과 같은 두 경우로 분류할 수 있다. 인터페이스의 변경 없이 여러 컴포넌트가 다양한 구현을 가지는 경우와 컴포넌트의 구현을 위해 요구되는 기능 및 제공하는 기능이 달라서 인터페이스가 변경되는 경우이다. 첫 번째(도 6의 a)의 경우, 공통의 인터페이스를 가지지만 인터페이스에 대한 구현이 다른 경우이므로 정적인 뷰에서는 참조 번호 601과 같이 대안 컴포넌트들의 그룹에 대한 하나의 추상 컴포넌트를 정의하고 이에 대해 <<variation point>> 스테레오타입을 정의하여 표현한다. 이에 대한 대안 컴포넌트들과의 관계는 Realization(실체화) 관계를 이용하여 표현한다. 이 경우 각 대안들과 다른 컴포넌트와의 상호작용은 동일한 인터페이스를 이용하므로 정적인 뷰에서 각 대안과 다른 컴포넌트와의 상호작용 대신 추상 컴포넌트와 다른 컴포넌트와의 상호작용에 대해 표현할 수 있다. 따라서 참조 번호 602와 같이 추상 컴포넌트와 다른 컴포넌트(E)와의 상호작용을 표현하는 대표 커넥터로 ‘ConnectorA’를 정의하여 표현한다. 또한 동적인 뷰에서는 참조 번호 603과 같이 대표 커넥터인 ‘ConnectorA’의 행위를 표현한다.
두 번째(도 6의 b)의 경우, 인터페이스가 변경되는 대안이므로 정적인 뷰에서는 대안 컴포넌트들의 그룹에 대한 하나의 추상 컴포넌트를 정의하는데 이 때, 모든 대안들이 공통으로 포함하는 인터페이스만을 가지고 있도록 정의한다. 참조 번호 604와 같이 추상 컴포넌트는 <<variation point>> 스테레오타입을 정의하여 표현한다. 이에 대한 대안 컴포넌트들과의 관계는 Specialization(상세화) 관계를 이용하여 표현하고 각 대안별로 추가적으로 필요한 인터페이스를 포함하도록 표현한다. 또한 첫 번째 경우와 다르게 인터페이스가 변경될 수 있는 경우이므로 각 대안들마다 다른 컴포넌트와의 상호작용이 다를 수 있으므로 각각의 상호작용에 대해 참조 번호 605와 같이 각각의 대안에 대해 커넥터를 정의하여 표현한다. 동적인 뷰에서는 각각의 커넥터(‘ConnectorB’, ‘ConnectorC’, ‘ConnectorD’)에 대해 하나의 독립된 다이어그램으로 나타낼 수 있고 또는 각 커넥터에서 일어나는 상호작용이 다른 상호작용의 일부분에 해당된다면 전체 다이어그램에서 대안 컴포넌트들의 상호 작용 부분은 참조 번호 606과 같이 각각의 대안에 대해 구획으로 나누어 표현할 수 있다.
도 7은 선택적 커넥터에 대해 아키텍처 모델의 정적인 뷰와 동적인 뷰상에서의 표현 형태를 나타낸 그림이다. 선택적 커넥터인 경우는 선택적 컴포넌트의 경우와 마찬가지로 두 경우로 분류할 수 있다. 다른 시나리오상에서 사용되지 않은 독립 개별 기능으로서 기능의 확장 등에 의한 선택적인 경우와 시나리오상에서 선택적인 일부 시나리오가 존재하는 경우이다.
첫 번째(도 7의 a)의 경우 정적인 뷰에서는 시나리오 자체가 선택적이므로 참조 번호 701과 같이 커넥터를 <<optional>> 스테레오타입을 정의하여 표현한다. 동적인 뷰에서는 참조 번호 702와 같이 시나리오를 표현하는 활동 다이어그램 전체에 대해 <<optional>> 스테레오타입으로 표현한다.
두 번째(도 7의 b)의 경우 일부 시나리오, 즉 일부 커넥터가 선택적인 경우로서 정적인 뷰에서는 선택적인 일부 시나리오에 대해 전체 시나리오를 표현하는 Collaboration의 내부 구조에서 선택적인 시나리오에 해당되는 커넥터에 대해 <<optional>> 스테레오타입으로 표현한다. 동적인 뷰의 다이어그램에서는 전체 다 이어그램의 선택적인 시나리오 부분에 대해 참조 번호 704와 같이 구획으로 나누어 표현하고 이를 <<optional>> 스테레오타입으로 표현한다.
도 8은 대안 커넥터에 대해 아키텍처 모델의 정적인 뷰와 동적인 뷰상에서의 표현 형태를 나타낸 그림이다. 커넥터 단위에서의 대안인 경우는 상호작용 주체인 컴포넌트의 변경 없이 기능 수행 과정의 변경의 경우로 볼 수 있다. 정적인 뷰에서는 커넥터 단위의 대안임을 표현하기 위해 참조 번호 801과 같이 가장 많이 사용되는 시나리오에 해당되는 커넥터를 상위의 커넥터로 정의하고 이에 대해 대안커넥터를 표현한다. 동적인 뷰에서는 참조 번호 802와 같이 각 커넥터별로 표현한다.
도 9는 제품 계열 아키텍처 모델 생성기에 의해 생성된 제품 계열 아키텍처 모델의 정적인 뷰의 실행 모습을 나타낸다.
도 10은 시나리오 기반의 아키텍처 검증 관점 모델 생성 및 검증 방법에 대한 도면이다. 도 10에서 아키텍처 모델에 반영된 요구사항(1001)을 검증하기 위하여 각 요구사항별 수행시나리오(1002)를 생성한다. 생성된 시나리오는 이를 반영한 아키텍처 모델의 요소들과 매핑되며, 아키텍처 요소들간의 의존성(1003)을 파악한 후, 요구사항과 시나리오에 매핑된 아키텍처 요소들을 하나의 관점으로 관리한다. 검증하고자 하는 요구사항을 advice(1004)로 정의하고, 해당 아키텍처 요소들의 흐름을 point-cuts(1005)으로 정의하여 <adv, point-cuts>의 검증 관점 모델(1006)을 생성한 후, 모델에 따라 point-cut으로 정의된 요소들의 연관관계를 검사한다. 본 발명에서 적용한 advice와 point-cut은 Aspect-Oriented Programming(AOP)의 개념을 본 발명에 맞게 구체화한 것으로 특정 요구사항에 대해 검증을 시작하기 위한 advice로 정의하게 되고, 이것이 point-cut으로 정의된 아키텍처 모델 요소들을 실제로 수행할 수 있는 시작점이 된다.
도 11은 본 발명에서 제안하는 시나리오 입력기 화면으로서, 도서관 시스템 예제에 적용하여 모델링한 아키텍처에서 가변요소인 “Reserve a book”요구사항에 대한 시나리오를 입력 받는 장치의 화면이다. 참조 번호 1101은 입력받는 시나리오의 구조를 나타낸다. 시나리오는 시나리오 번호(scenario number), 시나리오를 수행하는 주체(agent), 수행작업(activity), 수행하는 객체(object), 객체를 얻어오는 액터(actor)로 구성된다. 작성된 시나리오는 “Reserve a book”이라는 요구사항에 대하여 시스템 내부의 상호작용 시나리오로, Agent와 Actor는 모두 아키텍처 모델에 표현된 요소들이다. 도 10에서와 같이 정의된 시나리오는 <R, ScG[Sc1, Sc2,...]>의 요구사항-시나리오 모델로 저장된다. R은 요구사항을 의미하며, ScG[]는 해당 요구사항에 대한 시나리오를 의미한다.
도 12는 도 11을 통해 저장된 시나리오 모델과 아키텍처 모델 요소간의 관계를 매핑하는 도면이다. “Reserve a book”이라는 가변 요구사항에 대하여, 도 10에서 정의된 시나리오들은 참조 번호 1201과 같이 계층구조를 이루어 트리 형태로 구성되며, 각각의 시나리오마다 영향을 미치는 아키텍처 모델의 요소들과 매핑시킬 수 있도록 참조 번호 1202와 같은 선택필드가 존재한다. 매핑 UI의 “Map”버튼을 선택하면, 참조 번호 1203과 같이 아키텍처 모델이 보여지며 이 중에서 시나리오와 연관이 있는 요소들을 선택한다. 매핑시 고려되는 아키텍처 모델은 도 5 내지 도 8에서 표현한 아키텍처의 정적인 뷰(Static View)에서 정의한 모델들을 이용하여 해당 컴포넌트, 컴포넌트의 기능, 속성 등을 매핑시킬 수 있다. 시나리오와 아키텍처 모델요소간의 관계는 <Sc, AM[AM1, AM2...]>로 표현되며, 이는 하나의 시나리오가 하나 이상의 아키텍처 모델 요소와 관계를 맺을 수 있음을 뜻한다. 생성된 각각의 <Sc, AM[]> 모델은 검증하는 요구사항에 대해 관여하는 아키텍처 모델요소로 표현되도록 <R, AM[]>의 모델로 통합된다.
도 13은 도 12의 참조 번호 1202에 정의된 아키텍처 요소들과 관련 있는 아키텍처 모델들을 찾아 이들간의 의존성을 파악하는 의존성 분석기의 화면 UI이다. 검증하는 요구사항에 관여하는 아키텍처 모델 요소는 시나리오에 의해서 매핑된 아키텍처 모델 요소 이외에, 도 5 내지 도 8을 통하여 표현한 아키텍처 모델링 정보를 분석하여 선택된 아키텍처 요소와 연관이 있는 아키텍처 요소들을 추가적으로 파악된다. 추가 아키텍처 모델 요소들은 도 12의 작업을 통해 생성된 <R, AM[]> 모델에 추가된다. 이는 도 5 내지 도 8까지 표현한 아키텍처의 동적 뷰(Dynamic View)를 통하여 행위 모델링시 초점을 두는 커넥터(Connector)를 중심으로 추가 컴포넌트나 메소드 같은 아키텍처 요소를 식별해 낸다. 참조 번호 1301은 아키텍처 요소들간의 의존성을 파악하여 해당 모델 요소를 <Sc, AM[]> 모델에 추가하는 다이얼로그 창이다. 예를 들어, 도 12의 작업에서 선택된 “Reserve” 컴포넌트에 대하여 “Reserve” 컴포넌트의 “isReserved()” 메소드와 연결되어 있는 Connector를 찾아 그에 연결된 컴포넌트의 메소드를 찾아 <Sc, AM[]>에 추가한다. 도 13에서 “Reserve.isReserved()” 메소드는 “reservation” 이라는 Connector에 의해 연결되어 있으며, “reservation” Connector의 동적 뷰를 분석하면, “BookData.isReserved()”메소드를 호출하는 것을 알 수 있다. 즉, “BookData.isReserved()”는 시나리오와 매핑된 아키텍처 요소 집합에 추가된다.
도 12와 도 13에서 도출된 <R, AM[]>에서, 아키텍처 요소 AM[]은 요구사항 R에 대한 시나리오들과 관련 있는 모든 아키텍처 요소를 의미하며, 이들은 시나리오의 흐름에 따라 선후관계가 정의된다. 도출한 <R, AM[]> 모델에 대하여, AM[]의 흐름을 검증하기 위하여 본 발명은 R과 AM[]을 하나의 요구사항에 대한 검증관점에서 advice와 그 advice를 수행하는 포인트들과 이 포인트들의 수행 집합을 가져오는 point-cut으로 정의되도록 검증 관점 모델을 생성한다. 요구사항 R에 관여한 아키텍처 모델 요소들을 point로 정의하고, point들의 흐름(flow)의 선후 관계를 지정하는 것을 point-cut에 정의하고, 이 point-cut을 수행하도록 지시하는 advice를 요구사항 R과 매핑시킨다. 즉, 요구사항 R은 advice에 매핑이 되고, 아키텍처 모델 AM[]은 point-cut으로 표현될 수 있다. 도 14는 <R, AM[]>으로부터 <adv, point-cut>를 도출하는 방법이다.
도 15는 본 발명의 관점 모델 생성기를 통하여 생성된 <adv, p>의 검증 관점 모델 트리이다. “Reserve a book”이라는 요구사항을 을 만족시키기 위한 아키텍처 모델 요소들을 검증 관점 모델 트리로 표현한다. 트리에 표현된 아키텍처 요소들이 요구사항을 수행하는 시나리오를 잘 반영하고 있는지 관점 모델을 추적하여 검증한다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
상술한 바와 같이, 본 발명에 의한 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법은, 제품 계열 아키텍처의 공통성과 가변성 표현을 자동 생성하고 관리해주는 효과를 가지며, 시스템 분석 단계의 요구사항이 제품 계열 아키텍처에 반영되었는지 검증할 수 있는 기능을 제공한다는 효과가 있다.
또한, 본 발명에 의한 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법은, 제품 계열 아키텍처의 표현에 있어서 핵심 요소인 공통성과 가변성 표현을 자동으로 생성하고 또한 가변성들간의 복잡한 의존 관계를 관리하여 주고 명시적으로 표현해 줌으로써 아키텍처의 가시성 및 검증을 용이하게 한다. 또한, 표준 UML을 채택 및 일부 확장하여 표현함으로써 사용자로 하여금 쉽게 이해할 수 있도록 하고 기존의 UML 도구를 이용할 수 있도록 한다. 이를 통해 제품 아키텍처로의 변환을 용이하게 한다.
그리고, 본 발명에 의한 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법은, 검증하고자 하는 요구사항에 대하여 시나리오를 작성하여 이를 아키텍처 모델과 연결함으로써, 시스템 분석단계에서 도출된 요구사항이 설계 모델에 제대로 반영되었는지를 구현 전에 검증해 볼 수 있다. 검증하고자 하는 요구사항에 대한 검증 관점 모델은 모델 검증 후에도, 모델에 대하여 구현한 코드에 대하여 같은 관점 모델을 적용하여 테스트할 수 있는 기본 테스트 케이스를 제공한다는 효과를 갖는다.

Claims (9)

  1. 제품 계열 아키텍처 구축을 위해 입력된 시나리오를 분석하여 가변 요소별로 관련된 아키텍처 모델 요소들을 분류하는 시나리오 분석기와,
    가변 요소에 의한 아키텍처 모델 요소들간의 의존 관계를 추출하여 의존 관계 모델을 생성 및 관리하여 가변 요소에 의해 변경되어야 하는 요소들을 표현하는 가변 요소 관계 모델 생성기와,
    입력된 아키텍처 모델에 대해, 가변 요소와 아키텍처 모델 요소간의 매핑 관계 모델을 바탕으로 아키텍처 모델 요소들을 가변 요소별로 분류하고, 가변 요소들과 아키텍처 모델 요소들간의 의존 관계 모델을 이용하여 가변성에 의한 모델 요소들간의 의존 관계를 표현해 주는 제품 계열 아키텍처로의 변환을 수행하는 제품 계열 아키텍처 모델 생성기로 이루어진 제품 계열 아키텍처 모델 변환 도구; 및
    시스템의 요구사항에 대한 수행 시나리오를 입력받아 상기 제품 계열 아키텍처 모델 변환 도구로부터 전달된 가변 요소가 표현된 아키텍처 모델의 요소들 중 관련된 요소를 매핑시키고, 제품 아키텍처의 정적, 동적 모델링 정보를 분석하여 아키텍처 모델 의존성을 분석하며, 상기 요구사항, 시나리오, 아키텍처 모델 관련 요소간의 관점 모델을 생성하는 제품 계열 아키텍처 검증 도구
    를 포함하는 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 제품 계열 아키텍처 검증 도구는,
    제품 계열 아키텍처 모델의 검증을 위하여 시스템의 요구사항에 대한 수행 시나리오를 입력받는 시나리오 입력기;
    상기 입력된 각 시나리오에 대하여, 아키텍처 모델의 요소들 중 관련된 요소를 매핑하는 아키텍처 모델 매핑기;
    제품 아키텍처의 정적, 동적 모델링 정보를 분석하여 시나리오와 매핑시킨 아키텍처 요소들과 함께 수행되어야 하거나 영향을 미치는 아키텍처 요소들을 식별하여 검증 모델에 추가하는 아키텍처 모델 의존성 분석기; 및
    상기 요구사항, 시나리오, 아키텍처 모델 관련 요소간의 관점 모델을 생성하여 검증하는 검증 관점 모델 생성 및 추적기
    로 이루어진 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 장치.
  4. a. 제품 계열 아키텍처의 공통성과 가변성에 대한 표현 요청에 대응하여, 시나리오 분석기에서 정적인 뷰(Static View)와 동적인 뷰(Dynamic View)로 나누어 표현한 아키텍처 모델을 입력받음과 아울러 모델링하고자 하는 기능에 대한 시나리오를 입력받는 단계;
    b. 상기 시나리오와 아키텍처 모델에 대해 컴포넌트 단위의 공통성과 가변성을 표현하기 위해 가변 요소 관계 모델 생성기 및 제품 계열 아키텍처 모델 생성기를 이용하여 선택 컴포넌트와 대안 컴포넌트를 분류하여 표현함과 아울러 상기 시나리오와 아키텍처 모델에 대해 커넥터 단위의 공통성과 가변성을 표현하기 위해 선택 커넥터와 대안 커넥터를 분류하여 표현하는 단계; 및
    c. 상기 표현된 아키텍처 모델에 대해 제품 계열 아키텍처 검증 도구에서 검증을 수행하는 단계
    를 포함하는 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 방법.
  5. 제 4 항에 있어서, 상기 a. 단계에서,
    상기 시나리오는 각 기능마다 존재하고 순차도로 표현되며, 시나리오상에 각 단계 또는 여러 단계의 그룹이 선택 기능 또는 대안 기능 여부가 표현되며 시나리오의 각 단계에 대해 관련된 컴포넌트와의 매핑 정보가 포함되는 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 방법.
  6. 제 5 항에 있어서, 상기 컴포넌트와의 관계가 매핑된 순차도에서,
    제 1 연산자가 사용된 경우에 선택 기능으로 설정하고, 제 2 연산자가 사용된 경우에 대안 기능으로 설정한 상태에서의 컴포넌트 분류는,
    제 1 연산자가 사용된 단계에 매핑된 컴포넌트가 다른 시나리오상에서 포함 되어 있는지를 검사하여 다른 시나리오상에 포함되지 않는 컴포넌트인 경우에 독립 개별 기능 확장에 의한 선택 컴포넌트로 분류하고, 포함되는 경우에는 시나리오상에서 선택 기능 수행을 위한 컴포넌트로 분류하며,
    제 2 연산자가 사용된 단계에 매핑된 컴포넌트들에 대해 아키텍처 모델에서의 인터페이스를 비교하여 인터페이스가 동일할 경우 인터페이스 변경 없이 구현만 변경되는 대안 컴포넌트로 분류하고, 동일하지 않을 경우 인터페이스가 변경되는 대안 컴포넌트로 분류하는 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 방법.
  7. 제 4 항에 있어서, 상기 b. 단계에서 컴포넌트 단위의 공통성과 가변성을 표현하기 위해 선택 컴포넌트와 대안 컴포넌트에 의해 영향을 받는 다른 요소들과의 의존 관계 형성은,
    (가) 선택 컴포넌트(A)에서 사용하는 요구 인터페이스(B)를 추출하는 단계;
    (나) 해당 인터페이스(B)를 제공하는 컴포넌트(C) 측면에서 인터페이스(B)가 다른 컴포넌트에 의해 사용되는지 확인하는 단계;
    (다) 다른 컴포넌트에 의해 사용되지 않는 경우에, 다음으로 컴포넌트(C)가 인터페이스(B) 외에 다른 인터페이스를 제공하는지 확인하여, 다른 인터페이스를 제공하지 않는 경우 컴포넌트(C) 단위에서의 의존관계를 형성하여 상기 (가) 단계로 리턴하고, 다른 인터페이스를 제공하는 경우 인터페이스(B) 단위에서의 의존관계를 형성하는 단계; 및
    (라) 상기 (나) 단계에서 다른 컴포넌트에 의해 사용되는 경우에 선택 컴포넌트(A)와 컴포넌트(C)와의 상호작용 부분인 커넥터(D)에서 컴포넌트(C)의 메소드 목록(E)을 추출하여 해당 메소드(E)에 대해 선택 컴포넌트와의 의존 관계를 형성하는 단계
    로 이루어진 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 방법.
  8. 제 7 항에 있어서, 상기 대안 컴포넌트에 의해 영향 받는 의존 관계를 형성하기 위해,
    대안 컴포넌트(A)의 제공 인터페이스(B)를 추출하는 단계;
    해당 인터페이스(B)를 사용하는 컴포넌트(C)가 존재하는지 확인하여, 존재할 경우에 제공 인터페이스(D)를 추출하는 단계; 및
    상기 (나) 단계로 진행하는 단계
    로 이루어진 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 방법.
  9. 제 4 항에 있어서, 상기 c. 단계는,
    검증하고자 하는 요구사항에 대한 시나리오를 입력받는 단계;
    입력받은 시나리오에 대하여, 각 시나리오와 관련 있는 아키텍처 모델 요소를 연결시키고, 연결된 아키텍처 모델들의 선후 관계를 정의하는 단계; 및
    정의된 요구사항, 시나리오, 아키텍처 모델 요소의 관계를 분석하여 요구사항에 대한 검증 관점 모델을 생성하여 아키텍처 모델을 추적하고 오류를 식별하는 단계
    로 이루어진 것을 특징으로 하는 제품 계열 아키텍처의 표현 및 검증 방법.
KR1020040109132A 2004-12-21 2004-12-21 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법 KR100672894B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040109132A KR100672894B1 (ko) 2004-12-21 2004-12-21 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법
US11/121,994 US7721252B2 (en) 2004-12-21 2005-07-06 Apparatus and method for product-line architecture description and verification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040109132A KR100672894B1 (ko) 2004-12-21 2004-12-21 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법

Publications (2)

Publication Number Publication Date
KR20060070609A KR20060070609A (ko) 2006-06-26
KR100672894B1 true KR100672894B1 (ko) 2007-01-22

Family

ID=36597666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040109132A KR100672894B1 (ko) 2004-12-21 2004-12-21 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법

Country Status (2)

Country Link
US (1) US7721252B2 (ko)
KR (1) KR100672894B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180051882A (ko) * 2016-11-09 2018-05-17 한국과학기술원 관점 지향 프로그래밍을 활용한 아키텍처 기반의 통합 결함 검출 방법 및 시스템 그리고 도구

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543269B2 (en) * 2001-03-26 2009-06-02 Biglever Software, Inc. Software customization system and method
KR100777103B1 (ko) * 2005-08-19 2007-11-19 한국전자통신연구원 테스트 드라이버 생성 장치 및 방법
US7895575B2 (en) 2005-08-19 2011-02-22 Electronics And Telecommunications Research Institute Apparatus and method for generating test driver
US20080276221A1 (en) * 2007-05-02 2008-11-06 Sap Ag. Method and apparatus for relations planning and validation
KR100911324B1 (ko) * 2007-06-22 2009-08-07 삼성전자주식회사 가변성 요소 관리 방법 및 그 장치
US8166453B2 (en) * 2008-01-21 2012-04-24 International Business Machines Corporation Method and system for inconsistency resolution with cycle detection in a model-driven software environment
US8056050B2 (en) * 2008-01-21 2011-11-08 International Business Machines Corporation Method and system for guided inconsistency resolution in a model-driven software environment
US20090198496A1 (en) * 2008-01-31 2009-08-06 Matthias Denecke Aspect oriented programmable dialogue manager and apparatus operated thereby
US8578324B2 (en) * 2008-03-17 2013-11-05 International Business Machines Corporation Variability layer for domain-specific modeling languages
EP2133795A1 (en) * 2008-06-11 2009-12-16 Software AG System and method for testing a software product
US8682630B2 (en) * 2009-06-15 2014-03-25 International Business Machines Corporation Managing component coupling in an object-centric process implementation
US8707250B2 (en) * 2009-12-22 2014-04-22 Board Of Regents, The University Of Texas System Automation support for domain modeling
US8584080B2 (en) * 2010-03-22 2013-11-12 International Business Machines Corporation Modeling and generating computer software product line variants
KR101705823B1 (ko) 2011-06-30 2017-02-13 삼성디스플레이 주식회사 유기 발광 소자
CN102270137B (zh) * 2011-08-10 2014-01-01 清华大学 一种获取体系结构描述语言的方法和一种建模工具
CN102270136B (zh) * 2011-08-10 2015-04-08 清华大学 一种需求特征建模到体系结构建模的平滑过渡方法
CN102880493B (zh) * 2012-09-25 2015-04-08 南京大学 一种构件间动态依赖关系的自动分析方法
WO2016122481A1 (en) * 2015-01-28 2016-08-04 Hewlett Packard Enterprise Development Lp Product portfolio rationalization
US10481879B2 (en) * 2018-02-07 2019-11-19 Microsoft Technology Licensing, Llc Code development using continued machine learnings

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015866A1 (en) 2001-04-24 2004-01-22 Estep James L. Software suitability testing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854107B2 (en) 1999-12-29 2005-02-08 Baker Hughes Incorporated Method of and system for designing an N-tier software architecture for use in generating software components
US7543269B2 (en) * 2001-03-26 2009-06-02 Biglever Software, Inc. Software customization system and method
US20040064803A1 (en) 2002-09-27 2004-04-01 Graves David A. Validation system and method
US20080167918A1 (en) * 2004-06-14 2008-07-10 Symphonyrpm, Inc. Decision object for associating a plurality of business plans
KR100575581B1 (ko) * 2004-12-15 2006-05-03 한국전자통신연구원 우선순위 그래프를 이용한 제품 계열의 기능 분석 및테스팅 경로 분석 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040015866A1 (en) 2001-04-24 2004-01-22 Estep James L. Software suitability testing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
가변성을 고려한 자산의 결정모델 기술 및 지원도구, *
논문

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180051882A (ko) * 2016-11-09 2018-05-17 한국과학기술원 관점 지향 프로그래밍을 활용한 아키텍처 기반의 통합 결함 검출 방법 및 시스템 그리고 도구

Also Published As

Publication number Publication date
KR20060070609A (ko) 2006-06-26
US20060136864A1 (en) 2006-06-22
US7721252B2 (en) 2010-05-18

Similar Documents

Publication Publication Date Title
KR100672894B1 (ko) 제품 계열 아키텍처의 표현 및 검증 장치와 그 방법
Ciccozzi et al. Execution of UML models: a systematic review of research and practice
Albin The art of software architecture: design methods and techniques
US7716254B2 (en) System for modeling architecture for business systems and methods thereof
CN102483698B (zh) 动态web应用的客户端层验证
Yang et al. Assumptions and their management in software development: A systematic mapping study
JPH06103046A (ja) システム設計法
US9582270B2 (en) Effective feature location in large legacy systems
EP1548581A2 (en) Methods, apparatus and programs for system development
Miron et al. Transforming haptic storyboards into diagrammatic models: the scene2model tool
Lettner et al. Automated analysis of two-layered feature models with feature attributes
Lehrig Efficiently conducting quality-of-service analyses by templating architectural knowledge
Nascimento et al. A model-driven infrastructure for developing product line architectures using cvl
KR20070058943A (ko) 소프트웨어 아키텍처 평가 장치 및 방법
Nascimento et al. A case study in software product lines-the case of the mobile game domain
Tatale et al. A Survey on Test Case Generation using UML Diagrams and Feasibility Study to Generate Combinatorial Logic Oriented Test Cases.
Nicolas et al. Gsn support of mixed-criticality systems certification
Pulido Applying behavior driven development practices and tools to low-code technology
Khodnenko et al. A Lightweight Visual Programming tool for Machine Learning and Data Manipulation
Priggouris et al. The system design life cycle
Maiden et al. A requirements-led approach for specifying qos-aware service choreographies: An experience report
Bussenot et al. A domain specific test language for systems integration
Soffer et al. Model-Based Requirements Engineering Framework for Systems Life-Cycle Support
Júnior et al. A semiautomatic process model verification method based on process modeling guidelines
Hoang Duc Traceability in Agile software projects

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
LAPS Lapse due to unpaid annual fee