정보처리기사 (실기)
프로그램 모듈화
쑨토리
2023. 9. 26. 02:48
결합도와 응집도 (Coupling &. Cohension)
- 모듈의 독립성을 판단하는 두가지의 지표이다.
결합도는 모듈과 모듈간의 상호 의존 정도, 응집도는 모듈 내부의 기능적인 집중 정도이다.
- 모듈의 독립성을 높이기 위해서는 모듈간의 상호 의존 정도를 나타내는 결합도를 낮추고,
모듈이 독립적으로 자체 기능만을 수행할 수 있도록 응집도를 높여야 한다.
※ 결합도의 유형
( 테스형 제 외저래 공유랑 내가 닮았대~)
구분 | 설명 |
자료 결합도 (Data Coupling) | 모듈 간의 인터페이스로 값이 전달되는 경우 |
스템프 결합도 (Stamp Coupling) | 모듈 간의 인터페이스로 배열이나 오브젝트 스트럭처 등이 전달되는 경우 |
제어 결합도 (Control Coupling) | 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우 |
외부 결합도 (External Coupling) | 어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조하는 경우 |
공통 결합도 (Common Coupling) | 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우 |
내용 결합도 (Content Coupling) | 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우. 결합도가 가장 높다. ex) 스파게티 코드, 외계인 코드 |
※ 결합도의 유형
( 우리 논던 시절에 통통한 순대가 기가 막히게 맛있었어! )
구분 | 설명 |
기능적 응집도 (Functional) | 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우 |
순차적 응집도 (Sequential) | 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용하는 경우 |
통신적 응집도 (Communication) | 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 |
절차적 응집도 (Procedural) | 모듈이 다수의 관련 기능을 가질 때 모듈 안으로 구성 요소들이 그 기능을 순차적으로 수행할 수 있는 경우 (순차적이라고 해서 순차적 응집도라고 생각하지마!) |
시간적 응집도 (Temporal) | 연관된 기능이라기보다는 특정 시간에 처리 되어야 하는 활동들을 한 모듈에서 처리할 경우 |
논리적 응집도 (Logical) | 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 |
우연적 응집도 (Coincidental) | 모듈 내부의 각 구성 요소들이 연관이 없을 경우 |