소프트웨어 공부/프로그래밍

단계적 통합과 증가적 통합

야곰야곰+책벌레 2021. 10. 28. 10:32
728x90
반응형

단계적 통합

  단계적 통합 과정은 다음과 같다.

  1. 각 루틴에 대해 설계, 코딩, 테스트, 디버그를 한다. 이 단계는 "단위 개발"이라 부른다.
  2. 루틴들을 하나의 거대한 시스템으로 묶는다. 이것은 "시스템 통합"이라 부른다.
  3. 전체 시스템을 테스트하고 디버그 한다. 이것은 "시스템 분해"라고 부른다.

단계적 통합의 한 가지 문제는, 시스템의 루틴들이 처음에 합쳐질 때, 새로운 문제가 필연적으로 드러나고, 그 문제의 원인은 어디에나 있을 수 있다는 것이다. 특정 문제의 위치에 대한 불확실성은 모든 문제들이 갑자기 정체를 드러낸다는 사실에 의해 복잡해진다. 단계적 통합은 모든 루틴들이 단위 검사된 후, 프로젝트의 후반부까지는 시작될 수 없다. 루틴들이 최종적으로 결합되고 오류가 행운에 의해 드러날 때, 프로그래머들은 이내 조직적인 발견과 수정이 아닌, 전전긍긍하는 디버깅 상태로 돌입한다.

증가적 통합

  일반적인 방법

  1. 시스템의 작은 기능적 부분을 개발한다. 이것은 가장 작은 기능적 부분, 가장 어려운 부분, 또는 핵심 부분일 수 있다. 이것을 철저하게 테스트하고 디버그 한다. 이것은 시스템의 나머지를 구성하는 근육, 신경, 피부를 붙이기 위한 뼈대로 쓰일 것이다.
  2. 루틴을 설계, 코딩, 테스트, 디버그 한다.
  3. 새로운 루틴에 뼈대를 통합한다. 뼈대와 새로운 루틴의 조합을 테스트 및 디버그 한다. 새로운 리틴을 추가하기 전에 조합이 작동하는지를 확인한다. 완성될 작업이 남아 있으면 2단계를 반복한다.

눈덩이를 굴릴 때처럼 부분 부분을 추가함에 따라 시스템은 성장한다.

 

  증가적 통합의 이점

  • 오류들을 찾기 쉽다.
  • 시스템이 프로젝트 초기에 성공한다.
  • 시스템의 단위가 보다 철저히 테스트된다.
  • 더 짧은 개발 스케줄로 시스템을 만들 수 있다.
728x90
반응형