소프트웨어 아키텍처(Software Architecture)는 여러가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체를 의미한다. 또한, 소프트웨어를 설계하고 전개하기 위한 지침이나 원칙이다.
소프트웨어 아키텍처 4+1뷰
고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법이다. 논리, 구현, 프로세스, 배포의 4개의 뷰를 구성하고 서로 충돌하지는 않는지 요구사항을 만족하는지 확인하기 위해 유스케이스 뷰를 이용하여 확인한다.
유스케이스 뷰 : 아키텍처를 도출하고 설계하는 작업을 주도하는 뷰이다. 다른 뷰들을 검증할 때 쓰인다.
논리 뷰 : 설계 모델의 추상화이며, 주요 설계 패키지와 서브 시스템, 클래스를 식별하는 뷰이다. 시스템의 기능적인 요구사항을 지원한다. 클래스와 이들 간 관계를 표현하는 클래스 다이어그램으로 표현한다.
프로세스 뷰 : 런타임 시의 시스템의 태스크(Task), 스레드, 프로세스와 이들 사이의 상호 작용 등의 관계를 표현한다. 성능이나 가용성 같은 비기능적인 요구사항을 고려한다.
구현 뷰 : 개발 환경 안에서 정적인 소프트웨어 모듈(소스코드, 데이터 파일, 컴포넌트, 실행 파일 등)의 구성을 표현하는 뷰이다. 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현한다.
배포 뷰 : 물리적인 노드의 구성과 상호 연결 관계를 배포 다이어그램으로 표현한다. 가용성, 신뢰성, 성능, 확장성 등의 시스템의 비기능적인 요구사항을 고려한다.
'Information processing' 카테고리의 다른 글
디지털 뉴딜(Digital new deal) (0) | 2021.01.07 |
---|---|
정보와 데이터 (0) | 2021.01.02 |
리눅스 로그 파일 종류 (0) | 2021.01.01 |
로그 (0) | 2020.12.25 |
현행 시스템 (0) | 2020.12.01 |