IT/CS

[소프트웨어공학] 소프트웨어 아키텍처 설계

Terriermon 2021. 8. 8. 17:35

소프트웨어 아키텍처 설계

https://minhamina.tistory.com/149?category=844612

외부에 드러나는 특성, 구성요소 간의 관계를 표현하는 시스템의 구조나 구조체

사용자의 비기능적 요구사항으로 나타난 제약을 반역, 기능적 요구사항을 구현하는 방법을 찾는 해결 과정

필요성

- 소프트웨어 시스템이 원하는 기능을 갖고 원하는 품질을 갖도록 하기 위해 설계 진행

- 조율을 통한 시스템 최적화

- 비기능적 요소에 집중하되 기능적 요소 고려

 

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

고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 접근 방법

▶ 4개의 구조가 충돌되지 않는지, 요구사항을 충족하는지 증명하기 위해 유스케이스 사용

1. 유즈케이스 뷰

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

- 사용자, 설계자, 개발자, 테스트 관점

- 유스케이스 다이어그램

2. 논리 뷰

- 시스템 기능적인 요구사항이 어떻게 제공되는 지

- 클래스나 컴포넌트의 종류와 관계 설명, 설계가 실제로 구현되는지 설명

- 설계자 관점

- 클래스/시퀀스 다이어그램

3. 프로세스 뷰

- 시스템의 비기능적인 속성으로 자원의 효율적 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현

- 성능, 확장, 효율성 관련

- 시스템 통합자 관점

- 시퀀스/협력 다이어그램

4. 구현 뷰

- 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여줌

- 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의

- 실제 구현할 수 있는 여부 확인

- 직접 만드는 개발자 관점

- 컴포넌트 다이어그램

5. 배포 뷰

- 컴포넌트가 물리적 환경에서 배치 연결 작업이 어떻게 실행되는 지 매핑해서 보여줌

- 배치 다이어그램

 

'IT > CS' 카테고리의 다른 글

[DB] 절차형 SQL  (0) 2021.08.13
[DB] SQL 정리  (0) 2021.08.12
[소프트웨어공학] 요구사항 분석  (0) 2021.08.08
[DB] 엔터티, 속성, 관계  (0) 2021.08.03
[DB] 데이터 모델링2 - 데이터 독립성  (0) 2021.08.02