본문 바로가기
CS

공통 모듈 구현

by Forsaken Developer 2023. 4. 8.
728x90
728x90

공통 모듈 구현

모듈은 그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체이다.

모듈화는 소프트웨어의 성능을 향상시키거나 복잡한 시스템의 수정, 재사용, 유지 관리 등이 용이하도록 기능 단위의 모듈로 분해나는 설계 및 구현 기법

모듈화 기법

  • 루틴(Routine) : 소프트웨어에서 특정 동작을 수행하는 일련의 코드로 기능을 가진 명령들의 모임
  • 메인 루틴(Main Routine) : 전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴
  • 서브 루틴(Subroutine) : 메인 루틴에 의해 필요할 때마다 호출되는 루틴

소프트웨어 모듈 응집도

응집도는 모듈의 독립성을 나타내는 정도로 모듈 내부 구성요소 간 연관 정도이다.

하나의 모듈이 하나의 기능을 수행할수록 응집도가 높다.

응집도의 유형

  • 우연적 응집도(Coincidental Cohesion) : 모듈 내부의 각 구성요소가 연관이 없을 경우의 응집도
  • 논리적 응집도(Logical Cohesion) : 유사한 성격을 가지거나 특정 형태로 분류되는 요소들이 한 모듈에서 처리되는 경우의 응집도
  • 시간적 응집도(Temporal Cohesion) : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
  • 절차적 응집도(Procedural Cohesion) : 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우의 응집도
  • 통신적 응집도(Communication Cohesion) : 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
  • 순차적 응집도(Sequential Cohesion) : 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
  • 기능적 응집도(Functional Cohesion) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도

소프트웨어 모듈 결합도

모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈간의 상호의존성이다.

결합도의 유형

  • 내용 결합도(Content Coupling) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
  • 공통 결합도(Common Coupling) : 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용하는 경우의 결합도
  • 외부 결합도(External Coupling) : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유할 경우의 결합도
  • 제어 결합도(Control Coupling) : 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
  • 스탬프 결합도(Stamp Coupling) : 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
  • 자료 결합도(Data Coupling) : 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도

팬인(Fan-In) 및 팬아웃(Fan-Out)

팬인과 팬아웃 분석을 통하여 시스템의 복잡도를 측정할 수 있다.

  • 팬인(Fan-In) : 어떤 모듈을 호출하는 모듈의 수
  • 팬아웃(Fan-Out) : 어떤 모듈에 의해 호출되는 모듈의 수

팬인이 높으면 재사용 측면에서 설계가 잘되었지만 단일 장애점 발생 가능

팬아웃이 높으면 불필요한 모듈 호출 여부 검토 필요

 

728x90
반응형

'CS' 카테고리의 다른 글

서버 인증 및 접근 통제  (0) 2023.04.09
소프트웨어 개발 보안을 위한 공격기법 개념  (0) 2023.04.09
개발환경 구축  (0) 2023.04.08
쿼리 성능 개선과 옵티마이저  (0) 2023.04.07
절차형 SQL  (0) 2023.04.07

댓글