반응형
Ⅰ. 소프트웨어 아키텍처 분석의 정의 및 필요성
가. 소프트웨어 아키텍처의 정의
- 시스템의 구조와 구성요소 그리고 구성요소 간의 관계와 이들 사이의 설계 원
나. 소프트웨어 아키텍처의 필요성
구분 | 필요성 | 설명 |
비즈니스 측면 | 변화 민첩성 | - 다양한 비즈니스 요구사항 민첩한 대응 |
비용 절감 | - 소프트웨어 재사용, 유지보수 비용 절감 | |
표준화 | - 각종 규제 및 보안 준수 표준화 | |
기술적 측면 | 성능 최적화 | - 부하 분산 설계로 성능 향상 |
확장성 | - 클라우드 네이티브, MSA 활용 | |
보안 | - 데이터 보호, 해킹 방지 설계 |
Ⅱ. 소프트웨어 아키텍처 정방향 분석과 역방향 분석
가. 소프트웨어 아키텍처 정방향 분석
구분 | 항목 | 설명 |
개념 | 정방향 분석 | - 요구사항 기반 설계, 구현, 테스트를 거쳐 최종 소프트웨어 개발하는 과정 |
특징 | 체계적인 프로세스 | - 분석, 설계, 구현, 테스트, 배포 프로세스 |
품질 속성 고려 | - 성능, 확장성, 보안성, 유지보수성 등 품질 속성 고려 | |
요구사항 기반 설계 | - 사용자 요구사항 및 비즈니스 목표 기반 설꼐 | |
기법 | ATAM | - 성능, 보안, 확장성 등의 트레이드오프 분석 |
CBAM | - 아키텍처 변경의 비용-편익 분석, ROI 평가 | |
ADR | - 중요한 설계 결정을 문서화하여 추적 가능 | |
ARID | - 개발자가 참여하는 인터랙티브한 리뷰 방식 |
나. 소프트웨어 아키텍처 역방향 분석
구분 | 항목 | 설명 |
개념 | 역공학 분석 | - 기존 시스템 분석하여 아키텍처 및 설계 구조 파악하는 과정 |
특징 | 기존 시스템 분석 | - 코드, 실행 로그, 데이터 흐름 분석으로 설계 추출 |
아키텍처 시각화 | - UML, ERD 활용 아키텍처 시각적 표현 | |
유지보수성 향상 | - 시스템 리팩토링, 마이그레이션, 성능 개선 활용 | |
기법 | 코드 분석 | - 정적, 동적 분석 활용 소스 코드 분석 |
아키텍처 복원 | - 컴포넌트 간 관계 분석하여 아키텍처 추출 | |
데이터 흐름 분석 | - 데이터 흐름, 의존성, 변환 과정 파악 | |
리팩토링 | - 코드 구조 개선, 유지보수성 향상 |
Ⅲ. 소프트웨어 아키텍처 평가 기법 ATAM(Architecture Trade-off Analysis Method)
가. ATAM의 정의
- 소프트웨어 아키텍처의 품질 속성을 평가하고 서로 상충하는 속성 간의 트레이드오프를 분석하는 기법
나. ATAM 평가 단계 및 상세 설명
구분 | 단계 | 설명 |
소개 | ATAM 소개 | 평가 리더가 이해관계자에게 ATAM 설명 |
비즈니스 소개 | 프로젝트 결정권자가 비즈니스 관점 시스템 설 | |
아키텍처 소개 | 아키텍처팀에서 평가팀에 아키텍처 설명 | |
분석 | 아키텍처 접근법 식별 | 파악된 아키텍처 접근법 정리 |
품질속성 유틸리티 트리생성 | 품질속성 요구사항의 우선순위 결정 | |
아키텍처 접근법 분석 | 아키텍처 접근법이 품질 요구사항에 적합한지 검사 | |
시험 | 브레인스토밍, 우선순위 | 유틸리티 트리 품질 속성, 시나리오 검증 |
아키텍처 접근법 분석 반복 | 우선순위 높은 시나리오 산출물 작성 | |
보고 | 결과 보고 | 최종 보고서 제공, ATAM 산출물 설명 |
Ⅳ. 소프트웨어 아키텍처평가 모델 관계도
- 일반적으로 정방향 분석인 ATAM과 CBAM 많이 사용
반응형
'IT 기술 > SW공학 & 프로젝트 관리' 카테고리의 다른 글
플랫폼 엔지니어링 (0) | 2025.03.05 |
---|---|
CBAM(Cost Benefit Analysis Method) (0) | 2025.03.04 |
소프트웨어 요구 공학 (0) | 2025.03.04 |
소프트웨어 유지보수 향상 및 비용 절감(3R) (0) | 2025.03.04 |
Software Bill of materials(SBOM) (0) | 2025.03.04 |