본문 바로가기

학습 기록/정보처리기사

[1. 소프트웨어 설계] 소프트웨어 아키텍처

소프트웨어 아키텍처(Software Architecture)란?

: 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특징, 그리고 구성요소 간의 관계를 표현하는 시스템 구조로, 소프트웨어를 설계하고 전개하기 위한 지침과 원칙

 

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

: 주요 이해관계자들 간의 관점 조율을 통한 시스템을 최적화

: 비기능적인 요소에 집중해서 만들어지고, 기능적인 요소도 고려


소프트웨어 아키텍처 프레임워크(Software Architecture Framework)란?

: 소프트웨어 집약적인 시스템에서 아키텍처가 표현하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준

 

소프트웨어 아키텍처 프레임워크 구성요소

2023.08.30 - [학습 기록/정보처리기사] - [1. 소프트웨어 설계] 소프트웨어 아키텍처 프레임워크 구성요소

 

[1. 소프트웨어 설계] 소프트웨어 아키텍처 프레임워크 구성요소

1. 아키텍처 명세서(Architectural Description) : 아키텍처를 기록하기 위한 산출물들 : 이해관계자들의 시스템에 대한 관심을 관점에 맞춰 작성한 뷰로 표현 : 개별 뷰, 뷰 개괄 문서, 인터페이스 명세

kcode-recording.tistory.com


소프트웨어 아키텍처 4+1뷰란?

: 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법

: 4개의 분리된 구조로 구성되는 아키텍처 개념을 제시하고 이들의 구조가 서로 충돌되지 않는지, 요구사항을 충족시키는지를 증병하기 위해 체크하는 방법으로 유스케이스를 사용

 

소프트웨어 아키텍처 4+1 구성요소

2023.08.30 - [학습 기록/정보처리기사] - [1. 소프트웨어 설계] 소프트웨어 아키텍처 4+1 뷰 구성요소

 

[1. 소프트웨어 설계] 소프트웨어 아키텍처 4+1 뷰 구성요소

1. 유스케이스 뷰(Usecase View) : 유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는데 사용되는 뷰 : 외부 행위자에 의해 인식되는 시스템의 기능 요구사항을 보여주는 데 초점 :

kcode-recording.tistory.com


소프트웨어 아키텍처 비용 평가 모델

소프트웨어 아키텍처 비용 평가 모델이란?

: 아키텍처 접근법이 품질 속성에 미치는 영향을 판단하고 아키텍처의 적합성을 평가하는 모델

 

소프트웨어 아키텍처 비용 평가 모델 종류

1) SAAM(Software Architecture Analysis Method)

: 변경 용이성과 가능성에 집중, 평가가 용이하여 경험이 없는 조직에서도 활용 가능한 비용 평가 모델

 

2) ATAM(Architecture Trade-off Analysis Method)

: 아키텍처 품질 속성을 만족시키는지 판단 및 품질 속성들의 이해 상충 관계까지 평가하는 모델

SAAM을 계승하여 발전

 

3) CBAM(Cost Benefit Analysis Method)

: ATAM 바탕의 시스템 아키텍처 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델

: ATAM에서 부족한 경제성 평가를 보강

 

4) ADR(Active Design Review)

: 소프트웨어 아키텍처 구성요소 간 응집도를 평가하는 모델

 

5) ARID(Actice Reviews for Intermediate Designs)

: 전체 아키텍처가 아닌 특정 부분에 대한 품질 요소에 집중하는 비용 평가 모델

: ATAM, ADR을 혼합


소프트웨어 아키텍처 패턴

소프트웨어 아키텍처 패턴(Software Architecture Pattern)이란?

: 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조

: 소프트웨어를 설계할 때 참조할 수 있는 전형적인 해결 방식

: 소프트웨어 아키텍처에서 일반적으로 발생하는 문제점들에 대한 일반화되고 재사용 가능한 솔루션

 

소프트웨어 아키텍처 패턴 중요성

: 상황별 패턴을 수립 적용하여 고객과 의사소통을 통해 고객의 요구사항을 만족시키고, 소프트웨어 개발 생산성과 품질 확보가 가능

: 데이터 중심 아키텍처는 공유 데이터 저장소를 통해 통신이 이루어져 수정과 확장에 용이

: 이미 검증된 구조 개발이기에 개발의 안정적인 수행 가능

: 시스템 특성 예측이 가능

 

2023.09.02 - [학습 기록/정보처리기사] - [1. 소프트웨어 설계] 소프트웨어 아키텍처 패턴 유형

 

[1. 소프트웨어 설계] 소프트웨어 아키텍처 패턴 유형

1. 계층화 패턴(Layered Pattern) : 시스템을 계층으로 구분하여 구성하는 패턴 : 각 하위 모듈은 특정 수준의 추상화를 제공, 각 계층은 다음 상위 계층에 서비스를 제공 : 서로 마주보는 두 개의 계층

kcode-recording.tistory.com

 


소프트웨어 아키텍처 품질 속성

: 아키텍처 비용 평가를 위해 필요한 사항으로 특정 품질에 대한 요구사항을 명세한 내역

: 최적의 아키텍처를 선택하기 위한 핵심 요소

: 이해 관계자들의 품질 요구사항을 반영하여 결정

 

소프트웨어 아키텍처 품질 속성 구성

1) 시스템 품질 속성

  • 가용성(Availability)
  • 변경 용이성(Modifiability)
  • 성능(Performance)
  • 보안성(Security)
  • 사용 편의성(Usability)
  • 시험 용이성(Testability)

2) 비즈니스 품실 속성

  • 시장 적시성(Time to Matket)
  • 비용과 이익(Cost and Benefit)
  • 시스템 프로젝트 생명주기(Project Lifetime of the System)
  • 목표 시장(Targeted Market)
  • 신규 발매 일정(Rollout Schedule)
  • 노후 시스템과 통합(Integration with Legacy System)

3) 아키텍처 품질 속성

  • 개념적 무결성(Conceptual Integrity)
  • 정확성과 안정성(Correctness and Completeness)
  • 개발 용이성(Buildability)