1.8 요약
소프트웨어 시스템은 구성 요소와 이들 간의 관계로 구성됩니다. 시스템 아키텍처는 이러한 구성 요소와 각각의 관계와 더불어 시스템 설계와 진화를 통제하는 원칙으로 만듭니다. 또 시스템의 현재와 미래 상태를 모두 다룹니다.
시스템 구조가 통제되지 않으면 설계가 외부 요인에 따라 좌지우지되기 쉽습니다. 보고 체계 준수, 변경 범위 최소화, 신속한 배포 등이 이에 해당합니다. 물론 이러한 요소도 중요하지만, 명확한 시스템 구조를 갖추는 데 방해가 될 수 있습니다.
시스템 설계와 진화에 아키텍처 원칙을 적용하면 시스템의 기본 구조를 더 잘 관리할 수 있습니다. 이러한 아키텍처 원칙이 소프트웨어의 빠른 출시 같은 중요한 원칙을 대체할 필요는 없습니다. 하지만 시스템 설계와 진화를 논의하는 과정에서 반드시 다루어야 합니다. 이 경우 다른 엔지니어링 분야와 마찬가지로 서로 상충되는 목표 간에 균형을 맞추는 과정이 필요합니다.