게임 개발자를 향해

단위 모듈과 공통모듈 본문

정보처리기사/4. 서버 프로그램 구현

단위 모듈과 공통모듈

뿌단이 2022. 9. 22. 16:25

단위 모듈

 단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것이다.

 

  [단위 모듈의 구현 과정]

        [단위 기능 명세서작성]   ▶   [입 출력 기능 구현]      [알고리즘 구현]

 

  [IPC(Inter-Process Communication)]

  • IPC는 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합이다.
  • 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능하다.

 

    <IPC의 대표 메소드 5가지>

  1. Shared Memory(공유 메모리)
    • 공유 가능한 메모리를 구성하여 다수의 프로세스가 통신하는 방식
  2. Socket(소켓)
    • 네트워크 소켓을 이용하여 네트워크를 경유하는 프로세스 간에 통신하는 방식
  3. Semaphores(세마포어)
    • 공유 자원에 대한 접근 제어를 통해 통신하는 방식
  4. Pipes&named Pipes(파이프와 네임드파이프)
    • Pipe라고 불리는 선입선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신하는 방식
    • Pipe는 하나의 프로세스가 이용중이라면 다른 프로세스는 접근할 수 없음
  5. Message Queueing(메시지 큐잉)
    • 메시지가 발생하면 이를 전달하는 방식으로 통신하는 방식

 

 

  [단위 모듈 테스트]

  • 단위 모듈 테스트는 프로그램의 단위 기능으로 구현된 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것이다.
  • 단위 테스트(Unit Test) 라고도 부른다.
  • 단위 모듈 테스트의 기준은 단위 모듈에 대한 코드이므로 시스템 수준의 오류는 잡아낼 수 없다.

 

 

  [테스트 케이스(Test Case)]

  • 테스트 케이스는 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서이다.
  • 테스트케이스를 이용하지 않은 테스트는 툭정 요소에 대한 검증이 누락되거나 불필요한 검증의 반복으로 인해 인력과 시간을 낭비할 수 있다.

 

    <ISO/IEC/IEEE 29119 - 3 표준에 따른 테스트 케이스의 구성 요소>

  1. 식별자(Identifier)
  2. 테스트 항목(Test List)
  3. 입력 명세(Input Specification)
  4. 출력 명세(Output Specification)
  5. 환경 설정(Environmental Needs)
  6. 특수 절차 요구(Special Procedure Requirement)
  7. 의존성 기술(Inter-case Dependencies)

 

공통 모듈

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

자주 사용되는 계산식이나 매번 필요한 사용자 인증과 같은 기능들이 공통 모듈로 구성될 수 있다.

공통 모듈을 구현할 때는 해당 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야 한다.

 

  [테스트 케이스(Test Case)]

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

 

 

  [재사용(Reuse)]

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

새로 개발하는데 필요한 비용과 시간을 줄일 수 있다.

누구나 이해할 수 있고 사용이 가능하도록 사용법을 공개해야 한다.

 

  1. 함수와 객체
    • 클래스나 메소드 단위의 소스코드를 재사용함
  2. 컴포넌트
    • 컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용함
  3. 애플리케이션
    • 공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용함

 

 

 

읽어주셔서 감사합니다!

정처기 화이팅!

 

 

 

 

'정보처리기사 > 4. 서버 프로그램 구현' 카테고리의 다른 글

디자인 패턴  (1) 2022.09.24
코드(Code)  (0) 2022.09.22
모듈(Module)  (0) 2022.09.20
객체지향 분석 및 설계  (0) 2022.09.20
객체지향(Object - Oriented)  (0) 2022.09.20