소프트웨어 아키텍처는 높은 수준의 시스템 구조라는 뜻이다. 동시에 시스템을 이해하기 위한 중요한 구성 요소만 설계하고 자세한 과정은 정의하지 않는 추상화이다.
기술이나 프레임워크를 잘 선택하는 것이 소프트웨어 아키텍처가 아니며, 아키텍처의 단계에서 제일 마지막에 해당한다.
아키텍처에서 구성 요소의 의미는 행위나 API를 정의하는 블랙 박스를 말한다. 구성 요소 자체만으로 소프트웨어 아키텍처 다이어그램을 구성하는 복잡한 시스템이 될 수 있다.
마지막으로 시스템의 제약사항과 요구사항을 만족시켜야 한다. 소프트웨어 아키텍처는 시스템의 요구 사항으로서 모든 구성 요소들이 기능을 위해 어떻게 결합해야 하는지 나타내야 하고 시스템의 제약 조건으로서 시스템이 해선 안 되는 건 안 하도록 해야한다.
다양한 단계의 추상화를 통해 소프트웨어 아키텍처를 설명할 수 있다.
Low
소프트웨어 아키텍처는 설계 단계의 결과물이자 구현 단계에 들어갈 입력 값이다.