728x90
반응형
단계적 통합
단계적 통합 과정은 다음과 같다.
- 각 루틴에 대해 설계, 코딩, 테스트, 디버그를 한다. 이 단계는 "단위 개발"이라 부른다.
- 루틴들을 하나의 거대한 시스템으로 묶는다. 이것은 "시스템 통합"이라 부른다.
- 전체 시스템을 테스트하고 디버그 한다. 이것은 "시스템 분해"라고 부른다.
단계적 통합의 한 가지 문제는, 시스템의 루틴들이 처음에 합쳐질 때, 새로운 문제가 필연적으로 드러나고, 그 문제의 원인은 어디에나 있을 수 있다는 것이다. 특정 문제의 위치에 대한 불확실성은 모든 문제들이 갑자기 정체를 드러낸다는 사실에 의해 복잡해진다. 단계적 통합은 모든 루틴들이 단위 검사된 후, 프로젝트의 후반부까지는 시작될 수 없다. 루틴들이 최종적으로 결합되고 오류가 행운에 의해 드러날 때, 프로그래머들은 이내 조직적인 발견과 수정이 아닌, 전전긍긍하는 디버깅 상태로 돌입한다.
증가적 통합
일반적인 방법
- 시스템의 작은 기능적 부분을 개발한다. 이것은 가장 작은 기능적 부분, 가장 어려운 부분, 또는 핵심 부분일 수 있다. 이것을 철저하게 테스트하고 디버그 한다. 이것은 시스템의 나머지를 구성하는 근육, 신경, 피부를 붙이기 위한 뼈대로 쓰일 것이다.
- 루틴을 설계, 코딩, 테스트, 디버그 한다.
- 새로운 루틴에 뼈대를 통합한다. 뼈대와 새로운 루틴의 조합을 테스트 및 디버그 한다. 새로운 리틴을 추가하기 전에 조합이 작동하는지를 확인한다. 완성될 작업이 남아 있으면 2단계를 반복한다.
눈덩이를 굴릴 때처럼 부분 부분을 추가함에 따라 시스템은 성장한다.
증가적 통합의 이점
- 오류들을 찾기 쉽다.
- 시스템이 프로젝트 초기에 성공한다.
- 시스템의 단위가 보다 철저히 테스트된다.
- 더 짧은 개발 스케줄로 시스템을 만들 수 있다.
728x90
반응형
'소프트웨어 공부 > 프로그래밍' 카테고리의 다른 글
[프로그래밍] 소프트웨어 설계의 개요 (0) | 2021.08.25 |
---|---|
[프로그래밍] 루틴의 특성 (0) | 2021.08.25 |
컨스트럭터 내에서 할당 대신 초기화를 사용하라 (0) | 2021.04.20 |
최소화된 클래스를 사용하라 (0) | 2021.04.20 |
내부의 것은 너무 노출시키지 말라. (0) | 2021.04.20 |