결합도(Coupling)와 응집도(Cohesion)

모영준·2022년 10월 14일

모듈의 독립성을 판단하는 두 가지 지표이다.
결합도는 모듈과 모듈간의 상호 의존 정도
응집도는 모듈 내부의 기능적인 집중 이다.

결합도는 낮을 수록 좋고
응집도는 높을 수록 좋으며
이상적인 모듈화 이다.

상황에 맞게 적절히 낮고 높을 수록 좋은 것 이다.

Coupling
Data < Stamp < Control < External < Common < Content
Data
모듈 간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
Stamp
모듈 간의 인터페이스로 배열이나 Object, Structure 등이 전달 되는 경우
Control
단순히 처리를 해야할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소 등이 전달되는 경우
External
어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
Common
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우
Content
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

Cohesion
Functional > Sequential > Communication > Procedural > Temporal > Logical > Coincidental
Functinal
모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
Sequential
모듈 내에서 한 활동으로 부터 나온 출력값을 다른 활동이 사용할 경우
Communication
동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있을 경우
Procedural
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우
Logical
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
Coincidental
모듈 내부의 각 구성요소들이 연관이 없을 경우

profile
개발, 정진하며 살자!

0개의 댓글