단위 모듈 구현에서 알아야 할 키워드
- 단위 기능 명세서
- IPC
- 테스트 케이스
- 단위 모듈 테스트
- 테스트 프로세스
- IDE
- 빌드 도구
- 단위 모듈
- Ant
- Maven
단위 모듈은 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기술을 모듈로 구현한 것을 말합니다.
단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 부르는데 단위 모듈은 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램을 의미하기도 합니다.
특징으로는
- 두개의 단위 모듈이 합쳐질 경우 두 개의 기능을 구현할 수 있습니다.
- 단위 모듈은 독립적인 컴파일이 가능하며, 다른 모듈에 호출되거나 삽입되기도 합니다.
- 단위 모듈을 구현하기 위해서는 단위 기능 명세서를 작성한 후 입, 출력 기능과 알고리즘을 구현해야 합니다.
즉, 프로세스는 1. 단위 기능 명세서 작성 , 2 입출력 기능을 구현 , 3 알고리즘 구현 입니다.
단위 기능 명세서는 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서들을 의미합니다.
단위 기능 명세서를 작성할 때에는 복잡한 시스템을 단순하게 구현하기 위해서 추상화 작업이 필요합니다. 또한 시스템을 분해하여 단위 기능별로 구분하고, 각 기능들을 계층적으로 구성화하는 구조화 과정을 거칩니다.
이때 단위 기능 명세서 작성 시 모듈의 독립적인 운용과 한 모듈 내의 정보가 다른 모듈에 영향을 주지 않도록 정보 은닉의 원리를 고려하여 명세서 작성하는 게 중요합니다.
명세서를 작성하였다면 그다음으로 해야 할 것은 입, 출력 기능 구현 단계입니다. 입출력 기능 구현 단계에서는 명세서에서 정의한 데이터 형식에 따라서 입출력 기능을 위한 알고리즘 및 데이터를 구현합니다. 이때 사용자 인터페이스인 CLI(Command Line Interface)와 GUI와의 연동을 고려하여 구현을 하는 게 중요합니다.
IPC란
IPC는 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합으로, 복수의 프로세스를 수행하며 이뤄지는 프로세스 간 통신까지 구현이 가능합니다.
IPC의 대표 메서드 5가지는 Shared Memory , Socket , Semaphores, Pipes&named Pipes , Message Queueing 등이 있습니다.
마지막으로는 알고리즘을 구현해야 합니다. 알고리즘 구현 단계에서는 입 출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용화하여 모듈로 구현해야 합니다.
이때 구현된 단위 기능들이 사용자의 요구와 일치하는지 단위 기능의 종류에 따라서 디바이스 드라이버 모듈, 네트워크 모듈, 파일 모듈, 메모리 모듈, 프로세스 모듈 등으로 구분이 됩니다.
단위 모듈 구현 단계를 끝냈다면 단위 모듈 테스트는 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 수행하는지 검증하는 단계입니다.
단위 모듈 테스트는 단위 테스트라고도 하며, 화이트박스 테스트와 블랙박스 테스트 기법을 사용합니다.
화이트 박스/ 블랙박스 테스트란?
화이트 박스 테스트는 모듈의 소스 코드를 오픈시킨 상태에서 소스 코드의 모든 논리적인 경로를 테스트하는 방법이며, 블랙박스 테스트는 소프트웨어가 수행할 특정 기능이 완전히 작동되는 것을 입증하는 테스트입니다.
구현된 소프트웨어가 사용자의 요구 사항을 정확하게 준수했는지 확인하기 위해서는 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서 즉 테스트 케이스가 필요합니다.
쉽게 말해 모듈이 올바르게 작성되었는지 확인하기 위해 모듈에 입력될 수 있는 여러 값들을 예상 결과들을 나열하여 목록을 만드는 과정
테스트 케이스의 구성요소
- 식별자 - 항목 식별자, 일련번호
- 테스트 항목 - 테스트 대상
- 입력 명세 - 입력 데이터 또는 테스트 조건
- 출력 명세 - 테스트 케이스 수행 시 예상되는 출력 결과
- 환경 설정 - 필요한 하드웨어나 소프트웨어의 환경
- 특수 절차 요구 - 테스트 케이스 수행 시 특별히 요구되는 절차
- 의존성 기술 - 테스트 케이스 간의 의존성
테스트 프로세스는 테스트를 위해 수행하는 모든 작업들이 테스트의 목적과 조건을 달성할 수 있도록 도아주는 것을 말합니다.
테스트 프로세스는 아래 5가지 단계로 구성되어있습니다.
- 계획 및 제어 단계
- 분석 및 설계 단계
- 구현 및 실현 단계
- 평가 단계
- 완료 단계
지금부터는 개발을 돕는 도구들에는 어떠한 것들이 들어있는지, 각 도구들의 용도가 무엇인지 알아볼 거예요
통합 개발 환경(IDE; integrated Development Environment)
통합 개발 환경은 개발에 필요한 환경, 즉 에디터, 컴파일러, 디버거 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 것을 의미합니다.
대표적인 프로그램 도구로는 이클립스, 비주얼 스튜디오, 엑스 코드, 안드로이드 스튜디오, IDEA 등이 있습니다.
빌드 도구로는 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리, 컴파일 등의 작업들을 수행하는 소프트웨어를 말합니다. 대표적인 도구로는 ANT, Maven, Gradle
Ant- 아파치 소프트웨어 재단에서 개발 한 소프트웨어 툴 , 정해진 규칙이나 표준 없음
Maven - Ant와 동일하게 아파치 소프트웨어 재단에서 개발하였지만 Ant와 다르게 정해진 규칙이나 표준이 존재
Gradle - 기존의 Ant와 Maven을 보안하기 위해 개발한 툴 Maven과 동일하게 의존성을 활용하며, 그루비 기반의 빌드 스크립트를 사용한다.
협업 도구는 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트를 수행할 수 있도록 도아주는 도구로서 협업 소프트웨어 그룹웨어 등이 있다.
'정보처리' 카테고리의 다른 글
애플리케이션 테스트 관리 (0) | 2020.05.26 |
---|---|
소프트웨어 패키징 (0) | 2020.05.21 |
자료 구조에 대하여 (0) | 2020.05.20 |
소프트웨어 아키텍처의 설계 과정 (0) | 2020.05.13 |
소프트웨어 아키텍처의 특징과 설계의 기본 원리 (0) | 2020.05.12 |