반응형

*소프트웨어 아키텍처(실기)

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

 

*소프트웨어 아키텍처 프레임워크

- 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준이다.

 

*소프트웨어 아키텍처 프레임워크 구성요소

1. 아키텍처 명세서

- 아키텍처를 기록하기 위한 산출물

- 이해관계자들의 시스템에 대한 관심을 관점에 맞추어 작성한 뷰로 표현

- 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등이 있다.

2. 이해관계자

- 시스템 개발에 관련된 모든 사람과 조직

- 고객, 최종사용자, 개발자, 프로젝트 관리자, 유지보수자, 마케팅 담당자 등을 포함

3. 관심사

- 시스템에 대해 이해관계자들의 서로 다른 의견과 목표이다.

- 사용자 입장 : 기본적인 기능, 신뢰성, 보안, 사용성 등의 품질

- 유지보수자 입장 : 유지보수의 용이성

- 개발자 입장 : 적은 비용과 인력으로 개발

4. 관점

- 개별 뷰를 개발할 때 토대가 되는 패턴이나 양식

- 이해관계자들이 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대해 보고 싶은 관점

5. 뷰

- 서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템을 표현

- 시스템에 대한 아키텍처 설명에는 하나 이상의 뷰로 구성

6. 근거

- 아키텍처 결정 근거, 회의 결과, 보고 결과

 

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

- 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법이다.

- 4개의 분리된 구조로 구성되는 아키텍처 개념을 제시하고, 이들 4개 구조가 서로 충돌되지 않는지, 시스템의 요구사항을 충족시키는지를 증명하기 위해 체크방법으로 유스케이스를 사용한다.

 

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

- 4+1에서 1은 유스케이스 뷰를 의미하고, 4는 논리 뷰 / 구현 뷰 / 프로세스 뷰 / 배포 뷰를 의미한다.

1. 유스케이스 뷰

- 아키텍처를 도출하고 설계하는 작업을 주도하는 뷰

- 다른 뷰를 검증하는 데 사용

2. 논리 뷰

- 설계 모델의 추상화이며, 주요 설계 패키지와 서브 시스템, 클래스를 식별하는 뷰

- 시스템의 기능적인 요구사항 지원

- 클래스와 이들 간 관계에 대한 집합을 보여주는 클래스 다이어그램으로 표현

3. 프로세스 뷰

- 런타임시의 시스템의 태스크, 스레드, 프로세스와 이들 사이의 상호작용 등의 관계를 표현하는 뷰

- 성능이나 가용성과 같은 시스템의 비 기능적인 요구사항을 고려

4. 구현 뷰

- 개발 환경 안에서 정적인 소프트웨어 모듈 (소스 코드, 데이터 파일, 컴포넌트, 실행 파일 등)의 구성을 표현하는 뷰

- 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현

- 컴포넌트 뷰라고도 한다.

5. 배포 뷰

- 물리적인 노드의 구성과 상호 연결 관계를 배포 다이어그램으로 표현하는 뷰

- 다양한 실행 파일과 다른 런타임 컴포넌트가 해당 플랫폼 또는 컴퓨팅 노드에 어떻게 매핑되는가를 보여주며, 가용성, 신뢰성, 성능, 확장성 등의 시스템의 비 기능적인 요구사항을 고려

반응형

+ Recent posts