아키텍처(Architecture)
- 소프트웨어 시스템의 각 하위 시스템의 관계를 표현하는 구조의 집합
- 하나의 시스템은 여러 개의 하위 시스템(sub-system, Module, Component ...)으로 구성되어있음
- 설계 단계의 결과물이 SW 아키텍처
아키텍처 설계
- 과도하게 복잡한 설계는 지양해야 함
- 결합도와 응집도
- 아키텍처 설계 시, 각 모듈은 응집도가 높아야 하고, 결합도는 낮아야 한다.
- 모듈의 '독립성'을 판단하는 지표
- why? 좋은 설계의 지표. 높은 유지보수성과 가독성 확보
- 결합도(Coupling, 의존도) : 어떤 모듈이 다른 모듈에 의존하는 정도
- 응집도(Cohesion) : 모듈 내부 간 연관 정도
- 응집도를 높인다 : 하나의 모듈은 하나의 목적에만 집중하여 동작하도록 해야 한다.
- 결합도를 낮춘다 : 모듈이 서로 독립적으로 동작하도록 한다. 모듈 A의 흐름이 모듈 B의 흐름에 영향을 최대한 덜 주도록 하는 것
- 아키텍처 설계 시, 각 모듈은 응집도가 높아야 하고, 결합도는 낮아야 한다.
아키텍처 패턴 예시
- 계층적 아키텍처
- 클라이언트 서버 아키텍처
- 마스터 - 슬레이브 아키텍처
- MVC(Model, View, Controller) 아키텍처
'Computer Science > Software Engineering' 카테고리의 다른 글
[Software Engineering] Chapter 07. 소프트웨어 개발 프로세스 - 전통적 모델(폭포수, 나선형, V) (0) | 2023.02.23 |
---|---|
[Software Engineering] Chapter 06. 소프트웨어 개발 프로세스 (0) | 2023.02.23 |
[Software Engineering] Chapter 04. 프로세스 - 요구사항 분석단계 (0) | 2023.02.23 |
[Software Engineering] Chapter 03. 프로세스 - 요구사항 (0) | 2023.02.17 |
[Software Engineering] Chapter 02. Planning (0) | 2023.02.17 |
댓글