정보처리기사 (실기)

프로그램 모듈화

쑨토리 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) 모듈 내부의 각 구성 요소들이 연관이 없을 경우