6장. 아키텍처 설계
아키텍처 설계
아키텍처 설계 (Architectural Design)
- 시스템 전체 구조 설계
- 시스템 주요 구조 컴포넌트 (Subsystem)들과 상호작용하는 컴포넌트 간의 관계 (Interfaces)
아키텍처 변경
- 아키텍처의 변경은 비용이 많이 든다.
- 애자일 프로세스에선 애자일 개발 프로세스 초기 단계가 전체 시스템 아키텍처 설계에 초점을 맞추어야 한다는 것을 받아들인다.
- 변화에 대응하여 컴포넌트를 리팩토링 (Refactoring)하는 것은 비교적 쉽다.
- 그러나 시스템 아키텍처를 리팩토링하는 것은 대부분의 시스템들을 아키텍처 변화에 따라 수정할 수 있기 때문에 비용이 많이 든다.
아키텍처의 점진적인 개발은 바람직하지 않다.
아키텍처 설계와 요구공학 프로세스의 중첩
- 이상적으로는 요구사항 명세에는 설계가 포함되지 않아야 한다.
- 그러나 주요 아키텍처 컴포넌트들이 시스템의 상위 수준 특징을 반영하기에 컴포넌트들을 식별할 수 있어야 한다.
- 요구 공학 프로세스의 일부로서, 시스템의 기능들과 특징들을 그룹지어 큰 단위의 컴포넌트나 서브시스템과 연결 짓는 추상 시스템 아키텍처를 제안할 수 있어야 한다.
요구공학 프로세스의 일부로서 추상 시스템 아키텍처가 제시되어야 한다.
아키텍처와 기능적 / 비기능적 요구사항
- 시스템의 개별 컴포넌트 → 기능적 요구 사항을 구현
- 시스템의 아키텍처 → 비기능적 시스템 특성에 지배적인 영향을 준다.
아키텍처의 명시적 설계와 문서화의 장점