결합도와 응집도
2025. 1. 22. 09:18ㆍ정보처리,전산/소프트웨어공학
반응형
결합도와 응집도는 모듈 간의 관계와 모듈 내부의 요소 간 관계를 설명하며, 시스템의 유지보수성과 성능에 큰 영향을 미친다.
- 모듈 (Module):
- 모듈은 시스템의 기능을 독립적으로 분리하여 소프트웨어 성능 향상과 재사용을 용이하게 한다.
- 독립성이 높을수록 수정 시 다른 모듈에 영향을 미치지 않으며, 오류를 쉽게 발견하고 수정할 수 있다.
- 결합도 (Coupling):
- 결합도는 모듈 간의 의존성을 의미한다. 결합도가 약할수록 모듈 간 의존성이 적고 독립적이다.
- 결합도는 약할수록 좋다.
- 결합도 종류:
- 자료 결합도 (Data Coupling): 모듈 간 인터페이스가 자료 요소로만 구성될 때.
- 스탬프 결합도 (Stamp Coupling): 배열이나 레코드 등의 자료 구조가 전달될 때.
- 제어 결합도 (Control Coupling): 제어 신호나 플래그를 통해 제어 흐름을 전달하는 경우.
- 외부 결합도 (External Coupling): 외부에서 선언한 데이터를 참조하는 경우.
- 공유 결합도 (Common Coupling): 여러 모듈이 전역 변수를 공유할 때.
- 내용 결합도 (Content Coupling): 한 모듈이 다른 모듈의 내부 기능이나 자료를 직접 수정할 때.
- 응집도 (Cohesion):
- 응집도는 모듈 내부 요소들이 서로 관련 있는 정도를 의미한다. 응집도가 강할수록 모듈의 독립성이 높다.
- 응집도는 강할수록 좋다.
- 응집도 종류:
- 기능적 응집도 (Functional Cohesion): 모듈의 모든 기능 요소들이 단일 문제와 관련될 때.
- 순차적 응집도 (Sequential Cohesion): 하나의 출력 데이터를 다음 활동의 입력으로 사용하는 경우.
- 교환적 응집도 (Communication Cohesion): 동일한 입력과 출력을 사용하는 서로 다른 기능을 수행하는 구성 요소들.
- 절차적 응집도 (Procedural Cohesion): 관련된 기능들이 순차적으로 수행될 때.
- 시간적 응집도 (Temporal Cohesion): 특정 시간에 처리되는 기능들을 모은 경우.
- 논리적 응집도 (Logical Cohesion): 유사한 성격을 가진 요소들이 모인 경우.
- 우연적 응집도 (Coincidental Cohesion): 관련 없는 요소들로 구성된 경우.
반응형
'정보처리,전산 > 소프트웨어공학' 카테고리의 다른 글
소프트웨어 생명 주기 (Software Life Cycle) (1) | 2024.06.03 |
---|---|
객체지향 SOLID (0) | 2024.04.10 |