정보관리기술/정보보안

소프트웨어 모듈(Module)

아이티신비 2024. 2. 5. 09:00

문제3) 소프트웨어 모듈(Module)과 관련하여 다음을 설명하시오.

가. 소프트웨어 모듈의 응집도와 결합도

나. 소프트웨어 모듈의 fan-in 과 fan-ou

 

답)

 

 

1. 재사용 및 공유 가능한 수준으로 만들어진 단위, 소프트웨어 모듈(Module)의 개요

가. 소프트웨어 모듈(Module)의 개념

 
정의
  • 소프트웨어 재사용과 동시에 여러 다른 모듈의 개발에 사용될 수 있도록 기능 단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위

 

나. 소프트웨어 모듈(Module)의 원리

 
원리
설명
모듈과 비용의 관계
  • 모듈수가 증가하면 인터페이스 비용이 증가함으로 최적의 모듈수 산정
모듈의 독립성
  • 모듈 간의 관계에서 낮은 결합도와 높은 응집도를 고려한 SW 모듈 설계
자료 추상화
  • 각 모듈 자료구조를 접근하고 수정하는 함수 내에 자료 구조의 표현 내역을 은폐
  • 소프트웨어 모듈 간 독립성과 개발 편의를 위하여 응집도, 결합도 측면에서 SW 를 설계하고 개발할 필요가 있음

 

2. 소프트웨어 모듈(Module)의 응집도와 결합도

가. 소프트웨어 모듈(Module)의 응집도(Cohesion)

 
구분
설명
개념
  • 정보은닉 개념의 확장개념으로, 하나의 모듈은 하니의 기능을 수행하는 집적성을 지침함
단계
단계
설명
응집도
우연적
  • 아무 관련성 없는 작업을 한 모듈에서 모음
낮음










높음
논리적
  • 유사항 성격의 작업들을 모음
시간적
  • 같은 시간대에 처리되어야 하는 것들을 모음
절차적
  • 모듈 진행 요소들이 서로 관계되어지고 순서대로 진행
통신적
  • 동일한 입/출력 자료를 이용하여 서로 다른 기능을 수행하는 기능
순차적
  • 작업의 결과가 다른 모듈의 입력자료로 사용
기능적
  • 하나의 기능만 수행하는 모듈
특징
  • 응집도가 높음 → 필요한 요소들로 구성
  • 응집도가 높을수록 보안성 및 독립성의 강화 및 수행업무의 기능요구사항 우수함

 

나. 소프트웨어 모듈(Module)의 결합도(Coupling)

 
구분
설명
개념
  • 모듈내부가 아닌 외부의 모듈과의 연관도(모듈 간의 상호연관도)
  • 소프트웨어 구조에서 모듈 간의 관련성을 측정하는 척도
단계
단계
설명
결합도
자료
  • 모듈들이 간단히 변수를 파라미터로 교환
낮음







높음
스템프
  • 모듈 사이에 자료구조 교환
제어
  • 제어용 신호, 정보를 주고 받아 제어하는 경우
외부
  • 모듈들이 소프트웨어의 외부환경과 연관 되는 경우
공통
  • 많은 모듈들이 전역변수를 참조할 때 발생
내용
  • 한 모듈이 다른 모듈의 내부 자료나 제어정보를 사용
특징
  • 결합도가 낮음 → 모듈 간 영향이 적음
  • 소프트웨어 모듈을 계층적으로 분석하기 위해 Fan-in, Fan-out 계산법을 활용해 시스템 복잡도 측정이 가능

 

3. 소프트웨어 모듈의 복잡도 측정을 위한 Fan-in, Fan-out

가. 모듈의 최대 제어 수, Fan-in

 
구분
설명
개념
  • 모듈을 제어(호출, 사용)하는 모듈의 수
개념도

  • 자신을 사용하는 모듈의 수(A:0, B:1, C:1, D:1, D:1, F:2, G:1, H:2, I:1, J:1)
특징
  • 공유도가 많을 수록 모듈화 좋음 → 응집도 높고 처리 기능의 분해가 좋음을 의미

 

나. 모듈의 최대 제어 수, Fan-in

 
구분
설명
개념
  • 모듈을 제어(호출, 사용)하는 모듈의 수
개념도

  • 자신을 사용하는 모듈의 수(A:3, B:2, C:2, D:1, E:1, F:1, G:1, H:0, I:0, J:0)
특징
  • 제어도가 적을수록 모듈화 좋음 → 일반적으로 7± 개 정도로 제한
  • 제어 폭 줄이기 위해 중간 관리 단계 삽입 필요
  • 소프트웨어 모듈 호출 및 재사용성 고려하여 설계 및 기능 예측 분석이 사전에 필요함

 

4. 소프트웨어 모듈(Module) 설계 시 고려사항

 
고려사항
설명
모듈화
  • 독립성과 재사용성을 높이기 위해 결합도 ↓, 응집도 ↑
Fan-in, Fan-out
  • 모듈 복잡도와 중복성 줄이고 일관성 유지
기능중심
  • 모듈의 기능은 예측 가능, 지나치게 제한적이지 않도록 고려
적당한 크기
  • 크기가 작으면 통합비용이 증가되고, 크기가 크면 통합비용이 감소

 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