결합도와 응집도

컴클로딩·2022년 5월 6일
0

정보처리기사

목록 보기
5/5
post-thumbnail

결합도와 응집도


모듈의 독립성을 높이기 위해서는 결합도는 약하게 응집도는 강하게 만들어야한다.

1. 결합도(Coupling) | 모듈 간

  • 결합도는 모듈과 모듈 사이의 관련성이 어느 정도인가를 나타내며, 관련성이 적을수록 모듈의 독립성이 높아 모듈 간 영향이 작아진다. 결합도는 자료 결합도가 제일 낮고, 내용 결합도로 갈수록 강해진다.
  • 품질 측면에서 가장 높은 풍질은 자료 결합도이며, 내용 결합도의 품질이 가장 낮다.
결합도내용
자료 결합도(Data Coupling)모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 상호 작용이 일어남
스탬프 결합도(Stamp Coupling)모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
제어 결합도(Control Coupling)단순 처리할 대상인 값만 전달하는 것이 아니라 어떻게 처리해야 한다는 제어요소가 전달되는 경우
외부 결합도(External Coupling)모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 경우로 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 때 주로 발생
공통 결합도(Common Coupling)파라미터가 아닌 모듈 밖에 선언되어 있는 전역변수를 참조하고 전역변수를 갱신하는 식으로 상호 작용하는 경우
내용 결합도(Content Coupling)다른 모듈 내부에 있는 변수나 기능또 다른 모듈에서 사용하는 경우

2. 응집도(Cohension) | 모듈 내부

  • 응집도는 모듈 내부의 구성요소 간 관계의 밀접 정도로 평가되며, 응집도가 높을수록 필요한 요소들로 구성되고 낮을수록 요소들 간의 관련성이 적은 요소들로 구성된다.
  • 품질 측면에서 가장 낮은 품질은 우연적 응집도이며, 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 순으로 높아진다.
응집도내용
기능적 응집도(Functional Conhension)모듈 내부의 모든 기능단일한 목적을 위해 수행된다.
순차적 응집도(Sequential Conhension)모듈 내에서 한 활동으로부터 나온 출력값다른 활동이 사용하는 경우
통신적 응집도(Communication Conhension)동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우
절차적 응집도(Procedural Conhension)모듈이 다수의 관련 기능을 가질때, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행하는 경우
시간적 응집도(Temporal Conhension)연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우
논리적 응집도(Logical Conhension)유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
우연적 응집도(Coincidential Conhension)모듈 내부의 각 구성요소들이 연관이 없는 경우
profile
어떠한 가치를 창출할 수 있을까를 고민하는 개발자. 주로 Spring으로 개발해요. https://comclothing.tistory.com/ 👈🏻티스토리 블로그로 이전 완료

0개의 댓글