모듈의 독립성을 높이기 위해서는 결합도는 약하게 응집도는 강하게 만들어야한다.
결합도 | 내용 |
---|---|
자료 결합도(Data Coupling) | 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 상호 작용이 일어남 |
스탬프 결합도(Stamp Coupling) | 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우 |
제어 결합도(Control Coupling) | 단순 처리할 대상인 값만 전달하는 것이 아니라 어떻게 처리해야 한다는 제어요소가 전달되는 경우 |
외부 결합도(External Coupling) | 모듈에서 외부로 선언한 데이터(변수)를 다른 모듈에서 참조할 때의 경우로 외부에서 도입된 데이터 포맷, 통신 프로토콜, 또는 디바이스 인터페이스를 공유할 때 주로 발생 |
공통 결합도(Common Coupling) | 파라미터가 아닌 모듈 밖에 선언되어 있는 전역변수를 참조하고 전역변수를 갱신하는 식으로 상호 작용하는 경우 |
내용 결합도(Content Coupling) | 다른 모듈 내부에 있는 변수나 기능을 또 다른 모듈에서 사용하는 경우 |
응집도 | 내용 |
---|---|
기능적 응집도(Functional Conhension) | 모듈 내부의 모든 기능이 단일한 목적을 위해 수행된다. |
순차적 응집도(Sequential Conhension) | 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용하는 경우 |
통신적 응집도(Communication Conhension) | 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 |
절차적 응집도(Procedural Conhension) | 모듈이 다수의 관련 기능을 가질때, 모듈 안의 구성요소들이 그 기능을 순차적으로 수행하는 경우 |
시간적 응집도(Temporal Conhension) | 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우 |
논리적 응집도(Logical Conhension) | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 |
우연적 응집도(Coincidential Conhension) | 모듈 내부의 각 구성요소들이 연관이 없는 경우 |