본문 바로가기
정보처리기사

2장// 통합구현 -실무에 유용

by aesup 2021. 8. 13.
728x90

단위 모듈 구현

===>개발 시 필요한것 이 무엇일지 생각한다면 암기가 더 쉽다

 

모듈 개요

단위 = 기준

모듈의 개수 = 기능의 개수

독립적 컴파일 가능

 

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

-사용자 또는 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램

1.단위 기능 명세서 작성

단위기능을 명세화한 문서

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

대형 시스템을 분해하여 단위 기능별로 구분하고 각 기능들로 계층적으로 구성하는 구조화 과정으로 거침

 

2.입출력 기능 구현

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

모듈 간 연동 또는 통신을 위한 데이터 구현

 

   IPC(Inter Process Communication): 모듈 간 통신을 구현하기 위해 사용되는 프로그래밍 인터페이스 집합

->공유 메모리 Share Memory : 다수의 프로세스가 공유 가능한 메모리를 구성하여 통신 수행

->소켓: 네트워크 소켓을 이용하여 네트워크를 경유하는 통신 수행

->세마포어: 공유 자원에 대한 접근 제어를 통해 통신 수행

-> 파이프: 선입선출의 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신 수행

-> 메시지 큐잉: 메시지가 발생하면 이를 전달하는 형태로 통신 수행

 

 

3.알고리즘 구현

-입출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능 언어를 이용하여 모듈로 구현

 

 

단위 모듈 테스트

단위 모듈 테스트의 개요

모듈이 정해진 기능을 정확히 수행하는지 검증

단위 테스트라 하여 화이트박스 테스트, 블랙박스 테스트가 잇음

시스템 수준의 오류는 발견할 수 없음

 

테스트 케이스 TestCase

-구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서

-> 설계 산출물에 해당된다

-> 입력 데이터, 테스트 조건, 예상결과 등을 모아 만듬

-> 구성요소: 식별자, 테스트 항목, 입력/출력 명세, 환경설정, 특수 절차 요구, 의존성 기술

 

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

식별자: 항목 식별자, 일련번호

테스트항목: 테스트 대상

입력명세: 입력 데이터 또는 테스트 조건

출력명세: 출력결과

환경설정

특수 절차 요구

의존성 기술

 

 

 

테스트 프로세스

테스트를 위해 수행하는 작업이 테스트의 목적과 조건을 달성할 수 있도록 도와주는 과정

화이트 박스:  소스코드의 논리적인 경로 테스트(경로체크)

블랙박스:  해당 기능의 작동 여부 테스트(기능체크)

 

 

✔개발 지원 도구

통합 개발 환경(IDE)

- 개발에 필요한 편집기, 컴파일러 디버거 등의 다양한 툴을 하나의 인터페이스로 통합하여 제공

- Eclipse, Visual Studio, Xcode, Android Studio, IDEA 등

 

빌드 도구

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

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

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

- Maven : Ant의 대안으로 의존성을 설정하여 라이브러리 관리

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

 

협업 도구

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

- 협업 소프트웨어, 그룹웨어라고도 함

- 협업 도구의 종류 

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

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

    -> 디자인 : 스케치, 제플린 등

    -> 아이디어 공유 : 에버노트 등

    -> API 문서화 : 스웨거 등

    -> Git 웹 호스팅 서비스 : 깃허브 등

728x90