본문 바로가기

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

[SA강좌] Part 3-1 소프트웨어 아키텍처 설계

소프트웨어 아키텍처 설계

소프트웨어 아키텍처 설계 활동의 작업들과 작업 절차는 다음과 같다.

그림 Ⅲ-24. 소프트웨어 아키텍처 설계 절차


소프트웨어 아키텍처 설계 과정은 우선 아키텍처 관련 요구사항을 분석하고 그 후 시스템 컨텍스트를 정의한다. 아키텍처의 각 View는 Component&Connector View, Module View, Allocation View, Code View의 순서로 작성한다. 각 View를 작성하기 전에 아키텍처 관련 요구사항을 수정하고 다시 분석할 수도 있다.

그림 Ⅲ-25은 소프트웨어 아키텍처의 각 View와 다른 산출물과의 관계를 보여준다.

그림 Ⅲ-25. 소프트웨어 아키텍처 설계 절차

첫 번째 설계 단계는 설계를 위한 시스템 컨텍스트를 결정한다. 이는 시스템의 행위(behavior)을 결정하는 것으로써 외부 시스템 엔터티와 시스템간의 인터페이스를 결정하는 것이라고 할 수 있다. 두 번째 과정은 아키텍처를 component와 Connector를 사용하여 표현하다. 이는 주요 아키텍처 abstraction과 아키텍처 스타일 간 관계를 정의한다는 것을 말한다. Component&Conenctor View는 시스템을 abstraction하는 과정으로써, 이 과정이 전체 시스템 아키텍처를 결정하는 과정에 속하게 된다. 시스템 전이단계는 단지 추가적으로 아키텍처 스타일을 정의한 부분에 첨부하는 과정에 해당될 뿐이다.

세 번째 과정은 Module View를 결정하는 단계로 아키텍처의 주요 컴포넌트들을 정의하고, 이들간의 관계를 정의하는 시스템 분해와 관련 있다. 네 번째 과정은 Allocation View를 결정하는 단계로 아키텍처의 각 구성 요소가 시스템에서 어떻게 인스턴스화 되고 실행되는지를 보여준다. 다섯 번째 과정은 Code View를 결정하는 단계로 소스코드의 패키지 구조를 보여준다.


그림 Ⅲ-26. 아키텍처 구성 요소