소프트웨어 아키텍처 편집하기
IT위키
편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
[[분류:소프트웨어 공학]] | [[분류:소프트웨어 공학]] | ||
;Software Architecture | ;Software Architecture | ||
;SW 컴포넌트들 간의 상호 관계를 정의 및 설계하고 전개하기 위한 구조 | ;SW 컴포넌트들 간의 상호 관계를 정의 및 설계하고 전개하기 위한 구조 | ||
==특징== | == 특징 == | ||
{| class="wikitable" | {| class="wikitable" | ||
!특징 | ! 특징 | ||
!내용 | ! 내용 | ||
|- | |- | ||
|'''간략성''' | | '''간략성''' | ||
|이해하고 추론할 수 있을 정도의 간결성 유지 | | 이해하고 추론할 수 있을 정도의 간결성 유지 | ||
|- | |- | ||
|'''추상화''' | | '''추상화''' | ||
|시스템의 추상적인 표현을 사용(복잡도 관리) | | 시스템의 추상적인 표현을 사용(복잡도 관리) | ||
|- | |- | ||
|'''가시성''' | | '''가시성''' | ||
|시스템이 포함해야 하는 것들을 가시화, 청사진 | | 시스템이 포함해야 하는 것들을 가시화, 청사진 | ||
|} | |} | ||
==참조 모델== | == 참조 모델 == | ||
===[[ISO/IEC/IEEE 42010]]=== | === [[ISO/IEC/IEEE 42010]] === | ||
; 소프트웨어 아키텍처에 대한 국제 표준 | |||
;소프트웨어 아키텍처에 대한 국제 표준 | |||
=== 4+1뷰 아키텍처 === | |||
; IEEE Paper | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="text-align: center;" |Logical View | ! style="text-align: center;" | Logical View | ||
| style="text-align: center;" |→ | | style="text-align: center;" | → | ||
! style="text-align: center;" |Development View | ! style="text-align: center;" | Development View | ||
(Implement View) | (Implement View) | ||
|- | |- | ||
| style="text-align: center;" |↓ | | style="text-align: center;" | ↓ | ||
! style="text-align: center;" |Scenarios | ! style="text-align: center;" | Scenarios | ||
(Use-Case View) | (Use-Case View) | ||
| style="text-align: center;" |↓ | | style="text-align: center;" | ↓ | ||
|- | |- | ||
! style="text-align: center;" |Process View | ! style="text-align: center;" | Process View | ||
| style="text-align: center;" |→ | | style="text-align: center;" | → | ||
! style="text-align: center;" |Physical View | ! style="text-align: center;" | Physical View | ||
|} | |} | ||
*[https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf 4+1뷰 아키텍처 원문 보기] | * [https://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf 4+1뷰 아키텍처 원문 보기] | ||
== [[소프트웨어 아키텍처 평가]] == | |||
=== 평가 모델 개요 === | |||
==[[소프트웨어 아키텍처 평가]]== | |||
===평가 모델 개요=== | |||
[[파일:소프트웨어 아키텍처 평가 모델.png]] | [[파일:소프트웨어 아키텍처 평가 모델.png]] | ||
{| class="wikitable" | {| class="wikitable" | ||
!평가 모델 | ! 평가 모델 | ||
!설명 | ! 설명 | ||
|- | |- | ||
|SAAM | | SAAM | ||
| | | – Software Architecture Analysis Method– 변경 용이성, 기능 집중, 평가 용이 | ||
|- | |- | ||
|ATAM | | ATAM | ||
| | | – Architecture Trade-off Analysis Method– 품질속성 만족 여부 판단, 이해 관계 평가 | ||
|- | |- | ||
|CBAM | | CBAM | ||
| | | – Cost Benefit Analysis Method– 의사결정 요구 충족, ATAM바탕 분석 | ||
|- | |- | ||
|ADR | | ADR | ||
| | | – Active Design Review– 아키텍처 구성요소 간 응집도 평가 | ||
|- | |- | ||
|ARID | | ARID | ||
| | | – Active Review for Intermediate Designs– 특정 부분에 대한 품질 요소 집중 | ||
|} | |} | ||
* 일반적으로 ATAM과 CBAM이 가장 많이 쓰임 | |||
* ATAM 평가 후 비용/이익 측면 평가 위해 CBAM 수행 | |||
*ATAM 평가 후 비용/이익 측면 평가 위해 CBAM 수행 | |||
=== [[ATAM]] === | |||
;Architecture Trade-off Analysis Method | ;Architecture Trade-off Analysis Method | ||
* 아키텍처 품질속성 만족 여부 판단 | |||
* 품질속성들간 연관관계 및 상충 분석 | |||
=== [[CBAM]] === | |||
===[[CBAM]]=== | |||
;Cost Benefit Analysis Method | ;Cost Benefit Analysis Method | ||
* ATAM을 바탕으로 기본 평가 | |||
* 아키텍처의 경제적 모델링 방법 | |||
== 아키텍처 개발 절차 == | |||
==아키텍처 개발 절차== | |||
{| class="wikitable" | {| class="wikitable" | ||
!단계 | ! 단계 | ||
!주요활동 | ! 주요활동 | ||
!내용 | ! 내용 | ||
|- | |- | ||
| colspan="2" |요구사항 분석 | | colspan="2" | 요구사항 분석 | ||
|요구사항 취득, 식별, 명세, 분류, 검증 등 | | 요구사항 취득, 식별, 명세, 분류, 검증 등 | ||
|- | |- | ||
| rowspan="3" |아키텍처 분석 | | rowspan="3" | 아키텍처 분석 | ||
|품질요소 식별 | | 품질요소 식별 | ||
|ISO9216 품질 요구사항 활용 | | ISO9216 품질 요구사항 활용 | ||
|- | |- | ||
|품질요소 | | 품질요소 | ||
우선순위 결정 | 우선순위 결정 | ||
|Utility Tree(시나리오 명세) 작성 | | Utility Tree(시나리오 명세) 작성 | ||
|- | |- | ||
|전술개발 | | 전술개발 | ||
|품질속성별 전술개발 및 명세 | | 품질속성별 전술개발 및 명세 | ||
|- | |- | ||
| rowspan="3" |아키텍처 설계 | | rowspan="3" | 아키텍처 설계 | ||
|관점 및 뷰 정의 | | 관점 및 뷰 정의 | ||
|이해당사자별 관점 정의 | | 이해당사자별 관점 정의 | ||
4+1 아키텍처 활용 | 4+1 아키텍처 활용 | ||
|- | |- | ||
|아키텍처 스타일 선택 | | 아키텍처 스타일 선택 | ||
|[[MVC]], Pipe-Filter 등 스타일 선택 및 조합 | | [[MVC]], Pipe-Filter 등 스타일 선택 및 조합 | ||
|- | |- | ||
|후보 아키텍처 도출 | | 후보 아키텍처 도출 | ||
|SAD(Software Architecture Description) 작성 | | SAD(Software Architecture Description) 작성 | ||
|- | |- | ||
| rowspan="3" |검증 및 승인 | | rowspan="3" | 검증 및 승인 | ||
|아키텍처 평가 | | 아키텍처 평가 | ||
|[[ATAM]], [[CBAM]] 이용 | | [[ATAM]], [[CBAM]] 이용 | ||
|- | |- | ||
|아키텍처 상세화 | | 아키텍처 상세화 | ||
|디자인 패턴 고려, 설계 매커니즘 도출 | | 디자인 패턴 고려, 설계 매커니즘 도출 | ||
|- | |- | ||
|아키텍처 승인 | | 아키텍처 승인 | ||
|고객 및 이해당사자 최종 승인 | | 고객 및 이해당사자 최종 승인 | ||
|} | |} | ||