본문 바로가기

자격증/정보처리기사

현행시스템 파악 - 소프트웨어 아키텍처

소프트웨어 아키텍처 : 여러가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 구성요소간의 관계를 표현하는 시스템의 구조

 

소프트웨어 아키텍처 프레임워크 : 아키텍처가 표현해야하는 내용, 이들간의 관계를 제공하는 아키텍처 기술 표준

 

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

목표 (Misson) : 한명 이상의 이해관계자들이 의도하는 시스템의 목적

시스템 : 각 애플리케이션, 서브 시스템, 시스템의 집합, 제품군 등의 구현체

환경 : 시스템에 영향을 주는 외부 요인

아키텍처 명세서 : 아키텍처를 기록하기 위한 산출물들

이해관계자 : 시스템 개발에 관련된 모든 사람/조직

관심사 : 이해관계자들의 서로 다른 의견과 목표

관점 : 이해관계자들이 보고싶은 관점

: 서로 관련 있는 관심사들의 집합

근거 : 아키텍처 결정 근거

 

소프트웨어 아키텍처 4+1 뷰 : 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점으로 바라보는 소프트웨어적인 접근 방법 (유논프구배)

 

유스케이스 뷰 : 다른 뷰를 검증하는데 사용되는 뷰

논리 뷰 : 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰

프로세스 뷰 : 비기능적인 속성으로 자원의 효율적인 사용, 비동기, 이벤트 처리 등을 표현한 뷰

구현 뷰 : 소프트웨어 모듈의 구성을 보여주는 뷰

배포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰

 

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

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

- 고객과 의사소통을 통해 고객의 요구사항을 만족시킬 수 있음

- 소프트웨어 개발 생산성과 품질 확보 가능

- 개발 시간 단축 가능

- 시스템의 특성을 개발 전에 예측 가능

 

소프트웨어 아키텍처 패턴 유형 : 계층화 패턴, 서버-클라이언트 패턴, 파이프-필터 패턴, 브로커 패턴, MVC패턴

계층화 패턴 - 시스템을 계층으로 구분하여 구성하는 패턴, 각 하위 모듈은 특정한 수준의 추상화 서비스를 제공하고 각 계층은 다음 상위 계층에 서비스를 제공. 서로 마주보는 두개의 계층 사이에서만 상호작용이 이루어짐

서버-클라이언트 패턴 - 하나의 서버와 다수의 클라이언트로 구성, 사용자가 클라이언트를 통해서 서버에 서비스를 요청하면 서버는 클라이언트에게 서비스를 제공

파이프-필터 패턴 - 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴. 서브 시스템이 입력 데이터를 받아 처리하고, 결과를 다음 서브 시스템으로 넘겨주는 과정을 반복

브로커 패턴 - 분산 시스템에서 사용, 컴포넌트들은 원격 서비스 실행을 통해 상호작용이 가능한 패턴. 브로커 컴포넌트는 컴포넌트간의 통신을 조정한다. 서버는 자신의 기능들을 브로커에 넘겨주며 클라이언트가 브로커에 서비스를 요청하면 브로커가 적합한 서비스로 리다이렉션함.

MVC패턴 - 모델은 핵심기능과 데이터 보관, 뷰는 사용자에게 정보표시, 컨트롤러는 사용자로부터 요청을 입력받아 처리

 

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

SAAM - 변경용이성과 기능성에 집중, 경험이 없는 조직에서도 활용이 가능

ATAM - 아키텍처 품질 속성을 만족시키는지 판단

CBAM - ATAM에 경제적 평가를 보강

ADR - 아키텍처 구성요소간 응집도를 평가

ARID - 특정 부분에 대한 품질요소에 집중