Product Lines Platform Wiki

The most promising software development paradigm for increasing productivity.

사용자 도구

사이트 도구


assets:controllermodel

Control Component Specification Model

제어 컴포넌트(Control Compnent)는 시스템의 외부에서 전달되는 데이터 또는 이벤트를 기반으로 소프트웨어의 행위를 제어하고, 특정 조건이 만족할 때 서비스 또는 함수를 기동시키는 역할을 수행한다.

제어 컴포넌트는 소프트웨어의 아키텍처를 결정하는 가장 핵심적인 역할을 수행하며 가장 높은 복잡성을 가지며 변경이 자주 일어나는 부분이다. 그러므로 개발자에 의해서 직접적으로 개발을 수행하는 것 보다는 특정 명세를 이용하여 모델링하고 모델을 바탕으로 도메인의 특성에 맞게 검증된 생성기를 이용하여 제어 컴포넌트를 생성하는 것이 소프트웨어 개발에서 오류를 줄일 수 있는 방법이다.

제품라인 플랫폼에서 제안하는 아키텍처 모델들 가운데 제어 컴포넌트의 위상은 아래의 <그림1>과 같다.

<그림1> 소프트웨어를 구성하는 컴포넌트 유형들 사이의 관계

시스템은 하나 이상의 제어 컴포넌트를 가질 수 있다. 그리고 제어 컴포넌트들은 다시 시스템의 일부분을 제어하는 로컬 제어 컴포넌트와 시스템의 상태를 관리하는 글로벌 제어 컴포넌트로 구분될 수 있다. 글로벌 제어 컴포넌트와 로컬 제어 컴포넌트를 분리시킴으로써 제어 서비스가 추가되거나 삭제될 때 소프트웨어가 받는 영향을 줄일 수 있다. 또한, 배치 아키텍처를 정의/변경함으로써 분산 제어 네트워크를 쉽게 구성할 수 있다. 글로벌 제어 컴포넌트와 로컬 제어 컴포넌트는 상대적인 개념이다.

아키텍처 모델에서 주의깊게 살펴볼 것은 제어 컴포넌트와 도메인 컴포넌트 사이의 관계이다. 두 개의 컴포넌트는 제어와 연산의 분리 원칙에 따라서 완전히 분리되어 있다. 그리고 제어 컴포넌트에 의해서 도메인 컴포넌트가 특정조건에서 훅(Hook)이 될 수 있다. 이는 소프트웨어의 복잡성을 감소시키고 모듈화를 도와주는 좋은 관계이다.

이러한 제어 컴포넌트들을 모델 기반으로 개발하기 위해서 사용될 수 있는 명세방법은 제어 컴포넌트의 행위 특성에 따라서 일반적으로 다음과 같이 구분될 수 있다. 도메인의 특성에 따라서 명세방법은 더 추가될 수 있다.

  • 상태 기반 제어 컴포넌트 행위 명세 방법
  • 워크플로우 기반 제어 컴포넌트 행위 명세 방법
  • 구조적 의사결정 기반의 제어 컴포넌트 행위 명세 방법
  • 사용자 인터페이스 기반의 제어 컴포넌트 행위 명세 방법

State-based Control Component Specification

상태 기반 제어 컴포넌트는 시스템 상태와 이벤트를 기반으로 컴포넌트들 사이의 상호작용을 수행해야하는 소프트웨어의 개발에 적합한 모델이다. 예를 들어 공장 제어 시스템, 엘리베이터 제어 시스템, 로봇 제어 시스템 등의 제어 컴포넌트는 상태 기반 제어 컴포넌트로 개발할 수 있다.

상태 기반 제어 컴포넌트의 행위 명세는 일반적으로 상태 전이도(State Transition Diagram)를 이용한다. Statechart나 UML의 State Diagram은 명세를 위한 좋은 방편으로 사용될 수 있다. 그리고 <그림2>와 같이 시스템의 데이터 흐름에 대한 모델과 결부되어 데이터 프로세스와 연계되어 있는 특정 연산 컴포넌트를 실행시킴으로써 아키텍처 모델이 완성된다.

statebased_model.jpg

<그림2> 상태 기반 제어 컴포넌트 행위명세를 위한 요소들의 관계

특정 조건에서 활성화 되는 상태의 액션은 실질적으로 데이터 프로세스(Data Process)를 실행시킨다. 데이터 프로세스는 정의된 입/출력 값을 이용하여 데이터 처리를 수행하며 필요에 따라서 재사용가능한 라이브러리 컴포넌트를 호출하기도 한다.

위와 같은 기본적인 아키텍처를 바탕으로 제품라인 기반으로 명세가 되기 위해서는 명세모델에 휘처 기반으로 가변성이 포함되고 관리 될 수 있어야 한다. 가변성이 포함된 행위명세를 제품라인 제어 컴포넌트 행위명세로 부르며, 이후 제품구성의 결과에 따라 제품 컴포넌트 행위명세의 인스턴스를 생성시킬 수 있다.

상태 다이어그램에서 가변성이 반영될 수 있는 요소는 아래와 같다.

  • State
  • Transition
  • Action

