단위 모듈 구현
단위 모듈의 개요
- 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것
- 사용자 또는 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램
단위 기능 명세서 작성
- 단위 기능을 명세화한 문서
- 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업이 필요
- 대형 시스템을 분해하여 단위 기능별로 구분하고 각 기능들로 계층적으로 구성하는 구조화 과정을 거침
입출력 기능 구현
- 단위 기능 명세서에서 정의한 데이터 형식에 따라 입출력 기능을 위한 알고리즘 및 데이터 구현
- 모듈 간 연동 또는 통신을 위한 데이터 구현
- IPC(Inter Process Communication) : 모듈 간 통신을 구현하기 위해 사용되는 프로그래밍 인터페이스 집합
-> 공유 메모리 : 다수의 프로세스가 공유 가능한 메모리를 구성하여 통신 수행
-> 소켓 : 네트워크 소켓을 이용하여 네트워크를 경유하는 통신 수행
-> 세마포어 : 공유 자원에 대한 접근 제어를 통해 통신 수행
-> 파이프 : 선입선출의 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신 수행
-> 메시지 큐잉 : 메시지가 발생하면 이를 전달하는 형태로 통신 수행
알고리즘 구현
- 입출력 데이터를 바당으로 단위 기능별 요구 사항들을 구현 가능 언어를 이용하여 모듈로 구현
단위 모듈 테스트
단위 모듈 테스트의 개요
- 모듈이 정해진 기능을 정확히 수행하는지 검증
- 단위 테스트라고도 하며 화이트박스 테스트와 블랙박스 테스트 기법 사용
- 시스템 수준의 오류는 발견할 수 없음
테스트 케이스
- 구현된 소프트웨어가 요구사항을 정확히 준수했는지 확인하기 위한 테스트 항목에 대한 명세서로 명세 기반 테스트의 설계 산출물에 해당
- 입력 데이터, 테스트 조건, 예상 결과 등을 모아 테스트 케이스를 만듦
- 테스트 케이스의 구성 요소 : 식별자, 테스트 항목, 입력 / 출력 명세, 환경 설정, 특수 절차 요구, 의존성 기술
테스트 프로세스
- 테스트를 위해 수행하는 작업이 테스트의 목적과 조건을 달성할 수 있도록 도와주는 과정
개발 지원 도구
통합 개발 환경(IDE)
- 개발에 필요한 편집기, 컴파일러 디버거 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공
- Eclipse, Visual Studio, Xcode, Android Studio, IDEA 등
빌드 도구
- 소스 코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨어로 변환하는 과정 또는 결과물
- 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리, 컴파일 등의 작업을 수행
- Ant : 자바 프로젝트의 공식적인 빌드 도구
- Maven : Ant의 대안으로 의존성을 설정하여 라이브러리 관리
- Gradle : 안드로이드 스튜디오의 공식 빌드 도구
협업 도구
- 개발에 참여하는 사람들이 서로 다른 작업 환경에서 프로젝트를 수행할 수 있도록 도와주는 도구
- 협업 소프트웨어, 그룹웨어라고도 함
- 협업 도구의 종류
-> 프로젝트 및 일정 관리 : 구글 캘린더, 분더리스트, 트렐, 지라, 플로우 등
-> 정보 공유 및 커뮤니케이션 : 슬랙, 잔디, 태스크 월드 등
-> 디자인 : 스케치, 제플린 등
-> 아이디어 공유 : 에버노트 등
-> API 문서화 : 스웨거 등
-> Git 웹 호스팅 서비스 : 깃허브 등
필기 정리
'2020(개정) 이후 정보처리기사 > 2과목 : 소프트웨어 개발' 카테고리의 다른 글
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(2) (0) | 2020.04.15 |
---|---|
2020 정보처리기사 필기 - 2.4 애플리케이션 테스트 관리(1) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(2) (0) | 2020.04.15 |
2020 정보처리기사 필기 - 2.3 제품 소프트웨어 패키징(1) (0) | 2020.04.14 |
2020 정보처리기사 필기 - 2.1 데이터 입출력 구현 (3) | 2020.04.13 |