1. 구성/기능/인터페이스 파악
현행 시스템 구성 현황 파악
기능 현황 파악
인터페이스 현황 파악
2.현행 시스템 아키텍처 및 소프트웨어 구성 파악
3.하드웨어 및 네트워크 구성 파악
소프트웨어 아키텍처 개념
- 소프트웨어 아키텍처는 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체이다.
소프트웨어 아키텍처 프레임워크
- 소프트웨어 아키텍처 프레임워크는 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준이다.
소프트웨어 아키텍처 프레임워크 구성요소
- 아키텍처 명세서
- 이해관계자
- 관심사
- 관점
- 뷰
- 근거
- 목표
- 환경
- 시스템
소프트웨어 아키텍처 4+1뷰
- 소프트웨어 아키텍처 4+1 뷰는 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법이다.
- 4개의 분리된 구조로 구성되는 아키텍처 개념을 제시하고, 이들 4개의 구조가 서로 충돌되지 않는지, 시스템의 요구사항을 충족시키는지를 증명하기 위해 체크 방법으로 유스케이스를 사용하낟.
소프트웨어 아키텍처 4+1 구성요소
- 4+1에서 1은 유스케이스 뷰이고 4는 논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰다.
- 유스케이스 뷰
- 유스케이스또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는데 사용되는 뷰
- 사용자, 설계자, 개발자, 테스트 관점- 논리 뷰
- 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰
- 설계자, 개발자 관점- 프로세스 뷰
- 시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰
- 개발자, 시스템 통합자 관점- 구현 뷰
- 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
- 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의- 배포 뷰
- 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰
소프트웨어 아키텍처 패턴
- 소프트웨어 아키텍처 패턴은 소프트웨어를 설계할 떄 참조할 수 있는 전형적인 해결 방식이다.
- 주어진 상황에서의 소프트웨어 아키텍처에서 일반적으로 발생하는 문제점들에 대한 일반화되고 재사용 가능한 솔루션이다.
소프트웨어 패턴 유형
- 소프트웨어 아키텍처 패턴의 주요 유형에는 계층화 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 브로커 패턴, 모델-뷰-컨트롤러 패턴 등이 있다.
계층화 패턴
클라이언트-서버 패턴
파이프-필터 패턴
브로커 패턴
모델-뷰-컨트롤러 패턴
MVC 패턴이라고도 하는 이 패턴은 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴
모델 : 핵심 기능과 데이터 보관
뷰 : 사용자에게 정보 표시(하나 이상의 뷰가 정의 될 수 있음)
컨트롤러 : 사용자로부터 요청을 입력받아 처리
MVC패턴은 각 부분이 별도의 컴포넌트로 분리되어 있어서 서로 영향을 받지 않고 개발 작업 수행 가능
MVC패턴은 컴포넌트를 분리하며 코드의 효율적인 재사용을 가능하게 하고, 여러 개의 뷰가 있어야 하는 대화형 애플리케이션 구축에 적합
소프트웨어 아키텍처 비용 평가 모델
- 소프트웨어 아키텍처 비용 평가 모델은 아키텍처 접근법이 품질 속성에 미치는 영향을 판단하고 아키텍처의 적합성을 평가하는 모델이다.
소프트웨어 아키텍처 비용 평가 모델 종류
SAAM
- 변경 용이성과 기능성에 집중, 평가가 용이하여 경험이 없는 조직에서도 활용 가능한 비용 평가 모델
ATAM
- 아키텍처 품질 속성을 만족시키는지 판단 및 품질 속성들의 이해 상충관계까지 평가하는 모델
CBAM
- ATAM 바탕의 시스템 아키텍처 분석 중심으로 경제적 의사결정에 대한 요구를 충족하는 비용 평가 모델
ADR
- 소프트웨어 아키텍처 구성요소간 응집도를 평가하는 모델
ARID
- 전체 아키텍처가 아닌 특정 부분에 대한 품질요소에 집중하는 비용 평가 모델