정보처리기사/소프트웨어 개발

소프트웨어 개발 2장 통합 구현 1)단위 모듈, 통합 개발 환경(IDE)

차간단 2022. 4. 22. 17:26
반응형

단위 모듈 (Unit Module)의 개요

- 단위 모듈 : 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것 (= 사용자 또는 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램)

- 단위 기능 : 단위 모듈로 구현되는 하나의 기능

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

- 구성 요소 : 처리문, 명령문, 데이터 구조 등

- 독립적인 컴파일 가능, 다른 모듈에 호출되거나 삽입되기도 함

- 단위모듈 구현 순서

단위모듈 구현 순서

단위 기능 명세서 작성

- 단위 기능을 명세화한 문서

ex) 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침

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

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

- 모듈의 독립적인 운용과 정보 은닉의 원리를 고려해야함

 

입출력 기능 구현

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

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

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

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

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

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

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

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

 

알고리즘 구현

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

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

- 단위 기능의 종류에 따라 디바이스 드라이버 모듈, 네트워크 모듈, 파일 모듈, 메모리 모듈, 프로세스 모듈 등으로 구분

 

단위 모듈 테스트의 개요

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

- 단위 테스트라고도 하며 화이트박스 테스트와 블랙박스 테스트 기법 사용

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

 

테스트 케이스

- 구현된 소프트웨어가 요구사항을 정확히 준수했는지 확인하기위한 테스트 항목에 대한 명세서로 명세 기반 테스트의 설계 산출물에 해당

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

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

 

테스트 프로세스

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

- 테스트 프로세스 5단계

테스트프로세스 5단계

통합 개발 환경(IDE)

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

- 통합 개발 환경 도구 : 통합 개발 환경을 제공하는 소프트웨어

- 코드의 자동 생성 및 컴파일이 가능하고 도구들을 다운로드하여 추가 할 수 있음

- 외부의 다양한 서비스와 연동하여 개발에 편의를 제공하고 필요한 정보 공유 가능

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

 

빌드도구

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

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

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

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

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

 

협업 도구

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

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

> 협업 도구의 종류

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

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

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

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

- API 문서화 : 스웨거 등

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

 

반응형