-->

[정보처리기사] 소프트웨어 모듈의 독립성 (결합도, 응집도)

반응형

시나공 기준 개정된 2020 정보처리기사에서는 이전과 달리 모듈 부분에 결합도와 응집도는 똑같지만 팬인/팬아웃이 추가되었다.

 

 

모듈 (Module) 개요

- 모듈은 모듈화를 통해 분리된 시스템의 각 기능들을 의미

- 모듈은 단독으로 컴파일이 가능, 재사용 가능

- 모듈의 독립성은 결합도와 응집도에 의해 측정됨

- 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함

 

* 모듈화 : 소프트웨어 성능 향상이나 수정 및 재사용 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것

 

 

결합도 (Coupling) - 약할수록 좋음

- 모듈간에 상호 의존하는 정도, 두 모듈 사이의 연관 관계를 의미

- 결합도가 강하면 시스템 구현 및 유지보수가 어려움

- 결합도의 종류 : 자료 < 스탬프 < 제어 < 외부 < 공통 < 내용

 

(결합도 약함)

  자료 결합도
  (Data)

  - 모듈 간 인터페이스가 자료 요소로만 구성되는 제일 바람직한 결합도
  - 한 모듈이 다른 모듈을 호출하면서 매개 변수나 인수로 데이터를 넘겨주는 방식

  스탬프 결합도
  (Stamp)

  - 모듈 간 인터페이스로 배열 등 자료구조가 전달될 때의 결합도

  제어 결합도
  (Control)

  - 다른 모듈 내부의 흐름 제어를 위해 통신하거나 제어 요소를 전달할 때의 결합도

  외부 결합도
  (External)

  - 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도

  공통 결합도
  (Common)

  - 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도

  내용 결합도
  (Content)

  - 다른 모듈의 내부기능이나 내부자료를 직접 참조하거나 수정할 때의 결합도

(결합도 강함)

 

 

 

응집도(Cohesion) - 높을수록 좋음

- 정보은닉의 개념을 확장한 것으로 모듈 내부 요소들이 서로 관련되어 있는 정도를 의미

- 모듈이 독립적인 기능으로 정의되어 있는 정도

- 응집도가 높을수록 품질이 높음

- 응집도의 종류 : 기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적

 

(응집도 강함)

  기능적 응집도
  (Functional)
  - 모듈 내부의 모든 기능이 단일 문제와 연관될 경우의 응집도
  순차적 응집도
  (Sequential)
  - 모듈 내 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
  교환적 응집도
  (Communication)
  - 동일 입출력을 사용, 서로 다른 기능을 수행하는 요소들이 모였을 경우의 응집도
  절차적 응집도
  (Procedural)
  - 모듈 내부 구성 요소들이 특정 기능을 순차적으로 수행할 경우의 응집도
  시간적 응집도
  (Temporal)
  - 특정 시간에 처리되는 기능을 모아 하나의 모듈로 작성할 경우의 응집도
  논리적 응집도
  (Logical)
  - 유사한 성격을 갖는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
  우연적 응집도
  (Coincidental)
  - 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

(응집도 약함)

 

 

팬인/팬아웃

- 팬인 : 어떤 모듈을 제어하는 모듈의 수

- 팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수

- 시스템 복잡도를 최적화하려면 팬인은 높게, 팬아웃은 낮게 설계해야 함

 

댓글

Designed by JB FACTORY