정보처리기사 필기

정보처리기사 2과목 소프트웨어 개발 - 2장 통합 구현 요점 정리

E_ONION 2020. 6. 3. 01:32

1. 단위 모듈 구현 : SW 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현

- 단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 함, 값을 전달받아 시작되는 작은 프로그램

- 두 개의 모듈 합성 => 두 개의 기능 구현 가능

- 구성요소(처리문, 명령문, 데이터 구조), 독립적 컴파일 가능, 호출 및 삽입 가능

- 과정

① 단위 기능 명세서 작성 : 설계 과정서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서

- 추상화, 구조화, 정보 은닉 고려

② 입 · 출력 기능 구현 : 단위 기능 명세서에서 정의한 데이터 형식에 따라 입출력 기능 위한 알고리즘 및 데이터를 구현

- CLI, GUI와의 연동 고려, 무료 공개 => Open Source API 이용 => 간편 구현 가능

③ 알고리즘 구현 : 입 · 출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용하여 모듈로 구현

- 사용자 요구 사항과 일치하는지 확인

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

2. 단위 모듈 테스트 : 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증, 테스트 케이스 

                            이용하여 모듈 수준의 오류를 찾아내는 테스트 기법

- 테스트 수행하기 위해 모듈 단독적으로 실행할 수 있는 환경과 테스트에 필요한 데이터 모두 준비되어 있어야 함

- 에러 쉽게 발견 및 수정 가능(모듈 통합 이후)

- 시스템 수준의 오류는 검출 불가능

┌ 화이트박스 테스트 : 내부 관찰 => 프로그램 쪽 구현(오류검사), 소스코드의 모든 논리적인 경로 테스트

└ 블랙박스 테스트 : SW가 수행할 특정 기능 및 성능 테스트

● 테스트 케이스 : 명세 기반 테스트의 설계 산출물에 해당, 모듈이 올바르게 작성되었는지 확인하기 위해 모듈에 입력                          될 수 있는여러 값들과 예상 결과들을 나열하여 목록을 만드는 과정

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

- 단위 모듈 테스트 전 입력 데이터, 테스트 조건, 예상 결과 등을 모아 테스트 케이스를 만듦

● 테스트 프로세스 : 테스트의 목적과 조건달성할 수 있도록 도와주는 과정

① 계획 및 제어 단계 : 계획 수립, 계획대로 진행하기 위해 제어

② 분석 및 설계 단계 : 테스트 목표 구체화하여 테스트 시나리오테스트 케이스를 작성

③ 구현 및 실현 단계 : 테스트 케이스들을 조합하여 테스트 프로시저에 명세, 테스트 수행

④ 평가 단계 : 평가하고 기록

⑤ 완료 단계 : 이후의 테스트를 위한 참고 자료 및 증거자료로 활용하기 위해 수행 과정과 산출물을 기록 및 저장

3. 개발 지원 도구

● 통합 개발 환경(IDE) : 편집기, 컴파일러, 디버거 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공하는 것

- 통합 개발 환경 도구는 코드의 자동 생성컴파일 가능, 추가 기능을 위한 도구들 다운로드하여 사용 가능

- 오류 부분 시각화로 인해 수정 용이, 외부 서비스와의 연동으로 편의 제공 및 공유 가능

- 대표 도구 : 이클립스, 비주얼 스튜디오, 엑스 코드, 안드로이드 스튜디오, IDEA

● 빌드 도구 : 빌드 하는 데에 필요한 전처리컴파일 등의 작업들을 수행하는 SW

- 빌드 : 소스 코드 파일들을 컴퓨터에서 실행할 수 있는 제품 SW로 변환하는 과정 또는 결과물

- 대표 도구

Ant

- 아파치 소프트웨어 재단 개발

- 자바 프로젝트의 공식적 빌드 도구

- XML 기반 빌드 스크립트 사용, 자유도와 유연성 높음 > 복잡한 빌드 환경에도 대처 가능

- 정해진 규칙, 표준 없음 > 개발자가 모든 것 정의, 스크립트 재사용 어려움

Maven

- 아파치 소프트웨어 재단 개발. Ant의 대안

- 규칙, 표준 존재 > 예외 사항만 기록하면 됨, 컴파일과 빌드 동시 수행 가능

- 의존성을 설정하여 라이브러리 관리

Gradle

- Ant, Maven 보완

- 한스 도커 외 6인 개발

- 안드로이드 스튜디오 공식 빌드 도구

- 의존성 활용, 그루비 기반의 빌드 스크립트 사용

● 기타 협업 도구

: 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트 수행할 수 있도록 도와주는 도구,

협업 SW, 그룹웨어라고 불림

- 일정관리 업무 흐름 관리, 정보 공유, 커뮤니케이션 등의 업무 보조 도구가 포함

- 다양한 플랫폼에서 사용할 수 있도록 제공

- 익숙치 않거나 의지가 없으면 오히려 방해요소

① 프로젝트 및 일정 관리 : 구글 캘린더, 분더리스트, 트렐로, 지라, 플로우

② 정보 공유 및 커뮤니케이션 : 슬랙, 잔디, 태스크월드

③ 디자인 : 스케치, 제플린

④ 기타 : 에버노트, 스웨거, 깃허브