반응형

폭포수 모델(Waterfall Model)

폭포수 모델은 소프트웨어 개발시 계획, 요구 분석, 설계, 구현, 테스트, 유지보수를 순차적으로 접근하는 프로세스 모델이다.

http://wiki.hash.kr/index.php/%ED%8F%AD%ED%8F%AC%EC%88%98_%EB%AA%A8%EB%8D%B8

폭포수(waterfall)라는 말처럼 위에서 아래로 각 프로세스를 순차적으로 접근하는 하향식 접근 방법이다. 각 단계가 끝나야만 다음 단계로 넘어갈 수 있다는 것이 하나의 특징이다.

 

이제 각 단계에서는 어떤 것을 중점적으로 하는지 알아보자.

계획

  • 계획 단계에서는 프로젝트의 범위, 프로젝트 일정, 예산 등 프로젝트 전반에 대한 계획을 수립한다.

요구 분석

  • 요구 분석 단계에서는 사용자 요구사항과 주어진 문제를 이해하고 분석한다.

설계

  • 설계 단계에서는 시스템 구조, 프로그램, 데이터베이스, UI 등을 설계한다.

구현

  • 구현 단계는 다른 말로 개발 단계로 프로그램을 직접 코딩하고 디버깅한다.

테스트

  • 테스트 단계에서는 통합 테스트, 시스템 테스트, 인수 테스트를 수행한다.

유지보수

  • 유지보수 단계부터는 사용자가 직접 사용하는 단계이다. 이 단계에서는 프로그램의 변경사항에 대한 대응을 하는 단계이다.

지금까지 각 단계별로 어떤 것을 수행하는지 간략하게 알아보았다.

 

이제 마지막으로 폭포수 모델에는 어떤 장점과 단점이 있으며 어떠한 프로젝트에 이 모델이 적합한지 알아보자.

 

장점

  • 많은 적용사례: 폭포수 모델은 가장 오래된 모델 중 하나인데, 이러한 이유로 적용사례가 풍부하다.
  • 이해 용이: 폭포수 모델은 단순히 순차적인 모델이기 때문에 이해가 쉽다.
  • 산출물 관리 용이: 문서화, 산출물 관리를 중요시하는 모델이기 때문에 산출물 관리가 쉽다.

 

단점

  • 프로세스별 병행 불가: 각 단계별로 선행단계가 끝나야만 다음 단계로 넘어가는 순차적인 모델이기 때문에 프로세스별 병행 작업이 안되고 피드백에 대한 반복 단계가 어렵다.
  • 결함 대응 저하: 테스트 단계에서 발견되는 문제는 계획이나 분석 단계에서 발견되는 결함보다 약 100배의 비용(노력)이 들어간다고 한다. 그런데 폭포수 모델의 경우 결함이 테스트 단계에 가서야 발견되기 때문에 결함 대응이 어렵다.
  • 요구반영 저하: 고객 요구사항에 대한 상세한 반영이 어렵다.

폭포수 모델에 적합한 프로젝트

  • 고객의 요구가 단순한 경우
  • 프로젝트의 난이도가 쉬운 경우
  • 프로젝트 진행자가 사전에 유사한 프로젝트 경험이 있는 경우
  • 각 단계가 종료된 후 산출물이 명확한 프로젝트