✔단위 모듈 구현
===>개발 시 필요한것 이 무엇일지 생각한다면 암기가 더 쉽다
모듈 개요
단위 = 기준
모듈의 개수 = 기능의 개수
독립적 컴파일 가능
-소프트웨어 구현에 필요한 여러 동작 중 한가지 동작을 수행하는 기능을 모듈로 구현한 것
-사용자 또는 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램
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 웹 호스팅 서비스 : 깃허브 등
'정보처리기사' 카테고리의 다른 글
3장-2//제품 소프트웨어 패키징 (0) | 2021.08.13 |
---|---|
3장// 제품 소프트웨어 패키징 - 배포 (0) | 2021.08.13 |
1장// 데이터 입 출력 구현 (0) | 2021.08.12 |
응용 SW 기초 기술 활용(2) (0) | 2021.08.12 |
응용 SW 기초 기술 활용(2) (0) | 2021.08.08 |