2과목.소프트웨어 개발
- 2장.통합 구현
* 단위 모듈
- 단위모듈 : 어떠한 기준으로 나눠놓은 모듈
: 기준 - 하나의 기능(단위 기능) => 모듈의 개수 = 기능의 개수 -> 독립적 컴파일 가능, 처리/명령문,데이터 구조 포함되어있다
* 단위 = 기준
- 모듈화 단계 : 추상화 -> 구조화 -> 캡슐화
- 입/출력 기능 구현 : 모듈끼리 데이터 연동(인터페이스) OR 통신
=> IPC(Inter-Process Communication) -> 대표적인 인터페이스 집합
: 메모리나 통신,메세지 등의 여러구성으로 통신을 가능하게 한다
-> Shared Memory : 공유 가능한 메모리 구성
Socket : 소켓을 이용하여 네트워크 경우
Semaphores : 공유 자원에 대한 접근 제어
Pipes & named Pipes : 선입선출 형태로 구성
Message Queueing : 메세지 전달
- 알고리즘 구현 : 모듈간 데이터 입출력 해결 후 들어온 데이터를 어떻게 할건지 구현(알고리즘)한다
=> 구현된 알고리즘이 사용자의 요구와 일치하는지 확인하고, 구현 가능한 언어를 사용해 구현한다
- 단위 모듈 테스트 : 모듈 조립 후 테스트(검증)
=> 모듈 조립이 끝난 후 에러가 발생하면 디버깅(오류해결과정)이 오래걸리기 때문에 미리 테스트 하는것이 좋다
-> 모듈 자체에 대한 에러만 테스트 가능하다 -> 전체 시스템에 대한 에러는 조립 후 확인 가능하다
- 테스트 방법 1. 화이트 박스 : 소스 코드의 논리적인 경로 테스트
2. 블랙 박스 : 해당 기능의 작동 여부 테스트
- 테스트 케이스 1. 식별자(Identifier) : 식별자,일련번호
2. 테스트 항목(Test Item) : 테스트 대상
3. 입력 명세(Input Secification) : 입력 데이터,조건
4. 출력 명세(Output Secification) : 예상 결과
5. 환경 설정(Environmental Needs) : 필요 HW/SW
6. 특수 절차 요구(Special Procedure Requirement) : 요구 절차
7. 의존성 기술(Inter-case Dependencies) : 케이스간 의존성
- 테스트 케이스 단계 1. 계획(제어) : 계획 수립
2. 설계(분석) : 시나리오 및 케이스 작성
3. 구현(실현) : 테스트 프로시저 작성, 테스트 수행
4. 평가 : 평가 기록
5. 완료 : 산출물 저장
- 개발 지원 도구 1. 통합 개발 환경(IDE) : 개발에 필요하고 도움을 주는 여러 요소들을 하나로 동합한 것
=> 컴파일, 디버깅, 외부서비스 연동 등 대부분의 기능이 포함되어 있어 개발의 편의성을 높여준다
2. 빌드 도구 : IDE로 개발이 완료되면 소스코드를 소프트웨어(제품)로 변환 시키는 것
=> 전처리기,컴파일러 등 포함된다 Ant(표준없음,HML),Maven(의존성),Gradle(의존성,groovy) 등이 대표적인 빌드 도구 이다
3. 기타 협업 도구(그룹웨어) : 일정 관리 및 정보 공유, 의사소통 등의 지원을 위한 도구들 -> 도구에 익숙하지 않으면 방해가 될 수도 있다