소프트웨어 개발 방법론 - 폭포수 방식(waterfall)

2022. 3. 10. 09:35SW개발론

소프트웨어 개발 방법론 종류 

  • 구조적 방법론: 절차 중심의 SW개발 방법론, 폭포수 모델이 대표적
  • 정보공학 방법론: 데이터나 모델링을 기반으로 한 프로토타입의 개발 방법론, 특징은 약함, 중요성 낮음
  • 객체 지향 방법론: 객체는 컴포넌트화 쉽다. 사람이 참여하여 수많은 반복을 거듭하고 개발을 진행하는 반복적 개발 방법론이 주로 사용됨
  • 컴포넌트 기반 방법론: 사용자와 개발자 간의 반복적인 커뮤니케이션을 중요하게 여기는 개발 방법론. 컴포넌트를 재사용 함으로써 개발 시간을 많이 단축. 애자일 방법론이 대표적 

폭포수 모델의 구성 단계

  • 분석: 고객의 요구 조건, 시스템 환경 등 타당성을 검토하고 요구사항에 대한 명세를 작성
  • 설계: 요구사항 명세를 바탕으로 SW의 전체 구조와 구조간의 관계, 상세 알고리즘 등을 세부적으로 설계
  • 개발/구현: 요구사항 명세를 준수하는 설계에 따라 직접 코딩하여 SW를 개발하는 단계
  • 테스트: 완성된 프로그램을 테스트하는 단계(통합 테스트, 인수 테스트, 시스템 테스트)

폭포수 모델의 특징

  • 절차적 - 소프트웨어 개발을 단계별로 순차적으로 진행하는 '절차적 프로그래밍 기법'
  • 단계 검증 -  각 단계별로 검증이 완료된 후 다음 단계로 이동
  • 하향식 접근 - 전 단계의 작업이 모두 완료되어야 다음 진행이 가능한 방식
  • 피드백 - 결함 발견 시 전 단계로 돌아가는 피드백 단계 존재 
  • 계획specification development가 전체의 40퍼센트를 차지함 

폭포수 모델의 장/단점

 

장점

  • 오랜 기간 사용된 SW개발 모델로써, 다양한 사례 & 검증된 방식에 따라 업무 진행 가능
  • 전체 과정이 SW 생명주기와 일치하여 이해가 쉬움
  • 각 진행 단계 별 산출물(문서)이 확실, 진행 중 및 진행 이후 관리가 용이

 

단점

  • 각 단계가 종결되어야 다음 단계 진행 가능
  • 사용자 피드백에 대한 빠른 대응이 어려움
  • 테스트 단계에서 발견된 중요 결함은 치명적인 문제가 될 수 있음

폭포수 모델 적용하기 좋은 조건

  • 고객의 요구사항이 단순하고 변경 가능성이 높지 않은 경우 
  • 프로젝트의 규모와 난이도가 높지 않은 경우 
  • 각 단계 종료 후 나올 산출물의 결과가 명확한 경우 

출처

https://universitytomorrow.com/19

https://a-game-developer0724.tistory.com/142

'SW개발론' 카테고리의 다른 글

SCRUM(스크럼)  (0) 2022.03.10
소프트웨어 개발 방법론 - 애자일(Agile)  (0) 2022.03.10