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