결합도와 응집도는 모듈의 독립성을 판단하는 두 가지 지표이다.
결합도는 모듈과 모듈간의 상호 의존 정도이고, 응집도는 모듈 내부의 기능적인 집중 정도 이다.
즉, 결합도는 낮을수록 응집도는 높을 수록 이상적인 모듈화이다.
결합도는 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성을 나타내는 정도이다.
결합도의 유형은 내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 의 결합도 순으로 결합도가 낮아진다.
유형 | 설명 |
---|---|
내용 결합도(Content Coupling) | - 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 경합도 |
공통 결합도(Common Coupling) | - 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도 |
외부 결합도(External Coupling) | - 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 결합도 |
제어 결합도(Control Coupling) | - 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도 - 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생하는 결합도 |
스탬프 결합도(Stamp Coupling) | - 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도 |
자료 결합도(Data Coupling) | - 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도 |
응집도는 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다.
응집도의 유형은 우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 응집도 순서로 응집도가 높아진다.
유형 | 설명 |
---|---|
우연적 응집도(Coincidental Cohension) | - 서로 간에 어떠한 의미 있는 연관 관계도 없는 기능 요소로 구성될 경우의 응집도 - 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행할 경우의 응집도 |
논리적 응집도(Logical Cohension) | - 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도 |
시간적 응집도(Temporal Cohension) | - 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도 |
절차적 응집도(Procedural Cohension) | - 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도 |
통신적 응집도(Communication Cohension) | - 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도 |
순차적 응집도(Sequential Cohension) | - 모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우의 응집도 |
기능적 응집도(Functional Cohension) | - 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도 |
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=258036320