상세 컨텐츠

본문 제목

정보처리기사 필기시험 준비 [14]

정보처리기사/정보처리기사_필기

by JORDON 2023. 2. 12. 15:47

본문

반응형

소프트웨어개발 - 통합구현과 통합구현관리

 

모듈구현

  • 단위모듈구현 - 단위 기능을 모듈 구현
  • 단위기능 명세서 작성 - 설계과정에서 단위 기능을 명세화한 문서
    • 추상화 - 복잡한 시스템을 단순히 구현, 상위수준에서 제품의 구현을 먼저 생각하여 큰 흐름 작성
    • 구조화 - 시스템을 분해하여 단위 기능별로 구분하고 계층적으로 구성
      • 문제를 하위 수준의 독립된 단위로 나눔
      • 구분된 문제의 자세한 구현은 뒤로 미룸
      • 점증적으로 구체화 작업 진행
    • 캡슐화(정보은닉) - 단위모듈(Unit Module)의 내부 내용은 숨기고 인터페이스를 통해서만 메세지를 전달하도록 하여 다른 모듈의 접근과 변경을 막는다.
    • 기능적 독립성 - 모듈은 뚜렷한 목적을 가지며 다른 모듈과의 상호 의존도가 낮도록 하여야 함
  • 입출력기능구현 - 명세서에 정의한 데이터 형식에 따라 알고리즘 및 데이터 구현
    • IPC(Inter-Process Communication)
      • 모듈간 통신 방식을 구현하기 위해 사용되는 대표적인 인터페이스 집합
    • PIPE,Named PIPE(FIFO)
      • PIPE라는 메모리를 이용하여 모든 프로세스 사이에서 통신 가능함
    • Message Queue
      • 메세지가 발생하면 이를 전달하며 PIPE가 데이터 흐름이라면 메세지는 큐는 메모리공간
    • Shared Memory(공유메모리)
      • 다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스간 통신 수행
    • Socket
      • 프로세스들 사이의 통신을 가능하게 함
    • Semaphore
      • 공유자원에 대한 접근제어를 통해 프로세스간 데이터를 동기화하고 보호
  • 알고리즘 구현단계
    1. 단위 기능별 요구사항들을 프로그래밍 언어를 이용하여 모듈로 구현
    2. 디바이스 드라이버모듈, 네트워크모듈, 파일모듈, 메모리모듈, 프로세스모듈
    3. 단위기능들이 사용자의 요구와 일치하는지 확인하는 과정 필요

  • 단위모듈의 종류
    • 화면모듈
    • 화면에서 입력받은 데이터를 처리하기 위한 서비스 컴포넌트
    • 비지니스 트랜잭션 컴포넌트
    • 데이터베이스 접근 컴포넌트
    • 내외부 인터페이스 컴포넌트
    • 데이터 암호화/복호화 컴포넌트
  • 단위모듈 구현시 고려사항
    • 모듈 구성요소들 간의 응집도는 높이고 모듈간의 결합도는 내린다.
    • 공통모듈 구현 -> 개별 단위모듈 구현 (재사용)
    • 예외처리 로직을 고려하여 구현

  • 단위모듈 테스트(Unit Test)
    • 소프트웨어 개발 후 테스트 가능한 최소한의 단위를 기준으로 결함을 찾고 기능을 검증하는 테스트 활동
    • 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차
  • 단위모듈 테스트의 장점
    • 장점
      • 문제점 발견의 용의성
      • 구조변경의 용의성
      • 통합의 용의성 
        • 화이트박스테스트(White Box Test)
          • 개발자관점
          • 프로그램 내부로직을 보면서 테스트 수행
          • 각 모듈이 하나의 시스템 단위로 올바른 기능을 수행하는지 여부 테스트
          • 오류발견이 쉬움
          • 소스코드의 논리적인 경로 테스트
        • 블랙박스테스트(Black Box Test)
          • 사용자관점
          • 프로그램 외부 사용자 요구사항 명세를 보면서 테스트하며 주로 구현된 기능을 테스트한다.
          • 문제의 검증과 프로그램 구조에 관련된 결과에 중점을 두고 시험
          • 테스트 쉬움
          • 해당 기능의 작동여부 테스트
        • 단위모듈 테스트 환경
          • 스텁(Stub)과 드라이버(Driver) 활용 테스트
            • 사용자 화면이 없는 경우 스텁 혹은 드라이버를 활용한 단위모듈 테스트
            • 서비스 컴포넌트, 비지니스 컴포넌트 등 하위 모듈 개발이 안된 경우에도 스텁과 드라이버를 활용한 단위 테스트 가능
            • 테스트 드라이버(Test Driver) : 테스트 대상이 되는 모듈의 상위 가상 모듈
            • 테스트 스텁(Test Stub) : 테스트 대상이 되는 모듈의 하위 가상 모듈

