Etc/📃 Certification

[정보처리기사] 2과목 2장 - 통합 구현

posted by sangmin

2과목 - 소프트웨어 개발

2장. 통합 구현


38. 단위 모듈 구현

단위 모듈 (Unit Module) 개요

  • 단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것
  • 단위 모듈은 독립적인 컴파일이 가능하며 다른 모듈에 호출되거나 삽입 또한 가능
  • 단위 모듈 구현 순서
    1. 단위 기능 명세서 작성
    2. 입출력 기능 구현
    3. 알고리즘 구현

단위 기능 명세서 작성

  • 단위 기능 명세서를 작성하는 단계에서는 추상화 작업이 필요 (복잡한 시스템을 단순히 구현하기 위해)
  • 대형 시스템을 분해아여 단위 기능별로 구분하고, 각 기능들을 계층적으로 구성

입출력 기능 구현

  • 단위 기능 명세서에서 정의한 데이터 형식에 따라 데이터 구현
  • 사용자 인터페이스인 CLI, GUI와의 연동 고려
  • IPC (Inter-Process Communication) : 모듈 간 통신 방식을 구현하기 위해 사용되는 인터페이스 집합
    • Shared Memory : 공유 가능한 메모리를 구성하여 프로세스 간 통신 구현
    • Socket : 네트워크 소켓을 이용하여 프로세스 간 통신 수행
    • Semaphores : 공유 자원에 대한 접근 제어를 통해 프로세스 간 통신 수행
    • Pipes & named Pipes : 파이프를 여러 프로세스가 공유하여 통신 수행
      • 하나의 파이프가 사용 중이면 다른 프로세스는 접근 불가
    • Message Queueing : 메시지를 전달하는 형태로 프로세스 간 통신 수행

알고리즘 구현

  • 입출력 데이터를 바탕으로 구현 가능한 언어를 이용하여 모듈로 구현
  • 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인

39. 단위 모듈 테스트

단위 모듈 테스트의 개요

  • 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증
  • 단위 테스트 기법
    • 화이트박스 테스트 : 모듈의 소스 코드를 오픈시킨 상태에서 모든 논리적인 경로를 테스트
    • 블랙박스 테스트 : 소프트웨어가 수행할 특정 기능이 완전히 작동되는 것을 입증하는 테스트
  • 단위 모듈에 대한 테스트이므로 시스템 수준의 오류는 잡아낼 수 없음

테스트 케이스 (Test Case)

  • 테스트 케이스를 이용하지 않고 수행하는 직관적인 테스트는 인력과 시간을 낭비할 수 있음
  • ISO/IEC/IEEE 29119-3 표준에 따른 테스트 케이스 구성 요소
    • 식별자 (Identifier) : 항목 식별자, 일련번호
    • 테스트 항목 (Test Item)
    • 입력 명세 (Input Specification) : 입력 데이터 또는 테스트 조건
    • 출력 명세 (Output Specification) : 테스트 케이스 수행 시 예상되는 결과
    • 환경 설정 (Environmental Needs)
    • 특수 절차 요구 (Special Procedure Requirement) : 테스트 케이스 수행 시 요구되는 절차
    • 의존성 기술 (Inter-case Dependencies) : 테스트 케이스 간의 의존성

테스트 프로세스

  1. 계획 및 제어 단계
    • 테스트 목표를 달성하기 위한 계획 수립
  2. 분석 및 설계 단계
    • 테스트 시나리오와 테스트 케이스 작성
  3. 구현 및 실현 단계
    • 효율적인 테스트 수행을 위해 테스트 프로시저 (테스트 실행 순서)에 명세
  4. 평가 단계
    • 테스트가 목표에 맞게 수행되었는지 평가하고 기록
  5. 완료 단계
    • 수행 과정과 산출물을 기록 및 저장

40. 개발 지원 도구

통합 개발 환경 (IDE, Integrated Development Environment)

  • 통합 개발에 필요한 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 것을 의미
  • 코드의 자동 생성 및 컴파일이 가능하고 추가 기능을 위한 도구들을 다운로드하여 사용 가능

빌드 도구

  • 빌드는 소스 파일을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 과정
  • 빌드 도구는 변환하는 과정에 필요한 전처리, 컴파일 등의 작업을 수행하는 소프트웨어
    • Ant (Another Neat Tool) : 아파치 소프트웨어 재단에서 개발
      • 자바 프로젝트의 공식적인 빌드 도구
      • 정해진 규칙이나 표준 없이 개발자가 모든 것을 정의하기 때문에 스크립트 재사용이 어려움
    • Maven : 아파치 소프트웨어 재단에서 개발 (Ant의 대안)
      • 규칙이나 표준이 존재하여 예외 사항만 기록
      • 의존성을 설정하여 라이브러리 관리
    • Gradle : 기존의 Ant와 Maven을 보완하여 개발된 빌드 도구
      • 안드로이드 스튜디오의 공식 빌드 도구
      • Groovy 기반의 빌드 스크립트 사용

기타 협업 도구

  • 협업 도구는 서로 다른 작업 환경에서 원활히 프로젝트를 수행할 수 있도록 도와주는 툴
  • 일정 관리, 업무흐름 관리, 커뮤니케이션 등의 업무 보조 도구 포함
  • PC 뿐만 아니라 웹, 스마트폰 등 다양한 플랫폼에서 사용할 수 있도록 제공

참고

 

시나공 정보처리기사 필기

2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은 NCS 학습 모듈 중 정보통신 분야의 ‘정보기술’ 분류에 포함된 ‘정보기술개발’과 ‘정보기술운영’에 속한 125개의 학습 모듈을

book.naver.com