[016] 아키텍처드라이버란 무엇인가?
01.소프트웨어 집약적인 시스템의 아키텍처를 설계하기 위해 아키텍트는 시스템의 기본 구조에 영향을 미칠 가능성이 가장 높은 핵심 요구 사항을 필요로 한다. 이러한 주요 요구사항들은 시스템의 구조를 결정한다. 이를 "아키텍처 드라이버"라고 한다. 즉 Key가 되는 요구사항들이다.
02.시스템 전체 요구 사항 항목을 분석하여,아키텍처 설계에 직/간접적 근간이 될 수 있는 항목을 추출/정제하여, 이를 아키텍처 설계 원칙이나 근거로 표현한 항목

아키텍처 드라이버 구성요소
- 기능 요구 사항(Functional Requirements) High-Level 기능 요구사항, 여러 component들의 조합
Low-Level : Class 하나의 내부 기능
- 품질 요구 사항(Quality Requirements)
정확성, 성능, 가용성, 유지보수성등
- 제약사항 (Constraints) /비기능 요구사항
설계가 시작되기전 미리 결정된 사양(기술,비용,관리적)
아키텍처 드라이버를 설명하는 도구
- 기능 요구사항 : Use Case Model, Use case Specification(Scenarios)
- 품질 요구사항 : 품질 속성 시나리오(Quality Attribute Scenario)
하나의 기능 요구사항은 여러 개의 품질 요구사항과 연계된다. Quality Attribute는 측정가능하거나 테스트 가능한 시스템의 속성이다. 즉 시스템이 이해관계자(Stakeholders)의 요구를 얼마나 잘 만족시키는지 나타내는 데 사용 된다. 이러한 특성을 명확하게 표현하는 방법이 바로 Quality Attribute Scenarios이다.
Quality Attribute Scenarios의 6가지 항목
- Stimulus : 자극
- Artifact : 대상
- Response : 응답
- Response Measure : 응답 측정
- Source of Stimulus : 자극원
- Environment : 환경
시나리오의 예 : 사용자가 UI 변경 요청(자극),에 대해 개발자(자극원)가, 퍼블리싱 소스(대상),를 수정할 페이지 (환경)가 ,Side Effect 없이 수정되야한다(응답), 3시간 이내에(응답측정)