IT 기술/SW공학 & 프로젝트 관리

소프트웨어 아키텍처 분석 방법론

gooooooood 2025. 3. 4. 15:08
반응형

Ⅰ. 소프트웨어 아키텍처 분석의 정의 및 필요성

가. 소프트웨어 아키텍처의 정의

- 시스템의 구조와 구성요소 그리고 구성요소 간의 관계와 이들 사이의 설계 원

 

나. 소프트웨어 아키텍처의 필요성

구분 필요성 설명
비즈니스 측면 변화 민첩성 - 다양한 비즈니스 요구사항 민첩한 대응
비용 절감 - 소프트웨어 재사용, 유지보수 비용 절감
표준화 - 각종 규제 및 보안 준수 표준화
기술적 측면 성능 최적화 - 부하 분산 설계로 성능 향상
확장성 - 클라우드 네이티브, MSA 활용
보안 - 데이터 보호, 해킹 방지 설계

 

Ⅱ. 소프트웨어 아키텍처 정방향 분석과 역방향 분석

가. 소프트웨어 아키텍처 정방향 분석

구분 항목 설명
개념 정방향 분석 - 요구사항 기반 설계, 구현, 테스트를 거쳐 최종 소프트웨어 개발하는 과정
특징 체계적인 프로세스 - 분석, 설계, 구현, 테스트, 배포 프로세스
품질 속성 고려 - 성능, 확장성, 보안성, 유지보수성 등 품질 속성 고려
요구사항 기반 설계 - 사용자 요구사항 및 비즈니스 목표 기반 설꼐
기법 ATAM - 성능, 보안, 확장성 등의 트레이드오프 분석
CBAM - 아키텍처 변경의 비용-편익 분석, ROI 평가
ADR -  중요한 설계 결정을 문서화하여 추적 가능
ARID - 개발자가 참여하는 인터랙티브한 리뷰 방식

 

나. 소프트웨어 아키텍처 역방향 분석

구분 항목 설명
개념 역공학 분석 - 기존 시스템 분석하여 아키텍처 및 설계 구조 파악하는 과정
특징 기존 시스템 분석 - 코드, 실행 로그, 데이터 흐름 분석으로 설계 추출
아키텍처 시각화 - UML, ERD 활용 아키텍처 시각적 표현
유지보수성 향상 - 시스템 리팩토링, 마이그레이션, 성능 개선 활용
기법 코드 분석 - 정적, 동적 분석 활용 소스 코드 분석
아키텍처 복원 - 컴포넌트 간 관계 분석하여 아키텍처 추출
데이터 흐름 분석 - 데이터 흐름, 의존성, 변환 과정 파악
리팩토링 - 코드 구조 개선, 유지보수성 향상

 

Ⅲ. 소프트웨어 아키텍처 평가 기법 ATAM(Architecture Trade-off Analysis Method)

가. ATAM의 정의

- 소프트웨어 아키텍처의 품질 속성을 평가하고 서로 상충하는 속성 간의 트레이드오프를 분석하는 기법

 

나. ATAM 평가 단계 및 상세 설명

구분 단계 설명
소개 ATAM 소개 평가 리더가 이해관계자에게 ATAM 설명
비즈니스 소개 프로젝트 결정권자가 비즈니스 관점 시스템 설
아키텍처 소개 아키텍처팀에서 평가팀에 아키텍처 설명
분석 아키텍처 접근법 식별 파악된 아키텍처 접근법 정리
품질속성 유틸리티 트리생성 품질속성 요구사항의 우선순위 결정
아키텍처 접근법 분석 아키텍처 접근법이 품질 요구사항에 적합한지 검사
시험 브레인스토밍, 우선순위 유틸리티 트리 품질 속성, 시나리오 검증
아키텍처 접근법 분석 반복 우선순위 높은 시나리오 산출물 작성
보고 결과 보고 최종 보고서 제공, ATAM 산출물 설명

 

Ⅳ. 소프트웨어 아키텍처평가 모델 관계도

- 일반적으로 정방향 분석인 ATAM과 CBAM 많이 사용

반응형