*소프트웨어 아키텍처(실기)
- 여러 가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중에서 외부에 드러나는 특성, 그리고 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체를 의미한다. 또한, 소프트웨어를 설계하고 전개하기 위한 지침이나 원칙이다.
*소프트웨어 아키텍처 프레임워크
- 소프트웨어 집약적인 시스템에서 아키텍처가 표현해야 하는 내용 및 이들 간의 관계를 제공하는 아키텍처 기술 표준이다.
*소프트웨어 아키텍처 프레임워크 구성요소
1. 아키텍처 명세서
- 아키텍처를 기록하기 위한 산출물
- 이해관계자들의 시스템에 대한 관심을 관점에 맞추어 작성한 뷰로 표현
- 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등이 있다.
2. 이해관계자
- 시스템 개발에 관련된 모든 사람과 조직
- 고객, 최종사용자, 개발자, 프로젝트 관리자, 유지보수자, 마케팅 담당자 등을 포함
3. 관심사
- 시스템에 대해 이해관계자들의 서로 다른 의견과 목표이다.
- 사용자 입장 : 기본적인 기능, 신뢰성, 보안, 사용성 등의 품질
- 유지보수자 입장 : 유지보수의 용이성
- 개발자 입장 : 적은 비용과 인력으로 개발
4. 관점
- 개별 뷰를 개발할 때 토대가 되는 패턴이나 양식
- 이해관계자들이 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대해 보고 싶은 관점
5. 뷰
- 서로 관련 있는 관심사들의 집합이라는 관점에서 전체 시스템을 표현
- 시스템에 대한 아키텍처 설명에는 하나 이상의 뷰로 구성
6. 근거
- 아키텍처 결정 근거, 회의 결과, 보고 결과
*소프트웨어 아키텍처 4+1 뷰
- 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적인 접근 방법이다.
- 4개의 분리된 구조로 구성되는 아키텍처 개념을 제시하고, 이들 4개 구조가 서로 충돌되지 않는지, 시스템의 요구사항을 충족시키는지를 증명하기 위해 체크방법으로 유스케이스를 사용한다.
*소프트웨어 아키텍처 4+1 뷰 구성요소
- 4+1에서 1은 유스케이스 뷰를 의미하고, 4는 논리 뷰 / 구현 뷰 / 프로세스 뷰 / 배포 뷰를 의미한다.
1. 유스케이스 뷰
- 아키텍처를 도출하고 설계하는 작업을 주도하는 뷰
- 다른 뷰를 검증하는 데 사용
2. 논리 뷰
- 설계 모델의 추상화이며, 주요 설계 패키지와 서브 시스템, 클래스를 식별하는 뷰
- 시스템의 기능적인 요구사항 지원
- 클래스와 이들 간 관계에 대한 집합을 보여주는 클래스 다이어그램으로 표현
3. 프로세스 뷰
- 런타임시의 시스템의 태스크, 스레드, 프로세스와 이들 사이의 상호작용 등의 관계를 표현하는 뷰
- 성능이나 가용성과 같은 시스템의 비 기능적인 요구사항을 고려
4. 구현 뷰
- 개발 환경 안에서 정적인 소프트웨어 모듈 (소스 코드, 데이터 파일, 컴포넌트, 실행 파일 등)의 구성을 표현하는 뷰
- 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현
- 컴포넌트 뷰라고도 한다.
5. 배포 뷰
- 물리적인 노드의 구성과 상호 연결 관계를 배포 다이어그램으로 표현하는 뷰
- 다양한 실행 파일과 다른 런타임 컴포넌트가 해당 플랫폼 또는 컴퓨팅 노드에 어떻게 매핑되는가를 보여주며, 가용성, 신뢰성, 성능, 확장성 등의 시스템의 비 기능적인 요구사항을 고려
'자격증 > 정보처리기사' 카테고리의 다른 글
개발 기술 환경 현행 시스템 분석 (0) | 2020.06.21 |
---|---|
현행 시스템 분석서 작성 및 검토 (0) | 2020.06.20 |
현행 시스템 파악, 현행 시스템 파악 절차 (0) | 2020.06.19 |
정보처리기사 실기 (0) | 2020.06.14 |
정보처리기사 2020년 1회차 실기 (0) | 2020.06.08 |