본문 바로가기
other

[정보처리기사] 응집도와 결합도 관련 요약

by Jayson Jeong 2022. 7. 18.

 

모듈(Module)

  • 모듈화를 통해 분리된 시스템의 각 기능으로, 서브루틴, 서브 시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미한다. 
  • 모듈의 기능적 독립성은 소프트웨어를 구성하는 각 모듈의 기능이 서로 독립적임을 의미한다.
  • 모듈의 독립성은 결합도와 응집도에 의해 측정된다.

 

결합도(Coupling)

  • 모듈과 모듈 사이의 관련성, 또는 연관, 결합 정도
  • 결합도가 약할수록 품질이 높고, 강할수록 품질이 낮다.
종류 설명
자료 결합도
(Data Coupling)
모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우
스탬프 결합도
(Stamp Coupling)
모듈 간의 인터페이스로 배열이나 오브젝트, 스터럭처 등이 전달되는 경우
제어 결합도
(Control Coupling)
단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
외부 결합도
(External Coupling)
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우
공통 결합도
(Common Coupling)
파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우
내용 결합도
(Content Coupling)
다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우

자스제외공내

 

응집도(Cohesion)

  • 모듈 내부의 구성 요소 간 관계의 밀접 정도
  • 응집도가 강할수록 품질이 높고, 약할수록 품질이 낮다.
종류 설명
기능적 응집도
(Functional Cohesion)
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
순차적 응집도
(Sequential Cohesion)
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
통신적 응집도
(Communication Cohesion)
동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
절차적 응집도
(Procedural Cohesion)
모듈이 다수의 관련 기능을 가질 때, 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
시간적 응집도
(Temporal Cohesion)
특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
논리적 응집도
(Logical Cohesion)
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
우연적 응집도
(Coincidental Cohesion)
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

우논시절통순기

 

팬 인(Fan In) / 팬 아웃(Fan Out)

팬 인 어떤 모듈을 호출하는 모듈의 수
하나의 모듈이 제어받는 상위 모듈의 수
팬 아웃 어떤 모듈에 의해 호출되는 모듈 수
하나의 모듈이 제어하는 하위 모듈의 수

팬인 :

  A B C D E F G H
팬 인 0 1 1 1 1 2 1 1
팬 아웃 3 2 2 1 0 0 0 0