정보처리기사 2과목 소프트웨어 개발 (통합 구현)
Section 1. 단위 모듈
1. 단위 모듈 구현
S/W 개발에서 기능을 분할 및 추상화하여 단위 컴포넌트별로 구현하는 기법
2. 단위 모듈의 구현 원리(특징)
① 정보 은닉 - 객체에 대한 구체적인 정보를 노출시키지 않는 기법
② 분할과 정복 - 복잡한 문제를 분해하여 모듈 단위로 문제해결
③ 데이터 추상화 - 객체 간 공통성을 추출하여 일반화(통합)시키는 기법
④ 모듈 독립성 - 높은 독립성과 낮은 결합도
3. 단위 모듈 테스트 방법
① 화이트 박스 테스트 - 모듈 내부의 소스를 보면서
② 메소드 기반 테스트 - 메소드에 파라미터 값을 다르게 호출 하면서
③ 화면 기반 테스트 - 사용자 화면에서 직접 데이터를 입력 하면서
④ Stub과 Drive 사용 - 테스트 수행할 때 필요한 다른 모듈이 개발이 안된 경우 스텁(하위 모듈 제공)과 드라이브(상위 모듈 제공)를 활용하여 테스트 수행
4. 소스코드 커버리지란 ?
프로그램의 테스트 수행 정도를 정량적인 수치로 나타내는 것
- 구문 커버리지(SC) - 프로그램 내의 모든 구문이 적어도 한번은 실행되는 커버리지
- 결정 커버리지(DC) - 전체 조건식에 대해 참/거짓을 적어도 한번 수행
- 조건 커버리지(CC) - 개별 조건식에 대해 참/거짓을 적어도 한번은 수행
- 조건/결정 커버리지(CDC) - 전체 조건식과 개별 조건식이 모두 참/거짓 한번 씩 수행
- 변경 조건/결정 커버리지(MCDC) - 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식에 영향 줌
- 다중 조건 커버리지(MCC) - 결정 조건 내의 모든 개별 조건식의 모든 가능한 논리적 조합
* 조건식 if( a>b and a<c ) 일 때 a>b, a<c 는 개별조건식. a>b and a<c 는 전체조건식
5. 단위 테스트 자동화 도구
-
Junit - Java 기반의 단위 모듈 테스트 자동화 도구
-
Cppunit - C++ 언어 기반의 단위 테스트 자동화 도구
-
Unittest - Python 언어 기반의 단위 테스트 자동화 도구
Section 2. 통합 구현 관리
1. 통합개발환경(IDE)
IDE(Intergrated Development Environment)는 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하도록 하는 환경제공 SW
- Eclipse, Visual Studio, C++Builder, Xcode 등
2. IDE 기능
- 개발환경 지원
- 컴파일 및 디버깅 기능 제공
- 외부 연계모듈과 통합기능 ( EAI, JDBC )
- 외부 형상, 배포 관리 기능과 연계되어 소스코드의 형상관리 및 자동 배포
3. 형상 관리 중요 !!
S/W 개발 전 과정의 산출물을 체계적으로 관리하여 SW 가시성 및 추적성을 부여하여 품질 보증 향상
소프트웨어 변경 사항을 관리
- 형상 관리 대상 - 소스코드, 실행파일, 설계문서, 회의록 등 문서화된 자료 ( 비용, 금액 등은 관리 대상 X )
4. 형상 관리 절차
- 형상 식별 -> 형상 통제 -> 형상 감사 -> 형상 기록 (식통감기)
5. 형상 관리 도구의 종류
- RCS - 개발 완료 파일은 지정된 공유 폴더에 저장, 담당자 한 명이 관리
- CVS - 중앙 집중형, 직관적이고 단순, 유니코드 X, Rollback 미지원
- SVN - 중앙 집중형, CVS 보완, Rollback 지원
- Git - 분산형 관리 시스템, 사용자의 Local 저장소와 서버의 Remote 저장소
6. 형상 관리 도구의 명령어 (주로 SVN)
- Import - 처음에 형상 관리 파일을 모두 올리는 명령어
- Checkout - 처음에 형상 관리 파일을 Remote 서버로부터 받아 오는 명령어
- Add - Remote 서버에 추가하는 명령어
- Check in = Commit - 변경 사항을 Remote 서버로 올림
- Update - 변경된 것을 Local로 받아옴
- Diff - 비교
- Merging - 하나의 파일을 동시에 변경했을 경우 충돌을 해결하여 병합해주는 명령어