결합도(coupling), 응집도(Cohesion)
결합도
- 자료 결합도 (Data Coupling)
자료 결합도(Data Coupling)에서 data는 "데이터"를 뜻합니다. 모듈 간에 데이터만을 주고받아 상호작용이 이루어지는 결합도를 말합니다.따라서 결합도가 가장 낮고, 모듈의 독립성과 재사용성이 높습니다.
- 스탬프 결합도 (Stamp Coupling)
스탬프 결합도(Stamp Coupling)에서의 "stamp"는 "도장"이나 "인감"을 의미하는 영어 단어 "stamp"에서 유래한 것으로, 모듈간에 전달되는 배열, 구조체, 객체 등이 서로 도장이 찍힌 것과 같이 서로 밀접하게 연결되어 있다는 의미를 가지고 있습니다. 즉, 모듈 간의 인터페이스로 전달되는 데이터가 서로 유사한 구조를 가지고 있어 밀접하게 결합되어 있다는 것을 나타냅니다.
- 제어 결합도 (Control Coupling)
어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 요소를 전달하는 결합도의 한 형태입니다. 즉, 다른 모듈의 내부 동작을 제어하기 위해 제어 신호를 전달하는 방식으로 결합되는 것을 말합니다.
- 외부 결합도 (External Coupling)
어떤 모듈이 외부에 있는 다른 모듈의 데이터를 참조하는 경우를 말합니다. 예를 들어, 모듈 A와 모듈 B가 있을 때 모듈 A에서는 모듈 B가 가지고 있는 데이터나 통신 프로토콜 등을 참조하는 경우를 의미합니다
- 공통 결합도 (Common Coupling)
하나의 모듈이 다수의 외부 모듈과 상호작용하는 경우 입니다. 즉, 한 모듈이 여러 다른 모듈과 관련되어 있고 이들 모듈 간의 데이터를 공유하거나 동일한 전역 변수를 사용하는 경우에 공통 결합도가 발생합니다.
- 내용 결합도 (Content Coupling)
모듈 간의 결합도가 가장 높은 형태로, 하나의 모듈이 다른 모듈의 내부 동작 방식을 직접적으로 참조하거나 변경할 수 있는 경우를 말합니다.
응집도
- 기능적 응집도 (Functional Cohesion)
모듈 내부의 모든 기능이 단일 목적을 위해 수행되는 경우입니다. 이는 응집도가 가장 높은 형태이며, 모듈 내부의 모든 요소들이 서로 강하게 연관되어 있습니다.
- 순차적 응집도 (Sequential Cohesion)
모듈 내에서 한 활동으로부터 나온 출력 값을 다른 활동이 사용할 경우입니다. 모듈 내부의 요소들이 순서대로 연결되어 있지만, 기능적 응집도에 비해 연관성이 약합니다.
- 교환적 응집도 (Communication Cohesion)
동일한 입력과 출력을 사용해 다른 기능을 수행하는 활동들이 모여있을 경우입니다. 모듈 내부의 요소들이 상호작용하면서 동일한 데이터를 공유합니다.
- 절차적 응집도 (Procedural Cohesion)
모듈이 다수 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우입니다. 모듈 내부의 요소들이 연속적으로 연결되어 있으나, 기능적 응집도보다는 연관성이 약합니다.
- 시간적 응집도 (Temporal Cohesion)
연관된 기능이라기 보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우입니다. 모듈 내부의 요소들이 서로 연관되어 있지만, 시간적 요인이 연관성을 결정합니다.
- 논리적 응집도 (Logical Cohesion)
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우입니다. 모듈 내부의 요소들이 서로 연관되어 있으나, 기능적 응집도보다는 연관성이 상대적으로 약합니다.
- 우연적 응집도(Coincidental Cohesion)
모듈 내부의 구성요소들이 연관이 없는 경우로, 응집도가 가장 낮고 좋지 않은 형태입니다. 즉, 하나의 모듈에 무작위로 여러 기능이 포함되어 있는 경우를 의미합니다.
'잡다한 것' 카테고리의 다른 글
2023 정처기 도전-3 (0) | 2023.04.21 |
---|---|
대표적인 테스트 기법의 종류 (0) | 2023.04.20 |
2023 정처기 도전-2 (0) | 2023.04.20 |
2023 정처기 도전-1 (0) | 2023.04.20 |
광고 요청수, 광고 노출수, 클릭수, CTR, eCPM (0) | 2023.04.20 |