- Software Architecture
- SW 컴포넌트들 간의 상호 관계를 정의 및 설계하고 전개하기 위한 구조
특징
특징 | 내용 |
---|---|
간략성 | 이해하고 추론할 수 있을 정도의 간결성 유지 |
추상화 | 시스템의 추상적인 표현을 사용(복잡도 관리) |
가시성 | 시스템이 포함해야 하는 것들을 가시화, 청사진 |
참조 모델
ISO/IEC/IEEE 42010
- 소프트웨어 아키텍처에 대한 국제 표준
SEI 3 뷰
- 미 소프트웨어 공학 연구소의 3체계 뷰
- 모듈 뷰(Module View)
- 컴포넌트 뷰(Component View)
- 할당 뷰(Allocation View)
지멘스 4 뷰
- 지멘스사의 4체계 뷰
RUP 4+1 뷰
- Rational Unified Process의 4+1체계 뷰
Logical View | → | Development View
(Implement View) |
---|---|---|
↓ | Scenarios
(Use-Case View) |
↓ |
Process View | → | Physical View |
소프트웨어 아키텍처 스타일
※ 소프트웨어 아키텍처 패턴으로 불리기도 한다. 본 위키에선 '디자인 패턴'과의 구분을 위해 '아키텍처 스타일'을 사용한다.
- 아키텍처 설계에서 반복해서 나타나는 문제를 해결하고 아키텍처가 만족시켜야 하는 시스템 품질 속성을 달성할 수 있는 방법을 체계화 한 것
- 아키텍처를 구성하는 컴포넌트와 커넥터 종류와 이것들이 결합하는 방법 정의
- 아키텍처 설계시 이용 가능한 베스트 프랙티스
소프트웨어 아키텍처 평가
평가 모델 개요
평가 모델 | 설명 |
---|---|
SAAM |
|
ATAM |
|
CBAM |
|
ADR |
|
ARID |
|
- 일반적으로 ATAM과 CBAM이 가장 많이 쓰임
- ATAM 평가 후 비용/이익 측면 평가 위해 CBAM 수행
ATAM
- Architecture Trade-off Analysis Method
- 아키텍처 품질속성 만족 여부 판단
- 품질속성들간 연관관계 및 상충 분석
CBAM
- Cost Benefit Analysis Method
- ATAM을 바탕으로 기본 평가
- 아키텍처의 경제적 모델링 방법
아키텍처 개발 절차
단계 | 주요활동 | 내용 |
---|---|---|
요구사항 분석 | 요구사항 취득, 식별, 명세, 분류, 검증 등 | |
아키텍처 분석 | 품질요소 식별 | ISO9216 품질 요구사항 활용 |
품질요소
우선순위 결정 |
Utility Tree(시나리오 명세) 작성 | |
전술개발 | 품질속성별 전술개발 및 명세 | |
아키텍처 설계 | 관점 및 뷰 정의 | 이해당사자별 관점 정의
4+1 아키텍처 활용 |
아키텍처 스타일 선택 | MVC, Pipe-Filter 등 스타일 선택 및 조합 | |
후보 아키텍처 도출 | SAD(Software Architecture Description) 작성 | |
검증 및 승인 | 아키텍처 평가 | ATAM, CBAM 이용 |
아키텍처 상세화 | 디자인 패턴 고려, 설계 매커니즘 도출 | |
아키텍처 승인 | 고객 및 이해당사자 최종 승인 |
소프트웨어 아키텍처 기술서
- SW 이해관계자들이 다양한 관점에 따라 소프트웨어 아키텍처를 기술한 최종 산출물
- 이해관계자들의 시스템 이해 및 의사소통, 의사결정의 수단으로 활용