모듈의 결합도(Coupling) / 응집도(Cohesion)

Ji·2022년 4월 19일
0

모듈

  • 모듈은 시스템의 각 기능으로 소프트웨어의 성능을 향상시키거나 수정 및 재사용을 용이하게 하기 위해 기능 단위로 분해한 것
  • 모듈의 독립성은 결합도(Coupling)를 약하게, 응집도(Cohesion)를 강하게, 모듈의 크기가 작을 때 독립성이 높아짐.

결합도(Coupling)

  • 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다. 결합도가 약할수록 독립적인 모듈
  • 결합도는 약할수록 좋음
  • 내공 외제스데

(결합도 약함)
자료 결합도 (Data Coupling): 모듈 간의 인터페이스가 자료 요소로만 구성

스탬프 결합도 (Stamp Coupling): 배열이나 레코드 등의 자료 구조가 전달

제어 결합도 (Control Coupling): 제어 신호를 통신하거나 제어 요소(Flag)를 전달

외부 결합도(External Coupling): 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조

공유 결합도(Common Coupling): 모듈 밖에 선언된 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용 (전역변수를 공유)

내용 결합도(Content Coupling): 한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조 or 수정(public 속성)
(결합도 강함)

응집도(Cohesion)

  • 응집도는 명령어나 호출문 등의 모듈의 내부 요소들의 서로 관련있는 정도, 즉 모듈이 독립적인 기능으로 구성됐는지 정도를 의미함. 응집도가 강할수록 독립적
  • 응집도는 강할수록 좋음
  • 우논시절 교순기

(응집도 강함)
기능적 응집도(Functional Cohesion): 하나의 기능에 모두 기여하고 밀접하게 연관되어 있는 것 (그룹화)

순차적 응집도(Sequential Cohesion): 모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할

교환적 응집도(Communication Cohesion): 동일한 입력과 출력 사용

절차적 응집도(Procedural Cohesion): 입출력 간 연관성은 없으나, 순서에 따라 수행

시간적 응집도(Temporal Cohesion): 특정 시간에 처리되는 몇 개의 기능을 모아 모듈로 작성

논리적 응집도(Logical Cohesion): 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리

우연적 응집도(Coincidental Cohesion): 모듈 내부의 각 구성요소들이 연관이 없음
(응집도 약함)

참고
https://devinus.tistory.com/28

profile
공부방

0개의 댓글

관련 채용 정보