소프트웨어 아키텍처 설계
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 |