1. 정의

비즈니스 요구 사항을 만족하는 시스템을 구축하기 위해 전체 시스템에 대한 구조를 정의한 문서.

시스템을 구성하는 컴포넌트와 그 컴포넌트를 구성하는 정보(데이터)를 정의.

 

소프트웨어 구성 요소와 구성 요소들이 지니고 있는 특성 중 외부에 드러나는 특성, 그리고 구성 요소들의 관계를 표현하는 시스템의 구조나 구조체.

 

소프트웨어 아키텍쳐는 현재의 요구 사항 뿐 아니라 변화되는 비지니스 전략에 대응이 가능하도록 장기적인 로드맵을 수용하여 확장 가능한 형태로 디자인 되어야 하며, 가능하면 구현하고자 하는 조직의 기술 수준, 조직의 규모와 형태 그리고 비지니스의 형태에 맞춰 설계되어야 함.

 

 

2. 시스템 아키텍쳐 설계 필수 요소

종류

설명

애플리케이션 아키텍쳐 (Application Architecture)

 애플리케이션 소프트웨어에 대한 아키텍쳐를 설계.

 컴포넌트 정의, 컴포넌트 관계, 특정 기능에 대한 컴포넌트 간의 호출 흐름, 컴포넌트 간의 통신을 위한 메세지에 대한 규격 정의를 포함.

테크니컬 아키텍쳐 (Technical Architecture)

 애플리케이션의 배포 구조 정의.애플리케이션을 배포할 하드웨어의 구조와 애플리케이션 개발에 사용하는 미들웨어(ex. DBMS, Web Server etc...) 등의 배포 구조를 함께 정의.

데이터 아키텍쳐 (Data Architecture)

 애플리케이션에서 다루는 데이터의 구조와 관계를 정의.

 

 

3. 아키텍쳐를 사용하는 이유

ㄱ. 소프트웨어 아키텍쳐가 시스템의 공통적인 추상화를 제공함으로서, 관련 이해 당사자들 간의 상호 이해와 협상, 일치, 의사 소통의 기본을 제공.

ㄴ. 시스템 분석, 설계시의 초기 결정 사항을 제공.

ㄷ. 시스템의 요약된 형태로서 향후에 상세한 시스템 구성의 기본을 제공.

=> 개발과 유지보수 비용을 줄이고 제품의 품질을 높일 수 있음

+ Recent posts