UTF-404

모듈화(2) 본문

정보처리기사

모듈화(2)

UTF-404 2024. 1. 25. 14:38
728x90

💡 모듈화 유형

📌 응집도

  • 응집도는 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다.
  • 응집도는 정보 은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다.

📌 응집도의 유형

  • 응집도의 유형은 ‘우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 응집도’ 순서로 응집도가 높아진다.
  • 낮은 응집도의 경우 하나의 모듈 내부에 다양한 기능을 구현하여 독립성이 낮아진다.
  • 높은 응집도의 경우 단 하나의 기능만을 분리 구현하여 독립성이 보장되고, 변경이 쉬워서 유지보수에 편리하다.
                    유형                                                                               설명
          우연적 응집도
   (Coincidental Cohesion)
∙ 서로 간에 어떠한 의미 있는 연관 관계도 없는 기능 요소로 구성될 경우의 응집도
∙ 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행할 경우의 응집도
          논리적 응집도
       (Logical Cohesion)
∙ 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 . 한모듈에서 처리되는 경우의 응집도
          시간적 응집도
    (Temporal Cohesion)
∙ 연관된 기능이라기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리할 경우의 응집도
          절차적 응집도
    (Procedural Cohesion)
∙ 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 . 그 기능을 순차적으로 수행할 경우의 응집도
          통신적 응집도
(Communication Cohesion)
∙ 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
          순차적 응집도
    (Sequential Cohesion)
∙ 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
          기능적 응집도
   (Functional Cohesion)
∙ 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도

 

📌 결합도

  • 결합도는 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호 의존성을 나타내는 정도이다.
  • 결합도는 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도이다.

📌 결합도의 유형

  • 결합도의 유형은 ‘내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도’ 순으로 결합도가 낮아진다.
유형  설명
내용 결합도
(Content Coupling)
∙ 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
∙ 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있는 경우의 결합도
공통 결합도
(Common Coupling)
∙ 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용하는 경우의 결합도
∙ 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
외부 결합도
(External Coupling)
∙ 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜 또는 디바이스 인터페이스를 공유할 경우의 결합도
∙ 외부 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
제어 결합도
(Control Coupling)
∙ 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어신호를 이용하여 통신하는 경우의 결합도
∙ 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게  처리 명령을 부여하는 권리 전도 현상이 발생하는 결합도
스탬프 결합도
(Stamp Coupling)
∙ 모듈 간의 인터페이스로 배열이나 객체, 구조등이 전달되는 경우의 결합도
∙ 두 모듈이 동일한 자료 구조를 조회하는 경우의 결합도이며, 자료 구조의 어떠한 변화는 모든 모듈에 영향을 미치게 됨
자료 결합도
(Date Coupling)
∙ 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우의 결합도
∙ 한 모듈의 내용을 변경하더라도 다른 모듈에는 영향을 미치지 않는 상태로 가장 바람직한 결합도

 

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

  • 팬인은 어떤 모듈을 제어하는 모듈의 수이다.
  • 팬아웃은 어떤 모듈에 의해 제어되는 모듈의 수이다.

📌 팬인 및 팬아웃 특징

  • 소프트웨어의 구성요소인 모듈을 계층적으로 분석하기 위해서 팬인(Fan-In), 팬아웃(Fan-Out)을 활용한다.
  • 시스템 복잡도를 최적화하기 위해서는 팬인은 높게, 팬아웃은 낮게 설계해야 한다.
구분 팬인(Fan-In) 팬아웃(Fan-Out)
모듈 숫자 계산 ∙ 모듈 자신을 기준으로 들어옴 ∙ 모듈 자신을 기준으로 나감
고려사항 ∙ 팬인이 높으면 재사용 측면에서 설계가 잘되었지만, 단일 장애점 발생 가능
∙ 팬인이 높으면 관리 비용 및 테스트 비용 증가
∙ 팬아웃이 높을 경우는 불필요한 모듈 호출 여부 검토 필요
∙ 팬아웃이 높을 경우는 단순화 여부 검토 필요

📍팬인(Fan-in) 및 팬아웃(Fan-Out) 계산방법!!

팬인 및 팬아웃 계산 예시 그림

 

팬인
(Fan-In)
∙ 모듈 자신을 기준으로 모듈에 들어오면 팬인
∙ A: 0, B: 1, C: 1, D: 1, E: 1, F: 2, G: 1, H: 2, I: 1, J: 1 
팬아웃
(Fan-Out)
∙ 모듈 자신을 기준으로 모듈에서 나가면 팬아웃
∙A: 3, B: 2, C: 2, D: 1, E: 1, F: 1, G: 1, H: 0, I: 0, J: 0 
728x90

'정보처리기사' 카테고리의 다른 글

디자인 패턴 알아보기!!  (2) 2024.01.28
객체 지향 설계  (2) 2024.01.26
모듈화(1)  (0) 2024.01.23
재사용과 공통 모듈의 개념!!  (0) 2024.01.23
UI 설계!!  (0) 2024.01.23