1 분 소요

결합도(Coupling)

  • 결합도는 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성을 나타내는 정도
  • 결합도는 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도
  • 결합도가 약할수록 좋습니다.
  • 결합도가 강하면 시스템 구현 및 유지보수 작업이 어렵습니다.
  • 결합도가 강하면 하나의 모듈을 수정할 때 이를 사용하는 다른 모듈까지 수정하게 됩니다.

특징

  • 모듈 연관성 없음
  • 인터페이스 의존성
  • 복잡성 감소
  • 파급효과 최소화

유형

내용>공통>외부>제어>스탬프>자료 결합도 순으로 결합도가 낮아집니다.

자료 결합도(Data Coupling)

모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도입니다.

파라미터는 구조체 같은것이 아닌 자료 요소입니다.

모듈 간의 내용을 전혀 알 필요가 없는 상태로서 한 모듈의 내용을 변경해도 다른 모듈에는 전혀 영향이 없습니다.

스탬프 결합도(Stamp Coupling)

모듈 간의 인터페이스로 배열이나 객체 등의 자료 구조가 전달되는 경우의 결합도입니다.

두 모듈이 동일한 자료 구조를 조회하므로 자료 구조에 변화가 생기면 이를 조회하는 모든 모듈에 영향을 줍니다.

만약 객체에 새로운 데이터 필드가 추가되거나 하면 이 객체를 사용하는 모듈도 다시 컴파일

제어 결합도(Control Coupling)

어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도입니다.

하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생하는 결합도입니다.

논리적 응집도와 관련이 있습니다.

외부 결합도(External Coupling)

어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도입니다.

공통 결합도(Common Coupling)

파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도입니다.

전역변수가 변경되면 이를 참조하는 모든 모듈에서 영향을 받습니다.

내용 결합도(Content Coupling)

한 모듈이 다른 모듈의 내부 기능 및 내부 자료를 직접 참조하거나 수정할 때의 결합도입니다.

한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우에도 내용 결합도에 해당합니다.

reference

참고1

태그: ,

카테고리:

업데이트:

댓글남기기