소프트웨어 아키텍쳐

오키.png 만물사전 프로젝트 누구나 수정, 추가 가능합니다.
이 만물사전은 누구나 수정, 추가 가능합니다. 전체 삭제는 문서 훼손 입니다.

소프트웨어 아키텍처는 소프트웨어 구성요소들, 관계, 공정, 제약조건, 기능으로 표현된 기본적이고 통합적인 체계구조를 말한다. 다른 정의는 다음과 같다.

  • 소프트웨어 구성요소들, 관계, 제약조건 등의 모임
  • 소프트웨어 개발 참가자들의 요구 사항들의 모임
  • 구성 요소들간의 연결, 소프트웨어 개발 참가자들의 요구 사항들을 만족시키는데 필요한 제약 조건들을 증경해 보일 수 있는 근거

아키텍처

아키텍처(Architecture)는 건축물 설계도 또는 도시의 지도와 같이 어떤 대상의 주요한 특징을 추상화하여 묘사한 것을 말한다. 시스템의 논리적(Logical)이고 구조적인 산출물이다. 아키텍처를 설계하는 사람은 아키텍트(Architect)라고 한다

소프트웨어 아키텍처가 나타난 이유

  • 소프트웨어 시스템의 복잡성이 증가
  • 인간 능력의 한계
  • 소프트웨어 기술의 신속한 변화

이점

  1. 시스템 이해도를 높일 수 있는 대화 수단으로 사용한다.(시스템의 추상화 개념을 통해 이해관계자가 모두 시스템의 하나된 모습을 볼 수 있다면 요구사항 추출, 리스크 감소에 탁월한 효과가 있다.)
  2. 초기 설계의 원칙을 제공
  3. 상위 수준 설계의 재사용이 가능
  4. 개발 및 유지보수 비용의 감소
  5. 소프트웨어 상품의 품질 증가