Pink Transparent Star

이외 개발 스터디/정보처리기사

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

채유나 2024. 4. 2. 19:47
728x90

단위 모듈 ( Unit Module ) 

 : 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현

- 단위 모듈로 구현되는 하나의 기능을 단위 기능이라고 말함

- 두 개의 단위 모듈이 합쳐지면 두개의 기능을 구현할 수 있음

- 단위모듈로부터 값을 전달을 받아서 수행하는 작은 프로그램을 의미

 

단위 모듈의 구성 요소 : 처리문, 명령문, 데이터 구조 등

 

단위 모듈 구현 순서 : 단위기능 명세서 작성 - 입출력기능 구현 - 알고리즘 구현

 

단위기능 명세서 작성

설계 과정에서 작성하는 기능 및 코드 명세서, 설게 지침과 같이 단위 기능을 명세화한 문서를 의미

복잡한 시스템을 단순하게 구현하기 위한 추상화 작업 필요

 

입출력기능 구현

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

- 단위 모듈 간의 연동 또는 통신을 위한 입출력 데이터 구현

- CLI, GUI 와의 연동 고려

- 네트워크나 외부 장치의 입출력은 Open Source API를 이용하면 간편하게 구현 가능

 

알고리즘 구현

단위 기능별 요구 사항들을 구현 가능한 언어를 이용해 모듈로 구현

- 구현된 단위 기능들이 사용자의 요구와 일치하는 확인 과정 필요

구현되는 모듈의 종류를 단위 기능의 종류에 따라 구분

 - 디바이스 드라이버 모듈 : 하드웨어 주변 장치의 동작을 구현한 모듈

네트워크 모듈 : 네트워크과 관련된 장비나 데이터 동싱을 위한 기능을 구현한 모듈 

파일 모듈 : 데이터 구조 영역에 접근하는 방법을 구현한 모듈

메모리 모듈 : 파일을 프로세스의 가상 메모리에 매칭과 해지하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈

프로세스 모듈 : 명령어 처리, 하나의 프로세스에서 또 다른 프로세스를 생성하는 방법을 구현한 모듈

 

단위 모듈 테스트

: 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 수행하는가를 검증

 - 화이트박스 테스트와 블랙박스 테스트 기법을 사용

화이트박스 테스트 : 프로그램 내부 검사, 모듈의 소스 코드를 오픈 시킨 상태에서 소스 코드의 모든 논리적 경로 테스트

종류 : 기초 경로, 제어 흐름 테스트, 분기 테스트, 제어 구조 검사

블랙박스 테스트 : 소프트웨어가 수행할 특정 기능이 완전히 작동되는 것을 입증하는 테스트, 내부 검사는 아님

종류 : 동기 분할 검사, 경계값 분석검사, 원인 효과 그래프 검사, 오류 예측 검사

 

테스트 케이스 ( Test Case )

: 사용자의 요구사항에 준수하였는지 확인하기 위해 모듈에 입력 될 수 있는 값과 예상 결과들로 나열해 테스트케이스를 만드는 과정

 

- 테스트 항목에 대한 명세서

- 명세 기반 테스트의 설계 산출물에 해당

 

ISO 표준에 다른 케스트 케이스의 구성 요소 

종류 기억

 

식별자 ( Identifier ) : 항목 식별자, 일련 번호

테스트 항목 ( Test Item ) : 테스트 대상

입력 명세 ( Input Specification ) :  입력 데이터 또는 테스트 조건

출력 명세 ( Output Specification ) : 테스트 케이스 수행 시 예상되는 출력 결과

환경설정 ( Environmental Needs ) : 필요한 하드웨어나 소프트웨어의 환경

특수절차요구 ( Special Procedure Requirement ) : 테스트 케이스 수행 시 특별히 요구되는 절차

의존성 기술 ( Inter-case Dependencies ) : 테스트 케이스 간의 의존성

 

테스트 프로세스

: 테스트의 목적 조건을 달성할 수 있도록 도와주는 과정으로 5단계가 있음

 

테스트 프로세스 5단계

계획 및 제어 단계

: 테스트 목표를 달성하기 위한 계획 수립, 계획대로 진행되도록 제어

분석 및 설계 단계

: 테스트할 목표를 구체화해 테스트 시나리오와 테스트 케이스 작성

구현 및 실행 단계

: 효율적인 테스트 진행을 위한 테스트 케이스들을 조합해 테스트 프로시저에 명세, 단위 테스트로 진행

평가 단계

: 테스트 계획과 목표에 맞게 수행되었는가의 평가 & 기록

완료 단게

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

 

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

: 개발에 필요한 환경, 편집기 ( Editor ), 컴파일러 ( Compiler ), 디버거 (, Debugger ) 등의 다양한 툴을 하나로 통합하여 제공하는 것을 의미

- 통합 개발 환경을 제공하는 소트프웨어를 의미

 

 

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

 

빌드 도구 

: 소스 코드를 소프트웨어로 변환하는 과정에 필요한 전처리, 컴파일 등의 작업들을 수행하는 소프트웨어

 

대표 도구 : Ant, Maven, Gradle

 

기타 협업 도구

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

협업 소프트웨어, 그룹웨어 ( Gropware ) 등

 

협업 도구 종류 

프로젝트 및 일정 관리

- 전체 프로젝트, 개별 업무들이 진행 상태 일정 등을 공유하는 기능 제공

- 구글 캘릭터, 트렐로, 지라, 플로우 등

 

정보 공유 및 커뮤니케이션

: 주제별로 구성원들을 구성하여 정보를 공유하고 대화하는 기능

- 파일 관리 간편, 의사소통이 자유로움

- 슬랙, 잔디, 태스크월드 등

 

디자인

: 디자이너가 설계한 정보들을 코드화하여 개발자에게 전달하는 기능 

- 스캐치, 제플린

 

기타

에버노트 : 아이디어 공유

스웨거 : API를 문서화해 개발자들간 협업을 도움

깃허브 : 깃의 웹 호스팅 서비스

728x90