본문 바로가기

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

[SA강좌] Part 3-8 소프트웨어 아키텍처 상세화

소프트웨어 아키텍처 상세화

본 절차에서는 네 가지 형태의 아키텍처 전이 절차에 대해서 살펴볼 것이다. 아키텍처 전이는 시스템의 특성을 변화시키기 위하여 사용된다. 소프트웨어 아키텍처 개발 단계는 기능중심 아키텍처 설계 단계, 아키텍처 평가단계, 아키텍처 전이 단계로 구성된다. 첫 번째 기능중심 아키텍처 설계 단계에서는 도메인 분석을 기반으로 하여 설계를 진행하며, 소프트웨어 아키텍처 평가단계에서는 품질요소에 따른 요구사항과 비교하여 네 가지 방법 중 소프트웨어 아키텍트가 비교방법을 선택하고, 품질요소에 맞게 시나리오 프로필을 소프트웨어 아키텍처와 데이터 검증 및 시나리오 검증을 통하여 평가하게 된다.

마지막으로 소프트웨어 아키텍처 전이단계는 소프트웨어 엔지니어가 아키텍처를 분석하고 아키텍처 특성에 무슨 문제점이 발생하는지를 결정하는 능력이 요구된다. 소프트웨어 아키텍처 전이단계에서는 이전 소프트웨어 아키텍처가 고객의 요구사항과 시스템 컨텍스트의 변경으로 인한 버전 별로 소프트웨어 아키텍처를 진화시키는 과정이라고 할 수 있다. 진화시키는 범위는 기능 중심 아키텍처 설계의 시스템 컨텍스트 및 도메인이 그 범위이며, 평가 방법 역시 이전에 실시한 동일한 방법에 따라 변경된 시스템 특성에 따른 특성치를 관리하게 된다.

결과적으로 아키텍처 전이 단계는 모든 소프트웨어 아키텍처 전이가 시스템 특성에 긍정적 또는 부정적 영향을 미치게 된다.

여기서 소프트웨어 아키텍처 전이단계의 네 가지 카테고리를 정리하고, 어떻게 하면 아키텍처 변경에 따른 영향(아키텍처 스타일, 아키텍처 패턴(메커니즘), 설계패턴, 품질요구사항의 기능사항변경)을 최소화할 것인지에 대하서 살펴보도록 하자.

 

아키텍처 스타일과 설계패턴과 관련한 아키텍처 전이 단계는 서로 독립적인 문제가 아니라, 문제파악, 해결책 선택, 해결책 적용 이란 큰 과정을 통하여 진행되게 된다.

첫 번째 과정은 품질요구사항이 현재버전의 소프트웨어 아키텍처로 만족하고 있는지 파악하는 데부터 시작하게 된다. 추가적으로 품질속성의 평가레벨과 요구사항의 불일치점을 수집 및 집계한다. 이러한 평가레벨과 각 품질속성에 대한 요구사항의 불일치점을 기반으로, 품질속성간 우선순위를 결정한다. 이 우선순위를 고려하여 어떤 품질속성을 먼저 아키텍처 전이단계로 수행할 것인지를 결정하게 된다. 각 품질속성에 대한 요구만족레벨과 평가레벨에 대한 이력을 남김으로써, 후에 소프트웨어 아키텍처 전이단계의 전이방법 선택과정에 도움을 줄 수 있도록 정리한다.

두 번째 과정은 각 품질 속에 대한 반복과정이다. 어느 하나의 품질속성이 단독으로 소프트웨어 아키텍처에 영향을 주기보다는 복합적으로 작용하여 영향을 주는 경우가 더 많으므로 유효한 품질속성을 기반으로 전이 선택에 영향을 주도록 평가한다. 두 번째 과정은 파악된 품질속성이 소프트웨어 아키텍처에 어느 컴포넌트(또는 서브도메인)이나 위치에 무슨 영향을 주는지를 파악해야 한다. 이것은 이전 평가방법에 따라 정량적 또는 정성적으로 파악할 수 가 있으면, 기초 데이터를 통하여 변경된 품질속성에 대해 예측 가능한 계산을 할 수 있다.

세 번째 과정은 소프트웨어 아키텍처에 파악된 문제점을 해결할 전이 방법을 선택하는 것이다. 일반적으로 몇 가지 상이한 전이 방법이 사용되는데, 문제의 범위나 영향 정도에 따라서 그 방법이 결정된다. 소프트웨어 아키텍처가 선정한 아키텍처 전이 방법이 현재의 소프트웨어 아키텍처에 부정적 또는 긍정적 영향을 미칠 수 있으므로 주의 깊게 생각하여야 한다.

마지막 네 번째 과정은 전이를 실시하는 과정이다. 이것은 기능(functionality)을 선택된 아키텍처 스타일과 아키텍처 패턴, 변경된 아키텍처 기술서를 바탕으로 재구성하는 과정이다.

 

그림 6은 이러한 전이과정 범위를 도식화한 것이다. 이차원적인 도식에서 전이 과정은 영향의 범위 축. 즉 컴포넌트 수준의 변경인지 아니면 아키텍처 전반의 변경인지를 나타내는 축과 전이 형태-현 컴포넌트의 재구성 또는 컴포넌트에 기능 추가를 나타내는 축으로 구성된다. 4/4분면의 내용으로 영향범위와 전이형태의 정도에 따른 소프트웨어 아키텍처에 고려해야 할 방법이 네 가지로 분류할 수 있다.

그림 Ⅲ-38. 전이 카테고리 분류

결론은 소프트웨어 아키텍처 전이 과정은 네 가지 과정으로 정리될 수 있다. 첫 번째 과정은 고려하지 않은 품질요구사항의 파악, 두 번째 과정은 각 품질요구사항에 대한 영향을 주는 컴포넌트 및 위치를 파악, 세 번째 과정은 적합한 전이 방법 선택, 네 번째 과정은 전이를 실시하는 단계로 이루어진다.