통합 구현 관리

  • 통합개발환경(Integrated Development Enviroment, IDE)
    • 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어 이며 최근 통합개발환경은 그래픽 사용자 인터페이스(GUI), 응용 프로그램 개발용 고속 개발도구가 많다.
    • 테스트할때 오류가 발생한 부분을 시각화 함으로 수정이 용이
    • 외부의 다양한 서비스 연동 및 개발의 편의 제공
  • 협업도구
    • 개발자들이 서로 다른 작업 환경에서 원활이 업무를 수행할 수 있도록 도와주는 도구
    • 기본적으로 소프트웨어형(SaaS)클라우드 서비스 기반으로 팀 커뮤니케이션 및 일정관리, 파일공유, 프로젝트관리 등 개발자들이 원활한 업무를 진행할 수 있도록 도와주는 서비스
    • 협업도구의 기능
      • 전사관리
      • 프로젝트관리
      • 자체 드라이브공간, 에디터지원
      • 문서공유 지원
      • 커뮤니케이션
      • 타 협업툴간 연동지원

  • 형상관리도구
    • 시스템 형상요소(개발소스 및 산출물)의 기능적 특성이나 물리적 특성을 문서화하고 특성 변경을 관리하여 변경의 과정이나 실현 상황을 기록 보고 하여 지정된 요건이 충족되었다는 사실을 검증하는 것과 그 과정을 위한 기능을 제공하는 도구
    • 형상
      • 구조도, 프로그램코드, 코드를 담은 디스크, 설계사양서, 지침서, 소프트웨어 개발에 필요한 모든 것
    • 형상관리 프로세스
      • 식별 - 소프트웨어가 변경될 만한 부분을 미리 정의한다.
      • 버전관리 - 변경전과 변경 후를 정확히 기록한다.
      • 변경관리 - 변경으로 인한 성능 및 품질을 평가한다.
      • 형상감사 - 제대로 변경되었는지 확인한다.
      • 보고 - 변경 사항을 문서화한다.
    • 형상관리도구의 주요기능
      • 체크인 - 개발자가 수정한 소스를 저장소로 업로드
      • 체크아웃 - 저장소로부터 푀신 버전을 개발자 PC로 다운로드
      • 커밋 - 개발자가 소스를 업로드 한 후 최종적인 사항을 형상관리 서버에 반영하는 기능
    • 형상관리 도구의 종류
      • Clinet/Server Type : Subversion(SVN), CVS, Perforce, ClearCase, TFS
      • 분산저장소 타입 : Git, Mercurial, Bitkeeper, SVK, Darcs
      • Folder 공유타입 : RCS, SCCS
    • CVS(Concurrent Version System)
      • 파일 전체를 저장하는 것이라니라 변경된 사항만 저장하며 속도가 느림
    • SVN(Subversion)
      • 형상관리/소스관리 툴
      • 커밋실패 시 롤백 기능 지원
    • Git
      • 분산형 방식
      • 저장소의 완전한 복사본을 로컬에 저장
      • 처리속도가 빠르지만 대용량 코드 관리에 부적합
    • Perforce(P4D)
      • 빠른 속도, 빠른 Merge가 가능하며 큰 리소스 관리에 좋다.
      • 유료, 파일명이 바뀌면 히스토리 추적이 곤란함
반응형

관련글 더보기

댓글 영역