본문 바로가기

Dev.../소프트웨어 아키텍처

[SA강좌] Part 3-3 Component Connector View정의

Component Connector View 정의

일단 시스템 컨텍스트로 시스템 경계를 정의하였으면, 다음 과정으로는 시스템을 구성하는 핵심 엔터티에 대해서 abstraction을 파악하고 정의하는 단계로 이행된다. 시스템에 대한 추상화는 component와 connector를 사용하여 표현한다. Component&Connector View에 대한 다이어그램 작성 방법은 별도의 장에서 제시한다.

  • 아키텍처 관련 요구사항 분석

Component&Connector View 작성하기 전에 View 어떤 요구사항과 품질 요소를 반영할 것인가를 결정해야 한다. 또한 요구사항이 모호한 경우나 요구사항이 빠진 경우에는 요구사항을 상세화하거나 추가해야 한다.

  • 설계 전략 수립

아키텍처 설계는 요구사항에 대한 추상적인 해결책을 제시해야 한다. 따라서 요구사항에 대한 해결 전략을 세워야 한다. 예를 들어 현재 세가지 요구사항이 접수됐으며 그에 대한 해결책은 다음과 같다.

  • 개발 기간이 짧다.

    제품의 특성을 추가하거나 제거하기 쉽게 만든다.

  • 일반적인 목적의 하드웨어나 특정 도메인용 하드웨어로 교체하기가 쉬어야 한다.

    특정 도메인용 하드웨어를 캡슐화한다.

  • 제품의 특성을 추가하거나 제거하기 쉽게 만든다.

    컴포넌트를 concer별로 분리한다.

    제품의 일부 특성을 별도의 컴포넌트로 분리한다.

    사용자와의 상호작용 커플링을 줄인다.

  • 설계
    • 최상위 레벨의 다이어그램 작성

      가상의 이미지 관리 시스템에 대한 아키텍처를 작성한다. 시스템은 감시 장비 카메라를 통해 이미지를 획득하는 시스템이다. 시스템은 감시 장비를 제어하는 port 감시 장비에서 환경 데이터를 얻는 port, 감시 카메라의 움직임을 제어한 port, 카메라를 움직이는 동안 이미지를 모니터로 보여주는 port, 이미지를 전성하는 port, 네트워크를 엑세스 하는 port 이루어져 있다.

      컴포넌트는 카메라를 제어하는 컴포넌트, 이미지를 처리하는 컴포넌트, 이미지를 전송하는 컴포넌트로 나누어진다.

그림 Ⅲ-31. 이미지 관리 시스템의 C&C View

사용자는 UserAcqControl 포트를 통해 감시 카메라의 위치를 조정한다. Acquistion 컴포넌트는 감시 장비 하드웨어에 위치를 조정하라는 명령을 probeCommands 포트를 통해 보내고 imaingControl 포트를 통해 Imaging 컴포넌트에는 변경된 위치에 따라 이미지를 작성하여 모니터에 보내도록 명령한다. Imaging 컴포넌트는 probeData 포트를 통해 카메라 주변의 명암 등에 대한 환경 정보를 받고 이미지를 조정하며 UserAcqDisplay 포트를 통해 모니터에 이미지 정보를 보낸다. 만일 사용자가 이미지를 전송하기를 원한다면 Exporting 컴포넌트는 newtworkAccess 포트를 통해 네트워크에 연결하고 useImageExport 포트를 통해 이미지를 내보낸다.

그림 Ⅲ-32. 이미지 전송 시나리오

 

그림 -32 이미지가 어떻게 전송되는지 보여준다. 사용자가 카메라 제어를 요청할 경우에는 probeCommands 통해 감시 장비를 제어하고 주기적으로 이미지를 모니터에 보여주도록 요청한다. 감시 장비의 환경 데이터도 주기적으로 probeData 포트를 통해 들어온다. Imaging 컴포넌트는 Acquisition 컨트롤 명령과 환경 데이터를 합하여 이미지를 만들고 userAcqDisplay 포트를 통해 이미지를 모니터에 보여준다.

만일 사용자가 이미지 전송을 요청하면 Acquisition 컴포넌트에서 주기적으로 이미지를 모니터에 보여주라는 명령과 함께 이미지를 전송하라는 명령을 Imaging 컴포넌트에 보내고 Imaging 컴포넌트는 Exporting 컴포넌트에게 이미지를 전송하도록 명령한다.

  • 다이아그램 상세화

    그림 -33 상세화된 C&C View이다. 외부 시스템에 대한 의존성을 방지하기 위해 외부 시스템을 제어하는 ProbeControl 추가했다.

그림 Ⅲ-33. 상세화된 이미지 관리 시스템의 아키텍처

 

ImageProcessing 상세화는 그림 -34 같다.

그림 Ⅲ-34. ImageProcessing의 상세화

 

ImageProcessing 컴포넌트는 감시 장비에서 받은 데이터를 패킷으로 묶는 Packetizer 컴포넌트와 Image 생성하는 ImagePipeline 컴포넌트로 나누어진다. Packetizer 컴포넌트는 rawDataInput 포트를 통해 데이터가 준비되었다는 메시지를 받으면 포트를 통해 데이터를 요청하면 포트는 데이터를 전달한다. 과정을 sequence diagram 사용하여 표현하면 다음과 같다.

그림 Ⅲ-35. Packetizer의 데이터 전송 과정

 

ImagePipeline 컴포넌트의 상세화는 그림 -36 같다.

그림 Ⅲ-36. ImagePipeline 컴포넌트의 상세화

  • 마무리 작업

컴포넌트와 connector 할당할 자원에 대한 제약사항이 있으면 명세 한다.