강승준 SW공학센터 SW공학기술팀 책임연구원


▲ 강승준 SW공학센터 SW공학기술팀 책임연구원



아키텍처 설계 사이클 (The Architecture Design Cycle)


2.1 소프트웨어 아키텍처 설계 생명 주기

소프트웨어 아키텍처는 시스템 개발 전 영역에 걸쳐서 영향을 주거나 받는다. 특히 소프트웨어 개발 영역에 관련하여 중요한 상호작용을 발생시킨다. 즉, 비용, 일정, 시스템 한계 등의 요소가 소프트웨어 아키텍처에 지대한 영향을 끼칠 수 있고, 아키텍처는 위의 영향 요소를 포함하여 조직의 구성 및 팀의 개발 방식 등에 영향력을 갖는다.

본 칼럼의 1회에서 미리 아키텍처에 영향을 주는 요인에 대하여 언급된 바 있다. 이러한 영향 요소와 비즈니스 목표, 제품의 요구사항, 아키텍트의 경험 등은 서로 상호 작용을 이루고 있으며 피드백 순환 관계를 구성한다. 즉, 이전의 아키텍처를 수립한 경험과 지식이 적게는 유사한 프로젝트, 크게는 기업의 개발환경에 영향을 주고, 이는 다시 개발되는 아키텍처와 아키텍트에게 영향을 주게 된다.

2.2 아키텍처 요소 간의 상호 연관성

다음<그림 1>은 이러한 피드백 순환 관계를 도식화하며, 아키텍처에 영향을 주는 요인들의 상호 영향 관계에 대하여 설명하고 있다. 위와 같은 연관성을 갖는 아키텍처는 다음과 같은 순환 관계를 가진다.


▲ <그림 1> 아키텍처 요소 간의 상호 연관성





아키텍처는 개발조직 구성에 영향을 미친다.

아키텍처는 개발해야 하는 단위나 구성해야 하는 단위와 깊은 연관성을 가진다. 이러한 단위는 소프트웨어 단위의 개발을 책임지는 팀의 구성에 영향을 주게 되고 더 나아가 개발조직의 구조와 연관되게 된다.

아키텍처는 개발조직 목표에 영향을 미친다.

성공한 상품이 아키텍처를 기반으로 개발 되었다면, 유사한 시스템을 계속 개발할 수 있는 기회를 제공하고 이를 이용하여 회사는 해당 시장에서 발판을 가지게 된다. 계속 개발되는 상품이 요구하는 목표에 맞는 새로운 전문가가 필요하고, 이렇게 개발된 새 상품은 또 다른 기회를 제공한다. 이렇게 아키텍처는 개발조직의 새로운 목표에 영향을 주게 된다.

아키텍처는 고객 요구사항에 영향을 미친다.

만약 이미 아키텍처 설계를 수행한 시스템을 경험해본 고객이라면, 그 전보다 훨씬 신뢰성 있는 요구사항을 제시할 수 있고, 많은 비용의 요구사항에 대해서도 수용이 가능하다. 이는 다시 고품질의 아키텍처 설계에 영향을 미친다.

아키텍처는 아키텍트가 전에 겪었던 경험에 영향을 받는다.

개발에 성공한 방법이나 설계전술을 계속 사용하거나, 실패한 방법을 더 이상 같은 방식으로 사용하지 않는다.

아키텍처는 기술적 환경에 영향을 받고, 소수의 일부 아키텍처 기술적 환경에 영향을 미칠 수 있으며, 심지어는 변화시킬 수도 있다.

선구적인 시스템 아키텍처 이후에 개발되는 시스템은 변화된 엔지니어링 환경의 영향을 받아 새로운 기술적 환경을 기반으로 설계된다.
아키텍처를 잘 활용하는 기업은 위와 같은 아키텍처의 연관성을 잘 파악하고, 이를 전략적으로 이용해서 회사의 비즈니스에 맞게 미래의 프로젝트에 효율적으로 적용한다.



<이하 상세 내용은 컴퓨터월드 5월 호 참조>

저작권자 © 아이티데일리 무단전재 및 재배포 금지