본문 바로가기
TechNote/소프트웨어 공학(SW)

009. 모듈화

by 도지웅 2022. 10. 1.
반응형

1. 모듈화의 개요

가. 모듈화의 정의

  • 시스템을 분해하고 추상화하여 소프트웨어의 성능을 향상하거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법

나. 모듈화의 장점

  • 프로그램의 효율적인 관리 및 성능 향상
  • 전체적인 소프트웨어 이해의 용이성 증대 및 감소
  • 소프트웨어 시험, 통합, 수정 시 용이성 제공
  • 기능의 분리가 가능하고 인터페이스가 단순
  • 오류의 파급효과를 최소화
  • 모듈의 재사용 가능으로 개발과 유지보수가 용이

다. 모듈화의 목표

  • 모듈 간 결합도의 최소화
  • 모듈 내 요소들 간의 응집도 최대화

 

2. 결합도와 응집도

가. 결합도

  • 소프트웨어 구조 내에서 모듈 간의 관련성을 측정하는 척도
  • 모듈 상호 간 낮은 결합도를 추구하며 에러 발생 시 전파되어 다른 에러의 원인이 되는 파급효과의 최소화 등을 목표로 함
결합도 종류 내용
자료 결합도
(Data coupling)
  • 모듈간 매개 변소루 통신하는 결합성
  • 방랑 자료(Trap Data)의 발생 가능
스템프 결합도
(Stamp Coupling)
  • 두 모듈이 선택적으로 동일한 자료 구조를 조회
  • 관련 없는 모듈간 의존성 발생, 불필요 레코드의 존재
제어 결합도
(Control Coupling)
  • 한 모듈이 다른 모듈의 내부 논리를 제어하기 위한 목적으로 제어신호(Flag)를 이용하여 통신하는 결합성
  • 권리 전도 현상(Inversion of Authority) 발생
외부 결합도
(External Coupling)
  • 모듈들이 SW의 외부환경과 연관되어 있을 때 발생
공통 결합도
(Common Coupling)
  • 모듈들이 동일한 wky 영역을 공통으로 조회
  • 타 모듈로 오류 전파 가능성 큼
내용 결합도
(Contents Coupling)
  • 한 모듈이 다른 모듈의 내부 기능 및 자료를 변형

나. 응집도

  • 하나의 모듈 내부의 처리 요소들 간의 기능적 연관성을 측정하는 척도
  • 정보은닉 개념의 확장이며, 가장 응집도가 높은 모듈은 단지 하나의 기능만을 실행한다는 특징을 가짐
응집도 종류 내용
기능적 응집도
(Functional Cohesion)
  • 모듈 내의 모든 요소들이 단일 기능를 수행
순차적 응집도
(Sequential Cohesion)
  • 모듈 내의 한 요소의 출력이 다음 요소의 입력으로 사용
통신적 응집도
(Communicational Cohesion)
  • 모듈 내의 요소들이 동일한 입출력 자료를 이용하여 서로 다른 기능 수행
절차적 응집도
(Procedural Cohesion)
  • 모듈의 수행 요소들이 반드시 특정 순서대로 수행
일시적 응집도
(Temporal Cohesion)
  • 모듈 기능 요소들이 같은 시간에 모두 실행
내용적 응집도
(Logical Cohesion)
  • 논리적으로 유사한 기능을 수행하지만 서로 관계는 밀접하지 않음
우연적 응집도
(Coincidental Cohesion)
  • 모듈 내 요소들이 뚜렷한 관계 없이 존재
반응형

댓글