폭포수 모형(Waterfall Model)

정처기; 정보처리기사 필기 공부

by 짧은 수필

폭포수 모형(Waterfall Model)의 특징

폭포수 모형은 마치 폭포수가 높은 곳에서 낮은 곳으로 한 번에 떨어지듯,

소프트웨어 개발 과정을 순차적으로 진행하는 가장 전통적인 개발 방법론입니다.




주요 특징:

고전적 생명 주기 모형:
소프트웨어 공학에서 가장 오래되고 폭넓게 사용된 방법론으로, '고전적 생명 주기 모형'이라고도 불립니다.


선형 순차적 진행:
타당성 검토 → 계획 → 요구 분석 → 설계 → 구현 → 시험 → 유지보수와 같은 개발 단계를 순서대로 진행하며, 한 단계가 완전히 끝나야만 다음 단계로 넘어갈 수 있는 선형 순차적(Sequential) 모형입니다.


이전 단계로의 복귀 불가:
폭포수 모형의 핵심 전제는 한 번 진행된 단계는 다시 되돌릴 수 없다는 것입니다. 따라서 각 단계를 확실하게 매듭짓고 철저한 검토와 승인 과정을 거치는 것이 매우 중요합니다.


명확한 산출물:
각 단계가 끝날 때마다 다음 단계를 수행하기 위한 결과물(산출물)이 명확하게 나와야 합니다. 예를 들어, '요구 분석' 단계에서는 요구사항 명세서가, '설계' 단계에서는 설계 명세서가 작성됩니다.


경험과 성공 사례가 많음:
오래된 방법론인 만큼 적용한 경험과 성공 사례가 풍부하여 관리가 용이합니다.


문서화의 중요성:
개발 과정에서 만들어지는 모든 문서는 제품의 일부로 취급되며, 특히 사용자 매뉴얼과 같은 문서 작성이 중요하게 여겨집니다.


단계의 비병렬성:
두 개 이상의 개발 과정이 동시에 수행되지 않고, 오직 하나의 단계만이 진행됩니다.




장점과 단점:

장점:
- 개발 절차가 명확하여 관리하기 쉽고,
- 문서화가 잘 이루어져 유지보수가 용이합니다.
- 특히 요구사항이 명확하고 변경이 거의 없는 소규모 프로젝트에 적합합니다.


단점:
- 개발 도중 요구사항이 변경될 경우 대응하기 어렵습니다.
- 또한, 사용자가 완성된 결과물을 보기까지 오랜 시간이 걸리기 때문에
- 사용자의 요구를 반영하기 힘들고,
- 문제가 뒤늦게 발견되면 많은 비용과 시간이 소요됩니다.




폭포수 모형은 이처럼 각 단계가 명확하고 예측 가능한 프로젝트에 효과적이지만,

현대의 급변하는 IT 환경에서는 유연성이 부족하다는 한계가 있어

애자일(Agile)과 같은 다른 방법론들이 많이 사용되고 있습니다.



keyword
매거진의 이전글1.0. 소프트웨어 설계: 소프트웨어 개발영역 결정요소