반응형
폭포수 모델(Waterfall Model)
폭포수 모델은 소프트웨어 개발시 계획, 요구 분석, 설계, 구현, 테스트, 유지보수를 순차적으로 접근하는 프로세스 모델이다.
폭포수(waterfall)라는 말처럼 위에서 아래로 각 프로세스를 순차적으로 접근하는 하향식 접근 방법이다. 각 단계가 끝나야만 다음 단계로 넘어갈 수 있다는 것이 하나의 특징이다.
이제 각 단계에서는 어떤 것을 중점적으로 하는지 알아보자.
계획
- 계획 단계에서는 프로젝트의 범위, 프로젝트 일정, 예산 등 프로젝트 전반에 대한 계획을 수립한다.
요구 분석
- 요구 분석 단계에서는 사용자 요구사항과 주어진 문제를 이해하고 분석한다.
설계
- 설계 단계에서는 시스템 구조, 프로그램, 데이터베이스, UI 등을 설계한다.
구현
- 구현 단계는 다른 말로 개발 단계로 프로그램을 직접 코딩하고 디버깅한다.
테스트
- 테스트 단계에서는 통합 테스트, 시스템 테스트, 인수 테스트를 수행한다.
유지보수
- 유지보수 단계부터는 사용자가 직접 사용하는 단계이다. 이 단계에서는 프로그램의 변경사항에 대한 대응을 하는 단계이다.
지금까지 각 단계별로 어떤 것을 수행하는지 간략하게 알아보았다.
이제 마지막으로 폭포수 모델에는 어떤 장점과 단점이 있으며 어떠한 프로젝트에 이 모델이 적합한지 알아보자.
장점
- 많은 적용사례: 폭포수 모델은 가장 오래된 모델 중 하나인데, 이러한 이유로 적용사례가 풍부하다.
- 이해 용이: 폭포수 모델은 단순히 순차적인 모델이기 때문에 이해가 쉽다.
- 산출물 관리 용이: 문서화, 산출물 관리를 중요시하는 모델이기 때문에 산출물 관리가 쉽다.
단점
- 프로세스별 병행 불가: 각 단계별로 선행단계가 끝나야만 다음 단계로 넘어가는 순차적인 모델이기 때문에 프로세스별 병행 작업이 안되고 피드백에 대한 반복 단계가 어렵다.
- 결함 대응 저하: 테스트 단계에서 발견되는 문제는 계획이나 분석 단계에서 발견되는 결함보다 약 100배의 비용(노력)이 들어간다고 한다. 그런데 폭포수 모델의 경우 결함이 테스트 단계에 가서야 발견되기 때문에 결함 대응이 어렵다.
- 요구반영 저하: 고객 요구사항에 대한 상세한 반영이 어렵다.
폭포수 모델에 적합한 프로젝트
- 고객의 요구가 단순한 경우
- 프로젝트의 난이도가 쉬운 경우
- 프로젝트 진행자가 사전에 유사한 프로젝트 경험이 있는 경우
- 각 단계가 종료된 후 산출물이 명확한 프로젝트
'Software Engineering' 카테고리의 다른 글
[애자일 방법론] 스크럼 기법(Scrum) (1) | 2023.10.05 |
---|---|
[소프트웨어 공학] 유스케이스 다이어그램(use case didagram) (1) | 2023.10.05 |
[소프트웨어 공학] 프로토타이핑 모델(Prototyping Model) (0) | 2023.09.24 |
[소프트웨어 공학] 주먹구구식 개발로 인한 소프트웨어 위기, 소프트웨어 공학의 시작 (0) | 2023.09.21 |
[소프트웨어 공학] 소프트웨어란 (0) | 2023.09.07 |