폭포수 모델

폭포수 모델(Waterfall model)은 소프트웨어 개발 활동을 요구사항 분석, 설계, 구현, 검증과 유지보수 등의 단계로 구분하여 순차적으로 진행하는 소프트웨어 생명주기 모델이다. 각 단계에서 필요한 산출물을 마련하고 다음 단계로 작업을 넘기는 흐름이 특징이며, 계획과 문서화, 단...

영문명Waterfall model
분류소프트웨어 생명주기 모델
기본 접근단계별 순차 진행
주요 단계요구사항, 설계, 구현, 검증, 유지보수
관련 방법론V 모델, 반복·점진 개발, 애자일 소프트웨어 개발

폭포수 모델(Waterfall model)은 소프트웨어 개발 활동을 요구사항 분석, 설계, 구현, 검증과 유지보수 등의 단계로 구분하여 순차적으로 진행하는 소프트웨어 생명주기 모델이다. 각 단계에서 필요한 산출물을 마련하고 다음 단계로 작업을 넘기는 흐름이 특징이며, 계획과 문서화, 단계별 검토를 중시한다.

폭포수 모델이라는 이름은 개발 과정의 흐름이 위에서 아래로 떨어지는 폭포에 비유되는 데서 유래한다. 이 방식의 역사와 관련하여 1970년 Winston W. Royce의 논문이 자주 인용되지만, Royce의 논의에는 단순한 일방향 진행 방식의 문제점과 반복적인 검토의 필요성도 포함되어 있었다. 따라서 원래의 논의와 이후 정착한 교과서적인 모델을 구분하여 살펴볼 필요가 있다.

폭포수 모델은 단계별 책임과 승인 절차를 명확히 할 수 있는 반면, 변경 요구사항을 반영하는 방식은 프로젝트의 조건과 실제 적용 절차에 따라 달라진다. 현대의 개발 실무에서는 애자일 소프트웨어 개발 및 반복·점진 개발과 비교하여 생명주기 모델의 특성을 설명할 때 널리 언급된다.

역사

초기 소프트웨어 개발 방법

Winston W. Royce의 논문

폭포수 모델의 정착

기본 구조

요구사항 분석

시스템 및 소프트웨어 설계

구현

통합과 시험

배포 및 유지보수

단계별 산출물

요구사항 명세

설계 문서

시험 계획과 결과

변형과 확장

피드백과 반복

V 모델

단계 게이트 모델

다른 개발 모델과 비교

반복·점진 개발

애자일 소프트웨어 개발

활용과 평가

관련 문서