[정보처리기사][서버 프로그램 구현] 모듈 (Module)

컴퓨터/정보처리기사

728x90
반응형

모듈 - Module

분리된 시스템의 각 기능

모듈의 독립성은 높을수록 좋습니다. (재사용성 증가 / 다른 모듈에 대한 영향 감소 )

모듈의 독립성은 결합도와 응집도에 의해 평가됩니다.

 

1. 결합도 - Coupling

모듈 간 상호 의존하는 정도

낮을수록 품질이 좋다.

  • 결합력이 낮은 순으로 정렬된 종류 (품질이 높은 순)
    1. 자료 결합도(Data Coupling) - 모듈 간의 인터페이스가 자료 요소로만 구성
    2. 스탬프 결합도(Stamp Coupling) - 모듈 간의 인터페이스로 배열등의 자료구조가 전달
    3. 제어 결합도(Control Coupling) - 다른 모듈의 내부 흐름을 제어하기 위해, 제어 신호나 제어 요소를 전달
    4. 외부 결합도(External Coupling) - 외부 모듈의 내부 변수를 참조
    5. 공통 결합도(Common Coupling) - 공통 데이터를 여러 모듈이 참조
    6. 내용 결합도(Content Coupling) - 다른 모듈의 내부 기능 및 자료를 직접 참조 및 수정 

2. 응집도 - Cohesion

모듈의 내부 요소들이 서로 관련되어 있는 정도

응집도가 높을수록 품질이 좋다.

  • 응집도가 높은 순으로 정렬된 종류 (품질이 높은 순)
    1. 기능적 응집도(Functional Cohesion) - 모든 기능 요소들이 단일 문제와 연관어 수행
    2. 순차적 응집도(Sequential Cohesion) - 하나의 활동으로 나온 출력 데이터를 다음 활동에 입력으로 활용
    3. 교환적 응집도(Communication Cohesion) - 동일한 입력 출력을 사용하여 다른 기능을 수행하는 기능이 존재
    4. 절차적 응집도(Procedural Cohesion) - 다수의 기능을 가진 모듈이 그 기능을 순차적으로 수행하는 경우
    5. 시간적 응집도(Temporal Cohesion) - 특정 시간에 처리되는 기능이 있는 모듈
    6. 논리적 응집도(Logical Cohesion) - 유사한 성격을 가진 요소들을 모은 모듈
    7. 우연적 응집도(Coincidental Cohesion) - 모듈 내부의 각 요소들이 서로 관련이 없는 모듈

3. 팬인 / 팬아웃 - FanIn / FanOut

  • 팬인(FanIn) - 어떤 모듈을 제어하는 모듈의 수
  • 팬아웃(FanOut) - 어떤 모듈에 의해 제어되는 모듈의 수

팬인이 높으면 재사용률이 높다는 의미

단 팬인이 높은 경우 장애 발생확률이 높다 (단일 장애점이 발생할 수 있다)

 

 

단위 모듈 - Unit Module

한 가지 동작을 수행하는 기능을 모듈로 구현한 것

1. 단위 모듈의 구현 과정

  1. 단위 기능 명세서 작성
  2. 입. 출력 기능 구현
  3. 알고리즘 구현

2. 단위 모듈 테스트

모듈이 정해진 기능을 정확히 수행하는지 검증하는 것

단위 테스트(Unit Test)라고도 한다.

기준이 단위 모듈이므로 시스템 수준의 오류는 찾아낼 수 없다.

2.1 단위 모듈 테스트 케이스

모듈이 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서

검증의 누락이나 불필요한 검증 반복을 최소화시킬 수 있다.

  • ISO/IEC/IEEE 29119-3 표준에 따른 테스트 케이스 구성 요소
    • 식별자(Identifier)
    • 테스트 항목(Test Item)
    • 입력 명세 (Input Specification)
    • 출력 명세 (Output Specification)
    • 환경 설정 (Environmental Needs)
    • 특수 절차 요구 (Special Proceedure Requirement)
    • 의존성 기술 (Inter-case Dependencies)

공통 모듈 - Common Module

여러 프로그램에서 공통으로 사용할 수 있는 모듈

  • 자주 사용되는 계산식, 매번 필요한 사용자 인증등이 대표적인 공통 모듈 구성요소
  • 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야 된다.

1. 공통 모듈 명세 기법의 종류

  • 정확성 (Correctness) - 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성
  • 명확성 (Clarity) - 기능을 명확하게 이해할 수 있도록 작성
  • 완전성 (Completeness) - 구현에 필요한 모든 것을 기술
  • 일관성 (Consistency) - 공통 기능들 간 상호 충돌이 발생하지 않도록 작성
  • 추적성 (Traceability) -  기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 자성

 

효과적인 모듈 설계 방안

  • 모듈의 독립성을 높인다.
    • 모듈의 결합도는 낮게
    • 모듈의 응집도는 높게
  • 복잡도와 중복성을 줄인다.
  • 일관성을 유지한다.
  • 모듈의 기능은 예측이 가능해야 한다.
  • 모듈은 시스템의 전반적인 기능과 구조를 이해하기 쉽게 적절하게 분해한다.
  • 효과적인 제어를 위해 모듈 간의 계층적 관계를 정의하는 자료가 있어야 한다.

재사용 - Reues

이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 위해 최적화하는 작업

 

  • 규모에 따른 재사용 분류
    • 함수와 객체단위의 재사용
    • 컴포넌트 단위이 재사용
    • 애플리케이션 단위의 재사용

프로세스 간 통신 - IPC : Inter Process Communication

모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합

  • 대표 메서드 5개
    • Shared Memory
    • Socket
    • Semaphores
    • Pipes & named Pipes
    • Message Queueing
728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :