폭포수 모델은 [요구사항 정의 - 시스템 & 소프트웨어 설계 - 구현 및 단위테스트 - 통합 및 시스템 테스트 - 운용 & 유지보수]의 과정을 거쳐서 개발하는 프로세스입니다. 이러한 폭포수 모델의 특성과 장단점을 살펴보겠습니다.
[ Contents ]
1. 폭포수(Waterfall) 모델
폭포처럼 각 단계가 순차적으로 진행되는 정형화된 모델
물이 거슬러 올라갈 수 없듯이, 폭포수 모델도 한 번 지나친 단계는 다시 돌아가지 못하는 모델로 유명합니다. 하지만 요즘에는 문제가 있을 시, 이전 단계로 되돌아가기도 합니다. 다만 에자일과 같은 방식처럼, 이전 단계로 돌아가는 걸 상정하진 않습니다. 단계별로 시간을 들여 확실하게 하는 대신, 다시 되돌아가는 비용을 줄이는 모델이죠.
여기에서 확실하게 진행한다는 건, 대부분 '문서화 작업'을 뜻합니다. 각 단계별로 필요한 문서화 작업을 수행하면서 빠진 건 없는지, 어떤 점이 부족하진 않은지 파악합니다.
2. 폭포수 모델의 장단점
1) 장점
- 분야가 단순하거나, 도메인을 잘 알고 있는 경우 유용
- 비전문가가 사용할 소규모 시스템 개발에 적합
폭포수 모델은 초기 설계된 내용으로 끝까지 진행합니다. 만약 초기 설계에 오류가 있다면, 이후 과정은 수포로 돌아갈 수 있습니다. 따라서 단순 분야나 소규모 시스템에 적용하거나, 도메인을 잘 알고 있는 설계자가 있어야 합니다.
2) 단점
- 변경되거나 새로 생긴 요구를 설계에 반영하기 어려움
- 설계와 코딩 및 테스트가 다소 지연될 수 있음
단계별로 많은 시간과 비용을 쓰는 만큼, 다소 진행이 더디게 느껴질 수 있습니다. 하지만, 계획대로만 진행된다면 빠르게 끝낼 수 있습니다. SW개발에서 다시 이전 단계로 되돌아가고, 다시 새로 작업을 해야하는 시간과 비용은 상당히 크기 때문입니다.
하지만 워터폴 방식에서 설계를 변경할 일이 생기면, 더 큰 시간과 비용을 들여 반영해야 합니다. 따라서 중간에 설계를 바꾸는 건 어렵습니다.
cf) 워터폴 방식은 전통적인 개발 프로세스로, 널리 이용된 방식입니다.
여기서는 소규모 프로젝트에 알맞다고 했지만, 개인적으로는 주로 대규모 프로젝트에서 워터폴 방식을 쓰는 걸 본 적이 많습니다. 많은 개발자가 동원되는 프로젝트에서 개개인마다 의견을 표출하면, 배가 산으로 가기 쉽죠. 소수의 기획자와 리드 프로그래머가 설계한대로 구현하곤 합니다. 하청이 많은 우리나라에서 자주 볼 수 있는 개발방식이죠.
이는 개인적인 의견과 경험으로 위 내용만 참고하시면 되겠습니다.
'CS > SW공학' 카테고리의 다른 글
[SW공학] V-모형의 개념과 프로세스 (0) | 2023.04.26 |
---|---|
[SW공학] 나선형 모델(Spiral Model)의 특징과 프로세스 (0) | 2023.04.26 |
[SW공학] 프로토타이핑(프로토타입) 모델의 개념과 프로세스 (0) | 2023.04.26 |
[SW공학] 소프트웨어 생명주기(SDLC): 계획, 분석, 설계, 구현, 시험, 유지보수 (0) | 2023.04.26 |
[SW공학] 소프트웨어(Software)의 개념과 특징 (0) | 2023.04.26 |
댓글