소프트웨어 공학

[016] 아키텍처드라이버란 무엇인가?

현명한 부자아빠 2024. 8. 10. 00:00

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시간 이내에(응답측정)