의견.png

폭포수 모델

위키원
rudgh01 (토론 | 기여)님의 2020년 8월 31일 (월) 10:48 판
이동: 둘러보기, 검색

폭포수 모델(Waterfall Model)이란 소프트웨어 개발시 단계적으로 개발하는 방법론을 말한다. 분석→설계→개발(디자인→퍼블리싱→프로그래밍)→테스트→적용→안정화의 단계를 따른다. 폭포수가 거슬러 올라갈 수 없듯이, 소프트웨어 개발도 반드시 앞 단계가 먼저 완료되어야 다음 단계의 개발을 진행할 수 있다는 뜻이다. 소프트웨어 개발 방법론(SDM)의 일종이다. 반대말은 애자일 개발 방법론이다.

폭포수모델 구성도

개요

폭포수모델은 분석, 설계, 개발/구현, 시험, 운영 및 유지보수 등 전 과정을 순차적으로 접근하는 개발모델이다. 순차적으로 접근하며 단계별 검증을 진행한다. 그리고 각 단계를 종료할 때 검증 후에 다음 단계로 진행한다. 관리가 용이하며 문제점이 후반부에 발견될 수 있는 리스크를 가지고 있다.[1] 원래의 폭포수 모델은 폭포에서 내려오는 물이 아래로만 떨어지듯이 각 단계가 순차적으로 진행되며, 병행되어 진행되거나 거슬러 반복 진행되는 경우가 없다. 하지만 실제 사용되고 있는 폭포수 모델은 각 단계의 결과가 확인된 후에 다음 단계로 넘어간다. 이는 사용자 의견이 다르거나 중간 결과를 점건한 결과 전 단계의 작업에 결함이 있다면 다시 수정하도록 전 단계로 돌아가는 피드백이 있기 때문이다.[2]

특징

폭포수모델은 SW 개발을 단계적, 순차적, 체계적으로 접근한다. 그리고 각 단계를 철저하게 완료한 뒤 다음 단계를 진행하는 순차적인 특징을 가지고 있다. 개발 방법과 관리 방법론을 연계하여 효과적인 생산성 확보 여부를 판단하며, 각 단계 종료 시 검증 후 다음 단계로 진행하는 단계별 검증을 한다. 이러한 폭포수 모델은 프로젝트 진행과정에 대해서 관리가 용이하지만 목표 시스템이 후반에 가서야 구체화 되므로 중요한 문제점이 프로젝트 후반부에 발견될 수 있다.[1]

구성

SDLC(Software Development Life Cycle)에서 많이 반복되는 구성 단계로 '계획수립->요구분석->설계->개발/구현->테스트->유지보수' 단계를 순차적으로 진행하며 각 단계 종료 시 검증 후에 다음 단계를 진행한다. 전 단계에서 결함 발견 시 피드백을 받고, 각 단계 별 산출물을 명확하게 정의한다. 기술적 위험성이 낮거나 유사프로젝트 경험이 많은 경우에 사용한다.[3]

계획

타당성 검토라고도 한다. 고객과 사용자가 원하는 바를 파악하여 타당성을 조사하고 SW 기능과 제약조건을 정의하는 명세서를 작성한다. 고객의 요구조건, 시스템 환경 등을 고려하여 프로젝트 진행 여부를 판단하고, 진행 결정이 나면 프로젝트 전반적인 계획에 들어간다.[3]

분석

대상이 되는 문제 영역과 사용자가 원하는 요구를 이해하는 단계이다. 사용자의 요구사항을 듣고 정확히 기능적, 비기능적 요구 사항을 도출한다.[3]

설계

분석 모델을 가지고 이를 세분화함으로써 구현될 수 있는 형태로 전환한다. 요구사항 명세가 전달되면 요구사항 명세에 준수하는 설계에 들어간다.[3]

개발

설계 단계에서 만들어진 설계서를 바탕으로 프로그램을 작성, 코딩, 디버깅, 단위/통합테스트를 수행한다. 단위테스트는 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차로 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 것이다.[3]

시험

발생 가능한 실행 프로그램 오류를 발견, 수정하는 단계이다. 테스트는 모듈들을 통합시키며 진행하는 통합 테스트, 전체 시스템 동작에 대한 검증을 하는 시스템 테스트, 사용자가 현장에서 검증 해보는 인수테스트가 있다.[3]

운영/유지보수

시스템의 사용 중 발생하는 여러 변경사항에 대해 적응하고, 변화에 대비하는 과정이다. 소프트웨어를 사용하면서 나타나는 오류들을 수정하며, 환경변화나 고객 요구에 따른 추가 기능 개발을 진행하는 과정으로 유지보수 계약 종료 후 재계약을 하지 않았을 때와 소프트웨어가 폐기 됐을 때 유지보수가 종료된다.[3]

장단점

장점

  • 고전적인 방법론으로써 적용 사례가 풍부하다.
  • 전체 과정의 이해가 쉽다.
  • 현재 단계에 대한 이해가 빠르고 쉽다.
  • 문서, 산출물의 관리와 적용이 쉽다.

단점

  • 병행 작업이 안된다.
  • 피드백에 대한 반복 단계가 어렵다.
  • 테스트 단계에 발견된 중요 결함에 대한 대응이 어렵다.
  • 고객 요구사항에 대한 상세한 반영이 어렵다.

활용

응용분야를 잘 알고 있거나, 단순한 프로젝트를 개발할 때 용이하다. 비전문가가 사용할 시스템을 개발하는데 적합하고, 단계 종료 후에 나와야 되는 산출물에 대한 명확한 정의가 필요한 사이트 제작에 사용하기 좋고 초기에 정의한 요구사항 변경이 적은 프로그램에 적용해 사용하기 좋다. [4]

각주

  1. 1.0 1.1 도리의 디지털라이프, 〈폭포수 모델 (Waterfall Model)〉, 《개인블로그》, 2018-11-20
  2. 푸른제비, 〈폭포수 모델 Waterfall Model〉, 《개인 블로그》, 2008-05-09
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 바보상자, 〈소프트웨어 공학 - 폭포수 모델(Waterfall Model)〉, 《개인블로그》, 2014-02-14
  4. 자비스가 필요해, 〈SDLC의 고전적 모델, 폭포수모델(Waterfall Model)〉, 《개인 블로그》, 2016-09-08

참고자료

같이 보기


  의견.png 이 폭포수 모델 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.