소프트웨어 개발 ( 통합 구현 )

Codren·2021년 3월 11일
0

소프트웨어 개발

목록 보기
2/5

정보처리기사 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 - 하나의 파일을 동시에 변경했을 경우 충돌을 해결하여 병합해주는 명령어

0개의 댓글