데이터 흐름 다이어그램(Data Flow Diagram)에서 가변성이 반영될 수 있는 요소는 아래와 같다.

  • Data Process
  • Input/Output Data

상태 기반 행위명세를 이용하여 제어 컴포넌트 개발을 지원 할 수 있는 대표적인 도구로는 ASADAL의 행위명세 지원도구, IBM의 Statechart 또는 UML State Diagram 등이 있다. 위의 도구들 가운데 Statechart와 UML의 State Diagram은 단순히 상태 기반의 모델링 기능만을 제공하고 컴포넌트들 사이의 상호 작용과 통합을 위한 모델링 방법을 제공하지 못하고 있다. 반면 ASADAL 행위명세 지원도구는 Statechart와 Data Flow Diagram을 이용하여 연산 컴포넌트들에 대한 통합 방법과 환경을 제공하고 있다. 하지만 제품라인 개념 지원을 위한 다이어그램 자체적으로 가변성을 표기하고 관리하는 기능을 포함하지 못하고 있다. 반면 VULCAN 워크벤치는 제품라인 개념을 지원하는 상태-기반 제어 컴포넌트 모델 기반의 아키텍처 명세를 위한 도구들을 지원하고 있다.

<표1> 상태 기반 행위명세를 기반으로 제어컴포넌트 개발을 지원하는 도구들의 기능비교

ASADAL IBM Rhapsody VULCAN
Diagram Editing O O O
Variation Editing X X O
Verification O O O
Architecture-based Development O X O
Source Code Generation O X O

Workflow-based Control Component Specification

워크플로우 기반 제어 컴포넌트는 공정-지향적(Process-Oriented)으로 정해진 단계에 따라서 작업을 진행하고 각 단계에서 컴포넌트들 사이의 상호작용을 수행해야하는 특성을 가진 소프트웨어 개발에 적합한 모델이다. 주로 비즈니스 모델을 모델링 할때 많이 사용된다.

워크플로우 기반 제어 컴포넌트의 행위 명세는 UML의 액티비티 다이어그램(Activity Diagram)이나 상태 다이어그램(State Diagram) 등을 이용해서 모델링 될 수 있다. 행위명세를 이용하여 연산 컴포넌트를 연결하는 관계는 앞에서 설명한 상태기반 다이어그램과 동일하다.

제품라인 소프트웨어를 개발 지원을 위해서는 워크플로우 기반 제어 컴포넌트의 행위 명세에 가변성이 포함되어 관리 될 수 있어야 한다. 가변성이 반영될 수 있는 명세 요소는 아래와 같다.

  • Task (or Activity)
  • Transition

워크플로우 기반 행위명세를 이용하여 제어 컴포넌트 개발을 지원 할 수 있는 도구로는 VULCAN 워크벤치가 있다. 워크벤치는 제품라인 개념을 지원하는 워크플로우-기반 제어 컴포넌트 행위 명세를 위한 도구 및 검증등의 지원도구들을 지원하고 있다.


Decision Table-based Control Component Specification

구조적 의사결정 테이블 기반 제어 컴포넌트 모델은 다양한 조건들 (Conditions) 과 조건을 만족하는 행위들 (Actions) 조합을 통해서 컴포넌트들 사이의 상호작용을 수행해야하는 특성을 가진 소프트웨어 개발에 적합한 모델이다. 예를 들어, 할인 카드 등급, 회원 등급 등의 조건에 따라서 할인율을 결정하는 가격 할인 시스템의 제어 컴포넌트는 의사 결정 구조 기반 모델로 개발할 수 있다. 또 다른 예로, 들어오는 센서 입력 값의 조건에 따라서 기계의 문제를 판단하는 기계 관리 시스템의 제어 컴포넌트 또한 의사 결정 구조 기반 모델로 개발할 수 있다.

decisiontable_exam.jpg

<그림3> 의사결정테이블의 예

의사결정 테이블-기반 제어 컴포넌트의 행위 명세는 <그림3>과 같은 의사결정 테이블을 이용해서 모델링 될 수 있다. 행위명세를 이용하여 연산 컴포넌트를 연결하는 관계는 앞에서 설명한 상태기반 다이어그램과 동일하다.

제품라인 소프트웨어를 개발 지원을 위해서는 의사결정 테이블 기반 제어 컴포넌트의 행위 명세에 가변성이 포함되어 관리 될 수 있어야 한다. 가변성이 반영될 수 있는 명세 요소는 아래와 같다.

  • Rule
  • Condition
  • Action

의사결정 테이블-기반 행위명세를 이용하여 제어 컴포넌트 개발을 지원 할 수 있는 도구로는 VULCAN 워크벤치가 있다. 워크벤치는 제품라인 개념을 지원하는 의사결정 테이블-기반 제어 컴포넌트 명세를 위한 도구 및 검증 등의 지원도구들을 지원하고 있다.


User Interaction-based Control Component Specification

(예정)


See Also

assets/controllermodel.txt · 마지막으로 수정됨: 2014/11/25 00:04 저자 edeward