폭포수 모형(Waterfall Model)은 소프트웨어 개발 프로세스의 전통적이고 선형적인 모형 중 하나입니다. 이 모형은 요구 사항 정의, 설계, 구현, 테스트, 유지보수 등의 개발 활동을 단계별로 진행하는 선형 시퀀스를 따릅니다. 각 단계는 이전 단계의 완료 후에 시작되며, 각 단계에서 수행된 결과물이 다음 단계로 전달됩니다. 이러한 특성 때문에 "폭포수"라는 용어가 사용되었습니다.
폭포수 모형의 주요 단계는 다음과 같습니다:
- 요구 사항 정의 (Requirements)
- 사용자의 요구 사항을 수집하고 문서화합니다.
- 시스템이 무엇을 수행해야 하는지에 대한 명확한 이해를 도출합니다.
- 시스템 설계 (Design)
- 이전 단계에서 수집된 요구 사항을 기반으로 시스템의 전체적인 아키텍처와 디자인을 수립합니다.
- 하위 시스템 및 모듈 간의 상호 작용이 정의됩니다.
- 구현 (Implementation)
- 설계 단계에서 정의된 시스템 구조에 따라 소프트웨어 코드를 작성하고, 모듈을 개발합니다.
- 테스트 (Testing)
- 구현된 소프트웨어를 테스트하여 요구 사항이 충족되고, 예상대로 동작하는지 확인합니다.
- 테스트는 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 등으로 나뉩니다.
- 유지보수 (Maintenance)
- 소프트웨어가 실제 운영되면서 발생하는 버그를 수정하고, 새로운 요구 사항에 대응하기 위한 유지보수 활동을 수행합니다.
- 유지보수 단계는 소프트웨어 생명주기의 끝없는 부분입니다.
폭포수 모형의 특징과 장단점은 다음과 같습니다:
- 장점
- 각 단계가 확실히 정의되어 있어 프로젝트의 진행 상황을 관리하기 쉽습니다.
- 각 단계에서 개발자, 디자이너, 테스터 등이 역할에 집중할 수 있습니다.
- 각 단계의 완료 후 결과물이 명확하게 문서화되므로 품질 관리가 쉽습니다.
- 단점
- 요구 사항이 초기에 정확하게 수집되지 않으면 나중에 수정하기 어려울 수 있습니다.
- 고객의 피드백이 나중에 반영되기 어려우며, 변경 요청이 비용과 시간이 많이 소요될 수 있습니다.
- 일정이나 예산이 엄격하게 관리되어야 하며, 변경에 대한 유연성이 제한됩니다.
폭포수 모형은 단순하고 직관적인 개발 프로세스를 제공하지만, 요구 사항 변화에 적응하기 어렵고 프로젝트 초기에 정확한 요구 사항을 수집하는 것이 중요합니다. 최근에는 민첩한 개발 방법론들이 폭포수 모형을 대체하거나 보완하여 사용되는 추세입니다.
'[개발] Info > 용어' 카테고리의 다른 글
애자일 (0) | 2023.12.31 |
---|---|
나선형 모형 (0) | 2023.12.31 |
logback (0) | 2023.12.26 |
트랜잭션 스크립트 패턴 (0) | 2023.12.19 |
루프백(Loopback) (0) | 2023.12.17 |