소프트웨어 아키텍처 평가 모델인 **ATAM (Architecture Tradeoff Analysis Method)**과 **CBAM (Cost Benefit Analysis Method)**에 대해 프로세스를 중심으로 상세하게 설명드리겠습니다. 아래는 기술사 답안 형식으로 개념, 목적, 프로세스 중심 구조, 구성요소, 특징, 비교까지 포함한 모범답안입니다.
소프트웨어 아키텍처 평가 모델인 ATAM과 CBAM의 개념과 평가 프로세스를 중심으로 논하시오.
| 구분 | 내용 |
|---|---|
| ATAM | Architecture Tradeoff Analysis Method 아키텍처 품질 속성(성능, 유지보수성 등)의 트레이드오프(Trade-off)를 식별하고 이해하는 구조적 평가 방법 |
| CBAM | Cost Benefit Analysis Method ATAM을 기반으로 하여 아키텍처 결정의 경제적 가치를 정량적으로 분석하여 의사결정을 돕는 방법 |
| 모델 | 목적 및 역할 |
|---|---|
| ATAM | 아키텍처 설계가 품질 속성(QA: Quality Attribute)을 어떻게 만족시키는지 평가하고, 트레이드오프를 통해 위험요소를 사전에 식별 |
| CBAM | 품질 속성 개선 방안(아키텍처 전략)에 대해 비용 대비 효과(Benefit vs Cost) 분석을 통해 최적의 투자 결정을 지원 |
| 단계 | 설명 |
|---|---|
| ① 준비 | 평가 팀 구성, 이해관계자 식별, 평가 목표 정의 |
| ② 아키텍처 설명 | 아키텍처 설계 구조 및 품질 속성 설명 |
| ③ 비즈니스 목표 식별 | 이해관계자의 비즈니스 목표 및 우선순위 정리 |
| ④ 품질 속성 시나리오 개발 | 성능, 보안 등 각 품질 속성에 대한 구체적 시나리오 수집 |
| ⑤ 아키텍처 접근방식 식별 | 아키텍처 결정사항(패턴, 전술 등) 식별 |
| ⑥ 시나리오 기반 분석 | 시나리오 기반으로 아키텍처가 품질 속성 만족하는지 평가 |
| ⑦ 민감점(Sensitivity Point) 도출 | 특정 품질 속성에 민감한 아키텍처 요소 파악 |
| ⑧ 트레이드오프 포인트 도출 | 품질 속성 간 충돌 지점(Trade-off) 분석 |
| ⑨ 결과 정리 및 보고 | 분석 결과 문서화, 리스크, 트레이드오프, 권고사항 정리 |
| 단계 | 설명 |
|---|---|
| ① ATAM 결과 기반 입력 | 품질 속성 시나리오, 아키텍처 전략, 민감점 등 활용 |
| ② 품질 속성의 중요도 정의 | 이해관계자 관점에서 품질 속성에 가중치 부여 |
| ③ 아키텍처 전략 식별 | 시스템 개선을 위한 다양한 전략(기술 적용, 구조 개선 등) 도출 |
| ④ 비용 및 효과 추정 | 각 전략에 대해 예상 비용, 예상 효과(Benefit) 수치화 |
| ⑤ ROI 분석 | 각 전략에 대해 ROI(Return on Investment) 계산 |
| ⑥ 최적의 전략 선택 | 투자 대비 효과가 높은 전략을 선정 및 계획 수립 |
| 구분 | ATAM | CBAM |
|---|---|---|
| 주요 입력 | 아키텍처 설명, 품질 속성 시나리오 | ATAM 분석 결과, 비용/효과 요소 |
| 산출물 | 민감점, 트레이드오프 포인트, 리스크 | ROI 분석표, 투자 우선순위 |
| 항목 | ATAM | CBAM |
|---|---|---|
| 목적 | 품질 속성 간 트레이드오프 분석 | 경제적 분석을 통한 전략 선택 |
| 접근 방식 | 정성적 평가 | 정량적 분석 |
| 입력 자료 | 아키텍처 설명, 시나리오 | ATAM 결과, 전략별 비용/효과 |
| 산출물 | 트레이드오프, 민감점, 리스크 | 전략별 ROI, 우선순위 계획 |
| 활용 시점 | 설계 중, 또는 리뷰 시점 | 투자 판단, 리팩토링, 업그레이드 시점 |
ATAM은 “이 건물 구조 괜찮은지 점검해보자!”고 검사하는 방식이고,
CBAM은 “어떤 방법이 돈을 아끼면서 효과가 좋을까?”를 따지는 방식이에요!
ATAM과 CBAM은 소프트웨어 아키텍처를 평가하고 최적화하기 위한 대표적인 모델로, ATAM은 품질 속성 중심의 정성 평가, CBAM은 경제적 가치 중심의 정량 평가에 중점을 둡니다. 두 방법은 상호보완적으로 사용되어 효과적인 아키텍처 의사결정에 기여합니다.