결합도 : 모듈간의 상호 의존 정도

(1. 낮다 ~ 6. 높다 / 낮을수록 바람직함)

  1. 데이터 결합 : 데이터를 매개 변수로 전달함으로써 모듈 들이 소통 ( : 정수나 실수나 문자 등을 전달하는 )
  2. 스탬프 결합 : 레코드, 구조체 또는 객체와 같은 복합 자료를 이용하여 소통하는 경우
  3. 제어결합 : 모듈의 데이터가 다른 모듈의 실행 순서를 결정하기 위해 전달되는 경우
  4. 외부 결합 : 모듈들이 소프트웨어 외부의 환경에 좌우되는 경우 (외부에서 정한 포맷, 프로토콜 사용)
  5. 공통 결합 : 전역 변수를 공유
  6. 내용 결합 : 모듈이 코드를 공유하는 경우 ( : 모듀에서 분기가 다른 모듈로 떨어지는 경우로, 모듈이 다른 모듈의 내부 작업을 직접 참조하는 경우)

 

응집력 : 하나의 모듈이 가지는 기능적 집중성에 관한 척도

(1. 높다 ~ 7.낮다 / 높을수록 바람직함)

  1. 기능적 응집력 : 모듈을 구성하는 요소들이 단일 기능을 수행하기 위해 협력
  2. 순차적 응집력 : 모듈을 구성하는 요소의 축력이 다음 요소의 입력이되며 순차적으로 구성
  3. 통신 응집력. 모듈이 수행하는 모든 기능들이 같은 자류구조를 참조하거나 수정하는 경우. ( : 하나의 배열이나 스택을 조작하도록 정의된 기능 집합)
  4. 절차적 응집력 : 모듈이 가지는 기능들이 순서에 의해서 처리되는 경우 ( : 메시지를 디코딩 하기 위해 일련의 순차적 과정을 수행하는 경우)
  5. 시간적 응집력 : 같은 시간 주기에 실행되어야 하는 기능들을 개는 모듈 ( : 초기화 또는 종료를 위한 기능들을 수행하는 모듈)
  6. 논리적 응집력 : 모듈의 구성요소들이 유사한 기능을 수행하는 경우  ( : 오류처리, 자료입력, 자료 출력 ) 
  7. 우연적 응집력 : 연관성이 매우 떨어지는 작업들을 수행하는 모듈들은 우연적 응집력을 가짐

+ Recent posts