본문 바로가기

Information processing

소프트웨어 아키텍처

소프트웨어 아키텍처(Software Architecture)는 여러가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체를 의미한다. 또한, 소프트웨어를 설계하고 전개하기 위한 지침이나 원칙이다.

소프트웨어 아키텍처 4+1뷰

고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법이다. 논리, 구현, 프로세스, 배포의 4개의 뷰를 구성하고 서로 충돌하지는 않는지 요구사항을 만족하는지 확인하기 위해 유스케이스 뷰를 이용하여 확인한다.

소프트웨어 아키텍처 4+1 뷰 구성요소

 

유스케이스 뷰 : 아키텍처를 도출하고 설계하는 작업을 주도하는 뷰이다. 다른 뷰들을 검증할 때 쓰인다.

논리 뷰 : 설계 모델의 추상화이며, 주요 설계 패키지와 서브 시스템, 클래스를 식별하는 뷰이다. 시스템의 기능적인 요구사항을 지원한다. 클래스와 이들 간 관계를 표현하는 클래스 다이어그램으로 표현한다.

프로세스 뷰 : 런타임 시의 시스템의 태스크(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